单片机之串口
1、串口的基本认知
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
它是设备接线通信的一种方式,数据会一位一位的顺序传送,分为双向通信和全双工,但是传输的速度较慢。
半双工:可以允许数据在两个方向上的传输,但是一次只能由一个方向上的信息传输。
全双工:允许两个方向上的数据同时传输:TX–>RX
RX–>TX
2、关于电器标准和协议
串行接口按照电气标准及协议来分包括RS-232-C、RS-422、RS-485等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及插件、电缆或协议。
RS-232:也称为标准串口,是最常用的一种,比如电脑上的9针的串口,最高速率为20kb/s。
RS-232是点对点(只用一对收、发设备)通讯而生,最大传输距离为15米,所以RS-232适合本地设备之间的通信。
RS-422:接收器采用高输入阻抗和发送驱动器比RS-232有更强的驱动能力,允许才相同的传输线上连接多个接收节点,最多可接收10 个节点。即一个主设备,其余为从设备,且从设备之间不能通信。最大传输距离为1219米,最大传输速率为10M/s。平衡双绞线的长度与传输速率成反比。
RS-485:由RS-422的基础上发展而来,无论是四线还是二线连接方式总线上都可以接32个设备。
3、关于串口的电平
UART:是指异步串行,通用异步接收/发送。UART包含TTL电平的串口和RS-232电平的串口。
RS-232的电平:逻辑1是-3~-15v的电压。逻辑0是3~15v的电压。
TTL的电平:即晶体管-晶体管逻辑的简称,+5v等价于逻辑1,0v等价于逻辑0。
数字电路中,由TTL电子元器件组成的电路电平是个电压范围,规定:输出高电平>=2.4v,输出低电平<=0.4v。输入高电平>=2.0v,输入低电平<=0.8v。
4、串口接线方式
串口接线采用交叉接线,即一方的TXD对应另外一方的RXD,RXD对应TXD,不能接错。
RXD:数据输入引脚,用于接收数据
TXD:数据输出引脚,用于发送数据
5、串口编程的要素
输入/输出数据缓存器都叫做SBUF,都用99H地址码,但是是两个独立的8位寄存器
代码体现:想要接收数据:char data = SBUF,想要发送数据:SBUF = data。
串口异步通信,由于通信双方时钟不同,硬件也不相同,但是需要约定通信速度,这个时候就要用到波特率。
作者:小新学习记