首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于FPGA的通信接口模块设计与实现(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于FPGA的通信接口模块设计与实现(2)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2015-12-25 10:36
|
只看该作者
基于FPGA的通信接口模块设计与实现(2)
接口
,
通信
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为控制核心,实现了中心机控制多个远程受控模块的通信接口模块。该设计具有电路简单、协议设计灵活,逻辑结构扩展性强等优点。仿真表明,该设计能够满足通信数据传输的功能要求,目前已应用到具体设备中。
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
MCU 单片机技术
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议