物理层
1.串口通讯电平标准:
- TTL
- 全双工,逻辑1:2.4 ~ 5V,逻辑0:0 ~ 0.5V,一对一连接
- RS232
- 全双工,逻辑1:-15 ~ -3V,逻辑0:+3 ~ +15V,一对一连接,100m
- RS485
- 半双工,逻辑1:+2 ~ +6V,逻辑0:-6 ~ -2V,差分信号(双绞线的电压差),支持一对多连接,1200m,在RS485物理层基础上扩展出MODBUS协议
2.通讯网络示意:
RS-232串口设备通讯结构
RS-485串口设备通讯结构
协议层
- 帧格式:起始位、数据位、校验位、停止位(通讯双方约定一致即可)
- 起始位:1个逻辑0
- 数据位:5、6、7、8位长
- 校验位:奇、偶、0、1、无校验
- 停止位:0.5、1、1.5、2个逻辑1
- 一般:1个起始位、8个数据位、无校验、1个停止位
- 波特率:每个码元的长度,常见有9600、48400、115200
- 码元:时间间隔相同的符号表示一个二进制数字,这样的时间间隔的信号被称为码元
- 比特率:单位时间传输的比特数bit/s
- 中断请求事件
- 初始化结构体
typedef struct {
uint32_t USART_BaudRate; // 波特率
uint16_t USART_WordLength; // 数据帧字长
uint16_t USART_StopBits; // 停止位
uint16_t USART_Parity; // 校验位
uint16_t USART_Mode; // USART 模式,允许用逻辑或运算选择两个
uint16_t USART_HardwareFlowControl; // 硬件流控制,硬件电路控制数据传输的流量
} USART_InitTypeDef;