CN114629966B - 一种基于fpga的hdlc协议实现方法与系统 - Google Patents

一种基于fpga的hdlc协议实现方法与系统 Download PDF

Info

Publication number
CN114629966B
CN114629966B CN202210263760.6A CN202210263760A CN114629966B CN 114629966 B CN114629966 B CN 114629966B CN 202210263760 A CN202210263760 A CN 202210263760A CN 114629966 B CN114629966 B CN 114629966B
Authority
CN
China
Prior art keywords
fpga
receiving
data
hdlc
frame data
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
CN202210263760.6A
Other languages
English (en)
Other versions
CN114629966A (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.)
Hunan Aerospace Institute of Mechanical and Electrical Equipment and Special Materials
Original Assignee
Hunan Aerospace Institute of Mechanical and Electrical Equipment and Special Materials
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 Hunan Aerospace Institute of Mechanical and Electrical Equipment and Special Materials filed Critical Hunan Aerospace Institute of Mechanical and Electrical Equipment and Special Materials
Priority to CN202210263760.6A priority Critical patent/CN114629966B/zh
Publication of CN114629966A publication Critical patent/CN114629966A/zh
Application granted granted Critical
Publication of CN114629966B publication Critical patent/CN114629966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

本发明公开了一种基于FPGA的HDLC协议实现方法与系统,当FPGA检测到启动接收指令时,开始接收帧数据并对接收的帧数据进行串并行转换,输出接收状态标志信息,将串并转换完成后的帧数据写入接收双口RAM,处理器根据接收状态标志信息读取接收双口RAM中的数据;当FPGA检测到启动发送指令时,发送帧头信息,从发送双口RAM中读取帧数据,对发送的帧数据进行CRC校验,同时进行并串行转换,以串行方式发送帧数据和CRC校验值,最后发送帧尾信息,并输出发送状态标志信息给发送状态寄存器;该方法在FPGA上实现HDLC收发控制功能,功能上能够完全替代国产HDLC协议芯片,很大程度地减小了PCB尺寸,能够满足惯性测量系统单板电路小型化设计的需求,节约了硬件成本。

Description

