一种基于FPGA+ARM架构HDLC协议控制器设计

发布者:HeavenlyClouds最新更新时间:2021-04-28 来源: eepw关键字:FPGA  ARM架构 手机看文章 扫描二维码
随时随地手机看文章

简介:针对飞控模拟装置中基于HDLC协议通信需求,完成了一种新的基于FPGA+ARM架构HDLC协议控制器的设计。文中首先介紹了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所示。

一种基于FPGA+ARM架构HDLC协议控制器设计

其中数据处理单元采用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所示。

一种基于FPGA+ARM架构HDLC协议控制器设计

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

一种基于FPGA+ARM架构HDLC协议控制器设计

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


一种基于FPGA+ARM架构HDLC协议控制器设计

2.3HDLC数据处理单元


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协议帧格式和通信时序要求。

一种基于FPGA+ARM架构HDLC协议控制器设计

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


4 结论


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

关键字:FPGA  ARM架构 引用地址:一种基于FPGA+ARM架构HDLC协议控制器设计

上一篇:浅谈ARM下U-boot给Kernel传参数
下一篇:Linux 文件系统移植全解密

推荐阅读最新更新时间:2024-11-08 12:05

基于FPGA技术的RS232接口时序电路设计方案
  0 引言   RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通信的标准。它的全名是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个25个脚的DB25 连接器 ,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。随着设备的不断改进,出现了代替DB25的DB9接口,现在都把RS 232接口叫做DB9。RS 232接口是最常见的一种串行通信接口,普通PC机一般都具有此类接口,其最高通信速率(波特率)为115.2 Kb/s。采用9 600b/s进行数据传输交换的应用较多。通过FPGA实现其时序
[嵌入式]
基于FPGA的洗衣机控制系统的设计与实现
  随着时代的发展,洗衣机已成为人们日常生活中的必需品。目前全自动单筒、滚筒洗衣机已日渐盛行,但其结构复杂,日常维修和购买时成本偏高,所以结构简单、价格实惠的双缸洗衣机依然受到普通大众的欢迎。从市场反馈的情况发现,双缸洗衣机的控制电路因为采用了传统机械式的转钮,所以发生故障的概率很高,且一直以来都未找到合适的问题解决办法。随着芯片制造工艺的发展和成本的进一步降低,可编程门阵列以其具有体系结构和逻辑单元灵活、集成度高以及适用范嗣宽等特点,在大规模数据计算、嵌入式处理、通信、家用电器智能控制等方面都被广泛使用。为了改善家用双缸洗衣机机械控制系统,本文充分利用FPGA的特点,用其作为洗衣机控制系统的核心,配置电路和控制逻辑的设计是该系统
