多通道HDLC控制系统及其数据上传方法、数据下发方法与流程
未命名
10-09
阅读:194
评论:0
多通道hdlc控制系统及其数据上传方法、数据下发方法
技术领域
1.本技术涉及计算机总线通信技术领域,具体涉及一种多通道hdlc控制系统及其数据上传方法、数据下发方法。
背景技术:
2.高级数据链路控制(high level data link control,hdlc)是一个由国际标准化组织制定的面向比特的同步数据链路层协议。具有以下特点:数据报文可实现完整透明传输,其中,“0比特插入法”便于硬件层面上实现;全双工通信模式,具有较高的传输效率;所有数据帧均采用crc校验来保证传输的可靠性。
3.hdlc控制器与上位机通过总线进行通讯,若存在多个通道的hdlc控制器与上位机通讯时,需通过多根总线与上位机连接,造成了资源浪费大的问题。
技术实现要素:
4.鉴于现有技术中的上述缺陷或不足,本技术旨在提供一种多通道hdlc控制系统及其数据上传方法、数据下发方法。
5.第一方面,本技术提供一种多通道hdlc控制系统,包括:
6.至少一个hdlc协议收发模块,各所述hdlc协议收发模块与外部设备连接,配置用于接收所述外部设备发送的第一数据;
7.系统消息缓冲队列,所述系统消息缓冲队列与各所述hdlc协议收发模块连接,配置用于封装至少一个所述第一数据,形成第一封装数据;
8.总线控制模块,所述总线控制模块与所述系统消息缓冲队列连接,配置用于将所述第一封装数据转换为第二封装数据,并将所述第二封装数据上传至上位机。
9.根据本技术实施例提供的技术方案,所述总线控制模块还配置用于接收所述上位机发送的第二数据,并将所述第二数据发送至所述系统消息缓冲队列;所述系统消息缓冲队列还配置用于解析所述第二数据得到多个通道号以及与各通道号对应的第三数据,并将所述第三数据发送至与各所述通道号对应的所述hdlc协议收发模块;所述hdlc协议收发模块还配置用于将所述第三数据发送至与其连接的所述外部设备。
10.根据本技术实施例提供的技术方案,所述hdlc协议控制模块、所述总线控制模块、所述系统消息缓冲队列均采用pgea独立设计。
11.根据本技术实施例提供的技术方案,所述总线控制模块和所述上位机之间通过pcie总线连接。
12.根据本技术实施例提供的技术方案,所述系统消息缓冲队列与所述总线控制模块之间还设有第一缓冲模块,所述第一缓冲模块包括第一接收缓存存储器和第一发送缓存存储器;所述系统消息缓冲队列将所述第一封装数据发送至所述第一接收缓存存储器,在上传至所述总线控制模块;所述总线控制模块将所述第二数据存储至所述第一发送缓存存储器内,再下发至所述系统消息缓冲队列。
13.根据本技术实施例提供的技术方案,所述pcie总线和所述上位机采用dma读写方法进行通信。
14.根据本技术实施例提供的技术方案,各所述hdlc协议收发模块和所述系统消息缓冲队列之间还设有第二缓冲模块,所述第二缓冲模块包括第二接收缓存存储器和第二发送缓存存储器;各所述hdlc协议收发模块将所述第一数据存储至所述第二接收缓存存储器,再发送至所述系统消息缓冲队列;所述系统消息缓冲队列将所述第三数据发送至所述第二发送缓存存储器,再发送至所述hdlc协议收发模块。
15.第二方面,本技术提供一种如上所述的多通道hdlc控制系统的数据上传方法,包括如下步骤:
16.接收至少一个由各所述外部设备发送的第一上传数据;
17.提取各所述第一数据中的有效数据;
18.根据通道号依序将至少一个所述有效数据封装形成第一封装数据;
19.通过总线控制模块将所述第一封装数据转换为第二封装数据;
20.满足触发条件后,将所述第二封装数据上传至上位机。
21.第三方面,本技术提供一种如上所述的多通道hdlc控制系统的数据下发方法,包括如下步骤:
22.接收来自上位机的第一下发数据,所述第一下发数据包括至少一个包头信息和与所述包头信息对应的数据内容;
23.解析每个所述包头信息得到第一参数信息,所述第一参数信息至少包括通道号和有效数据长度;
24.根据所述有效数据长度提取所述数据内容中的数据,得到第二下发数据;
25.根据所述通道号将所述第二下发数据发送至hdlc协议收发模块;
26.将所述第二下发数据发送至所与各所述hdlc协议收发模块对应的外部设备。
27.综上所述,本技术提出一种多通道hdlc控制系统,通过系统消息队列与各通道的hdlc协议收发模块连接,再通过与系统消息队列连接的总线控制模块将各通道hdlc协议收发模块需上传的数据发送至上位机,通过一个总线控制器控制多个通道hdlc协议收发模块,减小了资源的浪费。
附图说明
28.图1为本技术实施例提供的一种多通道hdlc控制系统的结构示意图;
29.图2为本技术实施例提供的各模块连接关系的示意图;
30.图3为本技术实施例2提供的数据上传方法的流程图;
31.图4为本技术实施例3提供的数据下发方法的流程图。
32.1、hdlc协议收发模块;2、系统消息缓冲队列;3、总线控制模块;4、上位机;51、第二发送缓存存储器;52、第二接收缓存存储器;6、同步串口;71、第一发送缓存存储器;72、第一接收缓存存储器。
具体实施方式
33.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描
述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
34.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
35.诚如背景技术中提到的技术问题,本技术提出了一种多通道hdlc控制系统,包括:
36.至少一个hdlc协议收发模块1,各所述hdlc协议收发模块1与外部设备连接,配置用于接收所述外部设备发送的第一数据;
37.系统消息缓冲队列2,所述系统消息缓冲队列2与各所述hdlc协议收发模块1连接,配置用于封装至少一个所述第一数据,形成第一封装数据;
38.总线控制模块3,所述总线控制模块3与所述系统消息缓冲队列2连接,配置用于将所述第一封装数据转换为第二封装数据,并将所述第二封装数据上传至上位机4。
39.请参考图1和图2所示,所述多通道hdlc控制系统包括多路hdlc控制器,各所述hdlc控制器包括所述hdlc协议收发模块1,所述hdlc控制器选用xilinx k7系列的xc7k325tftg900-2。本技术在实现多通道并行上传数据的同时,通过所述系统消息缓冲队列2和总线控制模块3将数据封装,并将封装后的数据上传至上位机4,实现了一个总线控制模块3对多个通道的控制,与避免了现有技术中多个通道通过多根总线与上位机4连接的问题,避免了资源的浪费。
40.在一优选实施例中,所述总线控制模块3还配置用于接收所述上位机4发送的第二数据,并将所述第二数据发送至所述系统消息缓冲队列2;所述系统消息缓冲队列2还配置用于解析所述第二数据得到多个通道号以及与各通道号对应的第三数据,并将所述第三数据发送至与各所述通道号对应的所述hdlc协议收发模块1;所述hdlc协议收发模块1还配置用于将所述第三数据发送至与其连接的所述外部设备。
41.其中,除了将所述外部设备的数据上传至所述上位机4外,还可将上位机4下发的数据经过所述总线控制模块3、所述系统消息缓冲队列2发送至各hdlc协议收发模块1,进而传中至与hdlc协议收发模块1连接的外部设备,实现了上位机4通过一个总线控制模块3向多个通道的hdlc控制器发送数据。
42.在一优选实施例中,所述hdlc协议控制模块、所述总线控制模块3、所述系统消息缓冲队列2均采用pgea独立设计。
43.本技术采用可编辑门阵列(field programmable gate array,fpga)器件对各模块进行独立设计后再进行相应的逻辑粘合,提高了编程的灵活性,降低了开发时间,节约了成本。
44.在一优选实施例中,所述总线控制模块3和所述上位机4之间通过pcie总线连接。所述pcie总线和所述上位机4采用dma读写方法进行通信。
45.其中,所述pcie总线控制模块33包括pcie ip核部分和直接内存访问(dma,direct memory access)读写控制部分;所述ip核部分选用7series integrated block for pci express,对应的用户接口为axi4-stream,开辟bar0空间大小为8kb,tlp报文长度为512bytes。所述dma读写控制部分是对所述ip核部分的读写封装,将原有的读写方法用dma读写方法替换,可提高所述hdlc控制器的吞吐率。可选地,dma单次读写长度为1kb,在通信前软件端和硬件端需提前约定所述读写长度,通过保持数据量大小的一致性以保证对数据
读写的完整性。
46.在一优选实施例中,所述系统消息缓冲队列2与所述总线控制模块3之间还设有第一缓冲模块,所述第一缓冲模块包括第一接收缓存存储器72和第一发送缓存存储器71;所述系统消息缓冲队列2将所述第一封装数据发送至所述第一接收缓存存储器72,在上传至所述总线控制模块3;所述总线控制模块3将所述第二数据存储至所述第一发送缓存存储器71内,再下发至所述系统消息缓冲队列2。各所述hdlc协议收发模块1和所述系统消息缓冲队列2之间还设有第二缓冲模块,所述第二缓冲模块包括第二接收缓存存储器52和第二发送缓存存储器51;各所述hdlc协议收发模块1将所述第一数据存储至所述第二接收缓存存储器52,再发送至所述系统消息缓冲队列2;所述系统消息缓冲队列2将所述第三数据发送至所述第二发送缓存存储器51,再发送至所述hdlc协议收发模块1。
47.其中,所述第一发送缓存存储器71、所述第一接收缓存存储器72、所述第二发送缓存存储器51、所述第二接收缓存存储器52都为fifo(first input first output)存储器,当上传数据时,所述hdlc协议收发模块1上的同步串口6先把外部设备发送的数据存储至所述第二接收缓存存储器52内,再发送至所述系统消息缓冲队列2,所述系统消息缓冲队列2将多个数据封装形成第一封装数据,并将所述第一封装数据发送至所述总线控制模块3,所述总线控制模块3将所述第一封装数据转换为适用于所述pcie总线格式的第二封装数据,并将所述第二封装时护具存储至所述第一接收缓存存储器72内,当满足触发条件后,所述上位机4将所述第一接收缓存存储器72内的数据取走,其中所述触发条件为dma单次读写大小。
48.当由所述上位机4下发数据时,所述总线控制模块3通过所述pcie总线接收所述上位机4发送的数据,并存储至所述第一发送缓存存储器71内,再发送至所述系统消息缓冲队列2进行解析,解析后得到通道号以及与所述通道号对应的数据,并将此数据存储至与所述通道号对应的所述第二发送缓存存储器51内,所述第二发送缓存存储器51将数据发送至与其连接的所述hdlc协议收发模块1内,通过同步串口6发送至外部设备。
49.实施例2
50.在实施例1的基础上,本技术提供一种多通道hdlc控制系统的数据上传方法,如图3所示,包括如下步骤:
51.s100、接收至少一个由各所述外部设备发送的第一上传数据;
52.s101、提取各所述第一数据中的有效数据;
53.s102、根据通道号依序将至少一个所述有效数据封装形成第一封装数据;
54.s103、通过总线控制模块3将所述第一封装数据转换为第二封装数据;
55.s104、满足触发条件后,将所述第二封装数据上传至上位机4。
56.其中,所述hdlc协议收发模块1通过逐个比特接收来自所述同步串口6的所述第一上传数据,并提取所述第一上传数据中的有效数据,将其存入所述第二接收缓存存储器52后,将recv_over信号拉高以表示一帧接收结束。所述系统消息缓冲队列2会通过检测各通道下recv_over信号以判断哪个通道由数据需要上传,并且以通道1到n的顺序依次将所述有效数据取出,并在所述有效数据前添加包头信息形成第一封装数据,所述包头信息包括:有效数据长度、通道号、地址域和控制域,将封装好的所述第一封装数据存储至所述第一接收缓存存储器72中,所述第一接收缓存存储器72将所述第一封装数据发送至所述总线控制
模块3,所述总线控制模块3将所述第一封装数据转换为适用于所述pcie总线的第二封装数据,当所述第一缓存存储器中的数据满足dma单次读取长度1kb时,所述总线控制模块3向所述上位机4发送中断信息,所述上位机4将所述总线控制模块3中的所述第二封装数据通过所述pcie总线取走。
57.实施例3
58.在实施例1的基础上,本技术提供一种多通道hdlc控制系统的数据下发方法,包括如下步骤:
59.s200、接收来自上位机4的第一下发数据,所述第一下发数据包括至少一个包头信息和与所述包头信息对应的数据内容;
60.s201、解析每个所述包头信息得到第一参数信息,所述第一参数信息至少包括通道号和有效数据长度;
61.s202、根据所述有效数据长度提取所述数据内容中的数据,得到第二下发数据;
62.s203、根据所述通道号将所述第二下发数据发送至hdlc协议收发模块1;
63.s204、将所述第二下发数据发送至所与各所述hdlc协议收发模块1对应的外部设备。
64.其中,所述上位机4通过pcie总线将所述第一下发数据发送至所述总线控制模块3,所述总线控制模块3将所述第一下发数据存储至所述第一发送缓存存储器71内,并发送至所述系统消息缓冲队列2,所述系统消息缓冲队列2首先对包头信息进行解析,得到所述第一参数信息,所述第一参数信息还包括地址域和控制域等信息,根据所述有效数据长度提取所述数据内容中指定字节的数据,得到所述第二下发数据信息,根据所述通道号将所述第二下发数据信息输入至对应的所述第二发送缓存存储器51内,并发送至与其连接的所述hdlc协议收发模块1,hdlc协议收发模块1进行组帧并通过同步串口6将数据传送至所述外部设备后,所述hdlc协议收发模块1将recv_over信号拉高以表示单帧数据传输完成,该信息会反馈至所述系统消息缓冲队列2中,以指示其继续取下包数据。
65.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
技术特征:
1.一种多通道hdlc控制系统,其特征在于,包括:至少一个hdlc协议收发模块(1),各所述hdlc协议收发模块(1)与外部设备连接,配置用于接收所述外部设备发送的第一数据;系统消息缓冲队列(2),所述系统消息缓冲队列(2)与各所述hdlc协议收发模块(1)连接,配置用于封装至少一个所述第一数据,形成第一封装数据;总线控制模块(3),所述总线控制模块(3)与所述系统消息缓冲队列(2)连接,配置用于将所述第一封装数据转换为第二封装数据,并将所述第二封装数据上传至上位机(4)。2.根据权利要求1所述的多通道hdlc控制系统,其特征在于,所述总线控制模块(3)还配置用于接收所述上位机(4)发送的第二数据,并将所述第二数据发送至所述系统消息缓冲队列(2);所述系统消息缓冲队列(2)还配置用于解析所述第二数据得到多个通道号以及与各通道号对应的第三数据,并将所述第三数据发送至与各所述通道号对应的所述hdlc协议收发模块(1);所述hdlc协议收发模块(1)还配置用于将所述第三数据发送至与其连接的所述外部设备。3.根据权利要求1所述的多通道hdlc控制系统,其特征在于,所述hdlc协议控制模块、所述总线控制模块(3)、所述系统消息缓冲队列(2)均采用pgea独立设计。4.根据权利要求1所述的多通道hdlc控制系统,其特征在于,所述总线控制模块(3)和所述上位机(4)之间通过pcie总线连接。5.根据权利要求1所述的多通道hdlc控制系统,其特征在于,所述系统消息缓冲队列(2)与所述总线控制模块(3)之间还设有第一缓冲模块,所述第一缓冲模块包括第一接收缓存存储器(72)和第一发送缓存存储器(71);所述系统消息缓冲队列(2)将所述第一封装数据发送至所述第一接收缓存存储器(72),在上传至所述总线控制模块(3);所述总线控制模块(3)将所述第二数据存储至所述第一发送缓存存储器(71)内,再下发至所述系统消息缓冲队列(2)。6.根据权利要求4所述的多通道hdlc控制系统,其特征在于,所述pcie总线和所述上位机(4)采用dma读写方法进行通信。7.根据权利要求1所述的多通道hdlc控制系统,其特征在于,各所述hdlc协议收发模块(1)和所述系统消息缓冲队列(2)之间还设有第二缓冲模块,所述第二缓冲模块包括第二接收缓存存储器(52)和第二发送缓存存储器(51);各所述hdlc协议收发模块(1)将所述第一数据存储至所述第二接收缓存存储器(52),再发送至所述系统消息缓冲队列(2);所述系统消息缓冲队列(2)将所述第三数据发送至所述第二发送缓存存储器(51),再发送至所述hdlc协议收发模块(1)。8.一种根据权利要求1-7任意一项所述的多通道hdlc控制系统的数据上传方法,其特征在于,包括如下步骤:接收至少一个由各所述外部设备发送的第一上传数据;提取各所述第一数据中的有效数据;根据通道号依序将至少一个所述有效数据封装形成第一封装数据;通过总线控制模块(3)将所述第一封装数据转换为第二封装数据;满足触发条件后,将所述第二封装数据上传至上位机(4)。9.一种根据权利要求1-7任一项所述的多通道hdlc控制系统的数据下发方法,其特征
在于,包括如下步骤:接收来自上位机(4)的第一下发数据,所述第一下发数据包括至少一个包头信息和与所述包头信息对应的数据内容;解析每个所述包头信息得到第一参数信息,所述第一参数信息至少包括通道号和有效数据长度;根据所述有效数据长度提取所述数据内容中的数据,得到第二下发数据;根据所述通道号将所述第二下发数据发送至hdlc协议收发模块(1);将所述第二下发数据发送至所与各所述hdlc协议收发模块(1)对应的外部设备。
技术总结
本申请提出一种多通道HDLC控制系统及其数据上传方法、数据下发方法,其中多通道HDLC控制系统通过系统消息队列与各通道的HDLC协议收发模块连接,再通过与系统消息队列连接的总线控制模块将各通道HDLC协议收发模块需上传的数据发送至上位机,通过一个总线控制器控制多个通道HDLC协议收发模块,减小了资源的浪费。费。费。
技术研发人员:赵旭琛
受保护的技术使用者:天津津航计算技术研究所
技术研发日:2023.06.30
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
