基于FPGA的通信接口模块的设计

发布者:mu22最新更新时间:2012-10-10 来源: 21IC 关键字:FPGA  通信接口  光纤通信 手机看文章 扫描二维码
随时随地手机看文章

  某新型设备分为两个相互分离的部分:射频及信号处理部分(简称“前端”)、数据处理及系统控制部分(简称“后端”),两部分之间相距较远。前端由多个模块组成,均受后端中心机的控制,并且还需向中心机传输模块状态信息。为保证两部分之间的通信并尽量简化通信线路设计,需要在前端设置通信接口模块,负责前端各模块与中心机之间的通信。文中设计了一个通信接口模块,通过光纤接口与中心机连接,实现了对前端受控模块的远程控制和状态监测。

  中心机和前端受控模块之间相距较远,而且需要传输较大的数据量。一般的485串行接口已无法满足要求,而光纤具有传输速度快、传输距离远、抗干扰能力强和重量轻等优点,在高速通信中得到了广泛应用。因此这里选择光纤作为通信介质。通信接口模块连接的受控模块众多,各模块具有不同的通信协议和接口形式,并且部分数据对通信延时的要求很高,因此适宜采用灵活性强且可以并行发送数据的FPGA来实现该模块功能。

  1 通信协议设计

  1.1 传输数据类型分析

  通信接口模块需要处理的数据分为3种:中心机发给前端受控模块的控制命令(上行数据);前端受控模块发送给中心机的状态信息(下行数据);中心机控制通信接口模块实现信息转发控制的命令。通信接口模块对前两种数据分开处理,两者之间互不干扰。后一种数据则是通过设置通信接口模块内的参数实现。

  控制命令分为两种,即周期性命令和非周期性命令。周期性命令在周期性的定时信号的控制下发送到各个设备,如周期性命令由于某些原因在下一周期到来之前没有发送,则旧命令就会被清除掉。非周期性命令任何时间都可以发送,与定时信号无关。非周期命令发送次数较少,但较重要,一般为初始化命令或重要参数的设置命令,不允许有丢失。

  状态信息也有周期性和非周期性之分,但状态信息所要传输的数据较少、周期较长,相对于高速的光纤接口则可视为非周期数据,状态信息可以用统一的方式处理,并且各模块使用固定的优先级顺序传输。

  1.2 前端受控模块接口协议

  根据各模块对传输数据量及对时间准确度的要求,使用了3种接口协议:三线同步串行接口、通用异步串行接口和逻辑电平接口。

  (1)三线同步串行接口。需要高速传输和对实时性要求较高的模块采用三线同步串行接口。三线同步串行接口包含数据、时钟、帧结束等3个信号线。相对于通用异步串行接口具有传输速度快的优点,相对于使用随路时钟方式的串行接口具有实现简单的优点。根据不同设备的控制命令字或状态信息数据长度不同,设置同步串行接口的数据发送/接收长度和有效时钟边沿个数。为保证在较高速度下的通信传输质量,三线制同步串行接口采用LVDS电平。LVDS电路是一种具有低电平电压摆幅差分信号传输结构的电路,具有工作时驱动电流恒定、低功耗、低EMI、抗噪声干扰等特点,工作频率最高可达几GHz。

  (2)通用异步串行接口。对于数据率和实时性要求不高的模块,采用通用异步串行接口。恰好大部分慢速传输数据的模块都用单片机实现控制,而单片机都有通用异步串行接口。异步串行接口较同步串行接口使用较少的连接线。只需一对双绞线就可以完成传输,并且可以进行长距离传输。同样为保证信号传输质量,通信电平采用RS485。RS485采用差分传输,具有抗干扰能力强、传输距离远的优点。

  (3)逻辑电平接口。部分前端模块没有专用的通信接口,其控制接口和状态信息是按照逻辑电平信号实现的。对于控制命令,由于前端受控模块的控制接口没有锁存功能,需要在通信接口模块上对输出信号进行寄存,直到下次命令发生更改。对于逻辑电平信号输入的状态信息,由于信号电平变化较少,仅在检测到有效电平变动时通信接口模块才回传状态信息。

  1.3 光纤通信协议

  光纤通信协议分为物理层、数据链路层和应用层。物理层定义了传输介质和信号传输方式,物理层处理包括光电转换、串行解串和8B/10B编解码等。数据链路层定义了帧格式和数据传输规则,链路层处理包括成帧和解帧。光纤通信协议结构如图1所示。

