CN102647252B - 一种串行通信方法 - Google Patents

一种串行通信方法 Download PDF

Info

Publication number
CN102647252B
CN102647252B CN201210084296.0A CN201210084296A CN102647252B CN 102647252 B CN102647252 B CN 102647252B CN 201210084296 A CN201210084296 A CN 201210084296A CN 102647252 B CN102647252 B CN 102647252B
Authority
CN
China
Prior art keywords
frame
data
data block
type
recipient
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
CN201210084296.0A
Other languages
English (en)
Other versions
CN102647252A (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.)
Aerospace Dongfanghong Satellite Co Ltd
Original Assignee
Aerospace Dongfanghong Satellite Co Ltd
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 Aerospace Dongfanghong Satellite Co Ltd filed Critical Aerospace Dongfanghong Satellite Co Ltd
Priority to CN201210084296.0A priority Critical patent/CN102647252B/zh
Publication of CN102647252A publication Critical patent/CN102647252A/zh
Application granted granted Critical
Publication of CN102647252B publication Critical patent/CN102647252B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种串行通信方法,包括:发送方向接收发发送协调帧的步骤;发送方按照协调帧的约定组帧并发送的步骤;接收方按协调帧的约定接收数据帧并进行校验记录错误数据块的步骤;接收方向发送方发送重传请求帧的步骤。采用本发明对串行数据通信的接收方和发送方的数据发送行为和数据帧格式进行协调,提高了串行数据通信的灵活性和通信效率。

Description

