串口的一些基本概念--RS485 RS422 RS232 流控制

    串口是一种应用比较广泛的应用接口,PC上的COM口,工业控制器的RS485、家用设备的调试接口等等,本质上都是串口。

1、串口的分类

  1)RS232 标准串口,这是一种比较 常用的串口,电脑上的DB9针接口就是一种串口,通过不同电压来表示0和1,电平定义如              下:

        0--- +3~12V之间

        1--- -3~ -12V之间,

        最大传输距离只有15m左右,所以其只适合于本地设备 短距离通信,而且只能点对点 通信,也就是一对一。

 2)RS485和RS422的电平定义,可以参考之前的文章 RS485硬件接口。RS485和422的电气性能是一样的,主要区别是RS422 是4根信号线,2根发送+2根接收,这样RS422可以实现全双工通信。而RS485只有2根信号线,所以只能工作在 半双工模式。

3)3种 接口的引脚如下图

    RS232 接口

   .

    实际使用 时,可以值用2(RXD)、3(TXD)、5(GND)引脚。

   RS422共5根线:TXD+、TXD-、RXD+、RXD-、GND。

   RS485共3根线:A、B、GND。

2、同步通信、异步通信

    1)同步通信:同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附            加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。如:SPI总线。这种模式下,需要主         机提供 时钟信号,

    2) 异步通信:两个互不同步的设备通过计时机制或其他技术进行数据传输。也就是说,双方不需要共同的时钟。发送方可以           随时传输数据,而接收方必须在信息到达时准备好接收。如:串口(UART),是半双工通信。

3、串口数据格式及参数

    1)起始位:在通信线上没有数据传送时处于逻辑“1”状态。当发送设备发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据信号。因此,起始位所起的作用就是表示字符传送开始。

   2)数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定,一般可以是5位、7位或8位。传输数据时先传送字符的低位,后传送字符的高位。

   3)奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个“1”;如果是偶校验,需要保证传输的数据总共有偶数个“1”。 也就是有效数据奇、偶个数不够,用校验位凑。

     假设传输的数据位为01001100,如果是奇校验,则奇校验位为0(要确保总共有奇数个1),如果是偶校验,则偶校验位为          1(要确保总共有偶数个1)。 
     奇偶校验位仅是对数据进行简单的置逻辑高位或逻辑低位,不会对数据进行实质的判断,这样做的好处是接收设备能够知道一个位的状态,有可能判断是否有噪声干扰了通信以及传输的数据是否同步。 

 4)停止位:停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是“1”,标志着传输一个字符的结束。

 5)空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。

3、流控制

    流控制的作用是防止数据拥堵, 实际使用时,不是必须的。

   数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。

   流控制分为软控和硬控:

   1)软件流控制:

    “软件”流控制:这种方法采用特殊字符来开始(XON,DC1,八进制数021)或者结束(XOFF,DC3或者八进制数 023)数据流。当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出xoff字符(十进制的19或control-s,设备编程说明书应该有详细阐述),发送端收到 xoff字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出xon字符(十进制的17或control- q),发送端收到xon字符后就立即开始发送数据。

  2)  硬件流控制:

     “硬件”流控制:这种方法使用RS-232标准的CTS和RTS信号来取代之前提到的特殊字符。当准备就绪时,接受一方会将CTS信号设置成为space电压,而尚未准备就绪时它会被设置成为mark电压。相应得,发送方会在准备就绪的情况下将RTS设置成space电压。正因为硬件流控制使用了于数据分隔的信号,所以与需要传输特殊字符的软件流控制相比它的速度很快。但是,并不是所有的硬件和操作系统都支持CTS/RTS流控制。

    

   

    

   

串口通信是一种常见的电子设备之间数据传输的方式,常用于计算机和外部设备之间的数据传递。串口通信涉及到几个重要的概念,包括UART、RS232、RS422和RS485。 UART代表通用异步收发器(Universal Asynchronous Receiver/Transmitter),它是指一种硬件电路,用于实现串行数据传输。UART负责将并行数据转换为串行数据并进行传输,同时将接收到的串行数据转换为并行数据供主设备使用。UART通常使用两条线进行传输,一条用于发送数据,一条用于接收数据。 RS232是一种串口通信标准,常用于计算机和外部设备之间的数据传输。它使用串口连接并使用DB-9或DB-25连接器。RS232定义了传输数据的电气特性和信号电平,以及传输的协议。RS232支持全双工通信,即可以同时传输和接收数据。 RS422是一种更为先进的串口通信标准,用于在长距离和高速传输的环境下进行数据传输。RS422可以同时传输数据和接收数据,并使用四线电缆进行传输。RS422使用差分信号来提高传输的抗干扰能力和传输距离。 RS485是另一种串口通信标准,也适用于长距离和高速传输环境。RS485可以连接多个设备,允许多个设备之间进行数据传输。RS485也使用差分信号进行传输,提供了更高的传输距离和抗干扰能力。 在实际应用中,如果需要通过串口进行数据传输,首先需要确定要使用的串口标准。如果是较短距离和低速传输,可以选择RS232;如果是较长距离和高速传输,RS422或RS485可能更适合。然后,需要配置对应的硬件设备和软件驱动程序来实现串口通信。在数据传输过程中,发送端将数据转换成串行数据,并通过所选的串口标准进行传输,然后接收端将串行数据转换为并行数据进行处理。 总之,串口通信是一种常见的数据传输方式,需要了解UART、RS232、RS422和RS485等概念。选择合适的串口标准来进行数据传输,并配置相应的硬件设备和软件驱动程序来实现串口通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值