[page]

    协议使用8B/10B编码保证数据通道的直流平衡,完成时钟的恢复。同时利用8B/10B编码的控制字符作为数据帧传输的起始、结束标识,并作为传输信道的同步控制。在每一数据帧的起始位置添加帧起始控制字符,在数据帧的结束位置添加帧结束控制字符,在数据传输过程中有中断或在无数据传输的空闲时段填充同步控制字符。

  控制命令和状态数据都以数据帧的方式在光纤上传输。数据帧格式如图2所示。标识字说明数据帧的性质和传输到的设备,不同的应用有不同的标识,且每个标识有唯一对应的设备,一个设备可能有多个标识字。字长为从标识到校验的长度。数据为命令或状态信息。校验字为从字长到数据的所有字节的循环冗余校验码(CRC)。

  2 通信接口模块实现

  通信接口模块以FPGA为控制核心,外围添加电平转换芯片实现。通信接口模块对上行控制命令和下行状态信息进行独立处理。在FPGA内实现的逻辑框图如图3所示。

  光纤接收和光纤发送模块实现光纤通信协议的物理层处理。成帧和解帧模块实现光纤通信协议的链路层处理。控制命令处理和状态数据处理实现用户数据处理。三线同步串行接口、通用异步串行接口和逻辑电平接口实现针对各个前端受控模块的数据传输。

  2.1 光纤接口

  按照光纤通信协议,光纤接口包括物理层和链路层处理,即图3中的光纤发送/接收、成帧/解帧逻辑模块,发送和接收是相反方向的处理。光纤接收/发送逻辑模块实现串行解串编解码和8B/10B编解码。串行器将并行数据变为串行数据发送至光纤接口;解串器将从光纤接口接收到的串行数据变为并行数据。同时通过8B/10B编码将发送时钟编码到数据中一同发送,解串器则从数据流中恢复时钟。串行器采用

  SN65LV1023A器件,解串器采用SN65LV1224B器件。8B/10B编解码则在FPGA中实现。成帧/解帧模块实现数据长度检验、数据校验、添加帧头和帧尾。

     2.2 控制命令处理逻辑

  控制命令处理逻辑首先检测FIFO缓冲器是否有数据,如有数据则开启一次控制命令处理。数据处理时,根据标志字将数据写入相应的设备接口,一帧数据处理完成后,通过设置帧有效信号,启动接口模块发送。控制状态机如图4所示。[page]

  2.3 状态数据处理逻辑

  由于各个前端受控模块下行数据量较少、数据间时间间隔较大,而FPGA内部数据处理速度远快于外部接口,因此不存在某一受控模块始终占据总线的情况。这样不需要考虑按照请求到来时间顺序进行处理请求,而是状态数据处理逻辑接到受控模块接口的总线请求后,按照固定的优先级处理。

  2.4 三线制同步串行口

  三线制同步串行接口的逻辑结构如图6所示。三线制同步串行口接收模块可分为数据接收和数据接收缓存两部分。数据接收部分由移位寄存器组成。移位寄存器受接收的时钟信号控制,实现串并转换,数据接收完成后,直接输出到数据接收缓存。数据接收缓存设置2级异步FIFO,实现跨时钟域变换。当缓存中有数据时,向状态信息处理模块发出请求,等待读出数据。

   
    三线制同步串行口发送模块同样可分为两部分:数据发送缓存和数据发送。数据发送部分主要是由移位寄存器、移位计数器组成。根据不同的数据长度设置不同长度的移位寄存器,实现数据的并行输入和串行移出。移位计数器控制数据移出的个数,同时控制时钟信号和帧同步信号的产生。数据缓存部分根据传输数据的不同而不同。对于周期性控制命令设置一级缓存,当新数据来时缓存被新数据覆盖。对于非周期控制命令设置4级FIFO,由于非周期控制命令较少,4级缓存已经足够。数据缓存部分优先发送非周期控制命令。[page]

  2.5 通用异步串口

  通用异步串行接口的逻辑结构如图7所示。通用异步串行接口的接收模块可分为数据接收、帧检验和数据缓存3部分。数据接收部分包括移位寄存器和接收控制逻辑。按照通用异步串行接口的时序,接收控制逻辑将移动移位寄存器,实现字节数据的接收和串并转换。帧检验模块按照特定前端受控模块的通信数据帧格式对数据进行检验,对检验成功的数据写入到数据缓冲区中。数据缓存中存储数据后向状态信息处理模块发出请求,等待数据读出。

   通用异步串口的发送模块同样分为3部分:数据缓存、帧形成、数据发送。数据缓存接收控制命令处理模块的数据并缓存。由于通用异步串口发送的命令都是非周期命令,使用128 Byte的FIFO作为数据缓存。在帧形成模块中为数据添加校验、帧头和帧尾。数据发送模块针对字节数据按照通用异步通信的时序要求,将数据并串转换发送出去。

  3 仿真结果

  FPGA选用Xilinx公司XC3S500E器件,该器件具有足够的差分接口、逻辑和存储器资源,能满足该设计的要求。首先在ISE中利用Verilog HDL语言编写逻辑代码并用ISim对各个模块进行了详细的功能仿真。光纤通信接口的仿真结果如图8所示。该仿真利用光纤收发模块进行自环,检验模块输入输出的正确性。从光纤接口接收到相应控制命令后三线同步串行接口,通用异步串行接口的数据输出仿真结果如图9和图10所示。仿真表明,程序输出数据发送正确且数据处理时延很小。

   

  4 结束语

  文中以FPGA为控制核心,实现了中心机控制多个远程受控模块的通信接口模块。该设计具有电路简单、协议设计灵活,逻辑结构扩展性强等优点。仿真表明,该设计能够满足通信数据传输的功能要求,目前已应用到具体设备中。

