简介
串口是一种泛称,UART、SPI、IIC、USB等接口都属于串口。而嵌入式中所说的串口,一般是指UART口,即通用异步收发器(Universal Asynchronous Receiver/Transmitter)。由于该接口传输速率低等原因,在普通的计算机中基本已经被取消,但作为一种简单易用的接口,在嵌入式领域仍然使用较广泛。
UART协议介绍
UART作为异步串口通信协议的一种,工作原理是将数据的字节一位接一位地传输。具体协议如下:
gsx40wvc5ku64048945128.png
空闲位:
UART协议规定,当总线处于空闲状态时信号线的状态为‘1’即高电平。
起始位:
先发出一个逻辑”0”的信号,表示传输字符的开始。因为空闲位一直是高电平所以开始第一次通讯时先发送一个明显区别于空闲状态的信号,以便接收方能够判断数据的起始。
数据位:
起始位之后就是要传输的数据,数据可以是5,6,7,8,9位,构成一个字符,一般都是8位。一般是低位在前。
奇偶校验位:
数据位传送完成后,要进行奇偶校验,校验位其实是调整个数,串口校验分几种方式:无校验(no parity)奇校验(odd parity):如果数据位中’1’的数目是偶数,则校验位为’1’,如果’1’的数目是奇数,校验位为’0’。偶校验(even parity):如果数据为中’1’的数目是偶数,则校验位为’0’,如果为奇数,校验位为’1’。mark parity:校验位始终为1。space parity:校验位始终为0。
[/ol]停止位:
数据结束标志,可以是1位,1.5位,2位的高电平。
波特率:
数据传输速率使用波特率来表示,单位bps(bits per second),常见的波特率9600bps,115200bps等等,其他标准的波特率是1200,2400,4800,19200,38400,57600等。
TTL、RS-232和RS-485TTL、RS232和RS485是指不同的电平标准,三者都可以遵循UART通信协议,但不同的电平之间不能直接连接。TTL电平的UART通信时,可以实现全双工通信,2.4~5V表示逻辑‘1’,0~0.5V表示逻辑‘0’,适合做短距离传输。RS232电平也可以实现全双工通信,其用+3~+15V表示逻辑'1',-3~-15V表示逻辑'0',由于电平变大,传输距离要稍大于TTL电平,理论距离可达10米。实际传输距离跟使用环境,传输波特率等有关。RS485电平采用差分信号传输数据,可以实现半双工通信,逻辑'1'以两线间的电压差为-2~-6V表示;逻辑'0'以两线间的电压差为+2~+6V表示。且RS485总线上可以连接多个设备。由于采用差分信号传输,抗干扰能力比RS232和TTL强很多,适合做长距离传输,理论传输距离可达1000米,在工业设备中应用广泛。 |