CN114372016B - 一种基于帧同步码加调制的异步串行通信方法 - Google Patents
一种基于帧同步码加调制的异步串行通信方法 Download PDFInfo
- Publication number
- CN114372016B CN114372016B CN202111616359.8A CN202111616359A CN114372016B CN 114372016 B CN114372016 B CN 114372016B CN 202111616359 A CN202111616359 A CN 202111616359A CN 114372016 B CN114372016 B CN 114372016B
- Authority
- CN
- China
- Prior art keywords
- frame
- data
- synchronization code
- communication
- frame synchronization
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 88
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000001360 synchronised effect Effects 0.000 claims abstract description 10
- 230000008859 change Effects 0.000 claims abstract description 8
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明涉及一种基于帧同步码加调制的异步串行通信方法,一种异步串行通讯中,收发双方消息同步机制,该方法以若干数据帧为一个周期,发送方周期性地对数据帧的帧同步码做更改。接收方以同样的周期和序列检测帧同步码。因为数据帧的数据域中不会出现以同样周期变化的数据,所以避免了一定条件下,因误码导致在数据域中寻找到伪同步码,且不可恢复通讯的可能性。此处将这种周期变化帧同步码的方法称为帧同步码加调制。本发明不同于现有通讯机制中,为避免无法恢复的伪同步而采取的控制时间间隔或转码方法,在某些应用场合,实施更为简便。
Description
技术领域
本发明涉及一种基于帧同步码加调制的异步串行通信方法,属于通信技术领域。
背景技术
数字通讯分并行通讯和串行通讯,对于远距离的通讯往往采用串行通讯。串行通讯分为同步串行和异步串行通讯。同步串行通讯,收发双方采用同一时钟源做位同步,发送方在发送数据的同时发送随路时钟,如I2C,SPI等。异步串行通讯,只有数据通道,接收方根据数据特点恢复出对应的位同步时钟,如计算机串口通讯,RS-422串行通讯,以太网,USB,及无线数字通讯等。
现代异步串行通讯中,收发双方通常是以数据帧的形式做数据交换。收发双方需要在协议中定义一种或多种数据帧格式。所以,通讯中除了位同步外,还要实现帧同步或称包同步,即接收方应能找到每个数据帧的起始。
实现帧同步的方法,是使用一个特殊的位元序列或字符串作为数据帧的帧同步码(也叫包同步码,帧头或包头),结合数据帧长度信息(包括定长和变长)来完成。接收方在收到帧同步码后,根据帧长度收下后续数据。接着再次寻找帧同步码,依次执行此过程。
多址通讯时,接收终端根据地址信息抛弃非本机的数据帧;点点对通讯时,保留所有的数据帧;非终端的交换机则根据地址将数据帧存储转发。但无一例外的要执行数据帧同步的过程。
当前的通讯系统,位同步通常由物理层完成,交付上层的数据已经是同步好的字节或字,但各层仍需要完成各自的帧同步。
目前许多常用的协议,如TCP/IP协议,USB通讯协议等已经通过检错,应答,重发等方式保证了通讯数据的完整性,通讯链路可以认为无误码。用户的通讯协议构建在这类协议上层,层间的数据交付发生在本地,发生错误的概率几乎为零。所以用户的通讯协议正常使用帧同步码加帧长度就可以在一个无误码的链路上完成数据帧同步。
现实中,尤其是工业领域,大量的通讯是轻量化的简单连接,如最常见的RS-422串行通讯,底层协议只提供了字节同步(UART接口),不能保证数据传输链路无误码。用户构建自己通讯协议时,就需要考虑传输链路有误码概率的情况下实现数据帧同步。
以下RS-422串口通讯的数据帧为例,分析数据传输误码对帧同步的影响:
图1所示,数据帧使用两个字节“0x12和“0x34”作为帧同步码,两个字节作为帧长度,N字节的数据作为数据域内容。帧长度字段不一定存在,如果是固定长度的数据帧通讯,帧长度字段不存在。如果是可变长度的数据帧通讯,也可能由类型码等字段隐含表达了帧长度的信息。
正常的通讯中,发送方按图1所示格式发送数据帧。接收方在检测到连续的两个字节“0x12和“0x34”后,根据帧长度接受后续字节。一帧数据接收到后,后续两个字节就应该是下一帧的帧同步码。
串口通讯的误码包括错位,丢位和多位。对于UART串口,上述3种错误将表现为字节错误,丢字节和多字节。错误如果发生在数据域,对数据帧同步没有影响,其纠检错方法不是本文讨论内容。如果错误发生在帧同步码,那么接收端就没有如期接到同步字节,将对之后接收到的字节,逐字节判断,直到找到连续的“0x1234”。同样,丢字节的情况也会让下一帧错过帧同步头,从而在后续数据中寻找“0x1234”。多字节会让接收方提早开始判断帧同步码。
由此可知,帧同步码出现误码或传输丢字节,将会丢失同步,导致接收方在数据域中寻找同步字段。根据数据域的数据性质不同,其结果也不同。
如果数据域中的数据是随机且变化的(如图像数据,温度数据等),图1中数据域中出现帧同步码的概率为P(约为1-(65535/65536)^N)。如果数据域没有出现与帧同步码相同的字段,则丢失一帧有效数据,之后再次找到真实的帧同步码,恢复通讯。一旦数据域出现与帧同步码相同的字段,将导致接收方完成一次伪同步,并获取一帧无效数据。但之后,再次伪同步的概率仍是P。连续两次收到错误帧的概率小于P×P,连续3次伪同步的概率则更低。由此可知错误是不可能持续的。通讯最终能够恢复,丢失的数据帧作为恢复同步开销,可以根据数据帧长度,帧同步码长度,计算得到。
如果数据域中存在比较固定的数值(如控制参数,通讯地址等),一旦丢失同步,则要看固定数值中是否存在于帧同步码相同的字段。如果存在相同字段,且长时间不变,则有通讯无法恢复的可能。分析如下:
先考虑变长数据帧的情况,伪同步接收的数据帧的帧长度字段也是伪帧长度,如果是随机的,下一次找到真实帧同步码的概率为50%。一旦找到真帧同步码,通讯恢复。但如果伪同步所对应的帧长度字段数值固定为真实帧长的整倍数,则通讯无法恢复。
再考虑定长数据帧的情况,如果数据域存在固定的与帧同步码相同的字段,一旦丢失同步,通讯无法恢复。图2描述了这种无法恢复真实同步的情况。
在数据通讯的实际应用中,误码和丢失数据是允许的。如果丢失一部分数据可以容忍则直接丢弃错误帧,否则要设计纠检错机制保证数据完整性。但是通讯中断后不能恢复是不被允许的,一个不能恢复同步的通讯机制就是错误的设计。
虽然可以通过加长帧同步码长度,减少帧同步码重复的概率,但仍存在理论上通讯中断的可能,而且增加帧同步码长度,也牺牲了通讯编码效率。
实际工程中,为避免这种丢失同步后不能恢复的情况,通常采取如下两种方式保证数据帧同步。
一种方式是设置了通讯接收间隔,两个数据帧之间发送间隔要大于一个时间,而数据帧内的数据发送间隔要小于一个时间。接收方取一个时间阈值,当长时间没有收到数据,或短时间接收到多帧数据时,接收方自动结束一帧数据的接收,开始重新寻找帧同步码。
另一种方式是保证帧同步码不会出现在数据帧中的其他数据重复。如使用转码方式或ASCII码通讯。
这两种方式,第一种需要通讯的收发双方采用时间控制,对通讯控制器(无论是CPU还是FPGA)都不够灵活。
第二种方式,牺牲了通讯编码的效率,实施起来也有一定的工程开销。
总之,对现有技术存在的缺点和不足是只通用的问题和传统的解决方式,会出现通信丢失同步后无法恢复的情况,且工程实现开销大。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种基于帧同步码加调制的异步串行通信方法,解决了现有通信方法可能出现的通信丢失同步后无法恢复的情况,且相对其他方式,工程实现的开销最小。
本发明采用的技术方案为:一种基于帧同步码加调制的异步串行通信方法,所述的方法为使用周期性变化的帧同步码的方法称为帧同步码加调制,在异步串行通讯中,以若干个数据帧(大于等于2)为一个周期,对发送数据帧的帧同步码做周期性变换,接收方以同样的周期和变化序列识别帧同步码,以完成收发的数据帧同步。
所述方法具体实现步骤如下:
步骤一,根据通信需求,拟定消息格式,先确定数据部分长度,再根据数据部分长度确定需要的帧同步码长度;
步骤二,根据需求确定帧同步码变化的周期n,以及帧头的n种格式[A1…An];每n个数据帧变化一轮,n>=2;
步骤三,开始通信,发送方第一次发送消息时,以A1作为帧头发送一个数据帧;
步骤四,发送方继续发送消息,第二次发送消息时,以A2作为帧头发送数据帧;第n次发送数据时以An作为帧头;第n+1发送数据时以A1作为帧头,以此类推,每n个数据帧,n个帧同步码循环使用一次;
步骤五,接收方在第一次接收消息时,搜索帧头A1,当搜索到A1后,接收对应长度的数据;
步骤六,在接收完帧头A1的数据之后,搜索帧头A2并接收数据,以此类推。在搜索帧头An并接收数据之后,搜索帧头A1并接收数据。
所述帧同步码是比特序列,或是字节序列或字序列,根据所处通讯协议层,下层是否完成字节同步或字同步而定。
因为现实中,数据域的数值,几乎不可能出现与帧同步码相同的周期变化。帧同步码加调制避免了异步串行通讯误码导致通讯无法恢复的可能性。
这里,将这种使用周期性变化的帧同步码的方法称为帧同步码加调制。
本发明与现有技术相比的优点在于:
(1)现有技术通常会增大通讯开销或降低通讯灵活性解决问题,如上文所述时间间隔方法和特殊编码方法。本发明提供的帧同步码加调制的方法可以使通讯效率上更高,无时间间隔的限制。
(2)本发明不同于现有通讯机制中,为避免无法恢复的伪同步而采取的控制时间间隔或转码方法,在某些应用场合,解决了伪帧同步码通信丢失的问题,且相对传统方法更为简单,在工程实施上便捷有效。
附图说明
图1为RS-422串口通讯数据帧帧头加数据传输方式示意图;
图2为本发明需要解决问题的示意图;
图3为本发明应用结构示意图;
图4为本发明通讯方式示意图;
图5为本发明恢复同步方式示意图。
具体实施方式
下面结合附图以及具体实施方式进一步说明本发明。
本发明提供一种异步串行通讯中,收发双方消息同步机制。该方法以若干数据帧(大于等于2)为一个周期,发送方周期性地对数据帧的帧同步码做更改。接收方以同样的周期和帧同步码序列检测帧同步码。
因为数据帧的数据域中不会出现以同样周期变化的数据,所以避免了一定条件下,因误码导致在数据域中寻找到伪同步码,且不可恢复通讯的可能性。此处将这种周期变化帧同步码的方法称为帧同步码加调制。
本发明用于一个卫星相机载荷中,主控器与相机之间的RS-422通讯。结构如图3所示。主控器中CPU使用UART接口,相机自建UART接口,双方以RS-422差分传输线连接,波特率115200bps,数据位为8bit,停止位为1bit。主控器每秒向相机发送一帧数据,内容包括:时间,卫星姿态,位置及相机设置参数。数据帧长度固定为100字节,帧同步码2字节,为十六进制“1234”,数据域98字节。其中一部分时间,位置等数据是不断变化的,但也有一部分参数是长期不变的。如果固定参数出现连续的“1234”,且当通讯出现误码时,就有丢帧且无法恢复通讯的可能,为此将帧同步码做简单调制。具体方式是帧同步码变化周期为2,交替使用“1234”,“2234”。接收方初始接收“1234”为帧头的数据帧,之后接收“2234”为帧头的数据帧,再接收“1234”为帧头的数据帧。如此“1234”-“2234”-“1234”-“2234”……循环发送接收,如图4所示。因为数据帧的数据域中没有以这种频率交替变换的数值,所以不存在与帧头长期冲突的可能。
数据的恢复过程如图5所示,当首个帧头0x1234出现错误时,接收方会将数据中的0x1234误识别为帧头,接着再接收之后的B个字节。此后,接收方会继续搜索帧头0x2234,因此,会跳过第二个错误帧头0x1234,也跳过下一个正确的帧头0x1234,直到下一个0x2234帧头时,通信恢复同步,表示此方法有效。
本发明的实际效果测试模拟了发送数据帧丢字节,且在数据域中填充与帧同步码相同的字节序列(“1234”,“2234”)。实验表明,不使用调制帧同步码时,出现通讯中断,无法恢复;使用调制帧同步码,通讯自动恢复。
Claims (2)
1.一种基于帧同步码加调制的异步串行通信方法,其特征在于:所述的方法为使用周期性变化的帧同步码的方法称为帧同步码加调制,在异步串行通讯中,以若干个数据帧为一个周期,对发送数据帧的帧同步码做周期性变换,接收方以同样的周期和变化序列识别帧同步码,以完成收发的数据帧同步;所述若干个数据帧为大于等于2个;
所述方法具体实现步骤如下:
步骤一,根据通信需求,拟定消息格式,先确定数据部分长度,再根据数据部分长度确定需要的帧同步码长度;
步骤二,根据需求确定帧同步码变化的周期n,以及帧头的n种格式[A1…An];每n个数据帧变化一轮,n>=2;
步骤三,开始通信,发送方第一次发送消息时,以A1作为帧头发送一个数据帧;
步骤四,发送方继续发送消息,第二次发送消息时,以A2作为帧头发送数据帧;第n次发送数据时以An作为帧头;第n+1发送数据时以A1作为帧头,以此类推,每n个数据帧,n个帧同步码循环使用一次;
步骤五,接收方在第一次接收消息时,搜索帧头A1,当搜索到A1后,接收对应长度的数据;
步骤六,在接收完帧头A1的数据之后,搜索帧头A2并接收数据,以此类推,在搜索帧头An并接收数据之后,搜索帧头A1并接收数据;
所述方法用于卫星相机载荷中,主控器与相机之间的RS-422通讯;主控器中CPU使用UART接口,相机自建UART接口,双方以RS-422差分传输线连接,波特率115200bps,数据位为8bit,停止位为1bit;主控器每秒向相机发送一帧数据,内容包括:时间,卫星姿态,位置及相机设置参数;数据帧长度固定为100字节,帧同步码2字节,为十六进制“1234”,数据域98字节;其中时间,位置数据是不断变化的;固定参数出现连续的“1234”,且当通讯出现误码时,将帧同步码做简单调制;具体方式是帧同步码变化周期为2,交替使用“1234”,“2234”;接收方初始接收“1234”为帧头的数据帧,之后接收“2234”为帧头的数据帧,再接收“1234”为帧头的数据帧;如此“1234”-“2234”-“1234”-“2234”……循环发送接收。
2.根据权利要求1所述的基于帧同步码加调制的异步串行通信方法,其特征在于:所述帧同步码是比特序列,或是字节序列或字序列,根据所处通讯协议层,下层是否完成字节同步或字同步而定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616359.8A CN114372016B (zh) | 2021-12-27 | 2021-12-27 | 一种基于帧同步码加调制的异步串行通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616359.8A CN114372016B (zh) | 2021-12-27 | 2021-12-27 | 一种基于帧同步码加调制的异步串行通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114372016A CN114372016A (zh) | 2022-04-19 |
CN114372016B true CN114372016B (zh) | 2023-09-29 |
Family
ID=81141196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111616359.8A Active CN114372016B (zh) | 2021-12-27 | 2021-12-27 | 一种基于帧同步码加调制的异步串行通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114372016B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08139715A (ja) * | 1994-11-15 | 1996-05-31 | Oki Electric Ind Co Ltd | フレーム同期通信方法 |
CN105099648A (zh) * | 2015-07-13 | 2015-11-25 | 中国电子科技集团公司第十研究所 | 提高数传接收机帧同步锁定门限的方法 |
CN106301685A (zh) * | 2016-08-15 | 2017-01-04 | 中车株洲电力机车研究所有限公司 | 一种异步串行通讯方法及系统 |
CN110515881A (zh) * | 2019-08-23 | 2019-11-29 | 西安爱生技术集团公司 | 一种串口通信帧的同步系统及同步高性能方法 |
CN112532371A (zh) * | 2020-11-30 | 2021-03-19 | 东方红卫星移动通信有限公司 | 并行帧同步方法、发送端、接收端及低轨卫星通信系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102255796B (zh) * | 2006-02-17 | 2015-02-11 | 标准微体系有限公司 | 利用以以太网编码违例区分的帧和分组结构在以太网传输线上传递不同类型的流数据和分组数据的系统和方法 |
-
2021
- 2021-12-27 CN CN202111616359.8A patent/CN114372016B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08139715A (ja) * | 1994-11-15 | 1996-05-31 | Oki Electric Ind Co Ltd | フレーム同期通信方法 |
CN105099648A (zh) * | 2015-07-13 | 2015-11-25 | 中国电子科技集团公司第十研究所 | 提高数传接收机帧同步锁定门限的方法 |
CN106301685A (zh) * | 2016-08-15 | 2017-01-04 | 中车株洲电力机车研究所有限公司 | 一种异步串行通讯方法及系统 |
CN110515881A (zh) * | 2019-08-23 | 2019-11-29 | 西安爱生技术集团公司 | 一种串口通信帧的同步系统及同步高性能方法 |
CN112532371A (zh) * | 2020-11-30 | 2021-03-19 | 东方红卫星移动通信有限公司 | 并行帧同步方法、发送端、接收端及低轨卫星通信系统 |
Non-Patent Citations (2)
Title |
---|
数字通信中帧同步检出方式的性能分析(一);陈宜元,韩光熙;中国空间科学技术(第02期);第1-9页 * |
陈宜元,韩光熙.数字通信中帧同步检出方式的性能分析(一).中国空间科学技术.1986,(第02期),第1-9页. * |
Also Published As
Publication number | Publication date |
---|---|
CN114372016A (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102519513B1 (ko) | 플렉시블 이더넷에서 데이터를 전송하는 방법 및 디바이스 | |
EP1665618B1 (en) | Radio network communication system and method | |
JPS62169537A (ja) | 送信エラ−の検出及び回復方法 | |
CN108512785B (zh) | 一种数据传输协议方法 | |
EP1410592A1 (en) | Method and system for encoding data for transmission over a serial link | |
WO2018171641A1 (zh) | 网络管理信息的收发方法、装置、发送设备和接收设备 | |
US7860108B2 (en) | Methods and devices for transferring and for recovering data packets | |
CN101488827A (zh) | 实现数据报错的方法和装置 | |
CN104917590A (zh) | 一种信道编码纠错方法 | |
JP5509438B2 (ja) | データ転送装置及びデータ転送システム | |
CN118041504A (zh) | 基于rs422电平标准的四线制同步串行口的通讯方法 | |
CN114372016B (zh) | 一种基于帧同步码加调制的异步串行通信方法 | |
CN109428676B (zh) | 一种前向纠错编解码模式的同步方法及装置 | |
CN111385058A (zh) | 一种数据传输的方法和装置 | |
CN107911206B (zh) | 一种面向比特的同步通信方法 | |
CA2152177C (en) | Method and system for synchronizing an encoder and a decoder when an error is detected upon transmission of encoded data on communication networks | |
CN114584264B (zh) | 具有物理层重传和实时传输功能的视频传输系统 | |
CA2307485A1 (en) | Efficient automatic repeat request method using variable length sequence numbers | |
EP1890453A2 (en) | Transmission of Control Information by Data Polarity Inversion | |
US9008077B2 (en) | Method for quick map recovery in case of error in MoCA | |
CN109219083A (zh) | 一种鲁棒性头压缩模式转换中的优化方法及系统 | |
CN111713046B (zh) | 用于串行通信网络的用户站和用于校正串行通信网络的消息中的各个错误的方法 | |
KR101543029B1 (ko) | 무선 네트워크에서의 코드 패킷을 이용한 통신 방법 | |
US6687318B1 (en) | Method and communication system for synchronizing two devices with a predeterminable data transmission method | |
US9525650B2 (en) | Method and system for updating reorder depth in robust header compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |