一种基于HDLC的多串口通信方法技术

技术编号:13508643 阅读:77 留言:0更新日期:2016-08-10 20:02
本发明专利技术公开了一种基于HDLC的多串口通信方法,包括嵌入式系统设备,嵌入式系统设备包括CPU和FPGA,CPU接收HDLC数据的步骤为:FPGA从某个串口接收HDLC数据后,在接收的HDLC数据上加上4个字节头:第一个字节为标记串口号;第二个字节和第三个字节为根据CRC算法原理计算得到的补偿字节;第4个字节为0;发送所述数据到CPU;CPU接收到数据后,去除4个字节头,并记录串口号;对接收的数据进行丢弃或者进一步处理操作。本发明专利技术利用FPGA的可编程性,可灵活改变接口个数,扩充缓存空间,设置速率范围;采用特定头部字节来区分不同的串口来源;通过对加上字节头使HDLC数据不用重新计算CRC,保证了数据的完整性。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种基于HDLC的多串口通信方法,包括嵌入式系统设备,嵌入式系统设备包括CPU和FPGA,CPU接收HDLC数据的步骤为:FPGA从某个串口接收HDLC数据后,在接收的HDLC数据上加上4个字节头:第一个字节为标记串口号;第二个字节和第三个字节为根据CRC算法原理计算得到的补偿字节;第4个字节为0;发送所述数据到CPU;CPU接收到数据后,去除4个字节头,并记录串口号;对接收的数据进行丢弃或者进一步处理操作。本专利技术利用FPGA的可编程性,可灵活改变接口个数,扩充缓存空间,设置速率范围;采用特定头部字节来区分不同的串口来源;通过对加上字节头使HDLC数据不用重新计算CRC,保证了数据的完整性。【专利说明】一种基于HDLC的多串口通信方法
本专利技术涉及通信领域,具体涉及一种基于HDLC的多串口通信方法。
技术介绍
近年来,随着电子技术的飞速发展,接口技术也变得越来越重要,对于多串口通信的需求也随之增加了。现有的串口通信技术中,串口通信本身还具有一定的缺陷,比如端口个数固定,缓存空间有限,速率范围固定,误码率高等。如果要更改端口个数或者缓存空间,需要增加硬件来实现,不利于系统扩展,同时还需要增加相应的成本。因此有待开发一种新的多串口通信方法以灵活改变接口个数,扩充缓存空间,设置速率范围等。
技术实现思路
本专利技术公开了一种基于HDLC的多串口通信机制技术,用于实现串口数量的灵活配置,扩充缓存空间,设置速率范围,同时保证串口原始数据完整性,降低硬件成本。本专利技术的技术方案是:一种基于HDLC的多串口通信方法,包括第一嵌入式系统设备和第二嵌入式系统设备;所述第一嵌入式系统设备包括第一 CHJ和第一 FPGA,所述第二嵌入式系统设备包括第二 CPU和第二 FPGA;所述第一 CPU和第一 FPGA之间采用HDLC协议来实现数据收发,所述第二 CHJ和第二 FPGA之间采用HDLC协议来实现数据收发,所述第一 FPGA和第二FPGA之间采用平行多串口来实现数据收发;所述第一 CPU发送的HDLC数据依次向经过所述第一 FPGA、第二 FPGA最后被所述第二 CPU接收;其中所述第二 FPGA向所述第二 CPU发送HDLC数据时,所述第二 CPU接收HDLC数据的步骤如下:步骤I)所述第二FPGA从与所述第一FPGA连接的某个串口接收HDLC数据后,在所述接收的HDLC数据上加上4个字节头形成新的HDLC数据,所述4个字节头的定义分别是:第一个字节为标记串口号;第二个字节和第三个字节为根据CRC算法原理计算得到的补偿字节;第4个字节为O;步骤2)发送所述新的HDLC数据到第二CPU;步骤3)所述第二CPU接收到数据后,首先去除所述新的HDLC数据中的4个字节头,并记录串口号;步骤4)根据接收的数据内容进行丢弃或者进一步处理操作。 优选地,所述第一CPU向所述第一FPGA发送HDLC数据,其中,所述第一CPU发送HDLC数据的过程如下:S1:所述第一CPU向第一FPGA发送HDLC数据前在所述HDLC数据前加上4个字节头,其中所述4个字节头的定义分别为:第一字节为串口号,第二个字节和第三个字节为保持CRC不变的补偿字节,第4个字节为O;S2:所述第一 CPU发送加上4个字节头的新的HDLC数据给所述第一 FPGA;S3:所述第一 FPGA收到新的HDLC数据后,去除掉加上的4个字节头;S4:所述第一FPGA发送去除掉4个字节头后的HDLC数据到相应的串口。优选地,所述第一字节的取值范围为0-255,最大支持256个串口。优选地,所述第四字节O的插入保证原始HDLC数据的完整性,通过全O字节隔离了原始HDLC数据与头部字节,避免出现遇连续5个‘ I,需添加额外的‘ O ’。优选地,所述CRC采用的16位CRC-1TU算法。本专利技术利用FPGA的可编程性,使系统可以根据实际需要灵活改变接口个数,扩充缓存空间,设置速率范围;在HDLC数据处理的过程中采用特定头部字节来区分不同的串口来源;加上字节头的HDLC数据不用重新计算CRC,从而保证了原来数据的完整性。【附图说明】图1为本专利技术一种基于HDLC的多串口通信方法中整个系统连接结构框图;图2为本专利技术一种基于HDLC的多串口通信方法中第二CPU接收HDLC数据流程图;图3为本专利技术一种基于HDLC的多串口通信方法中第一CPU发送HDLC数据流程图;图4为本专利技术一种基于HDLC的多串口通信方法中HDLC数据格式(未加4个字节头);图5为本专利技术一种基于HDLC的多串口通信方法中HDLC数据格式(加了4个字节头)。【具体实施方式】下面结合附图对本专利技术的【具体实施方式】作进一步说明。如图1-图5所示,一种基于HDLC的多串口通信方法,包括第一嵌入式系统设备和第二嵌入式系统设备;所述第一嵌入式系统设备包括第一 CPU和第一 FPGA,所述第二嵌入式系统设备包括第二 (PU和第二 FPGA;所述第一 CPU和第一 FPGA之间采用HDLC协议来实现数据收发,所述第二 CHJ和第二 FPGA之间采用HDLC协议来实现数据收发,所述第一 FPGA和第二 FPGA之间采用平行多串口来实现数据收发;所述第一 CPU发送的HDLC数据依次向经过所述第一 FPGA、第二 FPGA最后被所述第二 CPU接收;其中所述第二 FPGA向所述第二 CPU发送HDLC数据时,所述第二 CPU接收HDLC数据的步骤如下:步骤I)所述第二FPGA从与所述第一FPGA连接的某个串口接收HDLC数据后,在所述接收的HDLC数据上加上4个字节头形成新的HDLC数据,所述4个字节头的定义分别是:第一个字节为标记串口号,取值范围为0-255,最大支持256个串口 ;第二个字节和第三个字节为根据CRC(CRC即循环冗余校验码Cyclic Redundancy Check,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性)算法原理计算得到的补偿字节,以保证原始数据添加该四个字节的头部后,对新数据流(CRC之前的部分)重新计算的CRC与原始数据的CRC是完全相同的(即保证处理前后CRC字段的不变性);第4个字节为O,O的插入保证原始HDLC数据的完整性,通过全O字节隔离了原始HDLC数据与头部字节,避免出现遇连续5个‘I’需添加额外的‘O’。其中CRC采用的16位CRC-1TU算法,其中的CRC值在字节头加上前后是一样的; 步骤2)发送所述新的HDLC数据到第二CPU;步骤3)所述第二CPU接收到数据后,首先去除所述新的HDLC数据中的4个字节头,并记录串口号;步骤4)根据接收的数据内容进行丢弃或者进一步处理操作。优选地,所述第一CPU向所述第一FPGA发送HDLC数据,其中,所述第一CPU发送HDLC数据的过程如下:S1:所述第一CPU向第一FPGA发送HDLC数据前在所述HDLC数据前加上4个字节头,其中所述4个字节头的定义分别为:第一字节为串口号,第二个字节和第三个字节为保持CRC不变的补偿字节,第4个字节为O;S2本文档来自技高网...

