摘要:针对飞控模仿设备中依据HDLC协议通讯需求,完结了一种新的依据FPGA+ARM架构HDLC协议操控器的规划。文中首要介B了HDLC协议的帧结构和循环冗余校验(CRC)原理,然后结合FPGA可进行恣意数据宽度操作和ARM编程简略灵敏的长处,有用完结了契合HDLC协议的帧结构和CRC校验的运用办法,满意HDLC协议要求。运用成果标明规划可以很好地满意各项功用目标的技能要求。
高档数据链路操控(HDLC,High-Level Data Control)是一种同步数据传输、面向比特的数据链路层协议,具有过失检测功用强大、高效和同步传输的特色,现在HDLC协议已成为是通讯范畴中运用最广泛的协议之一,在飞翔器规划范畴常常用作飞控与舵机,助推器等之间通讯的通讯协议。
飞翔操控模仿设备是在飞翔器研发的计划阶段,用于飞翔操控体系软件开发及仿真评价,飞翔操控软件往往是A级软件,它的任何问题都将构成飞翔失效,从而引起整个体系的瘫痪。采纳飞翔器操控体系模仿设备进行软件算法验证,对各个分体系软件调试和体系验证,可以加速飞翔器规划进展,削减规划危险和本钱。
本文研讨的HDLC协议操控器用于某型飞翔器的飞控模仿设备与舵机操控器之间的通讯。一般来说HDLC协议首要是经过运用专用芯片和软件编程的办法来完结。现在在商场上有许多专用的HDLC协议处理芯片如MT8952B、MK5025,这些芯片功用牢靠但功用针对性太强,合适运用于特定用处的大批量产品中。软件编程办法是经过针对微操控器或信号处理器进行编程,可是因为微操控器或信号处理器是依据字节(8位、16位等)的处理,而HDLC协议帧的解析和生成是面向比特的处理,因而这种办法会大大添加微处理器或信号处理器的负荷。考虑到本规划中针对的飞控模仿设备中存在很多不同总线接口需求处理,其处理器为FPGA+ARM,FPGA能对恣意数据宽度的信号进行处理,ARM具有编程简略,修正灵敏的长处,为此本文在此基础上选用FPGA+AHM的办法使用FPGA完结契合HDLC协议的数据传输操控,ARM完结CRC校验和信息帧解包,终究完结HDLC协议操控器的规划。
1 HDLC协议及CRC原理介绍
HDLC是高档链路层操控协议,面向位的数据链路层协议。HDLC一般为点一点或点一多点结构,可用于半双工或全双工通讯,选用同步传输办法,常用于中高速数据传输场合。HDLC选用滑动窗口协议,可以一起承认几个帧;别的,每个帧都含有地址地段,这样在多点结构中,主站可以一起和多个从站树立衔接,而每个从站只接纳含有本站地址的帧,因而HDLC的传输功率比较高,具有较高的吞吐率。在HDLC协议操控器中,其完结的关键在于两个方面,一方面为确保帧间隔标志的唯一性,在后续的字段中选用“0”比特刺进/删去技能。发送时,帧间隔标志之外的一切信息,只需呈现接连的5个“1”,则主动刺进一个“0”;相同,接纳方在接纳数据时,只需遇到接连的5个“1”,则主动将这以后的“0”删去掉;另一方面是CRC码的产生及校验,即在发送端,使用生成多项式主动生成一帧数据的CRC校验码并附在信息段后发送出去;在接纳端,对接遭到的一帧数据作CRC码的校验。
CRC的全称为Cvclic Redundancy Chcck,中文名称为循环冗余校验。它是一类重要的线性分组码。编码和解码办法简略,检错和纠错能力强,在通讯范畴广泛地用于完结过失操控。其基本原理是:关于一个给定的(N,K)码(在K位信息码后再拼接R位的校验码,N=R+K),可以证明存在一个最高次幂为N-K=R的多项式C(x)。依据C(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。校验码的具体生成进程为:假定要发送的信息用多项式C(X)标明,将C(x)左移R位(可标明成C(x)*2R),这样C(x)的右边就会空出R位,这便是校验码的方位。用C(x)*2R除以生成多项式G(x)得到的余数便是校验码。依据R的不同,构成多种不同的CRC规范,如(3RC-4:x4+x+1、CRC-8:x8+x6+X4+x3+X2+ X1、CRC16-CCITT:x16+X12+x5+1等。本文选用的便是CRC16-CCITT规范。
2 HDLC操控器规划
2.1 HDLC协议处理电路规划
为满意飞翔器规划验证需求,可以完结依据HDLC协议传输的灵敏装备,其功用和技能目标要求如下:422全双工;传输速率可调,最大到达2 Mbps;通讯间隔不超越5 m;通讯误码率小于10-7;帧头7E与帧尾个数可调,CRC校验办法选用CCITT-CRC16。依据功用和技能目标要求以及飞控模仿设备整体装备情况,操控器整体框图如图1所示。
其间数据处理单元选用ARM完结,完结数据帧的CRC校验和信息提取,并依据设定初始化传输操控单元的参数,包含波特率,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所示。
在接纳端,一向依据接纳时钟RCLK信号的上升沿接纳数据,在信息帧宣布曾经,判别帧头“7E”,并记载“7E”个数,当“7E”个数满意设定要求,开端发动信息帧的接纳,并敞开数1计数器,当遇到接连5个“1”时删去这以后的“0”,一起进行串并转化,将数据按8BIT组成一字节,存入FIFO中,整字节接纳结束后,如接纳到“7E”标明该信息帧结束,并开端记载“7E”个数,当“7E”个数满意帧尾设定要求,标明该帧接纳结束,不然标明接纳犯错,扔掉该帧。图3即为接纳帧状况搬运图。
在发送端,接纳到ARM发动发送指令后,发送相应个数帧头0x7E,然后将数据从发送FIFO中取出,进行并串转化,在依据设置的时钟TCLK的下降沿,逐位发送数据到Tx线路上,并且在接连发送了5个比特“1”后,主动刺进比特“0”,发送结束后发送相应个数帧尾0x7E,结束该次发送。发送帧状况搬运图如图4所示。
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协议帧格局和通讯时序要求。
终究依照规划要求将规划好的HDLC通讯协议操控器加载至FPGA与ARM上,并与串口通讯卡BST23109进行回环测验,该卡可以完结串口同步形式,通讯满意HDLC协议要求。实验成果标明在5 m通讯间隔内,波特率可达2 Mb/s,误码率为10-8。
4 定论
文中针对飞翔模仿设备中HDLC协议的运用需求展开了HDLC协议操控器的规划,文中首要介绍了HDLC协议的相关内容,然后要点介绍了HDLC协议操控器软硬件完结,具体给出于HDLC协议操控器的没计完结进程。经过仿真和实测验验标明在5m通讯间隔内,波特率可达2Mb/s,误码率为10-8。在该飞翔模仿设备交付运用进程中,该操控器功用完好,可以很好地满意各项目标的技能要求。