串口通信

来源:互联网 发布:库里技术特点知乎 编辑:程序博客网 时间:2024/05/20 13:09

1.计算机通信

  计算机直接式通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换 。可以分为两大类:并行通信与串行通信。

  • 并行通信:并行通信通常是一组数据的各数据位在多条线上同时被传输。并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。并行通信速度快,但用的通信线多、成本高,故不宜进行远距离通信。
    1
  • 串行通信:串口通信是指采用串行通信协议在一条信号线上将数据由低位到高位按顺序一个比特一个比特地逐位进行传输的通信模式。串行通信传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。
    这里写图片描述

2.串行通信

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

2.1串行同步通信

  同步通信(SYNC:synchronous data communication)是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致,一般两个设备使用同一个时钟源。同步通信把许多字符组成一个信息组(信息帧),每帧的开始用同步字符来指示,一次通信只传送一帧信息。在传输数据的同时还需要传输时钟信号,以便接收方可以用时针信号来确定每个信息位。
  同步通信的优点是传送信息的位数几乎不受限制,一次通信传输的数据有几十到几千个字节,通信效率较高。同步通信的缺点是要求在通信中始终保持精确的同步时钟,即发送时钟和接收时钟要严格的同步。
  

2.2串行异步通信

  异步通信(ASYNC:asynchronous data communication),是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。异步通信不要求收发双方时钟的严格一致,实现容易,设备开销较小,但个字符附加2~3位用于起止位,各帧之间还有间隔,因此传输效率没有同步传输效率高。
  
  不论是异步通信还是同步通信都需要进行同步,异步通信通过传送字符内的起始位来进行同步,称为自同步;而同步通信采用共用外部时钟来进行同步。称为外同步。
  3

2.3串行通信的传输方向

  根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。

  • 单工模式的数据传输是单向的。通信双方中,一方固定为发送端,一方则固定为接收端。信息只能沿一个方向传输。例如计算机与打印机之间的通信是单工模式,因为只有计算机向打印机传输数据,而没有相反方向的数据传输。
  • 半双工通信既可以发送数据又可以接收数据,但不能同时进行发送和接收。数据传输允许数据在两个方向上传输,但是,在任何时刻只能由其中的一方发送数据,另一方接收数据。它实际上是一种切换方向的单工通信,就和对讲机一样。
  • 全双工是指在发送数据的同时也能够接收数据,两者同步进行,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力,就和电话一样,信息传输效率高。

2.4异步通信的数据格式

   异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成。如图所示
这里写图片描述

  • 起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志传送一个字符的开始。。
  • 数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。 
  • 奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据位加上校验位总共有奇数个逻辑高位;如果是偶校验,需要保证传输的传输的数据位加上校验位总共有偶数个逻辑高位。
  • 停止位:停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。
  • 空闲位:空空闲位表示线路处于空闲状态,此时线路上为逻辑“1”电平。空闲位可以没有,此时异步传送的效率为最高。

