2018 字
10 分钟
数电基础知识
BCD码和8421码
8421码是最常用的BCD码(BCD码包含8421、5421、2421码等,BCD码可以用4位二进制数表示一位十进制数)。
因为计算机要用二进制数来处理信息,而为了人类使用方便,计算机输入输出的数据都是用十进制来表示。所以在二进制和十进制之间转换就需要一种转换码,而BCD码就是其中一种转换码。
8421码用来表示09,即00000、00011、…、10008、1001~9、…
注意:1001后面的码都是伪码,因为没有实际意义。
VCC、VDD、VEE、VSS的区别
串口通信理解
通信基本概念
异步、同步、串行、并行、单工、半双工、全双工的认识
串行通信协议多样性
为什么市面上有这么多种串行通信协议?
原因
串行通信协议的多样性是市场需求多元化和技术约束多样化共同作用的结果。每种协议都是在速度、距离、成本、功耗、复杂度、可靠性、实时性、拓扑结构、应用领域等维度之间进行权衡取舍的产物。工程师在设计系统时,需要根据具体的应用场景和需求,仔细评估这些因素,选择最合适的协议(或协议组合)。
这种多样性虽然增加了学习和选择的复杂度,但也使得技术能够精准地服务于从简单的传感器到高性能计算、从消费电子到严苛工业环境的广阔天地。
应用示例:
- 远距离传输:需要远距离传输信息时,就需要用像RS485这样支持远距离通信的协议,而不能用SPI、I2C这样近距离传输的协议
- 高抗干扰要求:当所用产业对信号的准确性要求极大时,就不能去节约成本和复杂度。当环境中电磁干扰很强时,要采用差分信号协议(如 RS-485, CAN, USB)因为他们比单端信号协议(如 RS-232, TTL UART)具有更强的抗共模干扰能力。当要保证数据的完整性和可靠性,就要使用更强的错误检测与纠正能力,而不只是简单的奇偶校验。
常用串行通信协议
1. UART

特点
- 采用异步串行全双工通信,最少需要TXD、RXD、GND三条线
- RXD是发送数据线,TXD是接收数据线
- 通信双方使用交叉互联,RxD接对方TxD,TxD接对方RxD
- 已包含VCC电源线,电平一般采用TTL电平(和CMOS电平的主要差别是电平标准)
- TTL电平的范围是0~5V,电平≥2.0V表示逻辑高电平,电平≤0.8表示逻辑低电平
通信过程

注意:在UART通信中,波特率(一秒钟传输的符号数)等于比特率(一秒钟传输的字符数),通信双方使用约定的一致的波特率进行通信。
传输距离:近
2. I2C
特点
- 采用同步串行半双工通信,最少需要SDA、SCL、GND三条线(包含VCC)
- 使用SCL、SDA两根双向数据线进行通信
- 为了支持线与逻辑,需要使用开漏输出,因此需要使用上拉电阻
- 上拉电阻大小常见的有1.8K、4.7K、10K
- 在低速场合,为了降低功耗,可以使用10K上拉电阻,1.8K的上拉电阻具有最好的性能,可满足较高速的应用
通信速率
- 普通:100K
- 快速:400K
- 高速:3.4M(根据负载要求,最高速可能只能达到1M,这是硬件问题)
限制
- I2C最大的从机数量受从机地址和最大总线电容400pF电容的限制
- 传输距离近
数据帧格式
此处略,PCF8591就是采用的iic通信协议,可以参考着学
3. SPI

特点
- 采用同步串行全双工串行通信协议
- 定义了4根信号线:
- SCK:时钟线,主机提供
- MISO:主入从出
- MOSI:主出从入
- NSS:从机片选
连接方式
- 可以主从:一主多从
- 也可以点对点:一个主机对应一个从机
- 当选择点对点的形式时,就不需要片选线NSS了,所以SPI最少的信号线是3个
工作原理
- SPI在时钟上升沿到来时,进行双向数据交换
- 主机在输出数据的同时,也会接收到从机的数据
- 主从设备通过 MOSI 和 MISO 同时交换 1 位数据,形成环形移位寄存器结构
- 例如:主机发送字节
0xA3(二进制10100011)时,从机可同时返回另一字节0x46(01000110)
设计要点
- 主机从机均需要一个移位寄存器,来构成环形移位寄存器
- SPI不区分读写方向,只进行数据交换,要读也必须写,才能将数据交换过来
- 传输距离近
数据传输模式
- 较复杂,通过时钟极性CPOL和时钟相位CPHA定义了4种通信模式
- 此处不展开,略过
4. RS-232
特点
- 采用异步串行全双工通信
- 最少有TXD、RXD、GND这3根信号线
- 可以看成是一个增强型UART
增强功能
相比单纯的UART增强的地方:
- 能传输更长的距离(最大大约15m)
- 更强的抗干扰能力(虽然增强了抗干扰能力,但相比之下还是很容易受电磁干扰)
电平关系
- 电平不是UART信号线的TTL电平,而是均为负逻辑电压关系
- 逻辑”1”的电压为-3~-15V
- 逻辑”0”的电压+3~+15V
- 噪声容限为2V
电平转换
- 要求接收这个信号的器件能识别高于+3V的信号作为逻辑”0”,低于-3V的信号作为逻辑”1”
- 大部分器件常用的TTL电平为5V为逻辑正,0为逻辑负
- 需要先连接一个电平转换电路(常用的是MAX232,蓝桥杯里用的是CH340C),再与TTL电平电路连接
硬件实现
- UART既是定义了一种通信协议,也有实际的硬件外设电路
- RS232芯片可以帮助UART增强它的传输距离及信号可靠性
5. RS-485(工业应用)
特点
- 采用异步串行半双工通信
- RS485芯片在数据传输层面是跟RS232芯片一样的道理,都是用的UART通信协议
- RS485芯片里面一端是UART芯片,另一端是RS485收发器,中间可能还有个MCU做流控,本质上还是UART打包数据,RS485负责传输
革命性改进
相比RS-232的改进:
- 采用差分信号来实现信号传输
- 实现远距离传输(最远1200m)
- 多点通信(实现一主多从)
- 强抗干扰能力(差分信号免疫共模噪声干扰)
接线方式
- 需要A、B两条信号线,有正负之分
- 当A线电压高于B线(+2V~+6V)时,输出逻辑”1”
- 当A线电压低于B线(-2V~-6V)时,输出逻辑”0”
通信速率
- 短距离(10m):10Mbps
- 中距离(100m):1Mbps
- 长距离(1200m):100kbps
6. RS-422(工业应用)
特点
- 采用异步串行全双工通信
- 采用差分信号
- 接线有TX+、TX-、RX+、RX-这4条线
- 电平逻辑与RS-485基本一样
7. CAN(工业应用)
特点
- 采用异步串行半双工通信
- 接线是CAN+、CAN-两个信号线
- 电平分为隐性电平(逻辑 1,电压差接近 0V)和显性电平(逻辑 0,电压差 ≥2V)
通信速率
- 支持 1Mbps(40 米)至 5kbps(10 公里)的速率
- 通过降低速率延长传输距离
应用特点
- 是一种独特的通信协议,但太过复杂,精确性极高
- 一般都在工业上使用
8. USB
特点
- 采用差分信号
详细知识
部分信息可能已经过时