一种串行通信方法
技术领域
本发明涉及一种串行通信方法。
背景技术
串行接口作为一种应用广泛的物理层异步通信接口,在星上各下位机和星务中心计算机中均有使用,如用作星上数据通信接口或者用作调试接口等。在这些应用中,通常将两个串口直接相连进行数据的传输。但是由于实际应用中要双向传送多种类型的大量数据,而串口通信一次只能传输一个字节,因此必须自定义数据链路层及应用层协议,来保证数据的可靠和有效传输。一般采用对所传输的同类型数据进行组帧传输方法。
现有串行通信技术中,存在以下问题:
(1)当收发双方进行数据传输时,一般都采用固定帧长来进行数据传输,而由于数据包大小变化范围很大,用固定的帧长对数据包进行拆分时,会引起效率问题。
(2)现有技术中在传输的数据是二进制数据时,数据帧所负载的数据会不可避免的和帧采用的控制字相冲突,传统技术采用了各种编码方法来解决这一问题,但是这将提高发送方和接收方由于对数据的编译码所造成的复杂度。
(3)帧头都采用固定格式字节,为通信过程增加了额外的开销。
发明内容
本发明的技术解决问题是:针对现有技术的不足,提供了一种串行通信方法。本发明对串行数据通信的接收方和发送方的数据发送行为和数据帧格式进行协调,提高了串行数据通信的灵活性
本发明的技术解决方案是:
一种串行通信方法,包括以下步骤:
(1)发送方和接收方通过协调帧约定待传输的数据类型、数据帧长度和数据帧间隔;接收方根据数据类型和数据帧长度确定接收缓冲区;
(2)发送方按照约定的数据帧长度对待传输的数据段拆分为多个连续的数据块;并按照帧头、校验域、数据域、帧尾的帧格式将数据块组成数据帧并发送到接收方;其中,帧头由帧类型和数据类型组成,所述帧类型用于标识当前数据帧为数据块第一帧、数据块中间帧或数据块最后帧;所述数据类型标识数据块所含数据的类型;校验域由填充于数据域中的数据块通过校验算法生成;
(3)接收方按数据帧间隔对数据帧进行接收,并根据步骤(2)中的帧格式提取数据块并存储,并利用校验域对数据块进行校验后记录校验错误的数据块;
(4)当接收方完成对最后一个数据帧的接收后,利用重传请求帧通知发送方重发校验错误的数据块,完成对数据块的传输。
进一步在所述步骤(2)中,发送方将待填充到数据域中的数据块按字节进行拆分;将每个拆分获得的字节的高四位和低四位分别构成两个字节后,填充到数据域。
本发明与现有技术相比具有如下优点:
本发明在传输前,发送方和接收方利用协调帧对待传输的数据类型、数据帧长度和数据帧间隔进行协,从而可以根据待传输的数据内容对数据帧进行设定,更加适应对数据的传输需求,并且针对串行通信的发送方和接收方共用同一信道的情形,发送方和接收发通过预先协调的帧间隔进行数据帧的发送,从而保证了半双工通信无冲突。在传输的过程中,发送方利用帧头对对待传输数据的帧类型和数据类型进行标识,与采用固定格式帧头的方式相比,减少了协议的开销。在数据域,本发明对待填充的数据块进行拆分,通过将一个字节拆分为两个字节的方式避免了每一帧的数据域中数据内容与帧头可能发生冲突从而引起的帧同步错误;接收方在接收到数据帧后对每个数据帧进行校验,但只有整个数据包收完之后才利用重传请求帧要求发送方进行重传,相比每帧重传提高了效率。
附图说明
图1为本发明流程图;
图2为本发明帧格式。
具体实施方式
下面就结合附图对本发明做进一步介绍。
如图2所示为本发明帧格式示意图。在帧格式中,帧头、校验域、数据域和帧尾。
帧头部分:为了减少由于通信协议引入的开销,在帧头部分采用帧类型和数据类型的组合方式,帧类型用于标识当前传输的数据帧为待传输数据块的第一帧、中间帧还是最后帧,在帧类型部分,除数据帧外的三种类型还可以包括用于表示包括协调帧、重传请求帧在内的控制帧的帧类型,;数据类型用于区别数据帧所负载的数据块类型标识,以图2所示长度为8bits的帧头为例,高4位可以为:0xF、0xE、0xD、0xC、0xB五个值中的某一个。其中,0xF标识该帧为协调帧;0xE标识该帧为重传请求帧;0xD标识该帧为数据块的第一帧;0xC标识该帧为数据块的中间帧;0xB标识该帧为数据块的最后一帧。低4位最多可区分16种数据块类型的数据。帧开始的一个字节的高
校验域部分:以图2中4字节长度的校验域为例,可以采用16位CRC校验模式,对数据域部分进行校验,生成多项式为G(X)=X16+X12+X5+1;产生的16位CRC码,被拆分成4个字节,并保持每个字节的高4位为0,而低4位为源数据的相应数字。
数据域部分:对所要传输的二进制数据按字节进行拆分,然后将每个拆分获得的字节的高四位和低四位分别构成两个字节后,填充到数据域。本发明采用的拆分和填充方法为:将要传输的字节char a拆成两个字节b0和b1:其中b0=a&0x0f,而b1=(a>>4)&0xf0。然后将b0和b1分别作为两个字节填充到数据域中。
数据域长度取决于起始通信时协调帧指定的数据长度。数据块的最后一帧的数据域部分可能不够数据块发送起始时协调帧指定的数据长度,这时可以以0xAA填充不满部分。
帧尾部分:每一帧都以0xAA结束。无论该帧是协调帧、重传请求帧,还是数据帧。0xAA为协调帧和重传请求帧提供了界定方法;对于数据帧除了事先约定后的长度外,仍可以0xAA来区分帧。
下面进一步结合图1所示的流程图对本发明的方法进行介绍。
(1)发送方和接收方通过协调帧约定待传输的数据类型、数据帧长度和数据帧间隔;接收方根据数据类型和数据帧长度确定接收缓冲区。协调帧用于发送方通知接收方数据块类型,及数据帧长度。协调帧的帧头的高4位按上述的0xF进行填充,低4位填充待传输的数据块类型(取值从0x0~0xF);数据域部分指定接下来的数据块传输帧数据域长度可取值(从0到255,即从0x00~0xFF),这个长度值同样按照对数据域字段的拆分和填充规则将长度值拆分为两字字节后再进行填充。
(2)发送方按照约定的数据帧长度对待传输的数据段拆分为多个连续的数据块组成数据帧。对每个数据帧均按照帧头、校验域、数据域、帧尾的帧格式将数据块组成一个完整的数据帧并发送到接收方。其中,帧头按照上述对数据帧的填充规则进行填充,所述帧类型用于标识当前数据帧为数据块第一帧、数据块中间帧或数据块最后帧;所述数据类型标识数据块所含数据的类型;校验域由填充于数据域中的数据块通过校验算法生成。
(3)接收方按数据帧间隔对数据帧进行接收,并根据步骤(2)中的帧格式提取数据块并存储,并利用校验域对数据块进行校验后记录校验错误的数据块;
(4)当接收方完成对最后一个数据帧的接收后,利用重传请求帧通知发送方重发校验错误的数据块,完成对数据块的传输。在接收方接收完每个数据帧内容时会对该帧进行校验(利用校验域中的CRC值),如果错误接收方会做一个标识,等到整个数据块的数据传输完成后,接收方将数据块中需要重传的数据帧标号(接收方和发送方均会维护两个数据块缓冲区,这个标号在传输帧中没有给出,但是对发送实体和接收实体均有自己的计数器来实现)加入重传请求帧的数据域中,传给发送方,其字节拆分方式仍同上所述。如没有数据帧需要重传,仍要发送此帧,但是数据域没有任何值。
本发明未详细说明部分属本领域技术人员公知常识。

