CN110224789B - 一种基于fpga的多模式hdlc控制器 - Google Patents
一种基于fpga的多模式hdlc控制器 Download PDFInfo
- Publication number
- CN110224789B CN110224789B CN201910497885.3A CN201910497885A CN110224789B CN 110224789 B CN110224789 B CN 110224789B CN 201910497885 A CN201910497885 A CN 201910497885A CN 110224789 B CN110224789 B CN 110224789B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- hdlc
- frame
- transmission mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Communication Control (AREA)
Abstract
一种基于FPGA的多模式HDLC控制器,涉及数据通信领域。解决了传统使用FPGA实现的HDLC控制器中每个模块都单纯通过HDL逐句描述,导致设计复杂、调试繁琐及功能单一的问题。本发明FPGA包括HDLC协议传输单元、数据缓存单元和主控单元;HDLC协议传输单元包括HDLC数据发送模块和HDLC数据接收模块;当控制器用于向与其通信的装置发送HDLC数据时,HDLC数据发送模块将写入的并行数据转化为串行数据,并将串行数据编码成HDLC帧,当控制器用于接收与其通信的装置发送来的HDLC数据时,HDLC数据接收模块将接收的串行数据转化为并行数据,并对并行数据进行解码。本发明主要用于数据通信。
Description
技术领域
本发明涉及数据通信领域,具体涉及一种基于FPGA的多模式HDLC控制器。
FPGA的英文全称为:Field Programmable Gate Array,FPGA,中文翻译为:现场可编辑门阵列,HDLC的英文全称为:High-level Data Link Control,中文翻译为:高级数据链路控制。
背景技术
HDLC是面向比特的数据链路控制协议的典型协议,该协议不依赖于任何一种字符编码集。HDLC协议具有错误检测能力强大、同步传输速率高效等特性,在通信领域有着十分广泛的应用。
传统实现HDLC协议的方式主要有软件实现和硬件实现两种方法。软件方法主要是通过CPU(Central Processing Unit,CPU)或DSP(Digital Signal Processing,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缓存器命名为5号FIFO缓存器。
作为优选,主控单元包括顶层控制模块、标准传输模式控制模块、定时传输模式控制模块和响应传输模式控制模块;
数据缓存单元包括标准传输模式数据缓存模块、定时传输模式数据缓存模块和响应传输模式数据缓存模块;
顶层控制模块,用于同时与控制总线和数据总线进行通信,还用于同时与标准传输模式控制模块、定时传输模式控制模块和响应传输模式控制模块进行通信,并对三种传输模式控制模块进行切换;
标准传输模式控制模块,用于向标准传输模式数据缓存模块发送数据发送指令或从标准传输模式数据缓存模块接收与控制器通信的装置发送过来的数据,
标准传输模式数据缓存模块的并行数据输入端用于接收从HDLC数据接收模块发出的并行数据,标准传输模式数据缓存模块的并行数据输出端通过信号多路复用模块将其输出的并行数据发送至HDLC数据发送模块;
定时传输模式控制模块,用于定时向定时传输模式数据缓存模块发送数据发送指令,定时传输模式数据缓存模块根据接收的数据发送指令,通过信号多路复用模块向HDLC数据发送模块发送并行数据;
响应传输模式控制模块,用于向响应传输模式数据缓存模块发送数据发送指令,响应传输模式数据缓存模块根据接收的数据发送指令,进行相应的响应后,通过信号多路复用模块向HDLC数据发送模块发送并行数据;
信号多路复用模块,用于对数据传输通路进行切换。
作为优选,标准传输模式数据缓存模块采用一个FIFO缓存器实现;
定时传输模式数据缓存模块采用一个FIFO缓存器实现;
响应传输模式数据缓存模块采用多个FIFO缓存器实现,且响应传输模式数据缓存模块根据接收的数据发送指令,使相应的某个FIFO缓存器进行响应,并从该FIFO缓存器中发出并行数据。
本发明带来的有益效果是,
(1)本发明所述基于FPGA的多模式HDLC控制器无需对每个模块通过HDL逐句描,通过各功能模块的功能及连接关系,可实现串/并数据间协议的转化,控制器设计简单,调试时只需校验各模块端口的信号,则可完成对控制器的调试。
(2)本发明设计的HDLC协议传输模块充分利用FIFO性质,以多级FIFO IP核串行连接为设计主体,并通过HDL设计中间控制电路,进而完成HDLC协议的解帧与生成功能,降低了HDLC控制器设计复杂度,减少设计代码量,具有方便调试、易于维护的特点;由于HDLC协议实现的过程中,HDLC协议解析与生成以串行顺序过程为主,而FIFO恰具有“先进先出”按顺序执行的特点,本发明通过FPGA设计平台的提供FIFO模块,充分利用FIFO该特点进行设计,减少代码设计量,降低设计复杂度;
(3)本发明包含标准传输、响应传输和定时传输三种工作模式,可根据设计需求进行相应的功能的增减,具有方便灵活、易于功能剪裁等特点,且适用性强;
(4)本发明充分利用FPGA拥有丰富硬件资源的特点,无需额外专用芯片即可实现多模式HDLC控制器设计,有利于节约硬件电路板面积和成本;
(5)发送数据时,帧头和帧尾个数可以灵活设置,避免只能发送单一数量的不足;接收数据时,无需发送与接收双方约定好帧头与帧尾个数,通过标志字检测模块可以自动准确的去除任意数量的帧头和帧尾。
附图说明
图1为本发明所述一种基于FPGA的多模式HDLC控制器的原理示意图;
图2为HDLC数据发送模块的原理示意图;
图3为HDLC数据接收模块的原理示意图
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
参见图1说明本实施方式,本实施方式所述的一种基于FPGA的多模式HDLC控制器,该控制器采用FPGA实现,FPGA包括HDLC协议传输单元、数据缓存单元和主控单元;
HDLC协议传输单元包括HDLC数据发送模块和HDLC数据接收模块;
(二)当控制器用于向与其通信的装置发送HDLC数据时,
主控单元解析从控制总线下发的控制指令,根据预设的传输模式将解析完成的控制指令控制数据缓存单元将其内部存储的待发送并行数据写入HDLC数据发送模块,HDLC数据发送模块根据主控单元下发的配置指令,将写入的并行数据转化为串行数据,并将串行数据编码成HDLC帧后,发送至与控制器通信的装置,同时,当串行数据编码成HDLC帧后,HDLC数据发送模块还用于发送配置完成使能信号至主控单元;
HDLC数据发送模块还向与控制器通信的装置发送同步时钟信号,从而完成控制器向与其通信的装置发送HDLC数据;
(二)当控制器用于接收与其通信的装置发送来的HDLC数据时,
HDLC数据接收模块,用于接收同步时钟信号和编码成HDLC帧的串行数据,将接收的串行数据转化为并行数据,并对并行数据进行解码,解码完成后的并行数据缓存至数据缓存单元,同时,HDLC数据接收模块,还用于向主控单元实时发送数据传输状态信息;
数据缓存单元将并行数据缓存完成的使能信息发送至主控单元,主控单元根据接收到使能信息向数据缓存单元发送控制指令,从而从数据缓存单元内读取并行数据,并将读取的并行数据发送至数据总线,完成控制器对与其通信的装置发送来的HDLC数据的接收。
本实施方式中,本发明HDLC控制器通过各功能模块的功能及连接关系,可实现串/并数据间协议的转化,控制器设计简单,调试时只需校验各模块端口的信号,则可完成对控制器的调试。HDLC协议传输单元实现了HDLC协议的解析与生成
HDLC控制器的结构简单、降低设计复杂度,并能灵活配置控制器的各参数,提高了系统的灵活性和设计效率,具有重要的实际应用价值。
参见图2说明本优选实施方式,本优选实施方式中,HDLC数据发送模块包括发送数据FIFO缓存模块、CRC生成模块、数据与CRC缓存模块和插“0”数据缓存模块;
发送数据FIFO缓存模块,用于缓存接收的并行数据,并将并行数据转化为串行数据,再根据主控单元下发的配置指令对串行数据中每一帧数据的帧头、帧尾个数及波特率进行配置,配置完成后,发送配置完成的数据帧至CRC生成模块,同时,还发送配置完成使能信号至主控单元;其中,配置完成的数据帧中的每一帧数据包括帧头、有效数据和帧尾;
发送数据FIFO缓存模块在发送数据帧的同时,还用于发送同步时钟信号;
CRC生成模块,用于对接收的每一帧数据生成CRC校验码,并将生成CRC校验码后的数据帧发送至数据与CRC缓存模块,CRC校验码位于每一帧数据中有效数据与帧尾之间;
数据与CRC缓存模块,用于对生成CRC校验码后的数据帧进行缓存,缓存完成后发送至插“0”数据缓存模块;
插“0”数据缓存模块,用于对接收的数据帧进行插“0”操作,插“0”操作完成后再次进行缓存,缓存完成后的数据帧为HDLC帧。
本优选实施方式中,通过发送数据FIFO缓存模块对有效数据添加帧头及帧尾个数,再通过CRC生成模块生成CRC校验码,并将CRC校验码插入在有效数据和帧尾之间,然后,再对有效数据和CRC校验码进行插“0”操作,从而完成对待发送的串行数据的编码,整个编码过程的编码程度高,在数据发送时,首先根据配置的发送帧头与帧尾个数发送相应个数的帧头,再依次发送有效数据和CRC校验码,最后发送相应个数的帧尾。
HDLC数据发送模块发送数据时,帧头和帧尾个数可以灵活设置,避免只能发送单一数量的不足。
本实施方式中,可选择CCITT-16的校验方式,实际应用中也可以根据不同需求替换为其他校验方式。
参见图2说明本优选实施方式,本优选实施方式中,发送数据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帧发送至与控制器通信的装置。
本优选实施方式中,以多级FIFO(First Input First Output,FIFO)IP(Intellectual Property,IP)核串行连接为设计主体,并通过硬件描述语言设计中间控制电路,降低HDLC控制器设计复杂度。
参见图3说明本优选实施方式,本优选实施方式中,HDLC数据接收模块包括标志字检测模块、删“0”数据缓存模块和解析帧数据缓存模块;
标志字检测模块,用于接收编码成HDLC帧的串行数据,并将串行数据转换成并行数据后,同时,根据接收的同步时钟信号提取并行数据中每一帧数据中的有效数据和CRC校验码,并将提取完成的有效数据和CRC校验码发送至删“0”数据缓存模块;
删“0”数据缓存模块,用于对每一帧数据中的有效数据和CRC校验码进行删“0”操作后,再对删“0”后的有效数据所对应的CRC校验码进行校验,并将校验成功的CRC校验码所对应的删“0”后的有效数据发送至解析帧数据缓存模块;
解析帧数据缓存模块,用于对删“0”后的有效数据进行缓存,缓存后的数据以并行传输方式发送至数据缓存单元。
本优选实施方式中,HDLC数据接收模块接收数据时,无需发送与接收双方约定好帧头与帧尾个数,通过标志字检测模块可以自动准确的去除任意数量的帧头和帧尾,提高数据接收速度。
参见图3说明本优选实施方式,本优选实施方式中,删“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缓存器,根据接收的匹配成功使能信号,发送与匹配成功的CRC校验码所对应的删“0”后的有效数据至解析帧数据缓存模块。
本优选实施方式中,删“0”数据缓存模块包括两个功能模块,结构简单,可自动准确的去除任意数量的帧头和帧尾,直接获得删“0”后的有效数据和删“0”后的CRC校验码,信息提取过程直接、简单。
参见图3说明本优选实施方式,本优选实施方式中,解析帧数据缓存模块采用FIFO缓存器实现,该FIFO缓存器命名为5号FIFO缓存器。
本优选实施方式中,解析帧数据缓存模块采用FIFO缓存器实现,便于实现及产业化应用。
参见图1说明本优选实施方式,本优选实施方式中,主控单元包括顶层控制模块、标准传输模式控制模块、定时传输模式控制模块和响应传输模式控制模块;
数据缓存单元包括标准传输模式数据缓存模块、定时传输模式数据缓存模块和响应传输模式数据缓存模块;
顶层控制模块,用于同时与控制总线和数据总线进行通信,还用于同时与标准传输模式控制模块、定时传输模式控制模块和响应传输模式控制模块进行通信,并对三种传输模式控制模块进行切换;
标准传输模式控制模块,用于向标准传输模式数据缓存模块发送数据发送指令或从标准传输模式数据缓存模块接收与控制器通信的装置发送过来的数据,
标准传输模式数据缓存模块的并行数据输入端用于接收从HDLC数据接收模块发出的并行数据,标准传输模式数据缓存模块的并行数据输出端通过信号多路复用模块将其输出的并行数据发送至HDLC数据发送模块;
定时传输模式控制模块,用于定时向定时传输模式数据缓存模块发送数据发送指令,定时传输模式数据缓存模块根据接收的数据发送指令,通过信号多路复用模块向HDLC数据发送模块发送并行数据;
响应传输模式控制模块,用于向响应传输模式数据缓存模块发送数据发送指令,响应传输模式数据缓存模块根据接收的数据发送指令,进行相应的响应后,通过信号多路复用模块向HDLC数据发送模块发送并行数据;
信号多路复用模块,用于对数据传输通路进行切换。
本优选实施方式中,主控单元可实现传输模式选择、参数配置和信号控制等功能,实现对不同模式的调控;HDLC协议传输单元包括HDLC数据发送模块和HDLC数据接收模块,实现HDLC协议的解析与生成;为实现在标准传输模式、定时传输模式和响应传输模式下对数据缓存的需求,数据缓存模块针对不同传输模式分别设计数据缓存子模块,完成基于FPGA实现多模式HDLC控制器的设计。
标准传输模式控制模块为标准的数据发送与接收模式;该种模式下,当发送数据时,主控单元的顶层控制模块与标准传输模式控制模块将从数据总线接收的数据存入标准传输模式数据缓存模块作为发送的数据源;由由顶层控制模块按照从控制总线接收的指令配置HDLC协议传输单元的波特率、帧长、发送帧头与帧尾个数等参数;当接收数据时,把HDLC数据接收模块接收到的数据缓存到标准传输模式控制模块中备用。
定时传输模式控制模块为只能进行发送数据的模式;此模式下每间隔一定时间会自动发送一帧数据。
当发送数据时,主控单元的顶层控制模块与定时传输模式控制模块将从数据总线接收的数据存入定时传输模式数据缓存模块作为发送的数据源;由顶层控制模块按照从控制总线接收的指令配置HDLC协议传输单元的波特率、定时周期、帧长、发送帧头与帧尾个数等参数;每到设置的定时周期,如定时周期设置为2.5ms,则每间隔2.5ms,会产生一个发送使能,若定时传输模式数据缓存模块的数据个数不为0,则按照配置参数自动发送一帧,不断循环,直至退出此模式或缓存个数为0。
响应传输模式控制模块为只能进行发送数据的模式。
参见图1和图3说明本优选实施方式,本优选实施方式中,
标准传输模式数据缓存模块采用一个FIFO缓存器实现;
定时传输模式数据缓存模块采用一个FIFO缓存器实现;
响应传输模式数据缓存模块采用多个FIFO缓存器实现,且响应传输模式数据缓存模块根据接收的数据发送指令,使相应的某个FIFO缓存器进行响应,并从该FIFO缓存器中发出并行数据。
本优选实施方式中,以多级FIFO(First Input First Output,FIFO)IP(Intellectual Property,IP)核串行连接为设计主体,并通过硬件描述语言设计中间控制电路,降低HDLC控制器设计复杂度。
当发送数据时,主控单元的顶层控制模块与响应传输模式控制模块将从数据总线接收的数据存入响应传输模式数据缓存模块作为发送的数据源;由顶层控制模块按照从控制总线接收的指令配置HDLC协议传输单元的波特率、数据源所在FIFO(respond_FIFOn,n为1~5)、帧长、发送帧头与帧尾个数等参数。
虽然在本文中参照了特定的实施方式来描述本发明,但是应该理解的是,这些实施例仅仅是本发明的原理和应用的示例。因此应该理解的是,可以对示例性的实施例进行许多修改,并且可以设计出其它的布置,只要不偏离所附权利要求所限定的本发明的精神和范围。应该理解的是,可以通过不同于原始权利要求所描述的方式来结合不同的从属权利要求和本文中所述的特征。还可以理解的是,结合单独实施例所描述的特征可以使用在其它所述实施例。
Claims (9)
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数据的接收;
主控单元(300)包括顶层控制模块(340)、标准传输模式控制模块(310)、定时传输模式控制模块(320)和响应传输模式控制模块(330);
数据缓存单元(200)包括标准传输模式数据缓存模块(210)、定时传输模式数据缓存模块(220)和响应传输模式数据缓存模块(230);
顶层控制模块(340),用于同时与控制总线和数据总线进行通信,还用于同时与标准传输模式控制模块(310)、定时传输模式控制模块(320)和响应传输模式控制模块(330)进行通信,并对三种传输模式控制模块进行切换;
标准传输模式控制模块(310),用于向标准传输模式数据缓存模块(210)发送数据发送指令或从标准传输模式数据缓存模块(210)接收与控制器通信的装置发送过来的数据,
标准传输模式数据缓存模块(210)的并行数据输入端用于接收从HDLC数据接收模块(120)发出的并行数据,标准传输模式数据缓存模块(210)的并行数据输出端通过信号多路复用模块(400)将其输出的并行数据发送至HDLC数据发送模块(110);
定时传输模式控制模块(320),用于定时向定时传输模式数据缓存模块(220)发送数据发送指令,定时传输模式数据缓存模块(220)根据接收的数据发送指令,通过信号多路复用模块(400)向HDLC数据发送模块(110)发送并行数据;
响应传输模式控制模块(330),用于向响应传输模式数据缓存模块(230)发送数据发送指令,响应传输模式数据缓存模块(230)根据接收的数据发送指令,进行相应的响应后,通过信号多路复用模块(400)向HDLC数据发送模块(110)发送并行数据;
信号多路复用模块(400),用于对数据传输通路进行切换。
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.根据权利要求1所述的一种基于FPGA的多模式HDLC控制器,其特征在于,HDLC数据接收模块(120)包括标志字检测模块(121)、删“0”数据缓存模块(122)和解析帧数据缓存模块(123);
标志字检测模块(121),用于接收编码成HDLC帧的串行数据,并将串行数据转换成并行数据后,同时,根据接收的同步时钟信号提取并行数据中每一帧数据中的有效数据和CRC校验码,并将提取完成的有效数据和CRC校验码发送至删“0”数据缓存模块(122);
删“0”数据缓存模块(122),用于对每一帧数据中的有效数据和CRC校验码进行删“0”操作,再对删“0”后的有效数据所对应的CRC校验码进行校验,并将校验成功的CRC校验码所对应的删“0”后的有效数据发送至解析帧数据缓存模块(123);
解析帧数据缓存模块(123),用于对删“0”后的有效数据进行缓存,缓存后的数据以并行传输方式发送至数据缓存单元(200)。
7.根据权利要求6所述的一种基于FPGA的多模式HDLC控制器,其特征在于,删“0”数据缓存模块(122)包括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”后的有效数据至解析帧数据缓存模块(123)。
8.根据权利要求6或7所述的一种基于FPGA的多模式HDLC控制器,其特征在于,解析帧数据缓存模块(123)采用FIFO缓存器实现,该FIFO缓存器命名为5号FIFO缓存器。
9.根据权利要求1所述的一种基于FPGA的多模式HDLC控制器,其特征在于,标准传输模式数据缓存模块(210)采用一个FIFO缓存器实现;
定时传输模式数据缓存模块(220)采用一个FIFO缓存器实现;
响应传输模式数据缓存模块(230)采用多个FIFO缓存器实现,且响应传输模式数据缓存模块(230)根据接收的数据发送指令,使相应的某个FIFO缓存器进行响应,并从该FIFO缓存器中发出并行数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910497885.3A CN110224789B (zh) | 2019-06-10 | 2019-06-10 | 一种基于fpga的多模式hdlc控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910497885.3A CN110224789B (zh) | 2019-06-10 | 2019-06-10 | 一种基于fpga的多模式hdlc控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110224789A CN110224789A (zh) | 2019-09-10 |
CN110224789B true CN110224789B (zh) | 2021-09-07 |
Family
ID=67815962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910497885.3A Active CN110224789B (zh) | 2019-06-10 | 2019-06-10 | 一种基于fpga的多模式hdlc控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110224789B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930683B (zh) * | 2020-08-04 | 2022-10-04 | 天津七所精密机电技术有限公司 | 一种适用于hdlc协议的同步串行收发器及其方法 |
CN112559428A (zh) * | 2020-12-21 | 2021-03-26 | 苏州易行电子科技有限公司 | 一种基于PCIe的HDLC控制器的FPGA芯片 |
CN112835841A (zh) * | 2021-03-05 | 2021-05-25 | 大唐半导体科技有限公司 | 基于串口通讯的asic数据安全传输与存储装置及方法 |
CN114143296B (zh) * | 2021-11-22 | 2024-01-30 | 北京计算机技术及应用研究所 | 一种hdlc通用ip软核 |
CN114338837A (zh) * | 2021-12-17 | 2022-04-12 | 北京航天动力研究所 | 一种基于zynq的hdlc通讯转换控制器 |
CN117349073A (zh) * | 2022-06-28 | 2024-01-05 | 长鑫存储技术有限公司 | 数据转换电路及内存装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101867452A (zh) * | 2010-06-10 | 2010-10-20 | 国网电力科学研究院 | 一种电力专用串行实时总线的通信方法 |
CN105302753A (zh) * | 2015-11-13 | 2016-02-03 | 中国电子科技集团公司第五十四研究所 | 一种基于fpga和fifo芯片的多通道hdlc数据处理装置 |
CN105612705A (zh) * | 2013-10-11 | 2016-05-25 | 富士机械制造株式会社 | 多路复用通信系统及对基板作业机 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE504446T1 (de) * | 2002-12-02 | 2011-04-15 | Silverbrook Res Pty Ltd | Totdüsenausgleich |
-
2019
- 2019-06-10 CN CN201910497885.3A patent/CN110224789B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101867452A (zh) * | 2010-06-10 | 2010-10-20 | 国网电力科学研究院 | 一种电力专用串行实时总线的通信方法 |
CN105612705A (zh) * | 2013-10-11 | 2016-05-25 | 富士机械制造株式会社 | 多路复用通信系统及对基板作业机 |
CN105302753A (zh) * | 2015-11-13 | 2016-02-03 | 中国电子科技集团公司第五十四研究所 | 一种基于fpga和fifo芯片的多通道hdlc数据处理装置 |
Non-Patent Citations (2)
Title |
---|
"Design and implementation of HDLC procedures based on FPGA";Jun Wang; Wenhao Zhang;《2009 3rd International Conference on Anti-counterfeiting, Security, and Identification in Communication》;20091006;全文 * |
"基于FPGA的HDLC设计实现";李晓娟; 黄翌;《现代电子技术》;20070315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110224789A (zh) | 2019-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110224789B (zh) | 一种基于fpga的多模式hdlc控制器 | |
KR101645502B1 (ko) | 다중―프로토콜 sereds phy 장치 | |
CN108132897B (zh) | 一种基于zynq平台软核的srio控制器 | |
CN103825696A (zh) | 一种基于fpga实现光纤高速实时通信的装置 | |
CN112187789B (zh) | 一种数据链路协议转换系统 | |
CN110297797B (zh) | 异构协议转换装置和方法 | |
CN113032319B (zh) | 基于fpga的车载系统数据传输方法及同步高速串行总线结构 | |
CN114297124B (zh) | 一种基于fpga的srio高速总线的通讯系统 | |
CN102752180A (zh) | Can总线网络节点的实现方法 | |
US11343203B2 (en) | Hierarchical switching fabric and deadlock avoidance method for ultra high radix network routers | |
CN105450475A (zh) | 一种fc交换机测试设备 | |
CN111352887B (zh) | 一种pci总线到可配置帧长度串行总线适配和传输方法 | |
CN114817114B (zh) | 一种mipi接口、及其控制方法、装置及介质 | |
CN110058207B (zh) | 一种用于雷达信号传输的多lane数据同步及重组系统与方法 | |
CN113722250A (zh) | 基于Aurora协议的双路冗余数据交换方法及系统 | |
EP1988470A2 (en) | Network device and transmission method thereof | |
CN102523145A (zh) | 一种本地总线桥接和数据传输的方法 | |
KR20050047353A (ko) | 메인프로세서의 패킷 헤더 처리 효율 향상을 위해 패킷헤더 필더를 추출해 정렬하는 패킷프로세서,버퍼메모리제어장치 및 그 방법 | |
CN107517094B (zh) | 基于fpga的s模式二次雷达情报服务器及其工作方法 | |
CN111367850A (zh) | 一种fpga和mcu之间的快速通信方法 | |
CN115706661A (zh) | 同步高速信令互连 | |
CN106685584A (zh) | 基于fpga的hdlc收发控制器 | |
CN112147918B (zh) | 基于arm+fpga+dsp架构的异步数据交互方法及系统 | |
CN205139625U (zh) | 基于fpga的hdlc收发控制器 | |
CN111193545A (zh) | 一种基于以太网的自校验光纤数据单向传输方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |