CN111698271B - 一种hdlc协议ip核 - Google Patents
一种hdlc协议ip核 Download PDFInfo
- Publication number
- CN111698271B CN111698271B CN201910192593.9A CN201910192593A CN111698271B CN 111698271 B CN111698271 B CN 111698271B CN 201910192593 A CN201910192593 A CN 201910192593A CN 111698271 B CN111698271 B CN 111698271B
- Authority
- CN
- China
- Prior art keywords
- data
- register
- synchronous
- module
- hdlc
- 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
- 230000001360 synchronised effect Effects 0.000 claims abstract description 152
- 230000005540 biological transmission Effects 0.000 claims abstract description 83
- 238000006243 chemical reaction Methods 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 28
- 238000001514 detection method Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 230000000630 rising effect Effects 0.000 claims description 10
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 239000003550 marker Substances 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 abstract description 11
- 230000008901 benefit Effects 0.000 abstract description 3
- 230000010354 integration Effects 0.000 abstract description 2
- 230000006855 networking Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种HDLC协议IP核,通过CPU接口与上位机通信;所述HDLC协议IP核,用于将上位机写入的待发送数据进行缓存,通过配置各功能寄存器,启动同步发送,将符合HDLC协议的数据同步输出;同时通过同步接收通道接收HDLC协议串行数据,译码判读后将符合约定的HDLC有效数据进行缓存,通过中断或状态位通知上位机读取。本发明的IP核可移植性强,可移植到FPGA、ASIC或SOC芯片中;灵活性强,在实际使用时通过例化HDLC的IP核,不仅使用方便、组网灵活,而且可以有效降低卫星综合电子系统的质量体积功耗;基于本发明设计的HDLC总线接口可以将相关的功能和组合逻辑集成到一个芯片中,具有集成度高、低功耗、可靠性高的优点。
Description
技术领域
本发明涉及航空航天的数据通信领域,特别涉及一种HDLC协议IP核。
背景技术
随着技术的发展,航空航天电子系统已经从简单的集中控制过渡到目前复杂的分布式系统。在数据通信中,链路层协议种类繁多,其作用主要通过一系列数据链路层协议,在不可靠的物理链路上实现可靠地数据传输。高级数据链路控制HDLC(High-Level DataLink Control),由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data LinkControl)同步数据链路控制协议扩展开发而成的,其不依赖任何字符编码集,采用比特填充法实现数据的透明传输,且可以传输任意长度的二进制比特串,其广泛用于通信领域,具有强大的差错检测、流量控制、高效和同步传输的功能特点。
HDLC协议是高级数据链路层控制协议,是面向比特的同步通信协议,通过比特0的插入和删除,实现数据的透明传输,结合循环冗余校验CRC(Cyclic Redundancy Check)算法,实现数据的检错,提高数据传输的可靠性。
HDLC协议支持点对点、点对多点的链路结构,可用于中高速同步半双工和全双工的数据通信。在点对点链路中,发送信息和命令的站称为主站,接收信息和命令而发回确认信息或响应的站称为从站。兼有主、从功能可发送命令与响应的站称为复合站。在点对多点链路中,一般有一个控制站,其他为受控站。
在HDLC协议中,基本帧由6个字段组成,分别是起始/结束标志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验字段(FCS)。
ISO/IEC 3309标准规定的HDLC的基本帧结构如下:
起始标志(F) | 地址字段(A) | 控制字段(C) | 信息字段(I) | 帧校验字段(FCS) | 结束标志(F) |
01111110 | 8bits | 8bits | 8bits | 16或32bits | 01111110 |
·标志字段(F):HDLC指定采用01111110为标志字段(F),要求所有的帧必须以标志字段开始和结束。
为了将标志字段与基本帧中的地址段、控制段、信息段和帧校验段区分,协议规定:发送端在发送一帧信息(标志字段除外)时,只要发送了连续5个“1”,就自动插入一个“0”;接收端在接收一帧信息(标志字段)时,如果连续接收到5个“1”,就自动将其后的一个“0”删除,以便恢复信息的原始态;
·地址字段(A):表示数据链路上的地址;地址字段的长度一般为8bit,最多可以表示256个站地址;一般全1表示全站地址,通知所有接收站接收有关命令;全0为无站地址,用于测试;
·控制字段(C):表示帧类型等,用于构成各种命令和响应,以便对链路进行监督和控制;
·信息字段(I):包含了用户的数据信息和各种控制信息等;
·帧校验字段(FCS):用于对帧进行循环冗余校验,校验范围从地址字段的第1比特到信息字段的最后一比特,并且规定为了透明传输而插入的“0”不在校验范围内。
在HDLC的基本帧中,采用循环冗余校验CRC来实现数据传输的差错控制。CRC是数据传输中基本的差错控制方法,广泛应用于测控及通信领域。CRC校验的原理是利用线性编码理论,在发送端根据发送的n位二进制序列码,以一定的算法产生一个校验用的监督码(即CRC码)r位,并附在n位序列码之后,构成一个新的(n+r)序列码,发送出去。在接收端采用信息码和校验码的算法规则,进行校验判断传输是否出错。
HDLC协议采用CCITT(International Telephone and Telegraph ConsultativeCommittee)的V4.1标准,其码生成多项式为:g(x)=x16+x12+x5+1。HDLC规定除了标志字段和自动插入的‘0’外,所有比特均参与CRC校验计算。
HDLC协议的透明传输、传输效率高、结构灵活、可靠性等特点使得它在航天测控及数据通信中有着广泛的应用。
现有技术中的HDLC协议IP核存在结构复杂、操作困难、可扩展性差的缺陷。
发明内容
本发明的目的在于克服现有技术中的HDLC协议IP核所具有的结构复杂、操作困难、可扩展性差的缺陷,从而提供一种结构简单,灵活性强的HDLC协议IP核。
为了实现上述目的,本发明提供了一种HDLC协议IP核,通过CPU接口与上位机通信;所述HDLC协议IP核,用于将上位机写入的待发送数据进行缓存,通过配置各功能寄存器,启动同步发送,将符合HDLC协议的数据同步输出;同时通过同步接收通道接收HDLC协议数据,译码判读后将符合约定的HDLC有效数据进行缓存,并通过中断或状态位通知上位机读取。
作为上述系统的一种改进,所述HDLC协议IP核包括CPU接口1、同步发送模块3、同步接收模块2、接收RAM模块4、发送RAM模块5、CRC编解码模块6和寄存器模块7;
所述CPU接口1,用于与上位机交互,将上位机的发送数据写入发送RAM模块5和读取接收RAM模块4的数据至上位机,该接口还用于读写寄存器模块7的各个功能寄存器;
所述发送RAM模块5,用于存储上位机的待发送数据,产生标识,通知同步发送模块3启动同步发送状态机;
所述同步发送模块3,用于读取发送RAM模块5和CRC编解码模块6编码的数据,进行并串转换、复接处理后经同步串口发送输出;
所述同步接收模块2,用于同步接收HDLC协议串行比特流数据,并分别发送至接收RAM模块4和CRC编解码模块6进行解码,产生状态标识;
所述CRC编解码模块6,用于完成待发送数据的CRC编码以及接收数据的CRC解码校验操作;
所述接收RAM模块4,用于存储同步接收模块2发送的数据以及对应CRC校验码,同时产生相应的状态标识,供上位机读取,用于判断读取或舍弃接收的数据;
所述寄存器模块7,用于接收CPU接口1写入的指令,完成相应的功能设置,以及读取相应的状态信息。
作为上述系统的一种改进,所述发送RAM模块5为64*8的RAM。
作为上述系统的一种改进,所述同步发送模块3包括发送控制单元、同步时钟产生单元、并串转换单元、插”0”单元、同步头产生单元和串口输出选择单元,其中,
所述发送控制单元,用于检测相应的功能寄存器的有效性,进而产生控制信号,完成HDLC帧的同步输出;当检测到发送使能寄存器有效,以及发送完成寄存器置位后,启动同步串行数据的发送控制,依据HDLC基本帧的组成格式,控制同步头产生单元生成同步头标志字符,产生控制信号读取发送RAM模块5的并行数据发送至并串转换单元进行处理;
所述同步时钟产生单元,用于产生同步发送的串行时钟信号sclk并输出,通过设置发送时钟寄存器,选择同步发送时钟的频率;
所述并串转换单元,用于将从发送RAM模块5读取的数据进行并串转换,输出串行数据至所述插“0”单元;
所述插“0”单元,用于对串行数据插“0”,当判断数据有连续5个“1”时,在其后插入一个“0”,输出至串行数据选择单元;
所述同步头产生单元,用于产生HDLC的首尾标志头“01111110”,当发送同步数据时,输出至串行数据选择单元;
所述串口输出选择单元,用于选择串行数据的来源:标志头、数据、插“0”和校验码,通过状态机将其选择拼接成HDLC的串行数据sda;将串行数据sda同步到sclk的上升沿上同步输出。
作为上述系统的一种改进,所述同步接收模块2包括同步头检测单元、剔“0”单元、串并转换单元和接收控制单元;其中,
所述同步头检测单元,用于完成串行数据的同步头的检测,产生检测标识,启动接收状态机运行;
所述剔“0”单元,用于对接收的同步字后的串行5个“1”后插入的“0”的处理,将5个连续“1”后的“0”剔除,串行转换后写入接收RAM模块4;
所述串并转换单元,用于将同步头检测有效的串行数据进行串并转换,依据子地址的符合性,将数据存储至接收RAM模块4中;同时将接收的数据送CRC编解码模块6进行CRC校验;
所述接收控制单元,用于负责整个HDLC串行数据的接收流程控制,判断子地址是否符合,产生接收控制标识以及更新各状态寄存器的数值。
作为上述系统的一种改进,所述接收RAM模块4为64*8的RAM。
作为上述系统的一种改进,所述CRC编解码模块6包括CRC产生单元和控制单元;其中,
所述CRC产生单元,用于依据CCITT-16的生成多项式g(x)=x16+x12+x5+1,使用线性反馈移位寄存器LFSR实现CRC码的生成,初始值设定为0xFFFF;当同步数据发送时,LFSR生成的CRC码按位取反后跟随数据串行输出;当同步数据接收时,串行数据和跟随的16位CRC校验码依次串行输入LFSR后,当最后1位输入LFSR后,留在LFSR的值用于判定数据传输是否出错;依据串行数据字节LSB和MSB的输入先后,对应两种判据:字节的LSB先输入时,对应右移方式,正确判据为0xF0B8,其它值表明出错;当采用MSB先输入时,对应左移方式,正确判据为0x1D0F,其他值表明出错;
所述控制单元,用于负责并行数据的控制,产生标识,配合同步发送模块3的发送控制单元和同步接收模块2的接收控制单元完成CRC码的编码输出和解码存储。
作为上述系统的一种改进,所述寄存器模块7包括中断清除寄存器、使能发送寄存器、发送时钟寄存器、时钟沿相位寄存器、帧有效寄存器、中断状态寄存器、CRC错误状态寄存器、发送完成寄存器、接收字节计数寄存器、配置寄存器、子地址寄存器和请求标志位寄存器;其中,
所述中断清除寄存器,用于CPU清除同步数据接收完成后产生的中断标识,即清除中断状态寄存器的内容;
所述使能发送寄存器,用于启动同步发送模块3的数据发送,CPU通过写入该寄存器对应的使能数据,触发同步发送模块3的数据发送状态机,将发送RAM模块5的数据按照HDLC协议格式串行输出;
所述发送时钟寄存器,用于设置同步发送的时钟频率,支持的频率包括1MHz、2MHz、4MHz、8MHz;
所述时钟沿相位寄存器,用于设置HDLC传输的同步时钟和数据的相位关系,即设置同步发送数据的变化对齐同步发送时钟的上升沿或下降沿,相应接收同步数据则对齐接收时钟的下降沿和上升沿;
所述帧有效寄存器,用于接收帧有效的状态标识;
所述中断状态寄存器,用于在同步数据接收完成后,内部置位中断寄存器,供CPU查询;
所述CRC错误状态寄存器,用于标识CRC错误状态,当发生CRC校验错误时,该寄存器置位;
所述发送完成寄存器是状态寄存器,用于当完成一次HDLC帧发送,置位该寄存器,当启动一次新的HDLC帧发送时,自动复位该寄存器直至发送完成后置位;
所述接收字节计数寄存器,用于记录同步接收一帧HDLC有效数据的个数,该寄存器的值读取后自动清零,用于记录后一帧同步HDLC帧的数据;
所述配置寄存器,用于自主设置HDLC的控制字段C;
所述子地址寄存器,用于在一主多从通信方式下设置从机地址字段;
所述请求标志位寄存器,用于从机向主机提交通信请求时,置位该寄存器,主机通过轮询查询该寄存器,依据约定的协议完成主从的通信。
一种一主多从的HDLC串行同步通信系统,包括一个主站和多个从站,主站和从站的物理层采用RS485进行串行通信,通信协议采用HDLC协议,其特征在于,在主站和从站中设置上述的HDLC协议IP核。
本发明的优点在于:
1、本发明的IP核可移植性强,可移植到FPGA、ASIC或SOC芯片中;
2、灵活性强,在实际使用时通过例化HDLC的IP核,不仅使用方便、组网灵活,而且可以有效降低卫星综合电子系统的质量体积功耗;
3、基于本发明设计的HDLC总线接口可以将相关的功能和组合逻辑集成到一个芯片中,具有集成度高、低功耗、可靠性高的优点。
附图说明
图1是本发明的HDLC协议IP核的结构示意图;
图2是本发明的HDLC协议IP核中的寄存器模块的各个寄存器的功能说明;
图3是本发明的HDLC协议IP核中存储RAM的结构示意图;
图4是本发明的HDLC协议IP核中CPU接口写时序示意图;
图5是本发明的HDLC协议IP核中CPU接口读时序示意图;
图6是本发明的HDLC协议IP核中的同步发送模块的功能示意图;
图7是本发明的HDLC协议IP核中的同步接收模块的功能示意图;
图8是本发明的HDLC协议IP核的CRC码的LFSR左移实现示意图;
图9是本发明的HDLC协议IP核的CRC码的LFSR右移实现示意图;
图10是本发明的HDLC协议IP核的验证示意图;
图11是本发明的HDLC协议IP核应用实例示意图。
具体实施方式
现结合附图对本发明作进一步的描述。
在图1中示出了本发明的HDLC协议IP核的结构示意图。如图所示,本发明的IP核包括:CPU接口1、同步接收模块2、同步发送模块3、接收RAM模块4、发送RAM模块5、CRC编解码模块6、寄存器模块7;其中,所述的CPU接口1分别连接到接收RAM模块4、发送RAM模块5、寄存器模块7,所述的同步接收模块2分别连接到接收RAM模块4、CRC编解码模块6、寄存器模块7,所述同步发送模块3分别连接到发送RAM模块5、CRC编解码模块6、寄存器模块7,所述接收RAM模块4分别连接到CPU接口1、同步接收模块2和CRC编解码模块6,所述发送RAM模块5分别连接到CPU接口1、同步发送模块3和CRC编解码模块6,CRC编解码模块分别连接到同步接收模块2、同步发送模块3、接收RAM模块4、发送RAM模块5。
下面对本发明中的各个功能模块做进一步的说明。
CPU接口1用于将本发明的HDLC总线IP核连接到CPU总线上,使得本发明的HDLC总线IP核成为CPU总线的IO设备。外部处理器通过CPU接口1对HDLC总线IP的寄存器模块7、接收RAM模块4和发送储存模块5进行读写操作。CPU接口通过IP核内的状态寄存器来与处理器交互握手,保证通信的的可靠。
同步接收模块2用于处理本发明的IP核的HDLC串行输入数据。为了实现HDLC协议字符串的接收,该模块由同步头检测单元、剔“0”单元、串并转换单元组成。当同步头检测单元识别出同步字段“01111110”时,产生标识,启动内部状态机,对输入的串行数据经过剔“0”单元处理后,交由后续的串并转换单元,完成转换并送CRC编解码模块进行CRC码的校验,串并转换的地址字节与寄存器模块7的子地址寄存器进行比较,相同则将后续数据送接收RAM模块4存储,接收字节计数寄存器对数据计数,当数据接收完成后,置位帧有效寄存器,标识CRC校验结果;若解析的地址字节与设定的子地址不同,则不接收存储数据,给出错误状态标识。同步接收模块内部由计数器来实现串行数据的计数,剔“0”操作,串并转换等。本发明中,输入同步接收模块的串行sck和sda首先经32Mhz的本地时钟的两级时钟同步,使得后续处理均在同一个时钟域,然后交由同步头检测单元检测同步标志,完成串并转换后,存储至接收RAM模块4,同时由CRC编解码模块6进行CRC的校验,将校验码也存储在接收RAM模块4中。
CRC编解码模块6用于处理HDLC串行数据的CRC码的编码生成和解码判读。本发明中的CRC采用CCITT16,其生成多项式:g(x)=x16+x12+x5+1,初始值为0xFFFF。采用线性反馈移位寄存器LFSR来实现,支持串行数据的左移MSB输入和右移LSB输入。本发明采用状态机完成字节的载入、移位及CRC码的生成等逻辑。在ST0态通过判断load信号将发送的字节载入寄存器中,状态机跳转至ST1态,在ST1态在移位时钟clk的作用下8bit数据依次移入LFSR,产生有效CRC值,当一个字节的8bit移入后,状态跳转至ST0态,再次等待load信号有效时将新的字节载入,重复上述过程直至所有数据完成CRC校验,进而产生最终的CRC校验码。本发明支持LFSR的左移和右移CRC码的设置,当采用左移即一个字节的MSB首先输入LFSR时(见图8),解码判据为0x1D0F;当采用右移即一个字节的LSB首先输入LFSR时(见图9),解码判据为0xF0B8。本发明的CRC生成模块可实现CRC码的同步无延时生成和解码,当要编解码的最后一比特输入LFSR后,同时也产生对应的CRC码,便于高速串行数据通信。
同步发送模块3用于实现HDLC串行数据的发送,该模块主要查询发送使能信号有效后,启动数据的、并串转换、插“0”、同步发送等,包括发送控制单元、同步时钟产生单元、并串转换单元、插”0”单元、同步头产生单元和串口输出选择单元,上位机通过CPU接口将待发送数据写入发送RAM模块5,通过设置寄存器模块7的发送使能寄存器,启动同步发送模块3内的发送状态机,将同步字、数据和校验码串行输出。其中同步字由同步头生成单元产生HDLC的首尾同步标识字符串“01111110”,数据则由状态机读取发送RAM模块5的数据,经并串转换后,根据HDLC协议,由插“0”单元判断连续5个“1”后,插入“0”,经复接输出单元拼接后串行输出。待发送的数据同时要经过CRC编解码模块,产生对应的16位CRC码,附在串行数据后输出。时钟产生单元用于产生输出串行数据对应的时钟,本发明支持1Mhz、2Mhz、4Mhz和8Mhz的同步发送时钟,数据与时钟采用上升沿对齐还是下降沿对齐由时钟沿相位寄存器设置确定。依据HDLC协议,通过同步发送模块的状态机,产生符合HDLC协议的串行头部同步字、有效数据字、CRC码和尾同步字。其中,
所述发送控制单元,用于检测相应的功能寄存器的有效性,进而产生控制信号,完成HDLC帧的同步输出。当检测到发送使能寄存器有效,以及发送完成寄存器置位后,启动同步串行数据的发送控制,依据HDLC基本帧的组成格式,控制同步头产生单元生成同步头标志字符,产生控制信号读取发送RAM模块5的并行数据至并串转换单元进行处理;
所述同步时钟产生单元,用于产生同步发送的串行时钟信号sclk并输出,通过设置发送时钟寄存器,选择同步发送时钟的频率,频率包括:1Mhz、2Mhz、4Mhz和8Mhz;
所述并串转换单元,用于将从发送RAM模块5读取的数据进行并串转换,输出串行数据至所述插“0”单元;
所述插“0”单元,用于对串行数据插“0”,当判断数据中有连续5个“1”时,在其后插入一个“0”后,输出至串行数据选择单元;
插“0”单元除了对HDLC的数据区做处理外,对产生的CRC码也做了插“0”操作。
所述同步头产生单元,用于产生HDLC的首尾标志头字符串“01111110”,当发送同步数据时,输出至串行数据选择单元;
所述串口输出选择单元,用于选择串行数据的来源:标志头、数据、插“0”和校验码,通过状态机依次选择拼接成HDLC的串行数据sda;将串行数据sda同步到sclk的上升沿或下降沿同步输出。
接收RAM模块4用于存储接收的HDLC的除头尾同步字外的全部数据。该模块主要存储通过同步串口输入的经过解析、串并转换完成的HDLC协议数据,包括地址字节、控制字节和数据字节和CRC校验字节。当同步接收模块2判断子地址一致,将串并转换的全部数据存储至接收RAM模块4,接收完成后,置位中断状态寄存器,通知上位机读取接收RAM模块中的有效数据。
发送RAM模块5用于存储待发送的HDLC有效数据。该RAM模块由64*8的寄存器组成,主要存储上位机通过CPU接口1写入的HDLC有效数据,包括地址字节、控制字节和数据字节。当待发送的数据写入发送RAM模块5后,通过置位发送使能寄存器,启动同步发送模块3的发送状态机,将发送RAM模块5的数据依次经并串转换、插“0”处理、CRC校验码生成等,拼接帧的头尾同步字后,串行输出。当发送RAM模块5的数据发送后,置位发送完成寄存器。
寄存器模块7主要用于设置HDLC的功能寄存器,显示通信的各种状态信息。通过设置功能寄存器,启动HDLC的同步发送。图2给出了该模块的不同寄存器所具有的功能,每个寄存器的宽度为8位。寄存器模块的内容由CPU实现读写,状态信息由各个模块自动更新,例如接收数据的CRC校验错误,CRC错误状态寄存器会显示为0x“55”,供CPU读取查询。再比如当CPU置位“发送使能寄存器”为0x”AA”后,将会启动同步发送模块的状态机,使能HDLC数据的发送。
所述寄存器模块7包括中断清除寄存器、使能发送寄存器、发送时钟寄存器、时钟沿相位寄存器、帧有效寄存器、中断状态寄存器、CRC错误状态寄存器、发送完成寄存器、接收字节计数寄存器、配置寄存器、子地址寄存器和请求标志位寄存器;其中,
所述中断清除寄存器,用于CPU清除同步数据接收完成产生的中断标识,即清除中断状态寄存器的内容;
使能发送寄存器,用于启动同步发送模块3的数据发送,CPU通过写入该寄存器对应的使能数据,触发同步发送模块3的数据发送状态机,将发送RAM模块5的数据按照HDLC协议格式串行输出;
发送时钟寄存器,用于设置同步发送的时钟频率,支持的频率包括1MHz、2MHz、4MHz、8MHz;
时钟沿相位寄存器,用于设置HDLC传输的同步时钟和数据的相位关系,即设置同步发送数据的变化对齐同步发送时钟的上升沿或下降沿,相应接收同步数据则对齐接收时钟的下降沿和上升沿;
帧有效寄存器,用于接收帧有效的状态标识;
中断状态寄存器,用于在同步数据接收完成后,内部置位中断寄存器,供CPU查询;
CRC错误状态寄存器,用于标识CRC错误状态,当发生CRC校验错误时,该寄存器置位;
发送完成寄存器是状态寄存器,用于当完成一次HDLC帧发送,置位该寄存器,当启动一次新的HDLC帧发送时,自动复位该寄存器直至发送完成后置位;
接收字节计数寄存器,用于记录同步接收一帧HDLC有效数据的个数,该寄存器的值读取后自动清零,用于记录后一帧同步HDLC帧的数据;
配置寄存器,用于自主设置HDLC的控制字段C;
子地址寄存器,用于在一主多从通信方式下的从机地址字段的设置;
请求标志位寄存器,用于从机向主机提交通信请求时,置位该寄存器,主机通过轮询查询该寄存器,依据约定的协议完成主从的通信。
本发明的HDLC协议IP核可以有多种应用。在一个应用例中,如图10所示,将本发明的HDLC协议IP核直接移植到ASIC或SOC芯片设计中,物理层采用RS422进行点对点互连,就可用于验证HDLC协议IP核功能的正确性。在另一个应用例中,将IP核移植到多个设备的FPGA或ASIC中,如图11所示,主从站的物理层采用RS485进行串行通信,通信协议采用HDLC协议,即可实现一主多从的HDLC串行同步通信系统。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (8)
1.一种HDLC协议IP核,通过CPU接口与上位机通信;其特征在于,所述HDLC协议IP核,用于将上位机写入的待发送数据进行缓存,通过配置各功能寄存器,启动同步发送,将符合HDLC协议的数据同步输出;同时通过同步接收通道接收HDLC协议数据,译码判读后将符合约定的HDLC有效数据进行缓存,并通过中断或状态位通知上位机读取;
所述HDLC协议IP核包括CPU接口(1)、同步发送模块(3)、同步接收模块(2)、接收RAM模块(4)、发送RAM模块(5)、CRC编解码模块(6)和寄存器模块(7);
所述CPU接口(1),用于与上位机交互,将上位机的发送数据写入发送RAM模块(5)和读取接收RAM模块(4)的数据至上位机,所述CPU接口(1)还用于读写寄存器模块(7)的各个功能寄存器;
所述发送RAM模块(5),用于存储上位机的待发送数据,产生标识,通知同步发送模块(3)启动同步发送状态机;
所述同步发送模块(3),用于读取发送RAM模块(5)和CRC编解码模块(6)编码的数据,进行并串转换、复接处理后经同步串口发送输出;
所述同步接收模块(2),用于同步接收HDLC协议串行比特流数据,并分别发送至接收RAM模块(4)和CRC编解码模块(6)进行解码,产生状态标识;
所述CRC编解码模块(6),用于完成待发送数据的CRC编码以及接收数据的CRC解码校验操作;
所述接收RAM模块(4),用于存储同步接收模块(2)发送的数据以及对应CRC校验码,同时产生相应的状态标识,供上位机读取,用于判断读取或舍弃接收的数据;
所述寄存器模块(7),用于接收CPU接口(1)写入的指令,完成相应的功能设置,以及读取相应的状态信息。
2.根据权利要求1所述的HDLC协议IP核,其特征在于,所述发送RAM模块(5)为64*8的RAM。
3.根据权利要求1所述的HDLC协议IP核,其特征在于,所述同步发送模块(3)包括发送控制单元、同步时钟产生单元、并串转换单元、插”0”单元、同步头产生单元和串口输出选择单元,其中,
所述发送控制单元,用于检测相应的功能寄存器的有效性,进而产生控制信号,完成HDLC帧的同步输出;当检测到发送使能寄存器有效,以及发送完成寄存器置位后,启动同步串行数据的发送控制,依据HDLC基本帧的组成格式,控制同步头产生单元生成同步头标志字符,产生控制信号读取发送RAM模块(5)的并行数据发送至并串转换单元进行处理;
所述同步时钟产生单元,用于产生同步发送的串行时钟信号sclk并输出,通过设置发送时钟寄存器,选择同步发送时钟的频率;
所述并串转换单元,用于将从发送RAM模块(5)读取的数据进行并串转换,输出串行数据至所述插“0”单元;
所述插“0”单元,用于对串行数据插“0”,当判断数据有连续5个“1”时,在其后插入一个“0”,输出至串行数据选择单元;
所述同步头产生单元,用于产生HDLC的首尾标志头“01111110”,当发送同步数据时,输出至串行数据选择单元;
所述串口输出选择单元,用于选择串行数据的来源:标志头、数据、插“0”和校验码,通过状态机将其选择拼接成HDLC的串行数据sda;将串行数据sda同步到sclk的上升沿上同步输出。
4.根据权利要求1所述的HDLC协议IP核,其特征在于,所述同步接收模块(2)包括同步头检测单元、剔“0”单元、串并转换单元和接收控制单元;其中,
所述同步头检测单元,用于完成串行数据的同步头的检测,产生检测标识,启动接收状态机运行;
所述剔“0”单元,用于对接收的同步字后的串行5个“1”后插入的“0”的处理,将5个连续“1”后的“0”剔除,串行转换后写入接收RAM模块(4);
所述串并转换单元,用于将同步头检测有效的串行数据进行串并转换,依据子地址的符合性,将数据存储至接收RAM模块(4)中;同时将接收的数据送CRC编解码模块(6)进行CRC校验;
所述接收控制单元,用于负责整个HDLC串行数据的接收流程控制,判断子地址是否符合,产生接收控制标识以及更新各状态寄存器的数值。
5.根据权利要求1所述的HDLC协议IP核,其特征在于,所述接收RAM模块(4)为64*8的RAM。
6.根据权利要求1所述的HDLC协议IP核,其特征在于,所述CRC编解码模块(6)包括CRC产生单元和控制单元;其中,
所述CRC产生单元,用于依据CCITT-16的生成多项式g(x)=x16+x12+x5+1,使用线性反馈移位寄存器LFSR实现CRC码的生成,初始值设定为0xFFFF;当同步数据发送时,LFSR生成的CRC码按位取反后跟随数据串行输出;当同步数据接收时,串行数据和跟随的16位CRC校验码依次串行输入LFSR后,当最后1位输入LFSR后,留在LFSR的值用于判定数据传输是否出错;依据串行数据字节LSB和MSB的输入先后,对应两种判据:字节的LSB先输入时,对应右移方式,正确判据为0xF0B8,其它值表明出错;当采用MSB先输入时,对应左移方式,正确判据为0x1D0F,其他值表明出错;
所述控制单元,用于负责并行数据的控制,产生标识,配合同步发送模块(3)的发送控制单元和同步接收模块(2)的接收控制单元完成CRC码的编码输出和解码存储。
7.根据权利要求1所述的HDLC协议IP核,其特征在于,所述寄存器模块(7)包括中断清除寄存器、使能发送寄存器、发送时钟寄存器、时钟沿相位寄存器、帧有效寄存器、中断状态寄存器、CRC错误状态寄存器、发送完成寄存器、接收字节计数寄存器、配置寄存器、子地址寄存器和请求标志位寄存器;其中,
所述中断清除寄存器,用于CPU清除同步数据接收完成后产生的中断标识,即清除中断状态寄存器的内容;
所述使能发送寄存器,用于启动同步发送模块(3)的数据发送,CPU通过写入该寄存器对应的使能数据,触发同步发送模块(3)的数据发送状态机,将发送RAM模块(5)的数据按照HDLC协议格式串行输出;
所述发送时钟寄存器,用于设置同步发送的时钟频率,支持的频率包括1MHz、2MHz、4MHz、8MHz;
所述时钟沿相位寄存器,用于设置HDLC传输的同步时钟和数据的相位关系,即设置同步发送数据的变化对齐同步发送时钟的上升沿或下降沿,相应接收同步数据则对齐接收时钟的下降沿和上升沿;
所述帧有效寄存器,用于接收帧有效的状态标识;
所述中断状态寄存器,用于在同步数据接收完成后,内部置位中断寄存器,供CPU查询;
所述CRC错误状态寄存器,用于标识CRC错误状态,当发生CRC校验错误时,该寄存器置位;
所述发送完成寄存器是状态寄存器,用于当完成一次HDLC帧发送,置位该寄存器,当启动一次新的HDLC帧发送时,自动复位该寄存器直至发送完成后置位;
所述接收字节计数寄存器,用于记录同步接收一帧HDLC有效数据的个数,该寄存器的值读取后自动清零,用于记录后一帧同步HDLC帧的数据;
所述配置寄存器,用于自主设置HDLC的控制字段C;
所述子地址寄存器,用于在一主多从通信方式下设置从机地址字段;
所述请求标志位寄存器,用于从机向主机提交通信请求时,置位该寄存器,主机通过轮询查询该寄存器,依据约定的协议完成主从的通信。
8.一种一主多从的HDLC串行同步通信系统,包括一个主站和多个从站,主站和从站的物理层采用RS485进行串行通信,通信协议采用HDLC协议,其特征在于,在主站和从站中设置权利要求1-7之一所述的HDLC协议IP核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910192593.9A CN111698271B (zh) | 2019-03-14 | 2019-03-14 | 一种hdlc协议ip核 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910192593.9A CN111698271B (zh) | 2019-03-14 | 2019-03-14 | 一种hdlc协议ip核 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111698271A CN111698271A (zh) | 2020-09-22 |
CN111698271B true CN111698271B (zh) | 2023-05-02 |
Family
ID=72474983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910192593.9A Active CN111698271B (zh) | 2019-03-14 | 2019-03-14 | 一种hdlc协议ip核 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111698271B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112615859A (zh) * | 2020-12-17 | 2021-04-06 | 成都民航空管科技发展有限公司 | Hdlc数据链路自适应接入方法、协议转换器及系统 |
CN112947243A (zh) * | 2021-03-18 | 2021-06-11 | 乐聚(深圳)机器人技术有限公司 | 仿人机器人的调试方法、无线调试装置及仿人机器人 |
CN114143296B (zh) * | 2021-11-22 | 2024-01-30 | 北京计算机技术及应用研究所 | 一种hdlc通用ip软核 |
CN114338837A (zh) * | 2021-12-17 | 2022-04-12 | 北京航天动力研究所 | 一种基于zynq的hdlc通讯转换控制器 |
CN115914415A (zh) * | 2022-11-11 | 2023-04-04 | 贵州电网有限责任公司 | 一种rs485通信故障检测方法及系统 |
CN118158300A (zh) * | 2024-05-10 | 2024-06-07 | 成都天地一格科技有限公司 | 一种基于hdlc协议的通信方法及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007099B1 (en) * | 1999-05-03 | 2006-02-28 | Lucent Technologies Inc. | High speed multi-port serial-to-PCI bus interface |
CN101808027B (zh) * | 2010-03-31 | 2011-11-23 | 哈尔滨工业大学 | 适用于多种端口的数据接收存储转发装置 |
-
2019
- 2019-03-14 CN CN201910192593.9A patent/CN111698271B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111698271A (zh) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111698271B (zh) | 一种hdlc协议ip核 | |
EP1825382B1 (en) | Low protocol, high speed serial transfer for intra-board or inter-board data communication | |
JPS5810236A (ja) | インタ−フエイス回路 | |
KR20140084297A (ko) | 다중―프로토콜 sereds phy 장치 | |
JP2005202956A (ja) | 破損データを処理する方法 | |
JP2945658B2 (ja) | 集積回路のシリアルリンク上のエラーを検出する方法、及び該方法を実行する装置 | |
EP1988470A2 (en) | Network device and transmission method thereof | |
CN101039323B (zh) | 多速率多协议比特流处理器 | |
US20230239256A1 (en) | Wide Elastic Buffer | |
US7181562B1 (en) | Wired endian method and apparatus for performing the same | |
US3533067A (en) | Error correcting digital coding and decoding apparatus | |
KR20160147373A (ko) | 광 신호를 이용한 sata 호스트 버스 어댑터 및 sata 저장소 연결 방법 | |
CN111930683B (zh) | 一种适用于hdlc协议的同步串行收发器及其方法 | |
CN115706661A (zh) | 同步高速信令互连 | |
CN106685584B (zh) | 基于fpga的hdlc收发控制器 | |
CN112416839A (zh) | 实现uart间通讯的系统 | |
KR100546085B1 (ko) | 직접 메모리 액세스를 이용한 직렬 포트 데이터 및 상태의 압축 및 복원 | |
US6105081A (en) | UART character matching used for address matching on a register-by-register basis | |
CN117938574B (zh) | 一种用于星载设备间通信的SpaceWire总线节点控制器IP核 | |
US20240121326A1 (en) | Operation method for an electronic device and an electronic device capable of performing an advanced line coding | |
US20040034710A1 (en) | Data transfer operations | |
CN104486039B (zh) | 一种多路e1解帧器系统 | |
CN117520241A (zh) | 一种spi接口系统、spi数据写入方法及spi数据读取方法 | |
WO2024072393A1 (en) | Bandwidth maximization | |
CN116089337A (zh) | 一种pci-e协议信号生成装置及方法 |
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 |