[嵌入式]
FPGA的明天在哪里?Intel、AMD和Nvidia都将怎么做?
本文编译自SemiWiki 2015年6月1日,英特尔和Altera宣布,他们已达成最终协议,英特尔将以167亿美元收购Altera。这是FPGA界的一个重要里程碑,因为Xilinx和Altera是FPGA的主要供应商。 而在不久前AMD正式宣布收购Xilinx之后,FPGA界对FPGA的未来产生了极大的担忧。 据AMD称,收购Xilinx的主要目标是创建业界领先的高性能计算公司,“显著扩大AMD产品组合和客户群的广度,包括Xilinx已确立的领先市场”。但是,Xilinx领先的主要市场是什么? Alveo,VERSAL和Vitis AI Xilinx在3年前发布了一个功能强大的FPGA平台Alveo。Alve
[嵌入式]
FPGA性能超越DSP数十倍!
多年以来,在ASSP、ASIC、DSP、FPGA等芯片的选择问题上,高端通信系统设计师总面临诸多棘手而复杂的难题。 虽然这些芯片技术在价格与性能方面各有优劣,但是FPGA供应商一直宣称:与复杂且昂贵的ASIC相比,它们提供的产品在多个方面都更胜一筹,例如具有更快的产品上市速度,以及更多的设计灵活性。然而截至目前,在与DSP的竞争中,人们却普遍认为,FPGA在性价比方面的表现远不如DSP。 不过,技术咨询公司Berkeley Design Technology(BDTI)一项最新但是具有争议性的基准测试研究结果显示,在多个意义重大的DSP应用中,FPGA的性价比优势可能超越了独立DSP。 “特别地,在诸如高端通
[嵌入式]
基于FPGA的DDC滤波器设计与仿真
近年来,软件无线电已经成为通信领域一个新的发展方向,数字下变频技术(Digital Down Converter-DDC)是软件无线电的核心技术之一,也是计算量最大的部分。基于FPGA的DDC设计一般采用CIC、HB、FIR级联的形式组成。同时,由于CIC滤波器的通带性能实在太差,所以中间还要加上一级PFIR滤波器以平滑滤波器的通带性能。而众所周知用FPGA从事算法的开发是一件难度比较大的工作,而Xilinx公司开发的System Generator工具为算法的快速开发及仿真带来了巨大的方便。本文首先对CIC、HB、FIR滤波器的原理及设计作了简单的说明,最后用Matlab结合System generator对本文所设计的DDC滤
[模拟电子]
基于<font color='red'>FPGA</font>的DDC滤波器设计与仿真
基于单片机和FPGA的简易数字存储示波器设计
l 引言   与传统模拟示波器相比.数字存储示波器不仅具有可存储波形、体积小、功耗低,使用方便等优点,而且还具有强大的信号实时处理分析功能。在电子测量领域,数字存储示波器正在逐渐取代模拟示波器。但目前我国使用高性能数字存储示波器主要依靠国外产品,而且价格昂贵。因此研究数字存储示波器具有重要价值。借于此,提出了一种简易数字存储示波器的设计方案,经测试,性能优良。 2 数字存储示波器基本工作原理   数字存储示波器与模拟示波器不同在于信号进入示波器后立刻通过高速A/D转换器将模拟信号前端快速采样,存储其数字化信号。并利用数字信号处理技术对所存储的数据进行实时快速处理,得到信号的波形及其参数,并由示波器显示,从而实现模拟示波器功能,而
[测试测量]
基于单片机和<font color='red'>FPGA</font>的简易数字存储示波器设计
FPGA与DSP的高速通信接口设计与实现
在雷达信号处理、数字图像处理等领域中,信号处理的实时性至关重要。由于FPGA芯片在大数据量的底层算法处理上的优势及DSP芯片在复杂算法处理上的优势,DSP+FPGA的实时信号处理系统的应用越来越广泛。ADI公司的TigerSHARC系列DSP芯片浮点处理性能优越,故基于这类。DSP的DSP+FPGA处理系统正广泛应用于复杂的信号处理领域。同时在这类实时处理系统中,FPGA与DSP芯片之间数据的实时通信至关重要。 TigerSHARC系列DSP芯片与外部进行数据通信主要有两种方式:总线方式和链路口方式。链路口方式更适合于FPGA与DSP之间的实时通信。随着实时信号处理运算量的日益增加,多DSP并行处理的方式被普遍采用,它们共享总线
[嵌入式]
提高FPGA处理总线性能的RapidIO节点设计
   1 引言   在传统的嵌入式多处理器系统中,处理器之间的互连是通过分时共享总线来实现的,所有通信争用总线带宽,由此就造成处理器越多,每个处理器可用带宽就越少, 从而带来严重的系统信息传输能力瓶颈。并且总线具有大量的引脚数目,带来了一定的电气特性和机械特性等问题,使得信号频率以及信号可传输距离都受到很大程度的制约。   RapidIO总线技术是一种基于高性能包交换的互连技术,具有极低的延迟(纳秒级)和高带宽。RapidIO总线技术的提出 消除了带宽这个瓶颈问题,成功解决了处理器集成芯片之间和线路板之间互连问题。目前RapidIO已经成为唯一的一个系统内串行互连协议标准,世界各大半导体公司都陆续推出了基于RapidIO技
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved