CN105843759A - 一种基于hdlc的多串口通信方法 - Google Patents

一种基于hdlc的多串口通信方法 Download PDF

Info

Publication number
CN105843759A
CN105843759A CN201610157480.1A CN201610157480A CN105843759A CN 105843759 A CN105843759 A CN 105843759A CN 201610157480 A CN201610157480 A CN 201610157480A CN 105843759 A CN105843759 A CN 105843759A
Authority
CN
China
Prior art keywords
hdlc
byte
data
fpga
cpu
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.)
Granted
Application number
CN201610157480.1A
Other languages
English (en)
Other versions
CN105843759B (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.)
Guangzhou Haige Communication Group Inc Co
Original Assignee
Guangzhou Haige Communication Group Inc Co
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 Guangzhou Haige Communication Group Inc Co filed Critical Guangzhou Haige Communication Group Inc Co
Priority to CN201610157480.1A priority Critical patent/CN105843759B/zh
Publication of CN105843759A publication Critical patent/CN105843759A/zh
Application granted granted Critical
Publication of CN105843759B publication Critical patent/CN105843759B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C

Abstract

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

Description

一种基于HDLC的多串口通信方法
技术领域
本发明涉及通信领域,具体涉及一种基于HDLC的多串口通信方法。
背景技术
近年来,随着电子技术的飞速发展,接口技术也变得越来越重要,对于多串口通信的需求也随之增加了。
现有的串口通信技术中,串口通信本身还具有一定的缺陷,比如端口个数固定,缓存空间有限,速率范围固定,误码率高等。如果要更改端口个数或者缓存空间,需要增加硬件来实现,不利于系统扩展,同时还需要增加相应的成本。因此有待开发一种新的多串口通信方法以灵活改变接口个数,扩充缓存空间,设置速率范围等。
发明内容
本发明公开了一种基于HDLC的多串口通信机制技术,用于实现串口数量的灵活配置,扩充缓存空间,设置速率范围,同时保证串口原始数据完整性,降低硬件成本。
本发明的技术方案是:一种基于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)根据接收的数据内容进行丢弃或者进一步处理操作。
优选地,所述第一CPU向所述第一FPGA发送HDLC数据,其中,所述第一CPU发送HDLC数据的过程如下:
S1:所述第一CPU向第一FPGA发送HDLC数据前在所述HDLC数据前加上4个字节头,其中所述4个字节头的定义分别为:第一字节为串口号,第二个字节和第三个字节为保持CRC不变的补偿字节,第4个字节为0;
S2:所述第一CPU发送加上4个字节头的新的HDLC数据给所述第一FPGA;
S3:所述第一FPGA收到新的HDLC数据后,去除掉加上的4个字节头;
S4:所述第一FPGA发送去除掉4个字节头后的HDLC数据到相应的串口。
优选地,所述第一字节的取值范围为0-255,最大支持256个串口。
优选地,所述第四字节0的插入保证原始HDLC数据的完整性,通过全0字节隔离了原始HDLC数据与头部字节,避免出现遇连续5个‘1’需添加额外的‘0’。
优选地,所述CRC采用的16位CRC-ITU算法。
本发明利用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,所述第二嵌入式系统设备包括第二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个字节头的定义分别是:第一个字节为标记串口号,取值范围为0-255,最大支持256个串口;第二个字节和第三个字节为根据CRC(CRC即循环冗余校验码Cyclic Redundancy Check,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性)算法原理计算得到的补偿字节,以保证原始数据添加该四个字节的头部后,对新数据流(CRC之前的部分)重新计算的CRC与原始数据的CRC是完全相同的(即保证处理前后CRC字段的不变性);第4个字节为0,0的插入保证原始HDLC数据的完整性,通过全0字节隔离了原始HDLC数据与头部字节,避免出现遇连续5个‘1’需添加额外的‘0’。其中CRC采用的16位CRC-ITU算法,其中的CRC值在字节头加上前后是一样的;
步骤2)发送所述新的HDLC数据到第二CPU;
步骤3)所述第二CPU接收到数据后,首先去除所述新的HDLC数据中的4个字节头,并记录串口号;
步骤4)根据接收的数据内容进行丢弃或者进一步处理操作。
优选地,所述第一CPU向所述第一FPGA发送HDLC数据,其中,所述第一CPU发送HDLC数据的过程如下:
S1:所述第一CPU向第一FPGA发送HDLC数据前在所述HDLC数据前加上4个字节头,其中所述4个字节头的定义分别为:第一字节为串口号,第二个字节和第三个字节为保持CRC不变的补偿字节,第4个字节为0;
S2:所述第一CPU发送加上4个字节头的新的HDLC数据给所述第一FPGA;
S3:所述第一FPGA收到新的HDLC数据后,去除掉加上的4个字节头;
S4:所述第一FPGA发送去除掉4个字节头后的HDLC数据到相应的串口。
本发明利用FPGA的可编程特性,实现对串口数量的增加,利用软件的方法对数据进行加工处理,降低多串口通信误码率,并实现多路串口业务汇聚为一路HDLC数据,使用特定的头部字节以区分不同的串口。FPGA收到数据后,自动加上区分串口号的头,在此过程中不需要重新计算HDLC数据的CRC,保证了原始数据的完整性,然后把HDLC数据发往CPU,CPU收到数据后,去除FPGA添加的特定字节头,从字节头中提取串口号并记录,然后根据内容进行相应处理,是丢弃或作进一步处理等;当需要向串口发送数据时候,CPU需根据目的串口号,添加相应的特定字节头,发送HDLC数据到FPGA,然后由FPGA对特定字节头进行解码和去除后,将待发送的原始数据发往相应的串口。
根据上述说明书的揭示和指导,本发明所属领域的技术人员还可以对上述实施方式进行变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对发明的一些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。

