微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的通信接口模块的设计

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

时间:10-10 来源:互联网 点击:

应的设备,一个设备可能有多个标识字。字长为从标识到校验的长度。数据为命令或状态信息。校验字为从字长到数据的所有字节的循环冗余校验码(CRC)。

  2 通信接口模块实现

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

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

  2.1 光纤接口

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

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

  2.2 控制命令处理逻辑

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

  2.3 状态数据处理逻辑

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

  2.4 三线制同步串行口

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


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

  2.5 通用异步串口

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

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

  3 仿真结果

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

  4 结束语

文中以FPGA为控制核心,实现了中心机控制多个远程受控模块的通信接口模块。该设计具有电路简单、协议设计灵活,逻辑结构扩

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top