Claims (1)

1.一种串行通信方法,其特征在于包括以下步骤:
(1)发送方和接收方通过协调帧约定待传输的数据类型、数据帧长度和数据帧间隔;接收方根据数据类型和数据帧长度确定接收缓冲区;
(2)发送方按照约定的数据帧长度对待传输的数据段拆分为多个连续的数据块;并按照帧头、校验域、数据域、帧尾的帧格式将数据块组成数据帧并发送到接收方;其中,帧头由帧类型和数据类型组成,所述帧类型用于标识当前数据帧为数据块第一帧、数据块中间帧或数据块最后帧;所述数据类型标识数据块所含数据的类型;校验域由填充于数据域中的数据块通过校验算法生成;
(3)接收方按数据帧间隔对数据帧进行接收,并根据步骤(2)中的帧格式提取数据块并存储,并利用校验域对数据块进行校验后记录校验错误的数据块;
(4)当接收方完成对最后一个数据帧的接收后,利用重传请求帧通知发送方重发校验错误的数据块,完成对数据块的传输;
在所述步骤(2)中,发送方将待填充到数据域中的数据块按字节进行拆分;将每个拆分获得的字节的高四位和低四位分别构成两个字节后,填充到数据域。
CN201210084296.0A 2012-03-26 2012-03-26 一种串行通信方法 Active CN102647252B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210084296.0A CN102647252B (zh) 2012-03-26 2012-03-26 一种串行通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210084296.0A CN102647252B (zh) 2012-03-26 2012-03-26 一种串行通信方法

Publications (2)

Publication Number Publication Date
CN102647252A CN102647252A (zh) 2012-08-22
CN102647252B true CN102647252B (zh) 2014-11-19

Family

ID=46659845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210084296.0A Active CN102647252B (zh) 2012-03-26 2012-03-26 一种串行通信方法

Country Status (1)