Claims (7)

1.一种基于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)根据接收的数据内容进行丢弃或者进一步处理操作。
2.如权利要求1所述的一种基于HDLC的多串口通信方法,其特征在于,所述第一CPU向所述第一FPGA发送HDLC数据,其中,所述第一CPU发送HDLC数据的过程如下:
S1:所述第一CPU向第一FPGA发送HDLC数据前,在所述HDLC数据前加上4个字节头,其中所述4个字节头的定义分别为:第一字节为串口号,第二个字节和第三个字节为保持CRC不变的补偿字节,第4个字节为0;
S2:所述第一CPU发送加上4个字节头的新的HDLC数据给所述第一FPGA;
S3:所述第一FPGA收到新的HDLC数据后,去除掉加上的4个字节头;
S4:所述第一FPGA发送去除掉4个字节头后的HDLC数据到相应的串口。
3.如权利要求1所述的一种基于HDLC的多串口通信方法,其特征在于,所述第一FPGA和第二FPGA之间的平行串口数为多个。
4.如权利要求1所述的一种基于HDLC的多串口通信方法,其特征在于,所述第一字节的取值范围为0-255。
5.如权利要求1所述的一种基于HDLC的多串口通信方法,其特征在于,第一字节最大支持256个串口。
6.如权利要求1所述的一种基于HDLC的多串口通信方法,其特征在于,所述第四字节0的插入保证原始HDLC数据的完整性,通过全0字节隔离了原始HDLC数据与头部字节,避免出现遇连续5个‘1’需添加额外的‘0’。
7.如权利要求1所述的一种基于HDLC的多串口通信方法,其特征在于,所述CRC采用的16位CRC-ITU算法。
CN201610157480.1A 2016-03-17 2016-03-17 一种基于hdlc的多串口通信方法 Active CN105843759B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610157480.1A CN105843759B (zh) 2016-03-17 2016-03-17 一种基于hdlc的多串口通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610157480.1A CN105843759B (zh) 2016-03-17 2016-03-17 一种基于hdlc的多串口通信方法

Publications (2)

Publication Number Publication Date
CN105843759A true CN105843759A (zh) 2016-08-10
CN105843759B CN105843759B (zh) 2018-11-20

Family

ID=56587404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610157480.1A Active CN105843759B (zh) 2016-03-17 2016-03-17 一种基于hdlc的多串口通信方法

Country Status (1)

