一种基于FPGA的HDLC协议实现方法与系统技术方案

技术编号:33835854 阅读:47 留言:0更新日期:2022-06-16 11:51
本发明专利技术公开了一种基于FPGA的HDLC协议实现方法与系统,当FPGA检测到启动接收指令时,开始接收帧数据并对接收的帧数据进行串并行转换,输出接收状态标志信息,将串并转换完成后的帧数据写入接收双口RAM,处理器根据接收状态标志信息读取接收双口RAM中的数据;当FPGA检测到启动发送指令时,发送帧头信息,从发送双口RAM中读取帧数据,对发送的帧数据进行CRC校验,同时进行并串行转换,以串行方式发送帧数据和CRC校验值,最后发送帧尾信息,并输出发送状态标志信息给发送状态寄存器;该方法在FPGA上实现HDLC收发控制功能,功能上能够完全替代国产HDLC协议芯片,很大程度地减小了PCB尺寸,能够满足惯性测量系统单板电路小型化设计的需求,节约了硬件成本。节约了硬件成本。节约了硬件成本。

【技术实现步骤摘要】
一种基于FPGA的HDLC协议实现方法与系统


[0001]本专利技术属于数据通信
,尤其涉及一种基于FPGA的HDLC协议实现方法与系统。

技术介绍

[0002]HDLC(High

Level Data Link Control,高级数据链路控制)协议,是一种在同步网上传输数据、面向比特的数据链路层协议。该协议不依赖于任何一种字符编码集,数据报文可以透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;所有帧均采用CRC校验,对信息帧进行编号,可防止漏收或重发,传输可靠性较高。
[0003]随着惯性测量系统高度集成化以及小型化的发展趋势,对惯性测量系统中各单板电路尺寸提出了更高的要求。国产化的HDLC协议芯片采用陶瓷针栅阵列封装,尺寸较大,不仅在电路PCB顶层占据较大空间,而且还影响PCB底层的布局布线,难以满足单板电路小型化的设计需求。
[0004]当前,在惯性测量系统中,涉及HDLC通讯的主控芯片主要为FPGA和DSP。采用DSP实现HDLC通讯协议执行速度慢,程序运行占用处理器资源较多,同时还影响内部的时序设计。

技术实现思路

