文章目录
前言
通信协议相关问题整理,后续遇到新的问题会再添加。
一、IIC
1、SCL 和 SDA 为什么要上拉?
答:
1、SCL 和 SDA 都被配置成了开漏输出,可以实现线与的功能。
2、给 SCL 和 SDA 一个确定的状态,防止被误启动。
3、接上拉的开漏输出结构可以作为外部输入 IO
2、IIC 的总线仲裁机制?
答:
1.“线与机制”。多主机时,总线具有“线与”的逻辑功能,即只要有一个节点发送低电平,总线上就变现
为低电平。
2.SDA 回读机制。总线被启动后,多个主机在每发送一个数据位时都要对自己的输出电平进行检测,
只要检测的电平与自己发出的电平一致,就会继续占用总线。
3.低电平优先机制。由于线与的存在,当多主机发送时,谁先发送低电平谁就会掌握对总线的控制权。
二、SPI
1、介绍下SPI?
答:SPI ,是串行外围设备接口,是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。现在越来越多的芯片集成了这种通信协议,常见的有EEPROM、FLASH、AD转换器等。
2、SPI最大传输速率受什么影响?
答:
1.SPI的最大时钟频率
2.CPU处理SPI数据的能力
3.输出端驱动能力(PCB所允许的最大信号传输速率)
三、串口
1、USART 和 UART 的区别?
答:USART 除了支持 UART 全双工的异步通信外,还支持半双工的同步通信。
USART 是一种通用同步/异步收发器,可以在同步或异步模式下工作,并提供了更多的功能扩展选项。
UART 则是一种通用的异步收发器,仅支持异步模式。
2、UART 串口要配置哪些参数?
答:配置波特率、数据位个数、奇偶校验、停止位长度
3、UART时序?
答:一位起始位,低电平。
5~8 位数据位。
奇校验、偶检验、无校验。
0.5、1、1.5、2 位停止位,高电平。
4、RX 为什么要上拉?
答:因为读取过程以低电平作为起始信号,上拉可以防止被噪声影响信号传输。
5、UART 怎么传输浮点数?
答:将其转为整形后分字节发送,接收方接收后再解码。
6、串口怎么接收不定长数据?
答:
1、将数据打包,定义数据中不会出现的值做帧头和帧尾。
2、利用滴答定时器进行计时,当一个数据接收完后,开始计时,若经过3.5个字符传输需要的时间都没有数据传输过来,说明这一帧数据接收完成了。
3、使用串口空闲中断+DMA传输模式。在串口接收到数据后,如果在一段时间内没有接收到新数据,就会发生空闲中断,将一整帧数据利用DMA直接传输到储存器中。
7、软件怎么实现自动波特率检测?
答:设置一个“暗号“,如 0x7F,通过测定特定信号跳变的时间来换算.
四、CAN
1、CAN 总线的优势:
答:
1.数据传输速度较高,可达到 1Mbps.
2.采用差分数据线,抗干扰能力强。
3.多节点通信模式,大幅减少单点通信线束成本。
4.具有错误帧诊断功能,通信可靠度较高。
五、
1、终端电阻?
答:1、在模拟电路中,终端电阻被用于减少信号的反射和干扰,提高信号的质量和稳定性。
2、在高速电路设计中,终端电阻被用于提高信号的匹配度和信号传输的稳定性。
3、在射频电路中,终端电阻被用于防止信号的反射和干扰,提高信号的传输质量和稳定性。
2、为什么 RS485 和 CAN 总线的终端电阻一般是 120Ω?
答:终端电阻可以使信号的反射降低,提高信号传输的质量和稳定性。在数字通信和网络设备中,常常使
用的终端电阻值是 120 欧姆。
在电磁波传输中,信号的传输速度是有限的,因此信号在传输过程中会受到反射,这会导致信号的干扰和衰减。为了减少这种干扰和衰减,我们可以使用终端电阻来吸收信号的反射。当信号到达终端电阻时,终端电阻会将信号吸收,从而防止信号反射。这样,信号的传输质量和稳定性就能得到提高。
3、什么是异步传输和同步传输?
答:同步传输是按照固定时间间隔传输数据,发送和接收节点之间保持时钟同步。
异步指双方不需要共同的时钟,接受方不知道发送方什么时候发送,所以在发送信息中要有起始位。
1.同步传输的主机和从机使用的时钟要同步。如 IIC、SP
2.同步传输的是数据帧。异步传输的是字节,(带起始位和停止位)
3.同步传输的传输速率比异步传输块。
4、UART、IIC、SPI 对比的优缺点?
答:1、UART 适用于简单的点对点通信,如串口调试或与外部设备进行简单的数据传输。
2、I2C 适合于连接多个设备、短距离通信的场景,如连接传感器或外围设备。
3、SPI 适用于高速传输、需要连接多个外设的场景,如存储器、显示器和传感器等。