通信简介
在计算机的设备与设备之间或集成电路之间常常需要进行数据传输
- 并行通讯:多位同时传输,例如:SDIO、FSMC
- 串行通讯:一位一位传输,例如:USART、I2C、SPI
特性 | 串行通讯 | 并行通讯 |
---|---|---|
通讯距离 | 较远 | 较近 |
抗干扰能力 | 较强 | 较弱 |
传输速率 | 较慢 | 较快 |
成本 | 较低 | 较高 |
- 全双工:可同时收发数据
- 半双工:不可同时收发数据,可分时收发数据
- 单工:任何时刻都只能往某一个固定方向传输数据
保证数据传输的准确性:同步与异步
有时钟信号的就是同步,没有时钟信号的就是异步
在同步通讯中,数据信号所传输的内容绝大部分就是有效数据,而异步通讯中会包含有帧的各种标识符,所以同步通讯的效率更高,但是同步通讯双方的时钟允许误差较小,而异步通讯不需要时钟
通讯的速率
- 比特率:每秒钟传输的二进制的位数,单位为比特每秒
- 波特率:表示每秒中上传输的码元个数
码元有些时候用一个二进制位表示,在这个时候与比特率相同,但是有些时候码元用多个二进制位表示
串口通信协议
- 物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输,其实就是硬件部分
- 协议层:协议层主要规定通讯逻辑,统一收发双方的数据打包、解压标准。其实就是软件部分
物理层
RS232标准
RS232与TTL的区别主要体现在电平上,TTL电平直接从芯片或单片机或外设出来的,TTL电平高电平主要是5V或者3.3V;RS233表示1是以-15V表示,而0是用15V表示,高电平与低电平的差距非常大
RS232标准串口通讯结构图
RS232标准串口高电平与低电平差距很大,容错能力非常强
- RS232标准串口主要用于工业设备直接通信
- 电平转换芯片一般有MAX3232,SP3232
DB9标准的公头及母头接法
USB转串口通讯
- USB转串口主要用于设备跟电脑通信
- 电平转换芯片一般有CH340、PL2303、CP2102、FT232
- 使用的时候电脑端需要安装电平转换芯片的驱动
将TTL电平通过电平转换芯片转换为USB电平
USB转串口线
原生的串口到串口通讯
- 原生的串口通信主要是控制器跟串口的设备或者传感器通信,不需要经过电平转换芯片来转换电平,直接用TTL电平通信
- GPS模块、GSM模块、串口转WIFI模块、HC04蓝牙模块都是直接就是TTL电平
协议层
串口数据包的基本组成
- 起始位:由1个逻辑0的数据位表示
- 结束位:由0.5、1、1.5或2个逻辑1的数据位表示
- 有效数据:在起始位后紧接着的就是有效数据,有效数据的长度常被约定为5、6、7或8位长度
- 校验位:提高数据的抗干扰能力
校验位
- 奇校验:有效数据和校验位中“1”的个数为奇数
- 偶校验:有效数据和校验位中“1”的个数为偶数
- 0校验:不管有效数据中的内容是什么,校验位总为“0”
- 校验:不管有效数据中的内容是什么,校验位总为“1”
- 无校验:就是数据包中不含校验位