嵌入式学习日记(41)串口
1. 什么是串行通信,什么是并行通信?
串行通信:数据位一位接一位地在单条信道(如一根数据线)上顺序传输。就像单车道的公路,车辆必须依次通过。
优点:成本低(线少)、抗干扰能力强、适合远距离通信。
缺点:速度相对较慢(在相同时钟频率下)。
并行通信:数据的多位(如8位、16位)同时通过多条并行的信道(如8根数据线)传输。像多车道的公路,多辆车可以并排同时行驶。
优点:速度理论上是串行的N倍(N为线数)。
缺点:成本高(线多)、线间干扰严重(信号同步困难),不适合远距离通信。
2. 什么是单工,半双工,全双工通信?
这是描述通信方向性的三种模式:
单工:数据只能单向传输。一端固定为发送端,另一端固定为接收端。例如:广播、电视。
半双工:数据可以双向传输,但不能同时进行。同一时刻只能有一方发送,另一方接收。就像对讲机,说话时要按住按键,说完松开才能听对方说。
全双工:数据可以同时双向传输。双方都可以在发送数据的同时接收数据。就像打电话,双方可以同时说话和听对方说话。
3. 什么是串口通信?简述串口通信的通信时序?
串口通信:一种典型的串行、异步通信方式。它通过特定的接口(如DB9)和协议,将数据按位顺序传输。
通信时序(以UART为例):
空闲状态:通信线(TX/RX)保持在高电平(逻辑1)。
起始位:发送方先将线路拉低到低电平(逻辑0),持续1位时间,表示一帧数据的开始,用来同步时钟。
数据位:紧接着起始位之后,传输5-9位有效数据(通常是8位),从最低位(LSB)开始发送。
校验位(可选):跟在数据位之后,1位,用于简单的错误检测(奇校验或偶校验)。
停止位:最后是停止位,将线路拉回高电平(逻辑1),持续1、1.5或2位时间,表示一帧数据的结束,并确保起始位的下降沿能被正确识别。
一帧数据的时序图可简化为:[空闲高电平] -> [起始位(低)] -> [数据位0] -> [数据位1] -> ... -> [数据位7] -> [校验位] -> [停止位(高)] -> [空闲高电平]
4. 串口通信的速率是由什么决定的?常见的波特率有哪些?
速率决定因素:串口通信的速率由波特率 决定。波特率表示每秒传输的码元符号个数,对于串口通信而言,可以近似理解为每秒传输的二进制位数(bps, bits per second)。通信双方必须设置为相同的波特率才能成功解码数据。
常见波特率:1200, 2400, 4800, 9600(最常用), 19200, 38400, 57600, 115200等。
5. 什么是同步通信?什么是异步通信?串口通信属于哪种?
同步通信:收发双方使用同一个时钟信号进行同步。数据通常以一大块(帧)的形式连续传输,中间没有间隙。时钟信号可以单独一根线传输,也可以嵌入在数据中。例如:SPI, I2C总线。
异步通信:收发双方有各自的时钟,不需要统一的时钟线。通过起始位和停止位来界定每一帧数据,实现同步。数据可以间歇性地、不规则地传输。例如:UART(串口通信)。
串口通信属于异步通信。
6. 什么是TTL,RS232,RS485?
这三者都是串行通信的电气标准,规定了电压水平、连接器等物理层特性。
TTL:晶体管-晶体管逻辑电平。是芯片直接使用的电平标准。
逻辑0:
0V
(或 < 0.8V)逻辑1:
+3.3V
或+5V
(通常 > 2.4V)传输距离很短(通常板卡内部),抗干扰能力弱。
RS-232:一种古老的、应用广泛的串行通信标准。使用负逻辑和较高电压,旨在提高抗干扰能力和传输距离(可达15米)。
逻辑0:
+3V ~ +15V
(称为“Space”)逻辑1:
-3V ~ -15V
(称为“Mark”)通常使用DB9接口,采用全双工(点对点)方式。
RS-485:一种现代化的串行通信标准。使用差分信号(两根线A、B的电压差来表示数据),抗共模干扰能力极强,传输距离远(可达1200米),支持多点通信(一个主机可带多个从机)。
逻辑1:
(A-B) > +200mV
逻辑0:
(A-B) < -200mV
通常采用半双工方式(需要方向控制),是工业现场总线的基础。