[0005]本专利技术的目的在于提供一种基于FPGA的HDLC协议实现方法与系统,以解决国产化HDLC协议芯片封装尺寸较大,不能满足单板电路小型化设计需求的问题,以及采用DSP实现HDLC协议速度慢、占用资源多、影响内部时序设计的问题。
[0006]本专利技术是通过如下的技术方案来解决上述技术问题的:一种基于FPGA的HDLC协议实现方法,在所述FPGA上实现HDLC收发控制功能,所述HDLC收发控制包括接收控制和发送控制;所述接收控制包括以下步骤:
[0007]步骤S11:FPGA接收外部输入的HDLC同步时钟信号、HDLC同步数据信号,并在系统时钟下对所述HDLC同步时钟信号和HDLC同步数据信号进行同步处理;
[0008]步骤S12:FPGA接收处理器发送的启动接收指令和地址信息;
[0009]步骤S13:当FPGA检测到所述启动接收指令时,开始接收帧数据并对接收的帧数据进行CRC校验和串并行转换,将串并转换完成后的帧数据写入接收双口RAM,输出接收状态标志信息;
[0010]步骤S14:当完成帧数据的接收时,FPGA向所述处理器反馈所述接收状态标志信息,处理器根据所述接收状态标志信息读取接收双口RAM中的数据;
[0011]所述发送控制包括以下步骤:
[0012]步骤S21:处理器将要发送的帧数据写入发送双口RAM;
[0013]步骤S22:FPGA接收处理器发送的启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息,并根据所述传输速率信息产生HDLC同步发送时钟信号;
[0014]步骤S23:当FPGA检测到所述启动发送指令时,发送帧头信息;
[0015]步骤S24:当所述帧头信息发送完成后,从发送双口RAM中读取帧数据,对发送的帧数据进行CRC校验,同时进行并串行转换,以串行方式发送帧数据和CRC校验值;
[0016]步骤S25:当完成所有帧数据和CRC校验值的发送时,发送帧尾信息,并输出发送状态标志信息给发送状态寄存器;
[0017]步骤S26:FPGA向所述处理器反馈所述发送状态标志信息。
[0018]本专利技术中,在FPGA上实现HDLC收发控制功能,功能上能够完全替代国产HDLC协议芯片,由于FPGA多数采用BGA封装,很大程度地减小了PCB尺寸,能够满足惯性测量系统单板电路小型化设计的需求,节约了硬件成本;采用处理器对传输速率和帧头帧尾进行设置,不需要修改FPGA代码,设置简单方便;可以在不同型号的FPGA芯片移植代码,能够适应不同场景的HDLC收发控制,通用性和灵活性高;当用户方HDLC通讯协议发生更改时,可适应性修改FPGA代码满足设计需求,相较于国产HDLC协议芯片,具有更高的灵活度;采用FPGA实现HDLC通讯协议,不占用处理器的资源,执行速度快,对内部时序设计无影响。
[0019]进一步地,所述步骤S13的具体实现过程为:
[0020]步骤S131:当FPGA检测到所述启动接收指令时,对帧头进行检测;如果检测到帧头,则进入非帧头检测,并转入步骤S132;
[0021]步骤S132:在非帧头检测中,如果检测到非帧头数据为地址,则判断FPGA检测到的该地址与所述处理器发送的地址信息是否一致,如果一致,则转入步骤S133,否则转入步骤S131;
[0022]步骤S133:接收帧数据,当连续检测到5个“1”时,删除5个“1”后面的“0”,输出删0标志给接收状态寄存器;
[0023]步骤S134:对帧数据进行串并行转换;
[0024]步骤S135:对每次串并转换完成后的帧数据进行CRC校验,并将串并转换完成后的帧数据写入接收双口RAM;如果CRC校验错误,则输出CRC校验错误标志给接收状态寄存器。
[0025]进一步地,所述步骤S14的具体实现过程为:当FPGA检测到帧尾标志时,表明完成帧数据的接收,接收的帧数据和CRC校验值均已写入接收双口RAM,输出数据有效标志给接收状态寄存器;FPGA向所述处理器反馈删0标志、CRC校验错误标志以及数据有效标志。
[0026]进一步地,所述步骤S24中,在进行帧数据并串行转换的同时,对读取的帧数据进行CRC校验;在帧数据发送完成后进行CRC校验数据的发送。
[0027]进一步地,所述步骤S24中,在完成帧数据的并串行转换之后,当连续检测到5个“1”时,在5个“1”后面进行插“0”操作。
[0028]进一步地,所述步骤S11还包括:对所述HDLC同步时钟信号和HDLC同步数据信号进行滤波处理。
[0029]本专利技术还提供一种基于FPGA的HDLC协议实现系统,在所述FPGA上实现HDLC收发控制功能,所述系统包括:
[0030]同步处理模块,用于接收外部输入的HDLC同步时钟信号、HDLC同步数据信号,并在系统时钟下对所述HDLC同步时钟信号和HDLC同步数据信号进行同步处理;
[0031]接收指令寄存器,用于接收处理器发送的启动接收指令和地址信息;
[0032]接收控制模块,用于检测所述接收指令寄存器中的指令,当检测到所述启动接收指令时,开始接收帧数据并对接收的帧数据进行CRC校验和串并行转换,将串并转换完成后
的帧数据写入接收双口RAM,输出接收状态标志信息;用于当完成帧数据的接收时,向所述处理器反馈接收状态标志信息;
[0033]接收双口RAM,用于存储接收的帧数据;
[0034]接收状态寄存器,用于存储接收状态标志信息;
[0035]发送双口RAM,用于存储处理器写入的将要发送的帧数据;
[0036]发送指令寄存器,用于存储处理器发送的启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息;
[0037]时钟产生模块,用于根据所述传输速率信息产本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的HDLC协议实现方法,在所述FPGA上实现HDLC收发控制功能,所述HDLC收发控制包括接收控制和发送控制;其特征在于,所述接收控制包括以下步骤:步骤S11:FPGA接收外部输入的HDLC同步时钟信号、HDLC同步数据信号,并在系统时钟下对所述HDLC同步时钟信号和HDLC同步数据信号进行同步处理;步骤S12:FPGA接收处理器发送的启动接收指令和地址信息;步骤S13:当FPGA检测到所述启动接收指令时,开始接收帧数据并对接收的帧数据进行CRC校验和串并行转换,将串并转换完成后的帧数据写入接收双口RAM,输出接收状态标志信息;步骤S14:当完成帧数据的接收时,FPGA向所述处理器反馈所述接收状态标志信息,处理器根据所述接收状态标志信息读取接收双口RAM中的数据;所述发送控制包括以下步骤:步骤S21:处理器将要发送的帧数据写入发送双口RAM;步骤S22:FPGA接收处理器发送的启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息,并根据所述传输速率信息产生HDLC同步发送时钟信号;步骤S23:当FPGA检测到所述启动发送指令时,发送帧头信息;步骤S24:当所述帧头信息发送完成后,从发送双口RAM中读取帧数据,对发送的帧数据进行CRC校验,同时进行并串行转换,以串行方式发送帧数据和CRC校验值;步骤S25:当完成所有帧数据和CRC校验值的发送时,发送帧尾信息,并输出发送状态标志信息给发送状态寄存器;步骤S26:FPGA向所述处理器反馈所述发送状态标志信息。2.如权利要求1所述的基于FPGA的HDLC协议实现方法,其特征在于,所述步骤S13的具体实现过程为:步骤S131:当FPGA检测到所述启动接收指令时,对帧头进行检测;如果检测到帧头,则进入非帧头检测,并转入步骤S132;步骤S132:在非帧头检测中,如果检测到非帧头数据为地址,则判断FPGA检测到的该地址与所述处理器发送的地址信息是否一致,如果一致,则转入步骤S133,否则转入步骤S131;步骤S133:接收帧数据,当连续检测到5个“1”时,删除5个“1”后面的“0”,输出删0标志给接收状态寄存器;步骤S134:对帧数据进行串并行转换;步骤S135:对每次串并转换完成后的帧数据进行CRC校验,并将串并转换完成后的帧数据写入接收双口RAM;如果CRC校验错误,则输出CRC校验错误标志给接收状态寄存器。3.如权利要求2所述的基于FPGA的HDLC协议实现方法,其特征在于,所述步骤S14的具体实现过程为:当FPGA检测到帧尾标志时,表明完成帧数据的接收,接收的帧数据和CRC校验值均已写入接收双口RAM,输出数据有效标志给接收状态寄存器;FPGA向所述处理器反馈删0标志、CRC校验错误标志以及数据有效标志。4.如权利要求1所述的基于FPGA的HDLC协议实现方法,其特征在于,所述步骤S24中,在进行帧数据并串行转换的同时,对读取的帧数据进行CRC校验;在帧数据发送完成...

【专利技术属性】
技术研发人员:丁坤谢劲励王群唐琼
申请(专利权)人:湖南航天机电设备与特种材料研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1