【技术实现步骤摘要】
一种基于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协议的实现包括很多功能模块,如果每个 ...
【技术保护点】
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),用于接收同步时钟信号 ...
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。