一种基于FPGA的多模式HDLC控制器制造技术

技术编号:22080795 阅读:41 留言:0更新日期:2019-09-12 15:56
一种基于FPGA的多模式HDLC控制器,涉及数据通信领域。解决了传统使用FPGA实现的HDLC控制器中每个模块都单纯通过HDL逐句描述,导致设计复杂、调试繁琐及功能单一的问题。本发明专利技术FPGA包括HDLC协议传输单元、数据缓存单元和主控单元;HDLC协议传输单元包括HDLC数据发送模块和HDLC数据接收模块;当控制器用于向与其通信的装置发送HDLC数据时,HDLC数据发送模块将写入的并行数据转化为串行数据,并将串行数据编码成HDLC帧,当控制器用于接收与其通信的装置发送来的HDLC数据时,HDLC数据接收模块将接收的串行数据转化为并行数据,并对并行数据进行解码。本发明专利技术主要用于数据通信。

A Multi-mode HDLC Controller Based on FPGA

【技术实现步骤摘要】
一种基于FPGA的多模式HDLC控制器
本专利技术涉及数据通信领域,具体涉及一种基于FPGA的多模式HDLC控制器。FPGA的英文全称为:FieldProgrammableGateArray,FPGA,中文翻译为:现场可编辑门阵列,HDLC的英文全称为:High-levelDataLinkControl,中文翻译为:高级数据链路控制。
技术介绍
HDLC是面向比特的数据链路控制协议的典型协议,该协议不依赖于任何一种字符编码集。HDLC协议具有错误检测能力强大、同步传输速率高效等特性,在通信领域有着十分广泛的应用。传统实现HDLC协议的方式主要有软件实现和硬件实现两种方法。软件方法主要是通过CPU(CentralProcessingUnit,CPU)或DSP(DigitalSignalProcessing,DSP)方式实现,但由于CPU或DSP是基于8位或16位进行处理,而HDLC协议是基于比特处理,因而实现HDLC协议时会增加CPU或DSP的负荷,使性能低下;硬件方法主要是通过专用的HDLC协议处理芯片实现HDLC协议的解析与生成,处理速度较快,但专用芯片存在包含的接口控制寄存器较多、专用性太强和不支持灵活配置等缺点。FPGA具有丰富的系统门、逻辑单元、块RAM和I/O管脚等硬件资源,采用硬件技术处理信号,既可以通过软件反复编程使用,又能够兼顾速度和灵活性,并能并行处理多路信号,在数据通信领域得到广泛的应用。传统使用FPGA设计的HDLC控制器具有良好的可移植性,可以根据需求在不同型号的FPGA上进行移植。但由于HDLC协议的实现包括很多功能模块,如果每个模块都是通过硬件描述语言HDL逐句描述,则会导致HDLC控制器设计复杂、调试繁琐,工作量较大。且设计的HDLC控制器多为针对特定需要而研制的,功能单一,在不同平台进行移植时要进行较大改动。因此,以上问题亟需解决。
技术实现思路
本专利技术是为了解决传统使用FPGA实现的HDLC控制器中每个模块都单纯通过HDL逐句描述,导致设计复杂、调试繁琐及功能单一的问题,本专利技术提供了一种基于FPGA的多模式HDLC控制器。本专利技术的一种基于FPGA的多模式HDLC控制器,该控制器采用FPGA实现,FPGA包括HDLC协议传输单元、数据缓存单元和主控单元;HDLC协议传输单元包括HDLC数据发送模块和HDLC数据接收模块;(一)当控制器用于向与其通信的装置发送HDLC数据时,主控单元解析从控制总线下发的控制指令,根据预设的传输模式将解析完成的控制指令控制数据缓存单元将其内部存储的待发送并行数据写入HDLC数据发送模块,HDLC数据发送模块根据主控单元下发的配置指令,将写入的并行数据转化为串行数据,并将串行数据编码成HDLC帧后,发送至与控制器通信的装置,同时,当串行数据编码成HDLC帧后,HDLC数据发送模块还用于发送配置完成使能信号至主控单元;HDLC数据发送模块还向与控制器通信的装置发送同步时钟信号,从而完成控制器向与其通信的装置发送HDLC数据;(二)当控制器用于接收与其通信的装置发送来的HDLC数据时,HDLC数据接收模块,用于接收同步时钟信号和编码成HDLC帧的串行数据,将接收的串行数据转化为并行数据,并对并行数据进行解码,解码完成后的并行数据缓存至数据缓存单元,同时,HDLC数据接收模块,还用于向主控单元实时发送数据传输状态信息;数据缓存单元将并行数据缓存完成的使能信息发送至主控单元,主控单元根据接收到使能信息向数据缓存单元发送控制指令,从而从数据缓存单元内读取并行数据,并将读取的并行数据发送至数据总线,完成控制器对与其通信的装置发送来的HDLC数据的接收。作为优选,HDLC数据发送模块包括发送数据FIFO缓存模块、CRC生成模块、数据与CRC缓存模块和插“0”数据缓存模块;发送数据FIFO缓存模块,用于缓存接收的并行数据,并将并行数据转化为串行数据,再根据主控单元下发的配置指令对串行数据中每一帧数据的帧头、帧尾个数及波特率进行配置,配置完成后,发送配置完成的数据帧至CRC生成模块,同时,还发送配置完成使能信号至主控单元;其中,配置完成的数据帧中的每一帧数据包括帧头、有效数据和帧尾;发送数据FIFO缓存模块在发送数据帧的同时,还用于发送同步时钟信号;CRC生成模块,用于对接收的每一帧数据生成CRC校验码,并将生成CRC校验码后的数据帧发送至数据与CRC缓存模块,CRC校验码位于每一帧数据中有效数据与帧尾之间;数据与CRC缓存模块,用于对生成CRC校验码后的数据帧进行缓存,缓存完成后发送至插“0”数据缓存模块;插“0”数据缓存模块,用于对接收的数据帧进行插“0”操作,插“0”操作完成后再次进行缓存,缓存完成后的数据帧为HDLC帧。作为优选,发送数据FIFO缓存模块包括1号FIFO缓存器和参数设置模块;1号FIFO缓存器,用于缓存接收的并行数据,并将并行数据转化为串行数据;参数设置模块,用于根据主控单元下发的配置指令对1号FIFO缓存器中的串行数据中每一帧数据的帧头、帧尾个数及波特率进行配置,还用于发送同步时钟信号;1号FIFO缓存器,还用于发送配置完成的数据帧至CRC生成模块。作为优选,数据与CRC缓存模块采用FIFO缓存器实现,该FIFO缓存器命名为2号FIFO缓存器。作为优选,插“0”数据缓存模块包括插“0”处理模块和3号FIFO缓存器;插“0”处理模块,用于对接收的数据帧中每一帧数据的有效数据和CRC校验码进行插“0”操作,插“0”操作完成后通过3号FIFO缓存器进行缓存,缓存完成后的数据帧作为HDLC帧发送至与控制器通信的装置。作为优选,HDLC数据接收模块包括标志字检测模块、删“0”数据缓存模块和解析帧数据缓存模块;标志字检测模块,用于接收编码成HDLC帧的串行数据,并将串行数据转换成并行数据后,同时,根据接收的同步时钟信号提取并行数据中每一帧数据中的有效数据和CRC校验码,并将提取完成的有效数据和CRC校验码发送至删“0”数据缓存模块;删“0”数据缓存模块,用于对每一帧数据中的有效数据和CRC校验码进行删“0”操作,再对删“0”后的有效数据所对应的CRC校验码进行校验,并将校验成功的CRC校验码所对应的删“0”后的有效数据发送至解析帧数据缓存模块;解析帧数据缓存模块,用于对删“0”后的有效数据进行缓存,缓存后的数据以并行传输方式发送至数据缓存单元。作为优选,删“0”数据缓存模块包括FIFO使能模块、4号FIFO缓存器和CRC校验模块;FIFO使能模块,用于对每一帧数据中的有效数据和CRC校验码进行删“0”操作,并将删“0”后的有效数据发送至4号FIFO缓存器,同时,将该删“0”后的有效数据和删“0”后的CRC校验码同时发送至CRC校验模块;CRC校验模块,根据接收的删“0”后的有效数据生成CRC匹配码,该CRC匹配码用于对删“0”后的有效数据所对应CRC校验码进行校验,当CRC匹配码和CRC校验码匹配成功,则,发送匹配成功使能信号至4号FIFO缓存器;4号FIFO缓存器,根据接收的匹配成功使能信号,发送与匹配成功的CRC校验码所对应的删“0”后的有效数据至解析帧数据缓存模块。作为优选,解析帧数据缓存模块采用FIFO缓存器实现,该FIFO缓存器命本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的多模式HDLC控制器,其特征在于,该控制器采用FPGA实现,FPGA包括HDLC协议传输单元(100)、数据缓存单元(200)和主控单元(300);HDLC协议传输单元(100)包括HDLC数据发送模块(110)和HDLC数据接收模块(120);(一)当控制器用于向与其通信的装置发送HDLC数据时,主控单元(300)解析从控制总线下发的控制指令,根据预设的传输模式将解析完成的控制指令控制数据缓存单元(200)将其内部存储的待发送并行数据写入HDLC数据发送模块(110),HDLC数据发送模块(110)根据主控单元(300)下发的配置指令,将写入的并行数据转化为串行数据,并将串行数据编码成HDLC帧后,发送至与控制器通信的装置,同时,当串行数据编码成HDLC帧后,HDLC数据发送模块(110)还用于发送配置完成使能信号至主控单元(300);HDLC数据发送模块(110)还向与控制器通信的装置发送同步时钟信号,从而完成控制器向与其通信的装置发送HDLC数据;(二)当控制器用于接收与其通信的装置发送来的HDLC数据时,HDLC数据接收模块(120),用于接收同步时钟信号和编码成HDLC帧的串行数据,将接收的串行数据转化为并行数据,并对并行数据进行解码,解码完成后的并行数据缓存至数据缓存单元(200),同时,HDLC数据接收模块(120),还用于向主控单元(300)实时发送数据传输状态信息;数据缓存单元(200)将并行数据缓存完成的使能信息发送至主控单元(300),主控单元(300)根据接收到使能信息向数据缓存单元(200)发送控制指令,从而从数据缓存单元(200)内读取并行数据,并将读取的并行数据发送至数据总线,完成控制器对与其通信的装置发送来的HDLC数据的接收。...