【技术保护点】
一种基于HDLC的多串口通信方法,其特征在于,包括第一嵌入式系统设备和第二嵌入式系统设备;所述第一嵌入式系统设备包括第一CPU和第一FPGA,所述第二嵌入式系统设备包括第二CPU和第二FPGA;所述第一CPU和第一FPGA之间采用HDLC协议来实现数据收发,所述第二CPU和第二FPGA之间采用HDLC协议来实现数据收发,所述第一FPGA和第二FPGA之间采用平行串口来实现数据收发;所述第一CPU发送的HDLC数据依次向经过所述第一FPGA、第二FPGA最后被所述第二CPU接收;其中所述第二FPGA向所述第二CPU发送HDLC数据时,所述第二CPU接收HDLC数据的步骤如下:步骤1)所述第二FPGA从与所述第一FPGA连接的某个串口接收HDLC数据后,在接收的HDLC数据上加上4个字节头形成新的HDLC数据,其中4个字节头的定义分别是:第一个字节为标记串口号;第二个字节和第三个字节为根据CRC算法原理计算得到的补偿字节;第4个字节为0;步骤2)发送所述新的HDLC数据到第二CPU;步骤3)所述第二CPU接收到数据后,首先去除所述新的HDLC数据中的4个字节头,并记录串口号;步骤4)根据接收的数据内容进行丢弃或者进一步处理操作。...

【技术特征摘要】

【专利技术属性】
技术研发人员:陈莉勤胡国浩刘校矢黄望仟
申请(专利权)人:广州海格通信集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1