一文读懂UARTRS232协议学习_串行和并行通信介绍

一文读懂UARTRS232协议学习_串行和并行通信介绍,第1张

UART, RS232协议学习

1. 串行和并行通信

在微型计算机中,通信(数据交换)有两种方式:并行通信和串行通信。

            线交换数据,数据的各位同时进行传送。

一文读懂UARTRS232协议学习_串行和并行通信介绍,一文读懂UART/RS232协议学习_串行和并行通信介绍,第2张

串行通信——是指计算机与I/O设备之间仅通过一条传
            输线交换数据,数据的各位是按顺序依次一位接一位进行传送。
应该理解所谓的并行和串行,仅是指I/O接口与I/O设备之间数据交换(通信)是并行或串行。无论怎样CPU与I/O接口之间数据交换总是并行。

一文读懂UARTRS232协议学习_串行和并行通信介绍,一文读懂UART/RS232协议学习_串行和并行通信介绍,第3张

2. 串行通信的方式

串行通信可以分为:同步通信(Synchronous CommunicaTIon)和异步通信(Asynchronous CommunicaTIon)两类。在单片机中,主要使用异步通信方式。
异步通信
特点:数据是以字符为信息单位传送的。每个字符由起始位、数据位、奇偶校验位和停止位四部分组成,称为一帧。每帧数据只包括一个字符。字符与字符之间的传送是异步的,而每个字符内部的位传送是同步的。

起始位为0信号占1位;其后接着的就是数据位,可以是5位、6位、7位或8位,传送时低位在先、高位在后;再后面的1位为奇偶校验位,可以要也可以不要;最后是停止位,用信号1表示字符的结束,可以是1位、1位半或2位。

在异步传送中,字符间隔不固定,在停止位后可以加空闲位,空闲位用高电平表示,用于等待传送。这样,接收和发送可以随时或间断进行,而不受时间限制。
异步串行通信的过程大体如下:
当线路上不传送字符时,发送端应保持为“1”,接收端不断检测线路状态,若连续为“1”以后又检测到1个“0”,就知道是发送来1个新的字符,应立即准备接收。字符的起始位还被用作同步接收端的时钟,以保证以后的接收能正确进行。当事先规定的数据位和奇偶校验位传送完毕,最后传送的是停止位(“1”),说明1个字符已经传送完了。
若字符的传送是连续进行的,则在停止位以后便接着传送下1个字符(仍从起始位“0”开始重复以上过程)。
若字符的传送是间断的,则在停止位以后加入空闲位,也就是保持传送线路上的“1”状态,直到开始传送下1个字符为止。

3. 同步通信

在异步传送中,每1个字符都要用起始位和停止位作为字符开始和结束的标志,占用了一定的时间。为了提高传送速度,有时就去掉这些标志,而采用同步传送,即1次传送1组数据。
同步传送的特点:
以数据块(字符块)为信息单位传输,每帧数据包括若干个字符。不仅要求每个字符内部的位传送是同步的,字符与字符之间的传送也应该是同步的。
发送时,在数据块前插入1~2个同步字符,做为数据块的起始符号。接收端检测到同步字符时,即准备接收数据。通常在数据块的后面加上校验数据,用于校验通信中产生的数据错误。
同步传送速度高于异步传送,缺点是硬件设备较为复杂,因为他对同步时钟脉冲信号的相位一致性要求严格。

4. 串行通信数据传送可分为三种方式:单工、半双工和全双工。

单工        数据只能单向传送。
半双工      数据可以双向传送,但是在任意时间只能进行一个方向的传送。
全双工      数据可以双向传送,且任意时刻可以同时进行两个方向的传送。

5. 波特率——数据的传输速率,即每秒种传送的二进制位数,单位为位/秒。
在通信中要求发送发端和接收端的波特率必须一致。
在异步通信中,
           字符传送速率=m (字符/秒)
           波特率=n(位/字符)×m(字符/秒)=n·m(位/秒)= n·m波特
  例如:假设字符传送的速率为120字符/秒,而一个字符为10位二进制(1位起始位、7位数据位、1位奇偶校验位、1位停止位),那么传送的波特率为
                 10位/字符×120字符/秒=1200位/秒= 1200波特
每1位二进制的传送时间Tb是波特率的倒数:
                 Tb=1/1200=0.833ms

6. RS232流控制
.流控制在串行通讯中的作用 
          解决丢失数据的问题 
.硬件流控制 
  硬件流控制常用的有RTS/CTS(请求发送/清除发送)流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制 
.软件流控制 
  一般通过XON/XOFF来实现软件流控制。

7. 奇偶校验
奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数,如:
1 0110,0101
0 0110,0001
偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如:
1 0100,0101
0 0100,0001

8. 9个pin脚的RS232接口

Pin 1         CD          Received Line Signal Detector (Data Carrier Detect)
Pin 2         RXD        Received Data
Pin 3         TXD        Transmit Data
Pin 4         DTR        Data Terminal Ready
Pin 5         GND       Signal Ground
Pin 6         DSR        Data Set Ready
Pin 7         RTS        Request To Send
Pin 8         CTS        Clear To Send
Pin 9         RI           Ring Indicator

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2717488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存