基于FPGA的HDLC收发控制器的制作方法

文档序号:11929561阅读:269来源:国知局
基于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、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1