精华内容
下载资源
问答
  • 串口通信基本概念(一)——串行与并行通信,同步与异步通信 一、串口通信简介 串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,...

    一、串口通信简介

    串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

    串口通信中比较重要的参数包括波特率、数据位、停止位及校验位,通讯双方需要约定一致的数据格式才能正常收发数据。串行通讯可以进一步分为单工、半双工和全双工三种。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。它们的主要区别在于其各自的电平范围不相同。

    二、串行和并行通信

    刚说到串口通信是通过接口进行串行通讯。那么什么是串行通讯呢?

    1 串行通信:

    串行通信:计算机与I/O设备之间,同一时刻,只能传输一个bit位的信号。传输数据按顺序依次一bit位接一bit位进行传输,通常数据在一根数据线或一对差分线上传输。

    比如,当传输1字节信息时,并行通讯有8根信号线实现同时传输,假如耗时为1T,而串行是在一根信号线上,把数据排成一行、一位一位传输,需要传8次,因此耗时为8T。因此可总结出二者的特性:

    2 并行通信:

    并行通信是和串行通信相对的数据传输的方式。

    并行通信:计算机与I/O设备之间,通过多条传输线,可以同时传输多个bit位的信号。

    • 并行通讯的效率高,但是成本高、对信号线路要求高,一般应用于快速设备之间近距离传输,譬如CPU 与存储设备、存储器与存储器、主机与打印机等都采用并行通讯。

    • 串行通讯效率较低,但是对信号线路要求低,抗干扰能力强,同时成本也相对较低,一般用于计算机与计算机、计算机与外设之间远距离通讯。

    3 串口通信和串行通信的区别

    串口通信和串行通信的区别在于:串行通信是一种概念,串口通信是一种具体的通信手段。

    串行通信是一种概念,是指一比特一比特的收发数据,相对于并行通信可同时传输多个bit位而言。包括一般的的串口通信、I2C、SPI等等。

    串口通信是外设和计算机间的一种通信手段,是相对于以太网通信等通信手段而言的。

    二者一个是一种概念,一个是一种实际的通信方式。

    三、同步和异步通信

    在设备之间传送数据,不管是同步通信还是异步通信,都是为了保证数据被正确的发送和接收,即发送方和接收方的“同步”。即接收方可以确定什么时候发送方开始或者结束发送数据以及每一个数据单位(例如bit,字符)的开始和结束的位置,这样接收方才能在正确的时间对发送方的数据进行采样,以接收正确的数据,否则接收到的数据就是错误的。

    根据“同步方式”的不同,由此分出两种同步信号得方法:
    (1)同步通信(比特位同步)
    (2)异步通信(字符间同步,字符内比特位异步)

    同步通信会利用一根额外的信号线,其实也就是时钟信号线,它往往是发送设备提供的时钟信号,发送设备和接收设备在发送设备提供的同一时钟频率下完成同步。(实际上,基本所有的并行通信采用同步通信。)

    异步通信没有额外的一根信号线用于同步,接收者和发送者使用各自的时钟信号,接收者根据与发送者按事先约定的规来确定数据发送的开始与结束以及数据单位的持续时间。例如异步串行通信中,一般接收双方会确定一致的停止位,数据位的个数、波特率的大小以及是否采用奇偶校验位。接收方可以根据这些信息推测出准确的数据采样时间以接收正确的数据。如果是同步通信则不需要这些额外的用于同步的数据位(开始位,结束位,奇偶校验位)。

    1 同步通信

    同步通信要求发送和接收双方在进行数据传输时,保持完全的同步,因此,要求发收双方必须使用同频同相的同步时钟信号。只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后在同步时钟的控制下逐位发送/接收。这样,信息传输完全可以确定传输过程中每1位的位置。因此同步通信是一种比特同步通信技术。

    如下图所示:
    在这里插入图片描述

    同步通信是一种连续传送数据的通信方式,一次通信传送一帧数据,每个信息帧用同步字符作为开始,字符间不加标识位。(这里的数据帧比异步通信中的字符帧要大得多,通常含有若干个数据字符)。当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。

    同步通信以数据帧为单位,其格式包括:同步字符+数据+校验字符CRC。

    (a)单同步数据帧结构

    同步字符数据字符1数据字符2数据字符3数据字符nCRC1CRC1

    (b)双同步数据帧结构

    同步字符1同步字符2数据字符1数据字符2数据字符nCRC1CRC1

    没有数据发送时,接收方要时刻做好接收数据的准备。在每组信息(通常称为帧)传输的开始,发送方先发送一个或两个特殊字符,该字符称为同步字符。当接收方收到同步字符,并和发送方达到同步后,就可以以固定的节奏一个字符接一个字符地发送一大块数据,而不再需要用起始位和停止位了,这样可以明显地提高数据的传输速率。同步通信更加适合对速度要求高的传输,对时序的要求很高,当然对硬件要求也更高。

    在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,收发双方用一个时钟进行协调,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符,这样就可以确定传输中每一位的位置。接收数据时,接收方利用同步字符使内部时钟与发送方保持同步,然后将同步字符后面的数据逐位移入,并转换成并行格式,供CPU读取,直至收到结束符为止。

    2 异步通信

    异步通信是按字符帧传输的,相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的,接收方并不知道数据什么时候会到达,因此接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,时间间隔可以是任意的,在一字符帧中的所有比特是连续发送的。

    发送端不需要在发送字符之前和接收端进行协调(不需要先进行比特同步)。接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。内部处理器在完成了相应的操作后,通过一个回调的机制,以便通知发送端发送的字符已经得到了回复。下一个字符起始位的到来又使同步重新校准(依靠检测起始位来实现发送与接收方的时钟自同步的字符间同步,字符内比特位异步)

    因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。通信双方需要对采用的信息格式(字符的位数、停止位的位数、有无校验位及校验方式等)和数据的传输速率作相同的约定。接收方是在数据的起始位和停止位的帮助下实现字符传送时的同步。这种传输通常是很小的分组,比如一个字符为一组,为这个组配备起始位和结束位。所以这种传输方式的效率是比较低的,毕竟额外加入了很多的辅助位作为负载,常用在低速的传输中。

    在这里插入图片描述
    异步通信以字符为单位,其格式包括:起始位+数据+奇偶校验位+停止位。
    以起止式异步协议为例,如下图所示
    在这里插入图片描述
      起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以"起始位"开始,以"停止位"结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位低电平起始位(逻辑值0),字符本身由5-8位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。由此就可以标志一个字符传输的起始。而根据起始位和停止位也就很容易的实现了字符的界定和同步。
      如上图中所示,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。
      
    (1)起始位:发送数据时,先发持续一个bit时间的逻辑”0”信号,表示字符传输的开始,接收端可根据起始位使自己的接收时钟与发送方的数据同步。

    (2)数据位:起始位后是数据位,异步传送规定低位在前,高位在后,数据位的位数一般可以是5~8位。

    (3)奇偶校验位:奇偶位紧跟在数据最高位之后,占用一位(也可省去)。加上这一位后,使得逻辑“1”信号的位数得到偶校验或奇校验,以此来校验数据传送的正确性。
      如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。举例来说,假设传输的数据位为01001100,如果是奇校验,则奇校验位为0(要确保总共有奇数个1),如果是偶校验,则偶校验位为1(要确保总共有偶数个1)。
      由此可见,奇偶校验位仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,这样做的好处是接收设备能够知道一个位的状态,有可能判断是否有噪声干扰了通信以及传输的数据是否同步。

    (4)停止位:数据发送完后,再发1位、1.5位、2位的高电平(逻辑”1”信号)代表停止位,表示一帧数据结束,同时为接收下一帧数据做准备。

    (5)空闲位:在没有数据发送时,即下一帧的起始位“0”到来之前,数据线保持默认的“1”状态,即由高电平来填充。

    异步通信字符帧格式总结如下表:

    逻辑信号数据位数
    起始位01位
    数据位0或15~8位
    校验位0或11位或无
    停止位11位,1.5位或2位
    空闲位1任意数量

    :位数的本质含义是信号持续的时间,故可有分数位,如停止位1.5位,1.5是它的长度,即停止位的电平保持1.5个单位时间长度。一个单位时间就是波特率的倒数,例如波特率为9600bps,则一个单位时间长为1/9600s,1.5个停止位,即停止位电平保持1.5/9600s。

    3 同步通信和异步通信比较

    (1)同步通信要求接收端时钟频率和发送端时钟频率一致;异步通信时不要求接收端时钟和发送端时钟同步。

    (2)同步通信数据传输是以字节块(多个字节)传输的;异步通信数据传输是以字符(一个字节)传输的。

    (3)同步通信传输效率高,但复杂、要求高,双方时钟的允许误差较小;异步通信传输效率低,但简单、要求低,双方时钟可允许一定误差。

    (4)同步通信的字节传输是没有间隔的发送端发送连续的比特流;异步通信字节传送的间隔是任意的,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。

    同步通信和异步通信的差异总结如下表:

    同步通信异步通信
    传送单位信息帧(由若干字符组成的数据块)字符(由若干bit组成)
    单位格式同步字符+数据+校验字符CRC起始位+数据位+奇偶校验位+停止位
    传送间隔一个数据块(信息帧)内,字符与字符间无间隔相邻两字符之间隔任意长
    时钟信号时序要求高,使用同频同相的时钟线路时序要求较低,使用各自的时钟信号
    优点效率高简单,要求低
    缺点复杂,要求高效率低(传送一个字符,要增加约20%的附加信息位)
    展开全文
  • 串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。 串口通信中比较...

    一、串口通信简介

    串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送和接收字节。尽管比按字节(byte)传输的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

    串口通信中比较重要的参数包括波特率、数据位、停止位及校验位,通讯双方需要约定一致的数据格式才能正常收发数据。串行通讯根据通信双方的分工和信号传输方向可以进一步分为单工、半双工和全双工三种。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。它们的主要区别在于其各自的电平范围不相同。

    二、串行通信的传输方向

    数据通信中,数据在线路上的传送方式(方向)可以分为:单工通信、半双工通信和全双工通信三种。

    1 单工(Simplex Communication )

    单工模式通信使用一根传输线,其数据传输是单向的,仅能沿一个方向,不能实现反向传输,即通信双方发送端和接收端的身份是固定的。通信双方中,一方固定为发送端,一方则固定为接收端。

    • 例子:早期的电视,广播,打印机

    2 半双工(Half Duplex Communication)

    半双工模式通信一般使用一根(或一对)传输线,数据可以沿两个方向传输,既可以发送数据又可以接收数据,但不能同时进行发送和接收,同一时刻只允许单方向传送。因此又被称为双向交替通信。数据传输允许数据在两个方向上传输,但是,在任何时刻只能由其中的一方发送数据,另一方接收数据。

    半双工模式收发两端都有发送器和接收器,通过收/发开关转接到通信线上。半双工通信中每端需有一个收发切换电子开关,若要改变传输方向,需由开关进行切换,通过切换来决定数据向哪个方向传输。由于要频繁切换信道方向,会产生时间延迟,故传输效率低些,但可以节约传输线路。半双工方式适用于终端与终端之间的会话式通信。

    • 例子:对讲机,RS485

    3 全双工(Full Duplex Transmission)

    全双工模式通信指数据由两根不同的数据线(可能还需要控制线、状态线、地线)传送,可以同时进行双向传输。即数据的发送和接收分流,通信双方都能在同一时刻进行发送和接收操作。从功能角度方面讲,全双工通信相当于两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。因此,通信系统的每一端都设置了发送器和接收器,来控制数据同时在两个方向上传送。

    与半双工模式相比,全双工可同时进行数据收发,且无需进行方向的切换,没有切换操作所产生的时间延迟。 显然,在其它参数都一样的情况下,全双工比半双工传输速度要快,信息传输效率要高。这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。

    • 例子:手机通话,RS422,RS232

    三、串行通信的错误校验

    在通信过程中往往要对数据传送的正确与否进行校验。校验是保证准确无误传输数据的关键。常用的校验方法有奇偶校验、代码和校验及循环冗余码校验。

    (1)奇偶校验

    在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。

    (2)常用算法校验

    代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。

    (3)循环冗余校验

    这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对存储区的完整性、磁盘信息的传输校验等。

    1 奇偶校验

    奇偶校验指的是在发送数据时,利用数据中“1”的个数是奇数或偶数作为检测错误的标志。通常在数据位后面设置1位奇偶校验位(1或0),用它使这组代码中“1”的个数为奇数或偶数。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收学符时,接收端对数据位“1”的个数进行校验,若发现发送端结果与不一致,则说明传输数据过程中出现了错误。此时接收端可以向发送端发送请求,要求重新发送一遍数据。

    • 奇校验:此时奇偶校验位的作用就是保证所有数据位加奇偶校验位的所有比特位中值为1的比特位的个数为奇数。
      若数据位中共有奇数个值为1的比特位,则此时奇偶校验位的值为0。
      若数据位中共有偶数个值为1的比特位,则此时奇偶校验位的值为1。
    • 偶校验:此时奇偶校验位的作用就是保证所有数据位加奇偶校验位的所有比特位中值为1的比特位的个数为偶数。
      若数据位中一共有奇数个值为1的比特位,则此时奇偶校验位的值为1。
      若数据位中一共有偶数个值为1的比特位,则此时奇偶校验位的值为0。

    例子

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

    优缺点

    奇偶校验的缺点很明显,首先,它对错误的检测概率大约只有50%。因为只有奇数个数据位发生变化能检测到,如果偶数个数据位发生变化则无能为力了。另外,每传输一个字节都要附加一位校验位,对传输效率有较大影响。因此,在高速数据通讯中很少采用奇偶校验。奇偶校验可以发现错误,但不能纠正错误,也就是说它只能告诉你出错了,但不能告诉你怎么出错了,一旦发现错误,只能重发。

    奇偶校验优点也很明显,它很简单,因此可以用硬件来实现,这样可以减少软件的负担。因此,奇偶校验也被广泛的应用着。

    2 常用算法校验

    常用算法校验是指发送端将所发数据块进行累加和校验异或校验,在数据块末尾附加一个字节的校验字符。接收端接收数据,同时对数据块(除校验字节外)进行不进位求和字节异或,将所得的结果与发送端的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。

    例子-累加和校验
    累加和校验:
    要传输的数据为:01H、55H、D3H
    则进行不进位累加的校验和字节为:29H,即01H+55H=56H,56H+D3H=129H,舍去进位1,得29H。
    这里 29H 就是前三个字节的累加校验和。接收端收到全部数据后对前三个数据进行同样的累加计算,如果累加和与最后一个字节相同的话就认为传输的数据没有错误。

    异或就是对数据逐一异或计算(异或结果与下一个数据异或)。即接收端将所有字节(一般是两个16进制的字符)按位异或后,得到校验码后与发送端异或码的字符进行比较。相等即认为通信无错误,不相等则认为通信出错。

    优缺点

    累加和校验由于实现起来非常简单,也被广泛的采用。虽然其检错率优于奇偶校验,但这种校验方式的检错能力也较为一般,例如累加的其中一个字节多1,另一个字节少1,累加和不变,将原本是错误的通讯数据误判为正确数据。异或校验同理。累加和校验、异或校验也不能纠正错误。

    3 循环冗余校验

    这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。

    循环冗余码校验(Cyclical Redundancy Check, CRC)是利用除法和余数的原理来做错误侦测的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收端RX,RX对收到的数据重新计算CRC并与收到的CRC值相比较,若两个CRC值不同,则说明数据通信出现了错误,该数据包应该舍弃不用。
    在远距离数据通讯中,为确保高效而无差错的传送数据,必须对数据进行校验控制,而CRC是对一个传送数据块进行校验,是一种非常高效的差错控制方法。目前,主流的CRC可以分为以下几个标准:CRC-12码;CRC-16码;CRC-CCITT码;CRC-32码。
    CRC-12码通常用来传送6-bit字符串。CRC-16及CRC-CCITT码则用来传送8-bit字符,其中CRC-16为美国采用,而CRC-CCITT为欧洲国家所采用。CRC-32码用途有限。
    在数据存储和数据通信领域,CRC无处不在:著名的通信协议X.25的FCS(帧检错序列)采用的是CRC/CCITT,ARJ/LHA等压缩工具软件采用的是CRC32,磁盘驱动器读写采用的日式CRC16,通常用到的图像存储格式GIF/TIFF等也是采用CRC作为检错手段的。

    四、传输速率与传输距离

    数据传输速率指通信线上传输信息的速度,有比特率和波特率两种表示方法。比特率也称为信号速率,是指单位时间内所传送的二进制位代码的有效位数,以每秒多少比特计算,即bit/s;波特率是指调制速率,是脉冲信号经过调制后的传输速率,以波特(Baud)为单位,通常用于表示调制器之间传输信号的速率。

    1 传输速率

    比特率:每秒传输的二进制位数,也称为信号速率,单位为比特每秒(bit/s,bps)。

    波特率:每秒传输的码元符号的个数(码元传输速率),也称为调制速率,单位是波特(B)。它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,1波特即指每秒传输1个符号。通过不同的调制方法可以在一个符号上负载多个比特信息。

    比特率与波特的关系
    即比特率在数值上和波特率有这样的关系:

    I = S ∗ l o g 2 N I=S*{log_2{N}} I=Slog2N

    其中I为比特率,S为波特率,N为每个符号承载的信息量(一个脉冲信号所表示的有效状态),而 l o g 2 N {log_2{N}} log2N以比特为单位。即波特率与比特率的关系:比特率=波特率*单个调制状态对应的二进制位数。
    一个以X波特传送信号的线路,其传送二进制数据的速率不一定是X比特/秒,因为每个码元符号需要通过几个比特来表示,所以运送一个符号等于运送了几个比特。在二进制中脉冲(二电平)只有两种状态0或1,即 n=“2”,也就是说,信号速率与调制速率是一致的。如果使用多电平脉冲信号传输信息,信号速率与调制速率就不一致了。例如,若使用0、1、2、3、4、5、6、7共8个电平级,则需要,即3个比特来表示一个信号值,因而这种条件下比特率将是波特率的3倍。(当用二进制位表示一个码元时与比特率相等)

    例如假设数据传送速率为120符号/秒(symbol/s)(也就是波特率为120Baud),又假设每一个符号为八相调制(单个调制状态对应3个二进制位),则其传送的比特率为(120symbol/s) * (3bit/symbol)=360bps。只有在每个符号只代表一个比特信息的情况、或一些简单的调制方式下,例如基带二进制信号调制方式等,波特率与比特率才在数值上相等。 具体而言, 两相调制(单个调制状态对应1个二进制位)的比特率等于波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的两倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的三倍,依次类推。

    在串行通信中,单个调制状态对应的1个二进制位,因此比特率和波特率往往相同。可以用”波特率”来描述数据的传输速率,即每秒钟传送的二进制位数。它是衡量串行数据速度快慢的重要指标。典型的“波特率”是1200,4800,9600,14400,19200,28800,38400,57600,115200,230400,460800,921600等。有时也用”位周期”来表示传输速率,位周期是波特率的倒数。

    举例:RS485/RS232
    假设目前“波特率”为9600,指每秒传送9600个码元符号,则此RS485/RS232的传信率计算为 :

    I = S ∗ l o g 2 N = 9600 ∗ l o g 2 2 I=S*{log_2{N}}=9600*log_2{2} I=Slog2N=9600log22=9600bit/s

    通信线上所传输的字符数据(代码)是逐位传送的,1个字符由若干位组成,每一位即是一个码元。因此每秒钟所传输的字符数(字符速率)和波特率是两种概念。常有人把RS232的N误以为是每个“符号”(symbol)所夹带的信息量,但实际上每个“位元”(bit)即为一个“符号”(symbol)。

    在串行通信中,所说的传输速率是指波特率,而不是指字符速率。
    如在异步串行通信中,传输速率是9600b,而每个字符格式包含10位(1个起始位、1个停止位、0个校验位、8个数据位),这时每秒钟传送的字符数:9600/(1+8+0+1)=960个。

    2 传输距离与传输速率的关系

    串行通信直接传送串行信息位流的最大距离与传输速率和传输线的电气特性有关。通信速率和通信距离这两个方面是相互制约的,降低通信速率,可以提高通信距离。

    串行通信中,数据位信号流在信号线上传输时,要引起畸变,畸变的大小与以下因素有关:

    波特率——信号线的特征(频带范围)
    传输距离——信号的性质及大小(电平高低,电流大小)
    当畸变较大时,接收方出现误码。
    在规定的误码率下,当波特率、信号线、信号的性质及大小一定时,串行通信的传输距离就一定。为了加大传输距离,必须加调制解调器。

    当传输线使用每0.3m(约1英尺)有50PF电容的非平衡屏蔽双绞线时,传输距离随传输速率的增加而减小。当比特率超过1000 bps时,最大传输距离迅速下降,如9600 bps时最大距离下降到只有76m(约250英尺)。

    串口通讯的距离

    经实测,液晶显示屏控制 系统的RS232串行口在通讯波特率为28800bit/s时能够稳定传输达300米以上(传输介质为1箱五类线);当通讯距离大于 300米时,选择RS485通讯接口的液晶显示屏控制系统,此时只须在计算机的RS232串口端加配一个RS232/485转换器即可。

    115200bps最好的距离在30-50米之间(和线、232芯片有关),再远就有误码啦。15米还是很容易超的。232谁也不敢用300米的。

    传输电缆长度

    由RS-232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个 4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50英尺。

    传输距离

    由设备可提供端口的不同,故数据传输距离也不同。普通的RS232是常见的设备端口,其连接距离只有15米左右,如果连线设备距离相当远,则无法在使用RS232。采用RS424的设备,它的连接距离可达1000米。但当多个设备都是远距离时,给每个设备拉一条线会相当不方便,于是RS485便成为首选。RS485接口支持多个设备同时挂在一根导线上,它的总连线距离也可达1000米,而且一路上所有的设备都可以连接其上,相当方便。但它有一个限制:必须是半双工通信方式,即在同一时刻只能有一个设备进行数据发送,而其他设备只能接收。要保证这个条件必须依靠软件。

    3、发送/接收时钟

    在串行传输过程中,二进制数据序列是以数字信号波形的形式出现的,如何对这些数字波形定时发送出去或接收进来,以及如何对发/收双方之间的数据传输进行同步控制的问题就引出了发送/接收时钟的应用。

    在发送数据时,发送器在发送时钟(下降沿)作用下将发送移位寄存器的数据按串行移位输出;在接收数据时,接收器在接收时钟(上升沿)作用下对来自通信线上串行数据,按位串行移入移位寄存器。可见,发送/接收时钟是对数字波形的每一位进行移位操作,因此,从这个意义上来讲,发送/接收时钟又可叫做移位始终脉冲。另外,从数据传输过程中,收方进行同步检测的角度来看,接收时钟成为收方保证正确接收数据的重要工具。为此,接收器采用比波特率更高频率的时钟来提高定位采样的分辨能力和抗干扰能力。
      
    发送/接收时钟频率与波特率的关系:发/收时钟频率 =n*(发/收波特率 )

    4、波特率因子

    在波特率指定后,输入移位寄存器 / 输出移位寄存器在接收时钟 / 发送时钟控制下,按指定的波特率速度进行移位。一般几个时钟脉冲移位一次。要求:接收时钟/ 发送时钟是波特率的 16 、 32 或 64 倍。波特率因子就是发送/接收 1 个数据( 1 个数据位)所需要的时钟脉冲个数,其单位是个/位。如波特率因子为 16 ,则16 个时钟脉冲移位 1 次。 例:波特率 =9600bps ,波特率因子 =32 ,则接收时钟和发送时钟频率 =9600 × 32=297200Hz 。

    参考:
    【1】https://baike.baidu.com/item/%E6%B3%A2%E7%89%B9%E7%8E%87/2153185?fr=aladdin#reference-[3]-119333-wrap
    【2】https://baike.baidu.com/item/%E7%A0%81%E5%85%83/10525003
    【3】http://mayer.spaces.eepw.com.cn/articles/article/item/59707

    展开全文
  • 什么是计算机通信计算机通信基本原理并行与串行通信方式异步通信和同步通信 什么是计算机通信 计算机通信是指计算机个计算机之间或计算机与终端之间进行信息传递的方式。 通信中有并行和串行两种方式。在单片机系统...

    什么是计算机通信

    计算机通信是指计算机个计算机之间或计算机与终端之间进行信息传递的方式。

    通信中有并行和串行两种方式。在单片机系统以及现代单片机测控系统中,信息的交换采用串行通信方式。

    计算机通信基本原理

    计算机通信的基本原理是将电信号转换为逻辑信号,其转换方式是将高低电平表示为二进制数中的1和0, 再通过不同的二进制序列来表示所有的信息。

    并行与串行通信方式

    并行通信串行通信
    并行通信通常是将数据字节的各位用多余数据线同时进行传输。如下图1所示,在8位数据总线通信系统,一次送8位数据(1个字节),将需要8根数据线。这是方式仅适合短距离数据传输,如比较老式的打印机就是通过并口方式与计算机连接。并行通信控制简单、传输速度快。由于传输线较多,长距离传送是成本高而且收发的各位同时接收存在困难。串行通信是使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机、计算机之间、计算机与外设之间的远距离通信。如下图2
    并行通信特点:并行通信控制简单、传输速度快。由于传输线较多,长距离传送是成本高而且收发的各位同时接收存在困难。串行通信特点:传输线少,长距离传送时成本低,但数据传送控制比并行通信复杂。

    请添加图片描述
    图1(并行通信方式)
    请添加图片描述
    图2(串行通信方式)

    异步通信和同步通信

    串行通信又可分为异步通信和同步通信

    1、异步通信
    发送与接收设备使用各自的时钟控制数据发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
    请添加图片描述
    异步通信是一种常用的通信方式(效率较低)异步通信在发送字符时,发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束地方加上标志位,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。
    异步通信字符信息由4部分组成:起始位、数据位、奇偶校验位和停止位
    请添加图片描述

    校验位的概念:

    1. 校验位的作用是用于校验数据的正确性
    2. 校验位可有可无
    3. 校验位用于判断传输每一个字节过程中‘1’的个数,如果‘1’的个数是是偶数,是偶校验;如果‘1’的个数是奇数,则是奇校验。
    4. 校验位用来判断数据有没有错误,不能修正错误。

    异步通信还有一个概念:波特率
    波特率(bandrate),指的是串口通信的速率,也就是串口通信每秒可以传输多少个二进制位。
    如:每秒可以传输9600个二进制位,则波特率位9600。
    常用波特率有:300、600、1200、2400、9600、19200、38400、43000、56000、57600、115200
    单片机常选择9600,高速选择115200

    异步通信的特点:不要求收发时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2-3位,用于起始位。校验位和停止位,各帧之间还有间隔,因此传输效率不高。

    在单片机与计算机之间通信时,通常采用异步串行通信方式。

    2、同步通信
    信息发送设备与接收设备需要时钟同步,两者间除数据线连接,还需要额外的时钟线连接。一般需要发送方发送数据时同时发送时钟信号,接收方根据发送方给它的时钟信号来安排自己的节奏。
    请添加图片描述

    串行通信的方式

    1. 单工,数据传输仅沿着一个方向,不能反向传输
      请添加图片描述

    2. 半双工,数据可以沿着两个方向,但需要分时进行
      请添加图片描述

    3. 全双工,数据可以同时进行双向传输
      请添加图片描述

    展开全文
  • 通信的基本方式可分为并行通信串行通信两种。 并行通信通常是将数据字节...由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传输。
  • 串行通信——异步串行通信

    千次阅读 2019-03-23 16:06:08
    I、串口通信简介 一、定义 二、意义 三、分类 II、异步串行通信详解 一、数据格式 1. 起始位 2. 数据位 3. 奇偶校验位 4. 停止位 二、通信制式 1. 单工 2. 半双工 3. 全双工 三、通信速率 I、串口...

    目录

    I、串口通信简介

    一、定义

    二、意义

    三、分类

    II、异步串行通信详解

    一、数据格式

    1. 起始位

    2. 数据位

    3. 奇偶校验位

    4. 停止位

    二、通信制式

    1. 单工

    2. 半双工

    3. 全双工

    三、通信速率


    I、串口通信简介

    一、定义

    一条传输线上,数据以“位”为单位进行逐个传输,即为串行通信。

    二、意义

    并行通信控制简单、相对传输速度快,但由于传输线较多,长距离传输时成本高,因此仅适合短距离的数据传输;

    相对的,在满足“传输速度 ≥ 最大需求速度”的前提下,使用串行通信便是大势所趋了。

    三、分类

    串行通信分为两种方式,异步串行通信同步串行通信

    异步串行通信,是指发送方与接收方,使用各自的时钟控制数据发送和接收过程(为使双方收发协调,要求双方时钟尽可能一致);

    同步串行通信,则是发送方时钟直接控制接收方时钟,使双方完全同步(同步方法有“外同步和自同步”两种)。

     

    串行通信的最小传输单位是“位”,一次完整的“接收/发送”的最小单位是“字符”(单独收发一个位的数据,通常没有意义)。

    • 使用异步串行通信时,由于收发双方时钟不严格一致,所以每个字符都要用到起始位和停止位来作为字符开始和结束的标志,从而保证数据传输的准确性(由于每个字符都有开始和停止位,因此字符之间的时间间隔是任意的);
    • 使用同步串行通信时,由于收发双方时钟严格一致,所以仅在数据块(有效数据)传输的一开始和结束时,用到了开始符和结束符,在有效数据传输完毕后,发送空闲字符。

    对比两种串行通信方式,同一数据块,后者仅在头尾处添加了开始与结束标记,因此后者的传输效率较高,但实现的硬件设备也更复杂,所以各设备之间,通常采用的还是异步串行通信方式。

    接下来将详细介绍异步串行通信。

    II、异步串行通信详解

    一、数据格式

    一次完整的“接收/发送”的最小单位是“字符”,我们将其称为一个字符帧,字符帧由四部分组成:起始位、数据位、校验位、停止位。

    1. 起始位

    起始位为0。

    • 通讯线在空闲状态时保持高电平,因此出现下降沿即可判定为数据传输开始;
    • 另外,由于数据位定长,且起始位在一次接收中只判定一次,所以不用担心数据位中的0误识别成起始位。

    2. 数据位

    数据位可以是5/6/7/8位,传输时低位在前、高位在后

    3. 奇偶校验位

    校验位可以省略,当需要使用校验位时:

    • 奇偶校验位为1或0;
    • 奇校验时,数据位、校验位中1的个数,应该是奇数;
    • 偶校验时,数据位、校验位中1的个数,应该是偶数。

    4. 停止位

    停止位为1。

    • 停止位可以是1位的长度、1.5位的长度、2位的长度(位数的本质含义是信号出现的时间,故可有分数位);
    • 另外,由于数据位定长,所以停止位位置固定可知,接收时只需判定停止位是否为1即可。

    二、通信制式

    1. 单工

    数据仅能沿一个方向传输,不能实现反向传输(只能A→B,不能B→A)。

    2. 半双工

    数据可以沿两个方向传输,但同一时刻,只能接收或者发送。

    3. 全双工

    数据可以沿两个方向传输,且可以同时进行。

    三、通信速率

    • 串口通讯的速率用波特率表示,定义为每秒传输二进制码的位数,单位是bps(位/秒);
    • 以9600bps为例,假设一个字符帧共有10位(1起始位、8数据位、1结束位),那么每秒钟能传输的最大字符数为“9600/10 = 960”;
    • 最大传输距离,与波特率成反比关系(9600bps,最大传输距离约为76m)。
    展开全文
  • 串口通信相关概念串行通信并行通信 串口通信分为串行通信与并行通信两种。 串行通信 串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间...
  • 计算机串行通信分类

    2020-11-15 06:42:21
    串行通信时数据是一位一位按顺序传送的,只用很少几根通信线,串行传送的速率低,但传送距离可以很长,因此串行适用于长距离而速率要求不高的场合。在PLC网络中传送数据绝大多数采用串行方式。 从通信双方信息的...
  • 串口通信知识总结

    千次阅读 2020-06-29 15:07:03
      之前断断续续的学习了解了串口通信的相关知识,但由于没有集中地学习,导致对串口通信的知识理解相当凌乱且零碎,今天就从头总结一下串口通信的相关知识吧~ 文章目录一. 通信方式1.1 并行通信1.2 串行通信二. ...
  • 51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?...串行通信是指数据一位一位地按顺序传送通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。
  • 串行通信是指数据一位一位地按顺序传送通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。 与之前一样,首先我们来了解单片机串口相关的寄存器。 SBUF 寄存器...
  • 一般来讲单片机与打印机等外围设备连接时,除8条数据线外,还要状态、应答等控制线,当传送距离过远时电线要求过多,成本会增加很多。单片机的串行通信方法较为多样,传统的串行通信方式是通过单片机自带的串行口...
  • 在数据通信中,按每次传送的数据位数,通信方式可分为:并行通信串行通信两种方式,在多微机系统以及现代测控系统中信息的交换多采用串行通信方式 1.2、并行通信 并行通信时数据的各个位同时传送,可以字或...
  • 串口通信编程

    2021-07-18 20:23:45
    串口通信学习笔记
  • 并行通信:并行通信是指多比特数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。 串行通信串行通信是指使用一条数据线,将...
  • Arduino 串行通信之串口通信 UART 原理及释义

    万次阅读 多人点赞 2019-03-28 09:43:53
    模拟信号是一种连续变化的物理量,能帮助我们更好地理解周围环境的信息,任何的信息都可以用模拟信号来准确表达,但其缺点是易受噪声的影响,信号被多次复制,或进行长距离传输之后,会发生衰减。相比而言数字信号受噪声的...
  • 单片机(AT89C51)的串行接口及串行通信是非常重要的一项技术,我们需要...正式进入串口通信前我们需要了解什么是通信? 计算机与外界信息交换称为通信。通信的基本方式可分为并行通信和串行通信(本次的主角): ...
  • 51单片机串行通信原理

    千次阅读 2020-11-24 20:40:31
    51单片机串行通信原理计算机通信串行通信异步通信同步通信数据传送速率传输方向单片机串行串行口特殊功能寄存器串行口控制寄存器SCON电源控制寄存器PCON 计算机通信 计算机通信:计算机与外部设备或计算机之间的...
  • 当控制计算机与各数控机床... (1)传送距离过近:由于受负载电容容许值的限制,其传送距离一般不得超过15M;  (2)电平偏移:由于信号地公用且通信双方的信号地需连结在一起,RS-232C应用于长距离通信时信号地线上
  • 异步串行通信理解

    千次阅读 2020-06-08 14:13:13
    借鉴: 串口通信参数设置 https://blog.csdn.net/qq_35682844/article/details/73527057 串口通信协议有哪些 http://m.elecfans.com/article/628091.html 串口通信数据位长度对传输数据的影响 ...
  • FPGA串口通信实验

    2021-03-07 08:41:51
    目录串口简介串口通信简介同步通信异步通信串口接头协议标准电气特性时序介绍设计思想 串口通信是FPGA较为基础的一个实验,本人在初学FPGA后决定将其整理一下并进一步加强自身理解。 串口简介 串口也称串行通信接口...
  • 异步串行通信

    千次阅读 2019-01-28 11:45:11
    异步串行通信
  • 上讲介绍并应用了单片机...串行通信是指数据一位一位地按顺序传送通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。  与之前一样,首先我们来了解单片机串口相关
  • 串行通信.pdf

    2019-08-31 11:30:43
    串行通信串行通信是通过一位一位地进行数据传 输来实现通信。  特点:具有传输线少,成本低等优点,适合远距离 传送;缺点是速度慢,控制复杂。
  • 串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。...
  • UART串口通信

    2021-11-10 15:35:21
    串行接口简称“串口”,即采用串行通信方式的接口。 串行通信将数据字节分成一位一位的形式,在一条数据线上逐个传送串行通信的特点:通信线路简单,但传输速度较慢。 因此,串行接口广泛应用于对数据传输速度...
  • 工作模式 单工 半双工 全双工 TXD发送端、RXD接收端 异步传输(ascall) 传输单位:字符 起始位0 数据位的倒序 校验位 停止位:1 ...短距离(开发板、存储器中) 半双工(RXD数据、TXD“clk”) ...
  • 1、异步串行方式的特点所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。异步串行通信的特点可以概括为:①以字符为单位传送信息。②相邻两字符间的间隔...
  • 串口通信详解

    2021-10-09 13:23:56
    串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。...
  • 串口通信协议

    2021-07-22 00:17:56
    串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位...
  • 单片机C51 - 串行通信原理及串口编程实验

    千次阅读 多人点赞 2016-09-07 10:42:00
    传输原理:并行通信时数据的各个位同时传送,以字节为单位并行传输优点:并行通信速度快,传输的数据宽度可以是1~128位,甚至更宽缺点:并口上导线之间数据同步难处理,占用引脚资源多 2.串行通信 传输原理:串行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,065
精华内容 5,226
关键字:

串行通信传送距离