关键字:FPGA  通信接口  光纤通信 引用地址:基于FPGA的通信接口模块的设计

上一篇:μC/OS-II 嵌入式实时操作系统在S12 单片机上的移植过
下一篇:Bootloader的基本概念以及内部原理

推荐阅读最新更新时间:2024-03-16 13:10

基于FPGA的同步测周期高精度数字频率计的设计
摘 要:本文介绍了一种同步测周期计数器的设计,并基于该计数器设计了一个高精度的数字频率计。文中给出了计数器的VHDL编码,并对频率计的FPGA实现进行了仿真验证,给出了测试结果。 在现代数字电路设计中,采用FPGA结合硬件描述语言VHDL可以设计出各种复杂的时序和逻辑电路,具有设计灵活、可编程、高性能等优点。本文将介绍一种基于FPGA,采用同步测周期的方法来实现宽频段高精度数字频率计的设计。 图1 同步测周期计数器 同步测周期频率计的原理 在数字频率计中,测周期计数器是主要的电路,其功能是:使用标准时钟以被测频率信号的一个周期为时限进行脉冲计数。传统的测周期计数器采用门控计数器来实现,即采用一个同被测频率信号周期宽度相
[模拟电子]
基于<font color='red'>FPGA</font>的同步测周期高精度数字频率计的设计
面对下一代ASIC验证 英特尔发布全球最大容量FPGA产品
“正是因为英特尔在IC工艺技术、制造和封装等领域的创新,让英特尔得以设计、制造并交付目前世界上密度最高(代表计算能力)的 FPGA—— Stratix® 10 GX 10M FPGA。最大容量FPGA对于客户来说是具有非常重要的技术领导地位,这能向客户展示自己的最大技术实力。”近日,在2019英特尔FPGA技术大会上,英特尔公司网络与自定义逻辑事业部副总裁兼FPGA电源产品营销总经理Patrick Dorsey先生,向EEWorld记者介绍了英特尔世界上密度最高的 FPGA产品。 英特尔公司网络与自定义逻辑事业部副总裁兼FPGA电源产品营销总经理Patrick Dorsey先生 世界上密度最高的FPGA产品 “今天英
[嵌入式]
面对下一代ASIC验证 英特尔发布全球最大容量<font color='red'>FPGA</font>产品
英特尔推出面向工业和汽车市场的全新多功能FPGA
为支持日益增多的物联网(IoT)应用,英特尔公司今天发布了英特尔® Cyclone® 10 系列现场可编程门阵列(FPGA)。该系列旨在提供快速、节能的处理能力,可用于广泛领域,包括汽车、工业自动化、专业视听和视觉系统等。 随着“万物”具有更高的互联水平并能够彼此共享大量实时数据,数据处理变得愈发困难。建筑物、工厂、家庭和车辆中的传感器和摄像头发出的信息日益增多,微处理器或微控制器已经无法单独处理这些信息。 英特尔FPGA等高性能处理设备能够收集和发送数据,根据物联网设备的输入做出实时决策。FPGA 可通过专门编程,提供不同物联网应用需要的特定计算和功能。 Cyclone® 10 FPGA–Cyclone® 10 GX和Cyclo
[汽车电子]
FPGA 为三洋最新款家庭影院投影仪添彩
Altera 公司宣布, 三洋电子有限公司在其 PLV-Z2000 1080p 家庭影院投影仪中采用 Cyclone ® II FPGA 和 Nios ® II 嵌入式处理器, 进一步提高 了家庭娱乐系统的图像质量 。 Altera 的 FPGA 和嵌入式处理器组合方案的高级图像处理功能使三洋最新款家庭影院投影仪的对比度达到了 15,000:1 。利用 Altera 的解决方案,三洋等产品创新者提高了集成度,实现了更具价值的功能。在 2008 年 1 月 7 号至 10 号举行的拉斯维加斯消费类电子产品展 (CES) 上,三洋将展示其 PLV-Z2000 1080p 家庭影院投影仪。 三洋电子有限公司工程部投影仪分部总经理 K.
[汽车电子]
基于MCU和FPGA的LED图文显示屏控制系统
  引言   目前,市场上的中小规模LED显示系统,一般采用传统的单片机作为主控芯片。对LED大屏幕显示屏来说,由于数据传输量大,要求扫描速度快,而单片机内部的资源较少、运行速度较慢,难于满足系统要求。以FPGA作为控制器,一方面,FPGA采用软件编程实现硬件功能,速度较快;另一方面,它的引脚资源丰富,可扩展性强。因此,用单片FPGA和简单的外围电路就可以实现大屏幕LED显示屏的控制,无需另外设计汉字库,具有集成度高、稳定性好、设计灵活和效率高等优点。   1 系统总体结构   LED大屏幕显示系统由上位机(PC机)、单片机系统、FPGA控制器、LED显示屏的行列驱动电路等模块组成,如图1所示。上位机负责汉字、字符等数据的采