【技术特征摘要】
1.一种基于FPGA的多模式HDLC控制器,其特征在于,该控制器采用FPGA实现,FPGA包括HDLC协议传输单元(100)、数据缓存单元(200)和主控单元(300);HDLC协议传输单元(100)包括HDLC数据发送模块(110)和HDLC数据接收模块(120);(一)当控制器用于向与其通信的装置发送HDLC数据时,主控单元(300)解析从控制总线下发的控制指令,根据预设的传输模式将解析完成的控制指令控制数据缓存单元(200)将其内部存储的待发送并行数据写入HDLC数据发送模块(110),HDLC数据发送模块(110)根据主控单元(300)下发的配置指令,将写入的并行数据转化为串行数据,并将串行数据编码成HDLC帧后,发送至与控制器通信的装置,同时,当串行数据编码成HDLC帧后,HDLC数据发送模块(110)还用于发送配置完成使能信号至主控单元(300);HDLC数据发送模块(110)还向与控制器通信的装置发送同步时钟信号,从而完成控制器向与其通信的装置发送HDLC数据;(二)当控制器用于接收与其通信的装置发送来的HDLC数据时,HDLC数据接收模块(120),用于接收同步时钟信号和编码成HDLC帧的串行数据,将接收的串行数据转化为并行数据,并对并行数据进行解码,解码完成后的并行数据缓存至数据缓存单元(200),同时,HDLC数据接收模块(120),还用于向主控单元(300)实时发送数据传输状态信息;数据缓存单元(200)将并行数据缓存完成的使能信息发送至主控单元(300),主控单元(300)根据接收到使能信息向数据缓存单元(200)发送控制指令,从而从数据缓存单元(200)内读取并行数据,并将读取的并行数据发送至数据总线,完成控制器对与其通信的装置发送来的HDLC数据的接收。2.根据权利要求1所述的一种基于FPGA的多模式HDLC控制器,其特征在于,HDLC数据发送模块(110)包括发送数据FIFO缓存模块(111)、CRC生成模块(112)、数据与CRC缓存模块(113)和插“0”数据缓存模块(114);发送数据FIFO缓存模块(111),用于缓存接收的并行数据,并将并行数据转化为串行数据,再根据主控单元(300)下发的配置指令对串行数据中每一帧数据的帧头、帧尾个数及波特率进行配置,配置完成后,发送配置完成的数据帧至CRC生成模块(112),同时,还发送配置完成使能信号至主控单元(300);其中,配置完成的数据帧中的每一帧数据包括帧头、有效数据和帧尾;发送数据FIFO缓存模块(111)在发送数据帧的同时,还用于发送同步时钟信号;CRC生成模块(112),用于对接收的每一帧数据生成CRC校验码,并将生成CRC校验码后的数据帧发送至数据与CRC缓存模块(113),CRC校验码位于每一帧数据中有效数据与帧尾之间;数据与CRC缓存模块(113),用于对生成CRC校验码后的数据帧进行缓存,缓存完成后发送至插“0”数据缓存模块(114);插“0”数据缓存模块(114),用于对接收的数据帧进行插“0”操作,插“0”操作完成后再次进行缓存,缓存完成后的数据帧为HDLC帧。3.根据权利要求2所述的一种基于FPGA的多模式HDLC控制器,其特征在于,发送数据FIFO缓存模块(111)包括1号FIFO缓存器和参数设置模块;1号FIFO缓存器,用于缓存接收的并行数据,并将并行数据转化为串行数据;参数设置模块,用于根据主控单元(300)下发的配置指令对1号FIFO缓存器中的串行数据中每一帧数据的帧头、帧尾个数及波特率进行配置,还用于发送同步时钟信号;1号FIFO缓存器,还用于发送配置完成的数据帧至CRC生成模块(112)。4.根据权利要求2所述的一种基于FPGA的多模式HDLC控制器,其特征在于,数据与CRC缓存模块(113)采用FIFO缓存器实现,该FIFO缓存器命名为2号FIFO缓存器。5.根据权利要求2所述的一种基于FPGA的多模式HDLC控制器,其特征在于,插“0”数据缓存模块(114)包括插“0”处理模块和3号FIFO缓存器;插“0”处理模块,用于对接收的数据帧中每一帧数据的有效数据和CRC校验码进行插“0”操作,插“0”操作完成后通过3号FIFO缓存器进行缓存,缓存完成后的数据帧作为HDLC帧发送至与控制器通信的装置。6.根据权利...

【专利技术属性】
技术研发人员:梁军崔秀海赵金帅彭宇彭喜元
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:黑龙江,23

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

1