一种基于FPGA的HDLC协议实现方法与系统
技术领域
本发明属于数据通信技术领域,尤其涉及一种基于FPGA的HDLC协议实现方法与系统。
背景技术
HDLC(High-Level Data Link Control,高级数据链路控制)协议,是一种在同步网上传输数据、面向比特的数据链路层协议。该协议不依赖于任何一种字符编码集,数据报文可以透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;所有帧均采用CRC校验,对信息帧进行编号,可防止漏收或重发,传输可靠性较高。
随着惯性测量系统高度集成化以及小型化的发展趋势,对惯性测量系统中各单板电路尺寸提出了更高的要求。国产化的HDLC协议芯片采用陶瓷针栅阵列封装,尺寸较大,不仅在电路PCB顶层占据较大空间,而且还影响PCB底层的布局布线,难以满足单板电路小型化的设计需求。
当前,在惯性测量系统中,涉及HDLC通讯的主控芯片主要为FPGA和DSP。采用DSP实现HDLC通讯协议执行速度慢,程序运行占用处理器资源较多,同时还影响内部的时序设计。
发明内容
本发明的目的在于提供一种基于FPGA的HDLC协议实现方法与系统,以解决国产化HDLC协议芯片封装尺寸较大,不能满足单板电路小型化设计需求的问题,以及采用DSP实现HDLC协议速度慢、占用资源多、影响内部时序设计的问题。
本发明是通过如下的技术方案来解决上述技术问题的:一种基于FPGA的HDLC协议实现方法,在所述FPGA上实现HDLC收发控制功能,所述HDLC收发控制包括接收控制和发送控制;所述接收控制包括以下步骤:
步骤S11:FPGA接收外部输入的HDLC同步时钟信号、HDLC同步数据信号,并在系统时钟下对所述HDLC同步时钟信号和HDLC同步数据信号进行同步处理;
步骤S12:FPGA接收处理器发送的启动接收指令和地址信息;
步骤S13:当FPGA检测到所述启动接收指令时,开始接收帧数据并对接收的帧数据进行CRC校验和串并行转换,将串并转换完成后的帧数据写入接收双口RAM,输出接收状态标志信息;
步骤S14:当完成帧数据的接收时,FPGA向所述处理器反馈所述接收状态标志信息,处理器根据所述接收状态标志信息读取接收双口RAM中的数据;
所述发送控制包括以下步骤:
步骤S21:处理器将要发送的帧数据写入发送双口RAM;
步骤S22:FPGA接收处理器发送的启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息,并根据所述传输速率信息产生HDLC同步发送时钟信号;
步骤S23:当FPGA检测到所述启动发送指令时,发送帧头信息;
步骤S24:当所述帧头信息发送完成后,从发送双口RAM中读取帧数据,对发送的帧数据进行CRC校验,同时进行并串行转换,以串行方式发送帧数据和CRC校验值;
步骤S25:当完成所有帧数据和CRC校验值的发送时,发送帧尾信息,并输出发送状态标志信息给发送状态寄存器;
步骤S26:FPGA向所述处理器反馈所述发送状态标志信息。
本发明中,在FPGA上实现HDLC收发控制功能,功能上能够完全替代国产HDLC协议芯片,由于FPGA多数采用BGA封装,很大程度地减小了PCB尺寸,能够满足惯性测量系统单板电路小型化设计的需求,节约了硬件成本;采用处理器对传输速率和帧头帧尾进行设置,不需要修改FPGA代码,设置简单方便;可以在不同型号的FPGA芯片移植代码,能够适应不同场景的HDLC收发控制,通用性和灵活性高;当用户方HDLC通讯协议发生更改时,可适应性修改FPGA代码满足设计需求,相较于国产HDLC协议芯片,具有更高的灵活度;采用FPGA实现HDLC通讯协议,不占用处理器的资源,执行速度快,对内部时序设计无影响。
进一步地,所述步骤S13的具体实现过程为:
步骤S131:当FPGA检测到所述启动接收指令时,对帧头进行检测;如果检测到帧头,则进入非帧头检测,并转入步骤S132;
步骤S132:在非帧头检测中,如果检测到非帧头数据为地址,则判断FPGA检测到的该地址与所述处理器发送的地址信息是否一致,如果一致,则转入步骤S133,否则转入步骤S131;
步骤S133:接收帧数据,当连续检测到5个“1”时,删除5个“1”后面的“0”,输出删0标志给接收状态寄存器;
步骤S134:对帧数据进行串并行转换;
步骤S135:对每次串并转换完成后的帧数据进行CRC校验,并将串并转换完成后的帧数据写入接收双口RAM;如果CRC校验错误,则输出CRC校验错误标志给接收状态寄存器。
进一步地,所述步骤S14的具体实现过程为:当FPGA检测到帧尾标志时,表明完成帧数据的接收,接收的帧数据和CRC校验值均已写入接收双口RAM,输出数据有效标志给接收状态寄存器;FPGA向所述处理器反馈删0标志、CRC校验错误标志以及数据有效标志。
进一步地,所述步骤S24中,在进行帧数据并串行转换的同时,对读取的帧数据进行CRC校验;在帧数据发送完成后进行CRC校验数据的发送。
进一步地,所述步骤S24中,在完成帧数据的并串行转换之后,当连续检测到5个“1”时,在5个“1”后面进行插“0”操作。
进一步地,所述步骤S11还包括:对所述HDLC同步时钟信号和HDLC同步数据信号进行滤波处理。
本发明还提供一种基于FPGA的HDLC协议实现系统,在所述FPGA上实现HDLC收发控制功能,所述系统包括:
同步处理模块,用于接收外部输入的HDLC同步时钟信号、HDLC同步数据信号,并在系统时钟下对所述HDLC同步时钟信号和HDLC同步数据信号进行同步处理;
接收指令寄存器,用于接收处理器发送的启动接收指令和地址信息;
接收控制模块,用于检测所述接收指令寄存器中的指令,当检测到所述启动接收指令时,开始接收帧数据并对接收的帧数据进行CRC校验和串并行转换,将串并转换完成后的帧数据写入接收双口RAM,输出接收状态标志信息;用于当完成帧数据的接收时,向所述处理器反馈接收状态标志信息;
接收双口RAM,用于存储接收的帧数据;
接收状态寄存器,用于存储接收状态标志信息;
发送双口RAM,用于存储处理器写入的将要发送的帧数据;
发送指令寄存器,用于存储处理器发送的启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息;
时钟产生模块,用于根据所述传输速率信息产生HDLC同步发送时钟信号;
发送控制模块,用于检测所述发送指令寄存器中的指令,当检测到所述启动发送指令时,发送帧头信息;用于当所述帧头信息发送完成后,从发送双口RAM中读取帧数据,对发送的帧数据进行CRC校验,同时进行并串行转换,以串行方式发送帧数据和CRC校验值;当完成所有帧数据和CRC校验值的发送时,发送帧尾信息,并输出发送状态标志信息给发送状态寄存器;用于向所述处理器反馈所述发送状态标志信息;
发送状态寄存器,用于存储发送状态标志信息。
进一步地,所述接收控制模块,具体用于:
当检测到所述启动接收指令时,对帧头进行检测;如果检测到帧头,则进入非帧头检测,如果检测到非帧头数据为地址,则判断该地址与所述处理器发送的地址信息是否一致,如果一致,则接收帧数据,当连续检测到5个“1”时,删除5个“1”后面的“0”,输出删0标志给接收状态寄存器,对帧数据进行串并行转换,将串并转换完成后的帧数据写入接收双口RAM,同时对串并转换完成后的帧数据进行CRC校验;如果CRC校验错误,则输出CRC校验错误标志给接收状态寄存器;
如果不一致,则重新对帧头进行检测。
进一步地,所述系统还包括HDLC时钟滤波模块,用于对所述HDLC同步时钟信号进行滤波处理;
HDLC数据滤波模块,用于对所述HDLC同步数据信号进行滤波处理。
有益效果
与现有技术相比,本发明的优点在于:
本发明所提供的一种基于FPGA的HDLC协议实现方法与系统,在FPGA上实现HDLC收发控制功能,功能上能够完全替代国产HDLC协议芯片,由于FPGA多数采用BGA封装,很大程度地减小了PCB尺寸,能够满足惯性测量系统单板电路小型化设计的需求,节约了硬件成本;采用处理器对传输速率和帧头帧尾进行设置,不需要修改FPGA代码,设置简单方便;可以在不同型号的FPGA芯片移植代码,能够适应不同场景的HDLC收发控制,通用性和灵活性高;当用户方HDLC通讯协议发生更改时,可适应性修改FPGA代码满足设计需求,相较于国产HDLC协议芯片,具有更高的灵活度;采用FPGA实现HDLC通讯协议,不占用处理器的资源,执行速度快,对内部时序设计无影响。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一个实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中基于FPGA的HDLC协议顶层接口模块;
图2是本发明实施例中接收控制流程图;
图3是本发明实施例中发送控制流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本实施例所提供的一种基于FPGA的HDLC协议实现方法,主控芯片为FPGA,在FPGA上实现HDLC收发控制功能,如图1所示,处理器通过地址片选、数据总线、控制总线与FPGA连接,经过滤波处理后的同步时钟信号SCLK和同步数据信号SDA更为纯净。HDLC收发控制包括接收控制和发送控制,如图2所示,接收控制包括以下步骤:
步骤S11:FPGA接收外部输入的HDLC同步时钟信号SCLK、HDLC同步数据信号SDA,并在系统时钟下对HDLC同步时钟信号SCLK和HDLC同步数据信号SDA进行同步处理。
HDLC同步时钟信号SCLK和HDLC同步数据信号SDA经过系统时钟的时钟同步,使后续处理均在同一个时域内,消除了亚稳态的影响。
步骤S12:处理器通过地址片选、数据总线、控制总线向FPGA发送启动接收指令和地址信息,FPGA接收启动接收指令和地址信息,并将启动接收指令和地址信息存储于接收指令寄存器内。
本实施例中,处理器为DSP。
步骤S13:当FPGA检测到处理器发送的启动接收指令时,开始对帧头(7E)进行检测;如果检测到帧头(7E),则启动FPGA内部接收状态机,接收状态机的状态由空闲状态跳转到非帧头检测模块,进行非帧头检测,并转入到步骤S14。
步骤S14:在非帧头检测中,如果检测到非帧头数据(非7E数据)即为地址,则判断FPGA检测到的该地址与所述处理器发送的地址信息是否一致,如果一致,表明站地址正确,可以进行数据接收,转入步骤S15;如果不一致,则需要重新开始进行帧头(7E)检测,即转入到步骤S13。
步骤S15:开始接收帧数据,当连续检测到5个“1”时,删除5个“1”后面的“0”,输出删0标志3给接收状态寄存器。
有删0操作时,输出删0标志3。
步骤S16:对接收的帧数据进行串并行转换,同时对串并转换完成后的8位并行数据进行CRC校验,将转换完成后数据写入接收双口RAM。接收双口RAM采用FPGA内部硬件资源块RAM,位宽8bit,深度4096,若FPGA资源有限,可适应性调整双口RAM深度。
如果CRC校验错误,则输出CRC校验错误标志2给接收状态寄存器。
本实施例中,CRC校验可以选择CCITT-16的校验方式,多项式为y(x)=x16+x12+x5+1,初始值为0xFFFF。数据低位在前,高位在后,计算结果高低位依次互换,与0xFFFF异或后输出。若CRC校验错误,输出CRC校验错误标志2。DSP检测到CRC校验错误标志时,会重新启动接收。
步骤S17:当FPGA检测到帧尾(7E)时,表明完成帧数据的接收,将CRC校验值写入接收双口RAM,输出数据有效标志1给接收状态寄存器;FPGA通过地址片选、数据总线、控制总线向处理器反馈删0标志3、CRC校验错误标志2以及数据有效标志1,处理器根据这些标志信息读取接收双口RAM中的数据。
本实施例中,接收状态标志信息包括删0标志3、CRC校验错误标志2以及数据有效标志1。数据有效标志1用于告知处理器:接收双口RAM中写入数据有效,可以进行读取。
本实施例中,步骤S11还包括对HDLC同步时钟信号和HDLC同步数据信号进行滤波处理,对HDLC同步时钟信号进行滤波处理,可以滤除时钟线上的毛刺,保证信号的纯净。对HDLC同步数据信号进行滤波处理,可以滤除数据线上的毛刺。
如图3所示,发送控制包括以下步骤:
步骤S21:处理器通过地址片选、数据总线、控制总线将发送的帧数据写入发送双口RAM。
发送双口RAM与接收双口RAM类似,采用FPGA内部硬件资源块RAM,位宽8bit,深度4096,若FPGA资源有限,可适应性调整双口RAM深度。
步骤S22:处理器通过地址片选、数据总线、控制总线向FPGA发送启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息,FPGA接收启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息,并将启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息存储于发送指令寄存器。
本实施例中,传输速率可以通过处理器设置为1M、2M、4M等等;帧头帧尾信息即帧头帧尾7E个数,可设置为1个、2个、4个等,采用处理器对传输速率和帧头帧尾进行设置,不需要修改FPGA代码,设置简单方便。
步骤S23:根据传输速率信息产生HDLC同步发送时钟信号。
步骤S24:当FPGA检测到启动发送指令时,启动FPGA内部发送状态机,发送帧头7E。
步骤S25:当帧头信息发送完成后,从发送双口RAM中读取帧数据,对发送的帧数据进行并串行转换,当连续检测到5个“1”时,在5个“1”后面进行插“0”操作,直到所有帧数据发送完成。
步骤S26:在从发送双口RAM中读取帧数据进行并串转换的同时,将读取的数据进行CRC校验,在帧数据发送完成后进行CRC校验数据的发送。
本实施例中,发送CRC校验与接收CRC校验方式一致。
步骤S27:当完成所有帧数据的发送时,发送帧尾信息,并输出发送状态标志4给发送状态寄存器。
步骤S28:FPGA通过地址片选、数据总线、控制总线向处理器反馈发送状态标志4。
本发明所提供的一种基于FPGA的HDLC协议实现方法,采用FPGA硬件逻辑语言,功能上替代国产HDLC协议芯片,并在国内外FPGA芯片上通过了测试验证。该方法目前主要用于惯性测量系统,不仅很好地解决惯性测量系统小型化设计的需求,同时也节约了硬件成本,具有更好的灵活性。
本实施例还提供一种基于FPGA的HDLC协议实现系统,在FPGA上实现HDLC收发控制功能,如图1所示,该系统包括:
HDLC时钟滤波模块,用于对外部输入的HDLC同步时钟信号进行滤波处理,滤除时钟线上的毛刺,保证信号的纯净。
HDLC数据滤波模块,用于对所述HDLC同步数据信号进行滤波处理,滤除数据线上的毛刺。
同步处理模块,用于接收外部输入的HDLC同步时钟信号、HDLC同步数据信号,并在系统时钟下对HDLC同步时钟信号和HDLC同步数据信号进行同步处理,使后续处理均在同一个时域内,消除了亚稳态的影响。
接收指令寄存器,用于接收处理器发送的启动接收指令和地址信息。
接收控制模块,具体用于:
当检测到所述启动接收指令时,对帧头进行检测;如果检测到帧头,则进入非帧头检测,如果检测到非帧头数据为地址,则判断该地址与所述处理器发送的地址信息是否一致,如果一致,则接收帧数据,当连续检测到5个“1”时,删除5个“1”后面的“0”,输出删0标志给接收状态寄存器,对帧数据进行串并行转换,将串并转换完成后的帧数据写入接收双口RAM,同时对串并转换完成后的帧数据进行CRC校验;如果CRC校验错误,则输出CRC校验错误标志给接收状态寄存器;
如果不一致,则重新对帧头进行检测。
当FPGA检测到结束标志位时,表明完成帧数据的接收,将CRC校验值写入接收双口RAM,输出数据有效标志1给接收状态寄存器;FPGA通过地址片选、数据总线、控制总线向处理器反馈删0标志3、CRC校验错误标志2以及数据有效标志1,处理器根据这些标志信息读取接收双口RAM中的数据。
接收双口RAM,用于存储接收的帧数据。
接收状态寄存器,用于存储接收状态标志信息,即删0标志3、CRC校验错误标志2以及数据有效标志1。
发送双口RAM,用于存储处理器写入的将要发送的帧数据。
发送指令寄存器,用于存储处理器发送的启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息。
时钟产生模块,用于根据传输速率信息产生HDLC同步发送时钟信号。
发送控制模块,具体用于:
检测发送指令寄存器中的指令,当检测到启动发送指令时,启动FPGA内部发送状态机,发送帧头7E;当帧头信息发送完成后,对发送的帧数据进行并串行转换,当连续检测到5个“1”时,在5个“1”后面进行插“0”操作,直到所有帧数据发送完成;在从发送双口RAM中读取帧数据进行并串转换的同时,将读取的数据进行CRC校验,在帧数据发送完成后进行CRC校验数据的发送;当完成所有帧数据的发送时,发送帧尾信息,并输出发送状态标志4给发送状态寄存器;向处理器反馈发送状态标志信息。
发送状态寄存器,用于存储发送状态标志信息。
以上所揭露的仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或变型,都应涵盖在本发明的保护范围之内。