[电源管理]
基于MCU和<font color='red'>FPGA</font>的LED图文显示屏控制系统
FPGA全局时钟资源相关原语及使用
  FPGA 全局时钟资源一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构,从而使全局时钟到达 芯片 内部的所有可配置单元(CLB)、I/O单元(IOB)和选择性块RAM(Block Select RAM)的时延和抖动都为最小。为了适应复杂设计的需要, Xilinx 的FPGA中集成的专用时钟资源与数字延迟 锁相环 (DLL)的数目不断增加,最新的Vir te x II器件最多可以提供16个全局时钟输入端口和8个数字时钟管理模块(D CM )。   与全局时钟资源相关的原语常用的与全局时钟资源相关的 Xilinx 器件原语包括:IBUFG、IBUFGDS、BUFG、BUFGP、BUFGCE、BUFGMUX、BUFGDLL和DC
[嵌入式]
FPGA芯片厂商复旦微科创板IPO成功过会了
集微网消息 3月31日,据上交所发布科创板上市委2021年第22次审议会议结果显示,上海复旦微电子集团股份有限公司(以下简称:复旦微)科创板IPO成功过会。 据了解,复旦微是一家从事超大规模集成电路的设计、开发、测试,并为客户提供系统解决方案的专业公司。公司目前已建立健全安全与识别芯片、非挥发存储器、智能电表芯片、FPGA芯片和集成电路测试服务等产品线,产品广泛应用于金融、社保、城市公共交通、电子证照、移动支付、防伪溯源、智能手机、安防监控、工业控制、信号处理、智能计算等众多领域。 目前,复旦微的RFID芯片、智能卡芯片、EEPROM、智能电表MCU等多类产品的市场占有率位居行业前列,且产品性能受到三星、LG、VIVO、海尔、
[手机便携]
<font color='red'>FPGA</font>芯片厂商复旦微科创板IPO成功过会了
Mercuryr推出赛灵思FPGA适用的串行RapidIO IP内核
Mercury Computer已经加盟Xilinx联盟项目,为Xilinx Virtex和Spartan系列FPGA新推出Mercury串行RapidIO IP内核。Xilinx联盟项目具有最新的IP内核、EDA、DSP和嵌入式开发工具及设计业务、电路板级产品、集成电路和电子元件。成员公司提供优化的产品及业务,以提供更多适合使用Xilinx可编程逻辑器件的方案。 Serial RapidIO具有全功能IP内核,集成了逻辑层、传输层和物理层,支持I/O和信息传递。Mercury IP内核符合Serial RapidIO 1.2规范,适合用于嵌入式产品、通讯、无线、存储和国防市场。使用Xilinx Virtex FPGA的设计师可
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved