深入浅出理解串口
传输数据的方式有两种:串行通讯和并行通讯
串口是串行接口的简称,串口是一种物理接口!而不是通讯协议!
顾名思义,并口就是并行接口的简称
不管是并口还是串口,都是一种物理接口!!!
所以,串行通讯对应的接口我们称为串口;并行通讯对应的接口我们称为并口
串行通讯是把数据排成一队,按照排队的先后顺序传输数据
并行通讯是每个数据自己组成一队,然后同时传输
常用给串行通讯协议有:IIC、SPI、JTAG、UART、CAN、RS232、RS485、USB等
嵌入式中常说的串口,其实就是值UART
根据使用的时钟不同(同步时钟和异步时钟),我们可以将串行通讯分为同步通讯和异步通讯;
同步时钟:时钟频率一致;可以一对多,效率高
常见的IIC、SPI都属于同步通讯
异步时钟:时钟频率不一致;只能一对一,效率低
常见的UART是属于异步通讯
USART(universal synchronous asynchronous receiver and transmitte): 通用同步异步收发器
USART是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。
UART(universal asynchronous receiver and transmitter): 通用异步收发器
异步串行通信口(UART)就是我们在嵌入式中常说的串口,它还是一种通用的数据通信议。
双方使用UART通讯时 ,至少需要三根线、知道对方的波特率、数据长度、开始及停止位
TX:发送数据线
RX:接受数据线
GND:参考点
指的是传输每个字节的时间
例如波特率为115200,那就代表我一秒可以传输115200个字节
串口一个字节的格式:
没有奇偶校验位的格式:
以9600 8N1(9600波特率,8个数据位,没有校验位,1位停止位)为例,这是目前最常用的串口配置,现在我们传输’O’'K’两个ASCII值,'O’的ASCII为79,对应的二进制数据为01001111 ,'K’对应的二进制数据为01001011 ,传输的格式数据如下图所示:01111001010110100101
奇校验:发送一组二进制数据,如果其中位数为1的个数为奇数时,则校验位为0,否则为1。
偶校验:发送一组二进制数据,如果其中位数为1的个数为偶数时,则校验位为0,否则为1。
0校验:校验位固定为0。
1校验:校验位固定为1。
串口是物理接口!不是通讯协议