精华内容
下载资源
问答
  • 异步同步通信数据帧格式

    千次阅读 2020-07-10 13:52:52
    1. 异步通信的特点及信息帧格式: 以起止式异步协议为例,下图显示的是起止式一帧数据的格式: 图1 起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以"起始位"开始,以...
    串口扫盲六:异步通信方式
    </div>
    

    串行通信可以分为两种类型:同步通信、异步通信.

    1. 异步通信的特点及信息帧格式:

    以起止式异步协议为例,下图显示的是起止式一帧数据的格式:

    图1

    起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以"起始位"开始,以"停止位"结束,字符之间没有固定的时间间隔要求.每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位.停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿.

    从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议.

    异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示:

     

    逻辑0

    逻辑1

    正逻辑

    低电平

    高电平

    负逻辑

    高电平

    低电平

    异步通信的信息格式如下边的表所示:

    起始位

    逻辑0

    1位

    数据位

    逻辑0或1

    5位、6位、7位、8位

    校验位

    逻辑0或1

    1位或无

    停止位

    逻辑1

    1位,1.5位或2位

    空闲位

    逻辑1

    任意数量

    注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5.

    例:传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的波形象图2所示那样:异步通信的速率:若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒.

    图2

    2. 异步通信的接收过程

    接收端以"接收时钟"和"波特率因子"决定一位的时间长度.下面以波特率因子等于16(接收时钟每16个时钟周期,使接收移位寄存器移位一次),正逻辑为例说明,如图3所示.

    图3

    1. 开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对"接收时钟"计数.
    2. 当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是"起始位"B,而不是干扰信号.
    3. 接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据.若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0.
    4. 再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据.….,直到全部数据位都输入.
    5. 检测校验位P(如果有的话).
    6. 接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置"帧错误"标志.若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器.若校验错,在状态寄存器中置奇偶错标志.
    7. 本幀信息全部接收完,把线路上出现的高电平作为空闲位.

    当信号再次变为低时,开始进入下一幀的检测.

    3. 异步通信的发送过程

    发送端以"发送时钟"和"波特率因子"决定一位的时间长度.

     

    1. 当初始化后,或者没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量.
    2. 当需要发送时,发送端首先输出逻辑0,作为起始位.
    3. 接着,发送端首先发送D0位,直到各数据位发送完.
    4. 如果需要的话,发送端输出校验位.
    5. 最后,发送端输出停止位(逻辑1).
    6. 如果没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量.如果还有信息需要发送,转入第(2)步.

    对于以上发送、接收过程应注意以下几点:

    1. 接收端总是在每个字符的头部(即起始位)进行一次重新定位,因此发送端可以在字符之间插入不等长的空闲位,不影响接收端的接收.
    2. 发送端的发送时钟和接收端的接收时钟,其频率允许有一定差异,当频率差异在一定范围内,不会引起接收端检测错位,能够正确接收.并且这种频率差异不会因多个字符的连续接收而造成误差累计(因为每个字符的开始(起始位处)接收方均重新定位).只有当发送时钟和接收时钟频率差异太大,引起接收端采样错位,才造成接收错误.
    3. 起始位,校验位,停止位,空闲位的信号,由"发送移位寄存器"自动插入.在接收方,"接收移位寄存器"接收到一帧完整信息(起始,数据,校验,停止)后,仅把数据的各位送至"数据输入寄存器",即CPU从"数据输入寄存器"中读得的信息,只是有效数字,不包含起始位,校验位,停止位信息.
    展开全文
  • 异步通信的数据格式

    千次阅读 2021-02-24 21:47:41
     串口通信是指采用串行通信协议(serialcommunication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。 1.串行通信  在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8...

     串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口。

     串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。

    1.串行通信

      在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送。

      串行通信的数据是逐位传输的,发送方发送的每一位都具有固定的时间间隔,这就要求接收方也要按照发送方同样的时间间隔来接收每一位。不仅如此,接收方还必须能够确定一个信息组的开始和结束。

      常用的两种基本串行通信方式包括同步通信和异步通信。

    1.1串行同步通信

      同步通信(SYNC:synchronous data communication)是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这样就保证了通信双方在发送和接收数据时具有完全一致的定时关系。

      同步通信把许多字符组成一个信息组(信息帧),每帧的开始用同步字符来指示,一次通信只传送一帧信息。在传输数据的同时还需要传输时钟信号,以便接收方可以用时针信号来确定每个信息位。

      同步通信的优点是传送信息的位数几乎不受限制,一次通信传输的数据有几十到几千个字节,通信效率较高。同步通信的缺点是要求在通信中始终保持精确的同步时钟,即发送时钟和接收时钟要严格的同步(常用的做法是两个设备使用同一个时钟源)。

      在后续的串口通信与编程中将只讨论异步通信方式,所以在这里就不对同步通信做过多的赘述了。

    1.2 串行异步通信

    异步通信(ASYNC:asynchronous data communication),又称为起止式异步通信,是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。

    在异步通信中,收发双方取得同步是通过在字符格式中设置起始位和停止位的方法来实现的。具体来说就是,在一个有效字符正式发送之前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。停止位至下一个起始位之间是不定长的空闲位,并且规定起始位为低电平(逻辑值为0),停止位和空闲位都是高电平(逻辑值为1),这样就保证了起始位开始处一定会有一个下跳沿,由此就可以标志一个字符传输的起始。而根据起始位和停止位也就很容易的实现了字符的界定和同步。

    显然,采用异步通信时,发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,可以互不同步。

    下面简单的说说异步通信的数据发送和接收过程。

    1.2.1 异步通信的数据格式

    在介绍异步通信的数据发送和接收过程之前,有必要先弄清楚异步通信的数据格式。

    异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成,如图1所示(该图中未画出奇偶校验位,因为奇偶检验位不是必须有的,如果有奇偶检验位,则奇偶检验位应该在数据位之后,停止位之前)。

     

    (1)起始位起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。
    (2)数据位数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定,一般可以是5位、7位或8位,标准的ASCII码是0~127(7位),扩展的ASCII码是0~255(8位)。传输数据时先传送字符的低位,后传送字符的高位。
    (3)奇偶校验位

    奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。

    举例来说,假设传输的数据位为01001100,如果是奇校验,则奇校验位为0(要确保总共有奇数个1),如果是偶校验,则偶校验位为1(要确保总共有偶数个1)。

    由此可见,奇偶校验位仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,这样做的好处是接收设备能够知道一个位的状态,有可能判断是否有噪声干扰了通信以及传输的数据是否同步。

    (4)停止位停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。
    (5)空闲位空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。

     

    展开全文
  • 同步通信和异步通信

    千次阅读 2019-05-30 16:48:06
    同步通信方式(比如SPI),是把许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为信息)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。...

    一、同步通信和异步通信
    串行通信可以分为两种类型,一种叫同步通信,另一种叫异步通信。

    同步通信方式(比如SPI),是把许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。同步方式下,发送方除了发送数据,还要传输同步时钟信号,信息传输的双方用同一个时钟信号确定传输过程中每1位的位置。见下图所示:
    在这里插入图片描述
    在异步通信方式(比如RS232)中,两个数据字符之间的传输间隔是任意的,所以,每个数据字符的前后都要用一些位来作为分隔位。从下图中可以看到,按标准的异步通信数据格式(叫做异步通信帧格式),1个字符在传输时,除了传输实际数据字符信息外,还要传输几个外加位。具体说,在1个字符开始传输前,输出线必须在逻辑上处于“1”状态,这称为标识态。传输一开始,输出线由标识态变为“0”状态,从而作为起始位。起始位后面为5~8个信息位,信息位由低往高排列,即先传字符的低位,后传字符的高位。信息位后面为校验位,校验位可以按奇校验设置,也可以按偶校验设置,或不设校验位。最后是逻辑的“1”作为停止位,停止位可为1位、1.5位或者2位。如果传输完1个字符以后,立即传输下一个字符,那么,后一个字符的起始位便紧挨着前一个字符的停止位了,否则,输出线又会进入标识态。在异步通信方式中,发送和接收的双方必须约定相同的帧格式,否则会造成传输错误。在异步通信方式中,发送方只发送数据帧,不传输时钟,发送和接收双方必须约定相同的传输率。当然双方实际工作速率不可能绝对相等,但是只要误差不超过一定的限度,就不会造成传输出错。下图是异步通信时的标准数据格式:
    在这里插入图片描述
    比较起来,在传输率相同时,同步通信方式下的信息有效率要比异步方式下的高,因为同步方式下的非数据信息比例比较小。

    展开全文
  • 目录 第一章、简介 第二章、并行通信 第三章、串行通信 ...3.2.2、典型异步通信结构 3.2.3、异步通信其他的结构 3.2.4、CRC校验 3.2.5、异步通信特点 第四章、串口异步通信的工程应用 参考: h...

    目录

    第一章、简介

    第二章、并行通信

    第三章、串行通信

    3.1、同步通信

    3.1.1、同步通信的原理

    3.1.2、同步通信的数据格式

     3.1.3、同步通信特点

    3.2、异步通信

    3.2.1、异步通信的原理

    3.2.2、典型异步通信的帧结构

    3.2.3、异步通信其他的帧结构

    3.2.4、CRC校验

    3.2.5、异步通信特点

    第四章、串口异步通信的工程应用



    参考:

    https://blog.csdn.net/spdian/article/details/71215467

    https://www.cnblogs.com/jason-lu/articles/3171959.html

    https://www.cnblogs.com/ruishuang208/archive/2013/06/11/3132274.html

    https://blog.csdn.net/u013050857/article/details/41252789(重点)

    https://blog.csdn.net/seashine_yan/article/details/71192283

    第一章、简介

             C#提供了SerialPort串口类,可以实现异步通信。事实上,我们对非大量数据、防止阻塞、多个事件触发等等通信方式,还是用异步通信用得比较多。

            C#提供了SerialPort串口类,可以实现异步通信。事实上,我们对非大量数据、防止阻塞、多个事件触发等等通信方式,还是用异步通信用得比较多。

            C#提供了SerialPort串口类,可以实现异步通信。事实上,我们对非大量数据、防止阻塞、多个事件触发等等通信方式,还是用异步通信用得比较多。

    • CPU和外部通信有两种通信方式——并行通信和串行通信。
    • 每个通信系统——几乎包含有并行通信和串行通信。
    • 串行通信——又分为同步通信和异步通信。
    • 对于C#SerialPort类通信——串口同步通信指的是在同步执行时,线程会被阻塞,函数直到执行操作完成后才返回,导致程序的执行效率下降。而在异步执行时,即使操作还未完成,调用的函数也会立即返回,费时的I/O操作在后台执行,这样线程就可以做其它的事情,从而提高了执行效率。参考https://bbs.csdn.net/topics/390616426

     千万别混淆了,请看下面介绍串行通信

    第二章、并行通信

         省略

    第三章、串行通信

        串行通信又可分为同步通信和异步通信两种方式。

    3.1、同步通信

    3.1.1、同步通信的原理

            同步通信就是主机在进行通信前要先建立同步,即要使用相同的时钟频率,发送方的发送频率和接受方的接受频率要同步。 除了时间频率的不同外,异步通信和同步通信之间的区别还是发送数据的表示形式,异步通信一般发送单位是字符,同步通信发送单位是比特流(数据帧),但是这不是绝对的,异步通信有时也使用帧来通信。

    3.1.2、同步通信的数据格式

          同步串行通信的数据格式如下图所示,每帧信息,由3个部分组成:

    • 2个同步字符作为一个信息帧的起始标志。
    • n个连续传送的数据。
    • 2个字节循环冗余校验码(CRC)。

     3.1.3、同步通信特点

            所谓同步通信,是指数据传送是以帧为单位,帧与帧之间、帧内部的位与位之间都同步。同步串行通信的特点可以概括为:

    • 以帧为单位传送信息。
    • 在一个帧内,帧与帧之间无间隔。
    • 因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。
    • 优点:效率高、数据量大。缺点:对时钟要求高、设备昂贵。
    • 应用——通信网中,有大批量数据需要传输。
    • 因为同步方法调用会导致程序流程中途等待,所以采用同步方法的情况下往往会导致程序执行的延迟。同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。https://blog.csdn.net/u013050857/article/details/41252789

    3.2、异步通信

    参考:

    https://blog.csdn.net/u013095415/article/details/83991859 单片机串口调试丢包验证过程记录_已解决

    https://bbs.csdn.net/topics/50049422

    http://bbs.21ic.com/icview-19681-1-1.html?ordertype=1

           异步通信过程:

              异步通信,往往需要考虑几个问题,以保证链路的信息传递的完整性:

    • 握手、心跳包、定时器——必须确保上位机和硬件模块单片机的硬件联通,两者才能正常通信。联通状态就是握手成功状态。那么如何保证两者一直处于握手成功状态呢?上位机可以在线程开个定时器,一直间隔(比如定时间隔1000ms)地给硬件模块单片机发心跳包,单片收到心跳包之后,在1000ms内给上位机回复应答信号,从而确认两者一直是否处于联通状态。
    • 包大小或者说帧大小——一帧往往设置为32字节或64字节。
    • 粘包问题、拆包问题 —— 设定好包的帧头,帧尾,只有收到帧头、帧尾,就认为接收到了一个完整数据包,而不用管包内容的长度,因为不同的包长度可能不同。一个帧必须包含枕头、帧尾
    • 丢包问题——丢包问题可以分为两种。一种情况是,比如一帧 = 32字节,你收到了20个字节,并且收到了帧头、帧尾,那么认为这个包丢失了,需要重传。还有一种情况是,你本来应该按顺序发送图片的A帧、B帧、C帧..........,但是你发现,你只收到了A帧,C帧......,B帧丢失了,没有,就需要重传B帧,没错,这种情况极少发生,但也有可能。实际的工程应用中,一般用第一种情况,就够用了,除非特别应用。
    • 误包(或误码)问题——比如某个包既收到帧头,也收到帧尾,但是包里面的内容发送了错误,采用奇偶校验、异或校验、CRC校验等方式检测出这个包有错误,那么可以重传这个包,也可以用纠错。CRC既可以找错,也可以纠错;奇偶校验等方式只能找错,不能纠错。
    • 异步通信的典型帧结构是起始位、数据位、校验位、停止位。典型的帧长度是10位或11位。若你一帧是10位,发了M = 100个帧,那么一共发送了10*M = 1000位。此时你发送了8*100个数据,有效信息占了20% = 800/1000,冗余信息占了20%。
    • 异步通信,帧结构远远不止3.2.2小结阐述的那样,还有如3.2.3小结所示。
    • 3.2.3小结的帧结构大小,与工作环境有关系、与设备有关系等等。假如一帧太长,比如1024bit,那么一旦发生误码、丢包,我们还需要重传这个包。若是频繁的重传,那么整个信道传输有效的信息(注意是有效的信息,而不是信息)就会降低。参考http://bbs.21ic.com/icview-19681-1-1.html?ordertype=1

    3.2.1、异步通信的原理

            异步通信就是发送方在任意时刻都可以发送数据,前提是接收端已经做好了接受数据的准备(如果没有做好接受准备,数据肯定发送失败),也正是因为发送方的不确定性,所以接收方要时时刻刻的准备好接受数据,同时由于每次发送数据时间间隔的不确定性,所以,在每次发送数据时都要使用明确的界定符来标示数据(字符)的开始和结束位置,可以想象这种通信方式效率很低。虽然异步通信效率低,但是对设备的要求不高,通信设备简单。

    3.2.2、典型异步通信的帧结构

            异步串行通信的数据格式如图所示,每帧信息,由4个部分组成:

    • 1位起始位,规定为低电0。——当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。起始位往往是硬件给一个低电平,不用自己设置。https://bbs.csdn.net/topics/350103040
    • 5~8位数据位,即要传送的有效信息。——当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5,6,7或8位的数据。在字符数据传送过程中,数据位从最低位开始传输。
    • 1位奇偶校验位。——常用的检验方位包括奇偶检验、CRC校验。                                                                                             奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。
    • 1~2位停止位,规定为高电平1。——在奇偶位或数据位之后发送的是停止位,可以是1位、1.5位或2位。停止位是一个字符数据的结束标志。

    (一)、10位异步通信方式

    C#提供的串口类 SerialPort一般的异步通信方式:

    该截图中,起始位==0,数据位==8,检验==none,停止位==1,握手方式==none,就是典型的10位异步通信方式

    (二)、11位异步通信方式

    加上检验位,就是11位了。关于检验的方法

    数据量小:
    1、check sum方式 :将所有的数据按字节加起来,得到一个校验和
    2、异或方式              :将所以数据按字节异或,得到一个校验和。
    3、反码相加              :将所有数据按字节求反码再相加,这也是tcp/ip协议里用的一种办法。
    4、CRC                     :采用CRC8可以计算256字节内的数据校验,CRC既可以找错,也可以纠错

    5、偶检验:如果一组给定数据位中 1 的个数是奇数,那么偶校验位就置为 1,从而使得总的 1 的个数是偶数。

    6、奇检验:如果给定一组数据位中 1 的个数是偶数,那么奇校验位就置为 1,使得总的 1 的个数是奇数。
    数据量大:
    用CRC算法,可以是CRC16,CRC32。CRC既可以找错,也可以纠错。

    3.2.3、异步通信其他的帧结构

        参考https://zhidao.baidu.com/question/288947771.html?sort=11&rn=5&pn=0#wgt-answers

            串行通信中,帧信息一般是根据需要自己约定而确定的。其内容一般是由多个8位单字节数据组成。这是最简单的,但大多数应用中规范的做法一帧信息都会包含:帧头 + 帧长度 + 标志信息 + 内容信息  + 校验信息+帧尾。对于不同的中断,还需要考虑中断地址:
    帧头 + 帧长度 + 中断地址信息 + 标志信息 + 内容信息 + 校验信息 + 帧尾

            我在Socket/TCP通信中,串视频监控每帧的长度915000个字节,帧结构为帧头 + 帧长度 + 信息内容,这样的帧结构与本小节的帧结构类似。

    3.2.4、CRC校验

    参考https://baijiahao.baidu.com/s?id=1608965002019598869&wfr=spider&for=pc 

    (一)、什么是CRC校验?

            CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

    (二)、CRC校验原理

             其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端。当然,这个附加的数不是随意的,它要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除(注意,这里不是直接采用二进制除法,而是采用一种称之为“模2除法”)。到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就已经能整除了),所以结果应该是没有余数。如果有余数,则表明该帧在传输过程中出现了差错。

    模2除法:模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一位借位,所以实际上就是异或。在循环冗余校验码(CRC)的计算中有应用到模2除法。

    (三)、CRC校验步骤

    CRC校验中有两个关键点,一是

    预先确定一个发送送端和接收端都用来作为除数的二进制比特串(或多项式)可以随机选择,也可以使用国际标准,但是最高位和最低位必须为1;二是把原始帧与上面计算出的除数进行模2除法运算,余数作为CRC校验码。

    CRC校验码计算示例:现假设选择的CRC生成多项式为G(X) = X4 + X3 + 1,要求出二进制序列10110011的CRC校验码

    下面是具体的计算过程:

    ①将多项式转化为二进制序列,由G(X) = X4 + X3 + 1可知二进制一种有五位,第4位、第三位和第零位分别为1,则序列为11001

    ②多项式的位数位5,则在数据帧的后面加上5-1位0,数据帧变为101100110000,然后使用模2除法除以除数11001,得到余数。

    ③将计算出来的CRC校验码添加在原始帧的后面,真正的数据帧为101100110100,再把这个数据帧发送到接收端。

    ④接收端收到数据帧后,用上面选定的除数,用模2除法除去,验证余数是否为0,如果为0,则说明数据帧没有出错

    (四)、CRC的应用

            参考https://wenku.baidu.com/view/1836422e66ec102de2bd960590c69ec3d5bbdbd7.html

            在CRC校验中,接收端检查到有一位错误数据后,纠正的方法包括三种:

    • 请求重新发送——当错误发生时请求重传这是一种非常普遍的纠错方式,它适用于任何一种编码传输。
    • 删除数据——删除数据”有些让人不好理解,其实我们可以这样来看,一般的数据传输不是一个两个字节,而是一段连续的数据,如果有一个接收数据出错了,我们把它删除,系统会认为这个数据包在传输过程中已经丢失,这样系统会自动发出重传请求,从而达到纠错的目的。
    • 通过余数的值由接收端自行纠正——因为CRC码是一种纠错码,把接收到的CRC码与生成多项式相除,可以确定错误位置,这时候接收端就可以。

    3.2.5、异步通信特点

            所谓异步通信,是指数据传送以帧为单位,帧与帧间的传送是完全异步的,位与位之间的传送基本上是同步的。异步串行通信的特点可以概括为:

    • 以帧为单位传送信息。
    • 相邻两帧间的间隔是任意长。
    • 因为一个帧中的比特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以。
    • 异步方式特点简单的说就是:帧间异步,帧内部各位同步。
    • 优点:对时钟要求不高、成本低、便宜且容易实现。缺点:数据量小、速率低。
    • 应用——应用于在工业、实际应用中。适用于短距离、速率不高的情况下。
    • 异步调用不阻塞线程,而是把调用塞到线程池中,程序主线程或UI线程可以继续执行。https://blog.csdn.net/u013050857/article/details/41252789

    第四章、串口异步通信的工程应用

          参考:https://zhidao.baidu.com/question/1514688239830907180.html 

           这一章节,我把串口异步通信的工程应用单独拿出来讲解。第三章,虽然讲述的组帧需要考虑的问题,但是,还远远到不到工程的应用。

            串口的工程应用中,我把串口传输的信息分为两种类型,一种是数据信息类型,一种是控制信息类型。

    • 数据信息,数据量往往比较多,甚至是海量,容错率比较高,数据信息帧与帧之间关联性不大,可允许一定的丢帧,不需要丢帧重传——比如实时温度、湿度采集等等,假如有一些帧丢掉了,那对整体影响也不大。
    • 控制信息,数据量往往比较少,容错率比较低,数据信息帧与帧之间关联性大,丢帧需要重传——比如串口操作机器的指令、订单信息等等,一旦这些信息发生了丢包、误包,必须重传。

             那么,如何满足工程中的波特率、误报率、实时性大小的需求?根据波特率B,测试误比特率P1后,根据P1计算你想要的误包率P2,然后计算包大小S。最后,就确定了整体的B/P1/P2/S等等,如图4-1所示。

                                                                                                     图4-1 

    展开全文
  • 异步通信的特点及信息帧格式:      以起止式异步协议为例,下图显示的是起止式一帧数据的格式:         图1     起止式异步通信的特点是:一个字符一个字符地传输...
  • 同步通信与异步通信

    2020-06-24 10:33:10
    异步通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。 c. 发送方可以随时传输数据,而接收方必须在信息到达时准备好接收。 d. 异步通信中,发送端和接收端可以由各自的时钟来...
  • 异步通信方式

    千次阅读 2010-03-16 14:51:00
    1.异步通信的特点及信息帧格式: 以起止式异步协议为例,下图显示的是起止式一帧数据的格式: http://hi.csdn.net/space-3213884-do-album-picid-497605.html图1 起止式异步通信的特点是:一个字符一个字符地...
  • 异步通信和同步通信

    千次阅读 2014-01-19 11:11:30
    同步通信 编辑 ...相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的。但是接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意
  • 同步异步通信

    2017-06-29 10:11:30
    异步通信(ATM):异步传输方式(STM)是按字符一个一个地发送,字符字符间传输间隔是任意的,发送方和接收方的时钟要求没有同步的严格。   同步通信是一种连续串行传送数据的通信方式,一次通信只传送一信息。...
  • 同步通信and异步通信区别

    千次阅读 2017-10-13 10:17:02
    这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。 采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息...
  • 同步通信 VS 异步通信

    万次阅读 2013-08-29 11:51:59
    在描述同步通信与异步通信之前,我们先得搞清串行通信的内涵。串行通信是指计算机主机与外设之间,以及主机系统与主机系统之间数据的串行传输。使用串口进行数据传输时,发送和接收的每一个字符实际上都是一次一位的...
  • 串口通讯—异步通信方式

    千次阅读 2013-03-14 12:33:26
    1.异步通信的特点及信息帧格式: 以起止式异步协议为例,下图显示的是起止式一帧数据的格式: 图1 起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输...
  • 串行异步通信-UART

    千次阅读 2012-09-17 11:05:26
    异步通信的特点及信息帧格式:   以起止式异步协议为例,下图显示的是起止式一帧数据的格式: 起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时...
  • 串口--异步通信和同步通信深入理解

    万次阅读 多人点赞 2017-05-05 17:14:28
    而按照串行数据的时钟控制方式,串行通信又可分为同步通信和异步通信两种方式。 同步和异步大家从名称上就大概知道区别在哪里,简单的说就是主机在相互通信时发送数据的频率是否一样。异步通信就是发送方在任意时刻...
  • 3.异步通信 1.特点 2.那为什么会是这种通信传输格式呢? 4.同步通信 1.特点 2.数据传输格式 5.异步与同步通信的比较  发送数据寄存器TDR和发送移位寄存器:发送寄存器用来保存要发送的数据,一位寄存器用来...
  • 文章目录一、串口通信二、异步通信三、同步通信四、串行通信的传输方向 一、串口通信 1、随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,535
精华内容 5,014
关键字:

异步通信字符帧格式