Claims (9)

1.一种基于FPGA的HDLC协议实现方法,在所述FPGA上实现HDLC收发控制功能,所述HDLC收发控制包括接收控制和发送控制;其特征在于,所述接收控制包括以下步骤:
步骤S11:FPGA接收外部输入的HDLC同步时钟信号、HDLC同步数据信号,并在系统时钟下对所述HDLC同步时钟信号和HDLC同步数据信号进行同步处理;
步骤S12:FPGA接收处理器发送的启动接收指令和地址信息;
步骤S13:当FPGA检测到所述启动接收指令时,开始接收帧数据并对接收的帧数据进行CRC校验和串并行转换,将串并转换完成后的帧数据写入接收双口RAM,输出接收状态标志信息;
步骤S14:当完成帧数据的接收时,FPGA向所述处理器反馈所述接收状态标志信息,处理器根据所述接收状态标志信息读取接收双口RAM中的数据;
所述发送控制包括以下步骤:
步骤S21:处理器将要发送的帧数据写入发送双口RAM;
步骤S22:FPGA接收处理器发送的启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息,并根据所述传输速率信息产生HDLC同步发送时钟信号;
步骤S23:当FPGA检测到所述启动发送指令时,发送帧头信息;
步骤S24:当所述帧头信息发送完成后,从发送双口RAM中读取帧数据,对发送的帧数据进行CRC校验,同时进行并串行转换,以串行方式发送帧数据和CRC校验值;
步骤S25:当完成所有帧数据和CRC校验值的发送时,发送帧尾信息,并输出发送状态标志信息给发送状态寄存器;
步骤S26:FPGA向所述处理器反馈所述发送状态标志信息。
2.如权利要求1所述的基于FPGA的HDLC协议实现方法,其特征在于,所述步骤S13的具体实现过程为:
步骤S131:当FPGA检测到所述启动接收指令时,对帧头进行检测;如果检测到帧头,则进入非帧头检测,并转入步骤S132;
步骤S132:在非帧头检测中,如果检测到非帧头数据为地址,则判断FPGA检测到的该地址与所述处理器发送的地址信息是否一致,如果一致,则转入步骤S133,否则转入步骤S131;
步骤S133:接收帧数据,当连续检测到5个“1”时,删除5个“1”后面的“0”,输出删0标志给接收状态寄存器;
步骤S134:对帧数据进行串并行转换;
步骤S135:对每次串并转换完成后的帧数据进行CRC校验,并将串并转换完成后的帧数据写入接收双口RAM;如果CRC校验错误,则输出CRC校验错误标志给接收状态寄存器。
3.如权利要求2所述的基于FPGA的HDLC协议实现方法,其特征在于,所述步骤S14的具体实现过程为:当FPGA检测到帧尾标志时,表明完成帧数据的接收,接收的帧数据和CRC校验值均已写入接收双口RAM,输出数据有效标志给接收状态寄存器;FPGA向所述处理器反馈删0标志、CRC校验错误标志以及数据有效标志。
4.如权利要求1所述的基于FPGA的HDLC协议实现方法,其特征在于,所述步骤S24中,在进行帧数据并串行转换的同时,对读取的帧数据进行CRC校验;在帧数据发送完成后进行CRC校验数据的发送。
5.如权利要求1所述的基于FPGA的HDLC协议实现方法,其特征在于,所述步骤S24中,在完成帧数据的并串行转换之后,当连续检测到5个“1”时,在5个“1”后面进行插“0”操作。
6.如权利要求1~5中任一项所述的基于FPGA的HDLC协议实现方法,其特征在于,所述步骤S11还包括:对所述HDLC同步时钟信号和HDLC同步数据信号进行滤波处理。
7.一种基于FPGA的HDLC协议实现系统,在所述FPGA上实现HDLC收发控制功能,其特征在于,所述系统包括:
同步处理模块,用于接收外部输入的HDLC同步时钟信号、HDLC同步数据信号,并在系统时钟下对所述HDLC同步时钟信号和HDLC同步数据信号进行同步处理;
接收指令寄存器,用于接收处理器发送的启动接收指令和地址信息;
接收控制模块,用于检测所述接收指令寄存器中的指令,当检测到所述启动接收指令时,开始接收帧数据并对接收的帧数据进行CRC校验和串并行转换,将串并转换完成后的帧数据写入接收双口RAM,输出接收状态标志信息;用于当完成帧数据的接收时,向所述处理器反馈接收状态标志信息;
接收双口RAM,用于存储接收的帧数据;
接收状态寄存器,用于存储接收状态标志信息;
发送双口RAM,用于存储处理器写入的将要发送的帧数据;
发送指令寄存器,用于存储处理器发送的启动发送指令、数据长度信息、传输速率信息以及帧头帧尾信息;
时钟产生模块,用于根据所述传输速率信息产生HDLC同步发送时钟信号;
发送控制模块,用于检测所述发送指令寄存器中的指令,当检测到所述启动发送指令时,发送帧头信息;用于当所述帧头信息发送完成后,从发送双口RAM中读取帧数据,对发送的帧数据进行CRC校验,同时进行并串行转换,以串行方式发送帧数据和CRC校验值;当完成所有帧数据和CRC校验值的发送时,发送帧尾信息,并输出发送状态标志信息给发送状态寄存器;用于向所述处理器反馈所述发送状态标志信息;
发送状态寄存器,用于存储发送状态标志信息。
8.如权利要求7所述的基于FPGA的HDLC协议实现系统,其特征在于,所述接收控制模块,具体用于:
当检测到所述启动接收指令时,对帧头进行检测;如果检测到帧头,则进入非帧头检测,如果检测到非帧头数据为地址,则判断该地址与所述处理器发送的地址信息是否一致,如果一致,则接收帧数据,当连续检测到5个“1”时,删除5个“1”后面的“0”,输出删0标志给接收状态寄存器,对帧数据进行串并行转换,将串并转换完成后的帧数据写入接收双口RAM,同时对串并转换完成后的帧数据进行CRC校验;如果CRC校验错误,则输出CRC校验错误标志给接收状态寄存器;
如果不一致,则重新对帧头进行检测。
9.如权利要求7或8所述的基于FPGA的HDLC协议实现系统,其特征在于,还包括HDLC时钟滤波模块,用于对所述HDLC同步时钟信号进行滤波处理;
HDLC数据滤波模块,用于对所述HDLC同步数据信号进行滤波处理。
CN202210263760.6A 2022-03-15 2022-03-15 一种基于fpga的hdlc协议实现方法与系统 Active CN114629966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210263760.6A CN114629966B (zh) 2022-03-15 2022-03-15 一种基于fpga的hdlc协议实现方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210263760.6A CN114629966B (zh) 2022-03-15 2022-03-15 一种基于fpga的hdlc协议实现方法与系统