2.5异步通信的数据发送接收过程

  • 发送数据的具体步骤如下:
    1.初始化后或者没有数据需要发送时,发送端输出逻辑1,可以有任意数量的空闲位。
    2.当需要发送数据时,发送端首先输出逻辑0,作为起始位。
    3.接着就可以开始输出数据位了,发送端首先输出数据的最低位D0,然后是D1,最后是数据的最高位。
    4.如果设有奇偶检验位,发送端输出检验位。
    5.最后,发送端输出停止位(逻辑1)。
    6.如果没有信息需要发送,发送端输出逻辑1(空闲位),如果有信息需要发送,则转入步骤2。
  • 接收数据的具体步骤如下:
      假设一个机器周期使接收移位寄存器移位一次
    1.开始通信,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对接收时钟计数。
    2.当计到机器周期一半的时候,对输入信号进行检测,若仍然为低电平,则确认这是起始位,而不是干扰信号。
    3.接收端检测到起始位后,每隔一个机器周期对输入信号检测一次,把对应的值作为D0位数据。直到全部数据位都输入。
    4.检验奇偶检验位。
    5.接收到规定的数据位个数和校验位之后,通信接口电路希望收到停止位(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志;若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中取出送至数据输入寄存器,若校验错,在状态寄存器中置“奇偶错”标志。
    6.本帧信息全部接收完,把线路上出现的高电平作为空闲位。
    7.当信号再次变为低时,开始进入下一帧的检测。

2.6传输速率和传输距离:

  数据传输率是指单位时间内传输的信息量,可用比特率和波特率来表示。

  • 比特率:比特率是指每秒传输的二进制位数,用bps(bit/s)表示。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:10位×240个/秒 = 2400 bps。
  • 波特率:波特率是指每秒传输的符号数,若每个符号所含的信息量为1比特,则波特率等于比特率。在计算机中,一个符号的含义为高低电平,它们分别代表逻辑“1”和逻辑“0”,所以每个符号所含的信息量刚好为1比特,因此在计算机通信中,常将比特率称为波特率,即:
            1波特(B)= 1比特(bit)= 1位/秒(1bps)
  • 位时间:位时间是指传送一个二进制位所需时间,用Td 表示。Td = 1/波特率 = 1/B
  • 发送时钟:发送数据时,先将要发送的数据送入移位寄存器,然后在发送时钟的控制下,将该并行数据逐位移位输出。通常是在发送时钟的下降沿将移位寄存器中的数据串行输出,每个数据位的时间间隔由发送时钟的周期来划分。
  • 接收时钟:在接收串行数据时,接收时钟的上升沿对接收数据采样,进行数据位检测,并将其移入接收器的移位寄存器中,最后组成并行数据输出。
  • 波特率因子:接收时钟和发送时钟与波特率有如下关系:F = n × B
    这里F 是发送时钟或接收时钟的频率; B 是数据传输的波特率; n 称为波特率因子。
    设发送或接收时钟的周期为Tc,频率为F的位传输时间为Td,则: Tc = 1/F , Td = 1/B 得到: Tc = Td /n 在实际串行通信中,波特率因子可以设定。在异步传送时,n = 1,16,64,实际常采用n = 16,即发送或接收时钟的频率要比数据传送的波特率高n倍。在同步通信时,波特率因子n必须等于1。

3.常见串行通信接口标准(通信协议)

3.1 RS-232C接口

  RS-232C接口是由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。俗称的COM口,它定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现。

  • 电气特性
    EIA-RS-232C对电气特性、逻辑电平和各种信号线功能都作了规定。
    在TxD和RxD上:
            逻辑1(MARK)=-3V~-15V
            逻辑0(SPACE)=+3~+15V
    在RTS、CTS、DSR、DTR和DCD等控制线上:
            信号有效(接通,ON状态,正电压)=+3V~+15V
            信号无效(断开,OFF状态,负电压)=-3V~-15V
      以上规定说明了RS-232C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平高于+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义。
      EIA RS-232C 是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA RS-232C 与TTL电路之间进行电平和逻辑关系的变换
  • 机械特性
    由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。下面分别介绍两种连接器。
    (1)DB-25:。DB-25连接器定义了25根信号线,分为4组:
    ①异步通信的9个电压信号(含信号地SG)2,3,4,5,6,7,8,20,22
    ②20mA电流环信号 9个(12,13,14,15,16,17,19,23,24)
    ③空6个(9,10,11,18,21,25)
    ④保护地(PE)1个,作为设备接地端(1脚)
    注意,20mA电流环信号仅IBM PC和IBM PC/XT机提供,至AT机及以后,已不支持。
    这里写图片描述
    (2)DB-9:
    在AT机及以后,不支持20mA电流环接口,使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个信号。DB-9型连接器的引脚分配与DB-25型引脚信号完全不同。因此,若与配接DB-25型连接器的DCE设备连接,必须使用专门的电缆线。
    这里写图片描述
    采用RS-232C接口存在的问题
    1、传输距离短,传输速率低
    RS-232C总线标准受电容允许值的约束,使用时传输距离一般不要超过15米(线路条件好时也不超过几十米)。最高传送速率为20Kbps。
    2、有电平偏移
    RS-232C总线标准要求收发双方共地。通信距离较大时,收发双方的地电位差别较大,在信号地上将有比较大的地电流并产生压降。
    3、抗干扰能力差
    RS-232C在电平转换时采用单端输入输出,在传输过程中当干扰和噪声混在正常的信号中。为了提高信噪比,RS-232C总线标准不得不采用比较大的电压摆幅。

3.2 RS-485接口

  RS-485采用差分信号负逻辑,+2V~+6V表示”0”,- 6V~- 2V表示”1”。RS-485有两线制和四线制两种接线,四线制是全双工通讯方式,两线制是半双工通讯方式。

  • 电气特性:
    1.采用差分信号负逻辑,逻辑”0”以两线间的电压差为-(2~6)V表示;逻辑”1”以两线间的电压差为+(2~6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片, 且该电平与TTL电平兼容,可方便与TTL电路连接。
    2.RS-485的数据最高传输速率为50Mbps。
    3.RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。
    4.RS-485最大的通信距离约为1219m,最大传输速率为10Mbps,传输速率与传输距离成反比,在100KbpS的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。

0 0