通信接口
通信的目的:将一个设备的数据传送到另外一个设备,扩展硬件系统。
通信协议:指定通信的规则,通信双方按照协议规则进行数据的收发。
USART 引脚:TX RX; 全双工,异步时钟,单端电平,点对点设备。
I2C SCL SDA 半双工 同步 单端电平,多设备
SPI SCLK MOSI MISO CS 全双工 同步时钟,单端电平 多设备
CAN CAN_H CAN_L 半双工 异步时钟 差分电平 多设备
USB DP DM 半双工 异步时钟 差分电平 点对点设备
单端电平的信号都必须共地
差分信号:靠两个差分引脚的电压差来传输信号的,传输距离远,抗干扰能力强
半双工:可以收发,但是不能同时
全双工:可以同时收发 一般全双工的都有两条通信线 ,
USART串口协议
串口通信:应用广泛,成本低,容易使用,通信线路简单,可以实现两个设备的通信
串口通信可以实现单片机与单片机,单片机与电脑,单片机与各式各样的模块互相通信
硬件电路:
简单双向串口通信需要两根通信线(发送端TX和接收端RX)
TX与RX交叉连接
当只需要单向传输数据的时候可以只接一根通信线
当电平标准不一致时候,需要加电平转换芯片
电平标准是数据和数据的表达方式,是传输线中人为规定的电压与数据的对应关系,串口电平的标准有如下三种:
TTL电平:+3.3V或者5v表示1 0V表示0
RS232电平:-3 - -15表示1 +3 - +15表示0
RS485电平:两线压差2-6表示1 -2 - -6表示0 差分信号
串口参数
波特率:串口通信的速率 由于串口通信是异步通信因此需要实现规定两个通信设备的通信速率 波特率就是每秒传送码元的速率
起始位:标志一个数据帧的开始,固定为低电平 产生下降沿
数据位:数据帧的有效载荷,1为高电平 0为低电平 低位先行
校验位:用于数据验证,根据数据位计算得来 奇偶校验 CRC校验 检出率更高
停止位:用于数据帧间隔,固定为高电平 产生高电平
空闲的时候置为高电平,需要发送数据的时候设置一个低电平产生一个下降沿,告诉设备开始发送数据了
低位先行的意思是8位数据先从低位开始发送例如00001111 发送的时候则是11110000
DR数据寄存器 TDR发送数据寄存器 RDR接收数据寄存器 TDR是只写的 RDR是只读的
发送移位寄存器就是对应与发送,将发送的数据一位一位的移动出去
接收移位寄存器将发送过来的数据接收
一般9位就8位有效数据位加一个校验位 8位正好一个字节
一般8位就使用无校验 八位正好一个字节
停止位时长一般使用一位
NE噪声标志位 1表示有噪声
波特率=输入时钟/16*DIV
波特率寄存器:先用公式计算出来 然后转换为二进制 该寄存器分了整数部分和小数部分
hex模式:以原始数据的形式显示
文本模式:以原始数据编码后的形式显示