Publications (2)

Publication Number Publication Date
CN114629966A CN114629966A (zh) 2022-06-14
CN114629966B true CN114629966B (zh) 2023-05-12

Family

ID=81902952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210263760.6A Active CN114629966B (zh) 2022-03-15 2022-03-15 一种基于fpga的hdlc协议实现方法与系统

Country Status (1)

Country Link
CN (1) CN114629966B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115840725B (zh) * 2023-02-13 2023-05-26 苏州萨沙迈半导体有限公司 具有自检功能的端对端通讯电路和芯片设备
CN117435426B (zh) * 2023-10-18 2024-05-07 成都观岩科技有限公司 一种芯片内串行数据溢出校验方法
CN118158300B (zh) * 2024-05-10 2024-08-02 成都天地一格科技有限公司 一种基于hdlc协议的通信方法及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634035A (en) * 1992-12-16 1997-05-27 Siemens Business Communication Systems, Inc. HDLC hardware engine and shared memory interface with access request/acknowledgement control and addressing scheme
CN105119907A (zh) * 2015-07-22 2015-12-02 哈尔滨工业大学 一种基于FPGA的BiSS-C通信协议方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634035A (en) * 1992-12-16 1997-05-27 Siemens Business Communication Systems, Inc. HDLC hardware engine and shared memory interface with access request/acknowledgement control and addressing scheme
CN105119907A (zh) * 2015-07-22 2015-12-02 哈尔滨工业大学 一种基于FPGA的BiSS-C通信协议方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA的HDLC协议的设计与实现;张文昊;王俊;于鹏飞;武伟;;电子器件(第03期);全文 *

