CN106685584B - 基于fpga的hdlc收发控制器 - Google Patents

基于fpga的hdlc收发控制器 Download PDF

Info

Publication number
CN106685584B
CN106685584B CN201510757573.3A CN201510757573A CN106685584B CN 106685584 B CN106685584 B CN 106685584B CN 201510757573 A CN201510757573 A CN 201510757573A CN 106685584 B CN106685584 B CN 106685584B
Authority
CN
China
Prior art keywords
hdlc
processor
data
receiving
module
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
Application number
CN201510757573.3A
Other languages
English (en)
Other versions
CN106685584A (zh
Inventor
刘晨曦
杜振环
陈玉飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CRRC Dalian R&D Co Ltd
Original Assignee
CRRC Dalian R&D Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CRRC Dalian R&D Co Ltd filed Critical CRRC Dalian R&D Co Ltd
Priority to CN201510757573.3A priority Critical patent/CN106685584B/zh
Publication of CN106685584A publication Critical patent/CN106685584A/zh
Application granted granted Critical
Publication of CN106685584B publication Critical patent/CN106685584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • H04L1/0063Single parity check
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本发明提供一种基于FPGA的HDLC收发控制器。该HDLC收发控制器包括:处理器接口模块、HDLC发送模块和HDLC接收模块。处理器接口模块用于为处理器提供接口,与处理器进行数据交换,控制HDLC发送模块和HDLC接收模块。HDLC发送模块用于接收处理器写入的数据并编码成HDLC帧,向与处理器通信的装置发送编码后的HDLC帧,HDLC接收模块用于接收与处理器通信的装置发送的HDLC帧并进行解码,存储解码后的数据,并向处理器发送中断信号以使处理器读取解码后的数据。本发明提供的基于FPGA的HDLC收发控制器,可兼容不同时序的处理器进行HDLC帧收发控制,不占用处理器的资源,通用性好。

Description

基于FPGA的HDLC收发控制器
技术领域
本发明涉及通信技术领域和轨道交通领域,尤其涉及一种基于FPGA的HDLC收发控制器。
背景技术
高级数据链路控制(High-Level Data Control,以下简称:HDLC)是一种同步数据传输、面向比特的数据链路层协议,具有差错检测功能强大、高效和同步传输的特点,目前HDLC协议已成为是通信领域中应用最广泛的协议之一。HDLC收发控制器完成了HDLC帧的编码和解码功能,负责HDLC协议帧数据的发送和接收。
现有的HDLC收发控制器主要是通过使用HDLC专用芯片和软件编程的方式来实现。HDLC专用芯片有很多资源使用不上,造成了资源浪费,而且在电路设计时不得不考虑其复杂的布局布线,此外,HDLC专用芯片升级速度太快,通用性差。软件编程实现方式是通过处理器的应用程序实现HDLC收发控制,但是使用该方法会占用处理器的资源从而降低处理器的执行速度,其次不易预测信号的时延和同步性,针对不同时序的处理器,需要重新修改程序和调试。
发明内容
本发明提供一种基于FPGA的HDLC收发控制器,可兼容不同时序的处理器进行HDLC帧收发控制,兼备软件编程和HDLC专用芯片的优点,不占用处理器的资源,通用性好。
本发明提供的基于FPGA的HDLC收发控制器,所述HDLC收发控制器在FPGA上实现HDLC的收发控制功能,所述HDLC收发控制器包括:
处理器接口模块、HDLC发送模块和HDLC接收模块;
所述处理器接口模块用于:为处理器提供接口,与所述处理器进行数据交换,控制所述HDLC发送模块和HDLC接收模块,若所述处理器的处理周期小于所述HDLC收发控制器的处理周期,在所述处理器执行完一次读/写操作后所述处理器接口模块即回归空闲状态,若所述处理器的处理周期大于或等于所述HDLC收发控制器的处理周期,在所述处理器执行一次读/写操作时所述处理器接口模块进入写等待状态,直至所述读/写操作结束才回归空闲状态;
所述HDLC发送模块用于:接收所述处理器写入的数据并编码成HDLC帧,向与所述处理器通信的装置发送编码后的HDLC帧;
所述HDLC接收模块用于:接收与所述处理器通信的装置发送的HDLC帧并进行解码,存储解码后的数据,并向所述处理器发送中断信号以使所述处理器读取所述解码后的数据。
进一步地,所述HDLC发送模块包括:
HDLC发送状态寄存器,用于标识所述HDLC发送模块的状态;
第一数据缓存器,用于接收并存储所述处理器写入的数据;
校验码生成单元,用于将所述第一数据缓存器中存储的数据生成循环冗余检查CRC-16校验码;
时钟同步单元,用于对所述校验码进行时钟同步;
数据插0单元,用于对时钟同步后的校验码进行并/串转换和插0处理;
标志位插入单元,用于对进行并/串转换和插0操作后的数据插上帧头帧尾,得到编码后的HDLC帧;
发送单元,用于向与所述处理器通信的装置发送编码后的HDLC帧。
进一步地,所述HDLC接收模块包括:
接收单元,用于接收与所述处理器通信的装置发送的HDLC帧;
帧识别单元,用于对接收到的HDLC帧进行帧识别并去掉帧头帧尾;
去除零码单元,用于对帧识别后的HDLC帧数据进行去除零码处理和串/并转换;
时钟同步单元,用于对去除零码处理和串/并转换后的数据进行时钟同步;
校验单元,用于对时钟同步后的数据进行CRC校验;
第二数据缓存器,用于存储进行CRC校验后的数据,并在满足预设条件时向所述处理器发送中断信号以使所述处理器读取所述解码后的数据;
HDLC接收状态寄存器,用于标识所述HDLC接收模块的状态。
进一步地,所述处理器接口模块包括:地址线、数据线、片选信号、写信号、读信号和中断信号。
本发明提供的基于FPGA的HDLC收发控制器,通过处理器接口模块的特殊处理,可兼容不同时序的处理器进行HDLC帧收发控制,具备软件编程和HDLC专用芯片的优点,由于HDLC收发控制器是通过FPGA实现的,因此不占用处理器的资源,且可以在不同型号的FPGA芯片移植代码,从而能够适应在不同场景的HDLC帧收发控制,通用性好。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于FPGA的HDLC收发控制器实施例一的结构示意图;
图2为本发明基于FPGA的HDLC收发控制器实施例一中处理器接口模块的工作状态示意图;
图3为本发明基于FPGA的HDLC收发控制器实施例二的结构示意图;
图4为本发明硬件系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种基于FPGA的HDLC收发控制器,通过FPGA实现HDLC帧收发控制功能。对不同工作时序的处理器能够很好地适应,不需要修改FPGA代码就可直接使用,作为一独立硬件模块,不存在占用处理器资源的情况,且硬件电路设计基本不用更改,可以在不同型号的FPGA芯片移植代码,能够适应不同场景的HDLC帧收发控制,通用性好,同时具备软件编程和HDLC专用芯片的优点。下面结合附图详细进行说明。
图1为本发明基于FPGA的HDLC收发控制器实施例一的结构示意图,如图1所示,本实施例的HDLC收发控制器可以包括:处理器接口模块10、HDLC发送模块11和HDLC接收模块12,其中,处理器接口模块10用于:为处理器提供接口,与处理器进行数据交换,控制HDLC发送模块11和HDLC接收模块12,图2为本发明基于FPGA的HDLC收发控制器实施例一中处理器接口模块的工作状态示意图,图2中以HDLC收发控制器的处理周期为8个时钟周期为例,如图2所示,若处理器的处理周期小于HDLC收发控制器的处理周期,在处理器执行完一次读/写操作后处理器接口模块10即回归空闲状态;若处理器的处理周期大于或等于HDLC收发控制器的处理周期,在处理器执行一次读/写操作时处理器接口模块10进入写等待状态,直至读/写操作结束才回归空闲状态,这样做保证了处理器读/写HDLC收发控制器的唯一、准确。如此以来,对于不同时序的处理器,本发明的HDLC收发控制器都可以正常工作,因此可兼容不同时序的处理器进行HDLC帧收发控制。
HDLC发送模块11用于:接收处理器写入的数据并编码成HDLC帧,向与处理器通信的装置发送编码后的HDLC帧。
具体地,当处理器需要向HDLC收发控制器发送数据时,通过读HDLC发送模块11以判断HDLC发送模块的状态,判断其是否空闲,在判断HDLC发送模块11空闲时,处理器可发送数据。
HDLC接收模块12用于:接收与处理器通信的装置发送的HDLC帧并进行解码,存储解码后的数据,并向处理器发送中断信号以使处理器读取解码后的数据。
具体地,当HDLC接收模块有供处理器读取的数据时,就会向处理器发出中断信号,然后处理器通过读HDLC接收模块12以判断HDLC接收模块的状态,确定HDLC接收模块有多少数据可以读取,最后读取该数据。
本实施例提供的基于FPGA的HDLC收发控制器,通过处理器接口模块的特殊处理,可兼容不同时序的处理器进行HDLC帧收发控制,具备软件编程和HDLC专用芯片的优点,由于HDLC收发控制器是通过FPGA实现的,因此不占用处理器的资源,且可以在不同型号的FPGA芯片移植代码,从而能够适应在不同场景的HDLC帧收发控制,通用性好。
图3为本发明基于FPGA的HDLC收发控制器实施例二的结构示意图,如图3所示,本实施例在图1所示实施例的基础上,HDLC发送模块11具体可以包括:HDLC发送状态寄存器110,用于标识HDLC发送模块的状态。第一数据缓存器111,用于接收并存储处理器写入的数据。校验码生成单元112,用于将第一数据缓存器中存储的数据生成循环冗余检查CRC-16校验码。时钟同步单元113,用于对校验码进行时钟同步。数据插0单元114,用于对时钟同步后的校验码进行并/串转换和插0处理。标志位插入单元115,用于对进行并/串转换和插0操作后的数据插上帧头帧尾,得到编码后的HDLC帧。发送单元116,用于向与处理器通信的装置发送编码后的HDLC帧。
HDLC接收模块12可以包括:接收单元120,用于接收与处理器通信的装置发送的HDLC帧。帧识别单元121,用于对接收到的HDLC帧进行帧识别。去除零码单元122,用于对帧识别后的HDLC帧进行去除零码处理和串/并转换。时钟同步单元123,用于对去除零码处理和串/并转换后的数据进行时钟同步。校验单元124,用于对时钟同步后的数据进行CRC校验。第二数据缓存器125,用于存储进行CRC校验后的数据,并在满足预设条件时向处理器发送中断信号。HDLC接收状态寄存器126,用于标识HDLC接收模块的状态。
其中,具体地,处理器接口模块10包括:地址线、数据线、片选信号、写信号、读信号和中断信号。
本实施例提供的基于FPGA的HDLC收发控制器,通过处理器接口模块的特殊处理,可兼容不同时序的处理器进行HDLC帧收发控制,具备软件编程和HDLC专用芯片的优点,由于HDLC收发控制器是通过FPGA实现的,因此不占用处理器的资源,且可以在不同型号的FPGA芯片移植代码,从而能够适应在不同场景的HDLC帧收发控制,通用性好。
下面采用一个具体的实施例来详细说明本发明提供的基于FPGA的HDLC收发控制器的工作过程。
本实施例中采用AT91处理器作为系统的CPU,AT91处理器的读写测试程序使用C语言编程,控制数据的发送与接收,使用VHDL语言实现HDLC收发控制器,下载到FPGA芯片,实现HDLC帧收发控制。图4为本发明硬件系统结构示意图,如图4所示。在FPGA内部把HDLC发送模块和HDLC接收模块相连接,AT91处理器通过预留的地址总线、数据总线和I/O接口访问FPGA,应用层测试HDLC收发控制器的各项功能。测试过程如下:
AT91处理器通过读HDLC发送模块11中的HDLC发送状态寄存器以判断HDLC发送模块11的状态,在判断HDLC发送模块11空闲时,向FPGA写数据,FPGA的HDLC收发控制器把AT91处理器写入的数据编码成HDLC帧,HDLC接收模块12接收到该帧后进行解码,并存储解码后的数据,然后向AT91处理器发送中断信号,收到中断信号后AT91处理器对HDLC接收状态寄存器发起读操作判断HDLC接收模块12状态并读取HDLC接收模块12的数据。最后AT91处理器会把接收到的数据与发送的数据进行比较,以确定数据是否错帧丢帧。调试成功后,在FPGA内部把HDLC发送模块和HDLC接收模块断开,就可以正常使用了。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (2)

1.一种基于FPGA的HDLC收发控制器,其特征在于,所述HDLC收发控制器在FPGA上实现HDLC的收发控制功能,所述HDLC收发控制器包括:
处理器接口模块、HDLC发送模块和HDLC接收模块;
所述处理器接口模块用于:为所述处理器提供接口,与所述处理器进行数据交换,控制所述HDLC发送模块和HDLC接收模块,若所述处理器的处理周期小于所述HDLC收发控制器的处理周期,在所述处理器执行完一次读/写操作后所述处理器接口模块即回归空闲状态,若所述处理器的处理周期大于或等于所述HDLC收发控制器的处理周期,在所述处理器执行一次读/写操作时所述处理器接口模块进入写等待状态,直至所述读/写操作结束才回归空闲状态;
所述HDLC发送模块用于:接收所述处理器写入的数据并编码成HDLC帧,向与所述处理器通信的装置发送编码后的HDLC帧;
所述HDLC接收模块用于:接收与所述处理器通信的装置发送的HDLC帧并进行解码,存储解码后的数据,并向所述处理器发送中断信号以使所述处理器读取所述解码后的数据;
所述HDLC发送模块包括:
HDLC发送状态寄存器,用于标识所述HDLC发送模块的状态;
第一数据缓存器,用于接收并存储所述处理器写入的数据;
校验码生成单元,用于将所述第一数据缓存器中存储的数据生成循环冗余检查CRC-16校验码;
时钟同步单元,用于对所述校验码进行时钟同步;
数据插0单元,用于对时钟同步后的校验码进行并/串转换和插0处理;
标志位插入单元,用于对进行并/串转换和插0操作后的数据插上帧头帧尾,得到编码后的HDLC帧;
发送单元,用于向与所述处理器通信的装置发送编码后的HDLC帧;
所述HDLC接收模块包括:
接收单元,用于接收与所述处理器通信的装置发送的HDLC帧;
帧识别单元,用于对接收到的HDLC帧进行帧识别并去掉帧头帧尾;
去除零码单元,用于对帧识别后的HDLC帧数据进行去除零码处理和串/并转换;
时钟同步单元,用于对去除零码处理和串/并转换后的数据进行时钟同步;
校验单元,用于对时钟同步后的数据进行CRC校验;
第二数据缓存器,用于存储进行CRC校验后的数据,并在满足预设条件时向所述处理器发送中断信号以使所述处理器读取所述解码后的数据;
HDLC接收状态寄存器,用于标识所述HDLC接收模块的状态。
2.根据权利要求1所述的HDLC收发控制器,其特征在于,所述处理器接口模块包括:地址线、数据线、片选信号、写信号、读信号和中断信号。
CN201510757573.3A 2015-11-09 2015-11-09 基于fpga的hdlc收发控制器 Active CN106685584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510757573.3A CN106685584B (zh) 2015-11-09 2015-11-09 基于fpga的hdlc收发控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510757573.3A CN106685584B (zh) 2015-11-09 2015-11-09 基于fpga的hdlc收发控制器

Publications (2)

Publication Number Publication Date
CN106685584A CN106685584A (zh) 2017-05-17
CN106685584B true CN106685584B (zh) 2023-11-28

Family

ID=58863386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510757573.3A Active CN106685584B (zh) 2015-11-09 2015-11-09 基于fpga的hdlc收发控制器

Country Status (1)

Country Link
CN (1) CN106685584B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107707526A (zh) * 2017-08-31 2018-02-16 中车大连电力牵引研发中心有限公司 一种数据处理装置及方法
CN118158300A (zh) * 2024-05-10 2024-06-07 成都天地一格科技有限公司 一种基于hdlc协议的通信方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1271129A (zh) * 1999-04-21 2000-10-25 深圳市中兴通讯股份有限公司 Cpu与复杂时序读写对象同步联系的方法和接口电路
JP2002064584A (ja) * 2000-08-22 2002-02-28 Matsushita Electric Ind Co Ltd Hdlc送受信装置、及び、hdlc受信装置、及び、hdlc送信装置
CN103118005A (zh) * 2013-01-04 2013-05-22 中国兵器工业集团第二一四研究所苏州研发中心 Hdlc协议控制器
CN205139625U (zh) * 2015-11-09 2016-04-06 中车大连电力牵引研发中心有限公司 基于fpga的hdlc收发控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1271129A (zh) * 1999-04-21 2000-10-25 深圳市中兴通讯股份有限公司 Cpu与复杂时序读写对象同步联系的方法和接口电路
JP2002064584A (ja) * 2000-08-22 2002-02-28 Matsushita Electric Ind Co Ltd Hdlc送受信装置、及び、hdlc受信装置、及び、hdlc送信装置
CN103118005A (zh) * 2013-01-04 2013-05-22 中国兵器工业集团第二一四研究所苏州研发中心 Hdlc协议控制器
CN205139625U (zh) * 2015-11-09 2016-04-06 中车大连电力牵引研发中心有限公司 基于fpga的hdlc收发控制器

Also Published As

Publication number Publication date
CN106685584A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN102866971B (zh) 传输数据的装置、系统及方法
CN110224789B (zh) 一种基于fpga的多模式hdlc控制器
US20150052405A1 (en) Data bus network interface module and method therefor
CN111698271B (zh) 一种hdlc协议ip核
CN111930676A (zh) 多处理器间的通信方法、装置、系统及存储介质
JP3996928B2 (ja) 破損データを処理する方法
CN106685584B (zh) 基于fpga的hdlc收发控制器
CN104320317A (zh) 一种以太网物理层芯片状态的传送方法和装置
CN117118828B (zh) 一种协议转换器、电子设备及一种配置方法
CN105573947B (zh) 一种基于apb总线的sd/mmc卡控制方法
CN110851390B (zh) 一种基于fpga实现4m 1553b总线协议的方法及系统
CN116414767B (zh) 一种对基于axi协议乱序响应的重排序方法及系统
CN116720462A (zh) 芯片仿真系统的构建装置、方法、设备及芯片仿真系统
CN205139625U (zh) 基于fpga的hdlc收发控制器
CN107632793B (zh) 一种用于ssd后端的数据流管控方法
WO2014027223A1 (en) Data bus network interface module and method therefor
CN115982071A (zh) 一种面向ddr3控制器的片上网络转换接口
CN103095510B (zh) 多功能车辆总线分析设备
CN107870885A (zh) 通信系统、装置及方法
CN114124609A (zh) 一种基于1553b总线的通信装置及通信方法
CN109390026B (zh) 资料储存装置以及读取方法
US8856389B1 (en) Efficient data transfers over serial data streams
CN111885431B (zh) 一种通信控制方法和装置
CN113726755B (zh) 一种slip协议数据的处理方法
CN104102619B (zh) 第一操作系统对第二操作系统的dsp进行操作的方法及系统

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