微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于FPGA+ARM的HDLC协议控制器的设计与实现

基于FPGA+ARM的HDLC协议控制器的设计与实现

时间:06-29 来源:西北工业大学 点击:

7E有效个数;传输控制单元采用FPCA实现,主要功能是实现HDLC传输控制逻辑和数据缓存;接口总线采用全双工RS422数据总线,由于RS422传输线为差分电压,因此需要进行电平转化,为此根据设计要求本文设计的控制器选用MAX3491作为电子转换芯片,其转换速度达到10Mbps以满足需要。文中将针对HDLC控制器设计重点介绍数据处理单元、输出控制逻辑两部分。

2.2 HDLC传输控制单元

HDLC传输是按位操作,因此采用FPGA完成,FPGA采用altera公司的CYCLONEⅡ系列的FPGA,开发平台基于QuartuslI 6.0开发环境,利用有限状态机设计实现HDLC协议的传输控制部分,并最终以IP核的方式给出设计实现,便于开发人员进行维护和升级。

由于HDLC协议控制器是全双工通信,即包含了HDLC同步比特数据的接收电路设计和HDLC同步比特数据帧的发送电路设计。在FPGA的设计中,接收端和发送端都是基于比特的处理,其功能框图如图2所示。


图2 HDLC协议控制器传输接受功能框图

在接收端,一直根据接收时钟RCLK信号的上升沿接收数据,在信息帧发出以前,判断帧头"7E",并记录"7E"个数,当"7E"个数满足设定要求,开始启动信息帧的接收,并开启数1计数器,当遇到连续5个"1"时删除其后的"0",同时进行串并转换,将数据按8BIT组成一字节,存入FIFO中,整字节接收完毕后,如接收到"7E"表明该信息帧结束,并开始记录"7E"个数,当"7E"个数满足帧尾设定要求,表明该帧接收完毕,否则表示接收出错,抛弃该帧。图3即为接收帧状态转移图。



图3 接受帧状态转移图

在发送端,接收到ARM启动发送指令后,发送相应个数帧头0x7E,然后将数据从发送FIFO中取出,进行并串转换,在根据设置的时钟TCLK的下降沿,逐位发送数据到Tx线路上,并且在连续发送了5个比特"1"后,自动插入比特"0",发送结束后发送相应个数帧尾0x7E,结束该次发送。发送帧状态转移图如图4所示。



图4 发送帧状态转移图



图5 HDLC数据处理单元数据接受流程图

2.3 HDLC数据处理单元

HDLC数据处理单元主要完成信息的帧的CRC校验和打包解包任务,其处理芯片采用意法半导体的STM32F103系列ARM芯片,该芯片具有开发简单灵活,成本较低的优势。数据处理单元对数据的处理同样包括接收和发送两部分,以接收为例,具体工作流程图如图5所示。

当进入接收中断进程时,首先读空接收FIFO,其中最后两次读出的数据为该帧信息的CRC校验码,利用该校验码进行CRC校验,校验采用CRC-16-CCITT标准,生成r取值为16,其生成多项式为:C(x)=x16+x12+x2+1传统CRC校验是对消息逐位处理,对于ARM来说,这样效率是很低的。为了提高时间效率,通常的思想是以空间换时间。考虑到内循环只与当前的消息字节和crc_reg的低字节有关,针对crc_reg低字节建立数表进行查询相应的CRC校验码,最终循环完毕如果没有差错发生则结果应为0.

发送单元与接收单元类似,为其逆过程,首先将信息按约定帧格式打包,然后进行CRC校验,将校验码放入信息帧的最后2个字节,并将该信息帧通过数据总线存入FPGA的发送FIFO中,最后写入发送标志字,启动FPGA发送传输控制逻辑。

3验证及结果

为完成设计,首先采用ModelSim进行仿真验证,如图6所示通过激励文件生成ARM与FPCA的读写时序,给出符合HDLC帧格式的一组数据写入FPGA发送FIFO,并启动发送,在激励文件中将RX/RCLK与TX/TCLK短接,形成回环,FPGA根据协议控制器接收到数据,并将数据存入接收FIFO,完成验证。其逻辑时序满足HDLC协议帧格式和通信时序要求。



图6 HDLC协议控制器ModelSim仿真验证图

最后按照设计要求将设计好的HDLC通信协议控制器加载至FPGA与ARM上,并与串口通信卡BST23109进行回环测试,该卡能够实现串口同步模式,通信满足HDLC协议要求。试验结果表明在5 m通信距离内,波特率可达2 Mb/s,误码率为10-8.

4结论

文中针对飞行模拟装置中HDLC协议的应用需求开展了HDLC协议控制器的设计,文中首先介绍了HDLC协议的相关内容,然后重点介绍了HDLC协议控制器软硬件实现,详细给出于HDLC协议控制器的没计实现过程。通过仿真和实测试验表明在5m通信距离内,波特率可达2Mb/s,误码率为10-8.在该飞行模拟装置交付使用过程中,该控制器功能完整,能够很好地满足各项指标的技术要求。

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

网站地图

Top