Also Published As

Publication number Publication date
CN114629966A (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
CN114629966B (zh) 一种基于fpga的hdlc协议实现方法与系统
US8261008B2 (en) NAND flash controller and data exchange method between NAND flash memory and NAND flash controller
US7243173B2 (en) Low protocol, high speed serial transfer for intra-board or inter-board data communication
CN113032319B (zh) 基于fpga的车载系统数据传输方法及同步高速串行总线结构
CN112564882B (zh) 一种基于ahb总线的单线数字通讯接口
KR100614638B1 (ko) 고속의 무선 통신에 적합한 하이브리드형 직렬 주변 장치 인터페이스 회로 및 그 방법
US20070145151A1 (en) Electronic apparatus, control method thereof, host device, and control method thereof
CN106201973B (zh) 一种单线串行通信接口的方法与系统
CN108462620B (zh) 一种吉比特级SpaceWire总线系统
CN112118042B (zh) 一种基于星载光纤接口的数据传输方法及装置
CN114610669A (zh) 多路串口通信中实现时钟同步校准的方法及系统
CN116185936A (zh) 一种spi通信数据收发异常检测控制系统及检测方法
CN113259205B (zh) 一种多板卡系统内部互联接口测试方法及系统
CN113176966B (zh) 一种检查spi接收数据有效性的系统及方法
US8510485B2 (en) Low power digital interface
CN113709010B (zh) 一种不限帧长的Modbus通信协议系统
CN216352286U (zh) 一种i2c总线的检测装置
CN111930683B (zh) 一种适用于hdlc协议的同步串行收发器及其方法
CN108241586B (zh) 控制器电路与估计延迟补偿方法
JPWO2004064351A1 (ja) 非同期伝送方法及びその回路
JP2008186077A (ja) バスインタフェース装置
CN117640783B (zh) 一种数据传输方法、系统、电子设备以及可读介质
CN112667551B (zh) 一种基于相位自适应的qspi传输数据的方法及系统
CN114726482B (zh) 一种spi数据传输方法
CN114461564B (zh) 一种基于sja1000读取rxfifo的方法

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