Country Link
CN (1) CN105843759B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489237A (zh) * 2019-08-20 2019-11-22 深圳市丰润达科技有限公司 串口数据接收处理方法、装置及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014579A1 (en) * 2001-07-11 2003-01-16 Motorola, Inc Communication controller and method of transforming information
KR20050060766A (ko) * 2003-12-17 2005-06-22 엘지전자 주식회사 멀티포인트 방식 hdlc 버스의 에러 검출 및 복구 방법
CN101146102A (zh) * 2007-10-16 2008-03-19 深圳国人通信有限公司 Rru网络中hdlc数据下行、上行的方法及通讯装置
CN102394719A (zh) * 2011-09-21 2012-03-28 浙江铭道通信技术有限公司 基于fpga的多通道hdlc数据处理方法
CN104866452A (zh) * 2015-05-19 2015-08-26 哈尔滨工业大学(鞍山)工业技术研究院 基于fpga和tl16c554a的多串口扩展方法
CN105243039A (zh) * 2015-11-13 2016-01-13 上海斐讯数据通信技术有限公司 一种串口通信系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014579A1 (en) * 2001-07-11 2003-01-16 Motorola, Inc Communication controller and method of transforming information
KR20050060766A (ko) * 2003-12-17 2005-06-22 엘지전자 주식회사 멀티포인트 방식 hdlc 버스의 에러 검출 및 복구 방법
CN101146102A (zh) * 2007-10-16 2008-03-19 深圳国人通信有限公司 Rru网络中hdlc数据下行、上行的方法及通讯装置
CN102394719A (zh) * 2011-09-21 2012-03-28 浙江铭道通信技术有限公司 基于fpga的多通道hdlc数据处理方法
CN104866452A (zh) * 2015-05-19 2015-08-26 哈尔滨工业大学(鞍山)工业技术研究院 基于fpga和tl16c554a的多串口扩展方法
CN105243039A (zh) * 2015-11-13 2016-01-13 上海斐讯数据通信技术有限公司 一种串口通信系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
付新虎: "HDLC协议在通信系统中的应用及其在FPGA中的实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
张文博: "紫光通信硬件平台的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
徐涛: "基于PCI的HDLC协议处理器的设计与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
杨豪 等: "多通道HDLC通信控制器在站间通信的应用", 《无线电工程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489237A (zh) * 2019-08-20 2019-11-22 深圳市丰润达科技有限公司 串口数据接收处理方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN105843759B (zh) 2018-11-20

Similar Documents

Publication Publication Date Title
US6728929B1 (en) System and method to insert a TCP checksum in a protocol neutral manner
CN101930418B (zh) 用于分组信息的多种压缩技术
US8255600B2 (en) Method and system for interlocking data integrity for network adapters
CN105337991B (zh) 一种一体化的报文流查找与更新方法
US7117419B2 (en) Reliable communication between multi-processor clusters of multi-cluster computer systems
CN105515926B (zh) 一种基于fpga的二进制同步通信协议控制器
CN101263464B (zh) 基于帧的数据传送并行处理
US9065626B2 (en) Bit error rate impact reduction
CN103346800B (zh) 一种数据压缩方法及装置
CN109547467A (zh) 媒体数据纠错传输及纠错方法、装置、设备及存储介质
CN111064545B (zh) 基于fpga实现具有spw接口的专网地检装置及方法
CN106160912A (zh) 一种编码方法、相关设备及系统
JP5039292B2 (ja) ネットワークアダプタ、通信システムおよび通信方法
US8738990B2 (en) Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers
WO2014139454A1 (en) System and method for multi-stream compression and decompression
CN110535762A (zh) 用于集成电路的互连网络
US20040015691A1 (en) Frame-level fibre channel CRC on switching platform
CN105874774B (zh) 用于在帧的处理过程中保持计数表的计数表保持装置以及相关的保持方法
CN105072618B (zh) 无线传感器网络中基于校验码的数据可靠性保护方法
CN110519004B (zh) 一种编码方法及相关设备
US20080301537A1 (en) Packet transmission device and packet transmission method
CN105843759A (zh) 一种基于hdlc的多串口通信方法
CN106789620A (zh) 一种SpaceWire通信网路故障恢复方法和系统
CN104471888A (zh) 突发数据块中的空闲块idle的处理方法、设备及系统
US11636061B2 (en) On-demand packetization for a chip-to-chip interface

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant