1.UART
1.1为什么要使用UART这种协议?介绍一下UART及其特点
成本低,硬件简单,数据格式灵活;
低速+全双工+异步+串行通信
1.2 UART数据帧格式?
起始位(1)+数据位(5-8)+ 校验位(1)+停止位(0.5-2)
最高12位,最低7.5位。
1.3 请解释 UART 的奇偶校验?
奇校验:数据位中1的数目+校验位(0/1)的1数目是奇数
偶校验:数据位中1的数目+校验位(0/1)的1数目是偶数
1.4 UART与模块通信的全流程是什么?
①初始化:两边需要设置成相同的波特率,数据位,校验位,停止位
②发送数据:发送方将数据放在内部的发送缓冲区中,按照预设的格式诸位发送。
③接收数据:检测到起始位后开始按设定的波特率接收数据位,存入内部的接收缓冲区;
④错误检测和校正:如果开启了校验位,接收设备还会进行错误检测,并在检测到错误时进行相应的处理,可能包括请求重发等。
1.5 UART串口通讯,万一通讯出现异常,你是怎么解决的?异常后怎么处理?
①检查接线:硬件连接问题
②检查串口设置:确认串口的波特率、数据位、停止位和校验位等设置与通信对端一致。
③检查共地问题:通信双方是否有共地
④检查供电问题
异常之后可以采取:
①超时处理,重发或重新建立连接;
②错误检测和纠正:使用校验位或CRC校验检测和纠正数据中的错误;
③日志记录:记录通信过程中的异常情况,包括错误码、错误信息、时间戳等;
1.6 UART怎么确定数据正确性?
奇偶校验、CRC校验、应用层协议检查(应用层协议通常会定义特定的数据格式和结构。接收端可以根据协议规范对接收到的数据进行验证,例如检查数据长度、数据类型或其他应用层约定的字段。)
1.7 UART中为什么还需要将串口转换为RS232,RS485,USB呢?
TTL电平:逻辑“1”通常为高电平(5V或3.3V),逻辑“0”为低电平(0V)。广泛应用于微控制器和数字电路中,不适合长距离传输。
RS232:相对于TTL电平,RS232使用更高的电压范围(通常+/-3V至+/-25V)。逻辑“1”(-3V到-25V)和逻辑“0”(+3V到+25V)的定义与TTL相反。它适用于长距离通信。
USB(通用串行总线):用于计算机和外围设备之间的通信,支持更高的数据传输速率和电源传输。USB适配器、USB串口调试器。
RS485:使用差分信号传输,可以实现远距离和高可靠性通信,常用于工业环境。工业自动化、楼宇管理系统、仪器仪表等
1.8 IIC协议,UART协议,SPI协议异同点?和对应的使用场景?
协议 | UART | IIC | SPI |
线数 | 3 | 2 | 4 |
种类 | 串行通信 | 串行通信 | 串行通信 |
方式 | 异步全双工 | 同步半双工 | 同步全双工 |
主从 | 0 | 1 | 1 |
速率 | 速度慢 | 速度中 | 速度快 |
应用 | 调试 | 读取MPU | 驱动屏幕 |