CN102647252B - 一种串行通信方法 - Google Patents
一种串行通信方法 Download PDFInfo
- 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
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)中,发送方将待填充到数据域中的数据块按字节进行拆分;将每个拆分获得的字节的高四位和低四位分别构成两个字节后,填充到数据域。
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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030110434A1 (en) * | 2001-12-11 | 2003-06-12 | Amrutur Bharadwaj S. | Serial communications system and method |
-
2012
- 2012-03-26 CN CN201210084296.0A patent/CN102647252B/zh active Active
Patent Citations (2)
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)
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 |