Country Link
CN (1) CN102647252B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI504215B (zh) * 2013-08-20 2015-10-11 Tatung Co 資料傳輸系統及方法
CN104102169A (zh) * 2014-06-16 2014-10-15 福建睿能科技股份有限公司 纺织、机控设备及控制系统、控制及驱动装置、通讯方法
CN105703875B (zh) * 2014-11-25 2020-08-07 南京中兴新软件有限责任公司 一种消息传输的方法,设备和系统
CN104767590A (zh) * 2015-04-08 2015-07-08 江苏飞尚安全监测咨询有限公司 一种串行通信的可靠数据传输和控制方法
CN105162734B (zh) * 2015-08-05 2018-08-28 武汉森岩科技有限公司 基于Zigbee网络的多源数据传输系统
CN106452660A (zh) * 2015-08-06 2017-02-22 鸿富锦精密工业(深圳)有限公司 数据传送系统及方法
CN105827367A (zh) * 2016-05-06 2016-08-03 深圳市国华光电研究院 一种无线数据传输的方法及系统
CN107257270B (zh) * 2017-05-31 2020-03-10 张超 基于混合自动重传请求的数据传输方法及系统
CN108418820B (zh) * 2018-02-28 2021-07-30 重庆零壹空间航天科技有限公司 串行数据的接收方法及装置
CN108512785B (zh) * 2018-04-13 2020-12-25 南京优米亚信息科技有限公司 一种数据传输协议方法
CN108737026B (zh) 2018-05-08 2020-07-03 深圳市心流科技有限公司 数据传输方法、装置及计算机可读存储介质
CN110108260A (zh) * 2019-04-11 2019-08-09 昆明理工大学 一种基于LoRa的智能铅鱼数据采集装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1392706A (zh) * 2002-08-13 2003-01-22 北京长城鼎兴网络通信技术有限公司 一种利用串行总线实现多点通信的方法
CN101764730A (zh) * 2009-12-18 2010-06-30 航天东方红卫星有限公司 一种can总线数据传输方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110434A1 (en) * 2001-12-11 2003-06-12 Amrutur Bharadwaj S. Serial communications system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1392706A (zh) * 2002-08-13 2003-01-22 北京长城鼎兴网络通信技术有限公司 一种利用串行总线实现多点通信的方法
CN101764730A (zh) * 2009-12-18 2010-06-30 航天东方红卫星有限公司 一种can总线数据传输方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于特定帧格式的串行端口通信的研究;王志敏等;《计算机工程》;20030131;第29卷(第1期);第209-211页 *
王志敏等.基于特定帧格式的串行端口通信的研究.《计算机工程》.2003,第29卷(第1期),第209-211页. *

Also Published As

Publication number Publication date
CN102647252A (zh) 2012-08-22

Similar Documents

Publication Publication Date Title
CN102647252B (zh) 一种串行通信方法
US20210203518A1 (en) Method for sending/receiving data in a wireless packet communication system in which there is simultaneous communication with various terminals
US8397272B2 (en) Multi-stream digital display interface
CN100521654C (zh) 一种同步帧在ip网络上传输的方法及用于传输的网络设备
CN108989708A (zh) 通用多媒体接口的低速信号光电转换模块
JP2014528662A5 (zh)
US9871608B1 (en) Methods and apparatus for aggregation of multiple pulse code modulation channels into a signal time division multiplexing stream
CN105701053B (zh) 串行数据发送、接收方法及装置
CN109905205B (zh) 数据发送、接收的方法及设备、数据传输方法及系统
CN101977182B (zh) 一种数字电影传输方法、系统和设备
US11438098B2 (en) Data transmission method, sending apparatus, and receiving apparatus
GB2471971A (en) System and method for transferring information through a trusted network
CN101860467A (zh) 一种专用绞线式列车总线控制装置
CN102892142B (zh) 自适应选择中继方案的中继传输系统及方法
CN201307864Y (zh) 一种基于1394接口的数据隔离转发系统
US20180146077A1 (en) Method and apparatus for determining processing mode for data packet
WO2008001254A1 (en) Method and device for data packing
CN104796653B (zh) 基于fpga实现的在lpdt模式下传输mipi信号的方法和装置
CN104216958A (zh) 基于结构化数据的传输方法及装置
TW200942737A (en) Method and apparatus for repeating illumination information on a bus structure
CN102158282B (zh) 光纤纵差保护装置及其同步通信方法
CN111385058A (zh) 一种数据传输的方法和装置
WO2017016304A1 (zh) 一种数据传输方法、装置及计算机可读介质
CN103825682B (zh) 一种高效快速的wtb多播消息数据传输方法
CN105227544B (zh) 实现不同协议报文转换的装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant