APP下载

基于FPGA的串口帧数据通信实现

2017-05-02孙倩

中国新通信 2017年6期
关键词:通信协议数据通信串口

孙倩

【摘要】 本文介绍了RS232串口通信协议的基本概念,并在串口通信的基础上,引入可编程逻辑器件,实现多帧数据通信。通过简单的物理连线实现PC与器件,器件与器件之间较复杂的通信信息交互,通用性较强。

【关键字】 FPGA 串口通信 Verilog HDL语言 帧数据解析

一、前言

在常用的RS232通信中,可实现单片系统间的数据交互,然而我们利用串口通信仅仅为了得到一个字节的数据就显得太过浪费。实际通信应用中,在串口发送时,我们需要将一组串口数据封装组合为一帧数据,设置一个帧数据指令约束,规定帧头、数据长度、有效数据、校验信息、帧尾等可用信息。因此实现串口帧数据通信,在有限的串口连线上赋予更多通信信息,丰富了器件间数据交互内容。

二、串口通信协议组成

简单的RS232串口通信利用TXD,RXD实现全双工通信。协议中规定通用字格式为:1位起始位、8位数据位、奇偶校验位、1位停止位组成。按位发送和接收字节。在串口发送时,主设备按照串口格式组成顺序,以某一波特率产生TXD,主设备的TXD作为从设备的RXD,检测RXD下降沿,以相同的波特率接收数据,操作可逆。只要保证接收与发送端各自的波特率时钟一致,便可保证通信的顺利进行,即完成一个字节的数据交互。

三、帧数据通信

在单字节串口通信的基础上,将多个数据组合成有规律的一帧数据进行通信。利用FPGA可对通信数据灵活组合,只要保证收、发端遵从实现约束的帧通信协议,便能完成数据交互。我们以串口帧数据通信实现PC对某一产品的各子模块功能检测为例,通过Verilog HDL语言,完成逻辑编写,模块分为接收模块、发送模块、FIFO缓存级模块、波特率设置模块。

发送模块主要实现单字节串口数据的组合成一帧数据对外发送,实质是对单字节串口发送模块的反复调用。一帧数据通信格式以帧头单字节0xAA,帧数据长度(一字节)、检测对应子模块编号(N+1个字节)、设定帧尾0x55结尾,无检验位,数据格式如图3-1所示。

接收模块主要实现对一帧串口指令的接收识别解析,通信解析流程如图3-2所示。首先检测RXD的下降沿,解析帧头数据,同时计数器字节计数开始,判断帧头数据为0xaa,解析数据长度,由寄存器变量缓存(一字节),解析检测对应子模块编号(N+1个字节),解析帧头数据为0x55后通信完成,判断计数器记录字节个数与寄存器变量缓存的数据长度是否一致,判断通信中是否漏掉数据,逻辑实现过程由状态机完成。FIFO缓存级模块用于帧数据缓存处理,避免数据覆盖。波特率设置模块用于接收、发送端通信速度的灵活把控。

在正确接收完成后,接收端提取检测对应子模块编号进行对应校验工作,校验完成后,将检验结果与接收的帧数据重组,以帧头0xAA,帧数据长度(一字节)、检测对应子模块编号(N+1个字节)、检测结果(一字节)、帧尾0x55的形式发送回PC上位机。从而完成对该产品指定功能模块的校验工作。实际应用中,帧数据可多加一级和校验字节,避免接收端将有效数据中0x55误判断为帧尾数据,增强串口通信的可靠性。

四、总结

基于FPGA的串口帧数据通信实现,利用简单的RS232通信协议可满足器件之间完成复杂的数据交互,通信灵活性更强,可用于PC对器件的复杂功能调控,操作更加直观,人机交互良好。

参 考 文 献

[1]郑彪, 汪秉文. 串口通信在工業控制中的应用[J]. 自动化仪表, 2002, 23(4):58-59.

[2]王富东, 邵光庆. 单片机多串口通讯技术及其应用[J]. 仪器仪表学报, 2002, 23(z1):262-264.

[3]程锴, 张楠. 串口通讯技术在组态软件中应用[J]. 电子测量技术, 2004(4):82-82.

[4]王丽, 雷秀, 余建国. 基于PC机与单片机AT89C52的串行通信协议设计[J]. 机电工程技术, 2006, 35(2):19-21.

[5]李莹, 贾彬. 一种基于状态机的串口通信协议的设计与实现[J]. 电子设计工程, 2012, 20(7):100-103.

猜你喜欢

通信协议数据通信串口
际华高分子材料高科产业园能源管理系统设计
MCS—51单片机中的多串口通讯技术的应用
基于EDA技术的通用异步收发器设计
北斗卫星同步技术在电力行业中的运用简析
优化网络设备维护提高数据通信传输质量
浅谈大连地铁二号线DCS系统
全国计算机等级考试机房准备工作探讨
微机串口的测试诊断
基于R8C的汽车OBD通用故障诊断仪设计
SIP协议系统模型的形式化研究