常见通信协议问题整理


前言

通信协议相关问题整理,后续遇到新的问题会再添加。


一、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 适用于高速传输、需要连接多个外设的场景,如存储器、显示器和传感器等。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Modbus RTU通讯协议是一个常用的串行通信协议,用于在工业领域中,例如自动化系统、监控系统和数据采集系统之间进行通信。 Modbus RTU协议使用RS-485串行通信接口,采用二进制编码方式传输数据。该协议定义了一系列的数据帧格式和通信规则,以保证设备之间的可靠通信。 在Modbus RTU协议中,数据单位被定义为16位的寄存器,可以是输入寄存器或保持寄存器。这些寄存器存储了设备的状态信息、参数设置和实时数据。设备可以通过读寄存器和写寄存器的方式与其他设备进行通信通信的基本单位是一个数据帧,包括了设备地址、功能码、数据域和校验字段。设备地址用于标识通信的目标设备,功能码指示了设备要执行的操作类型。数据域用于传输具体的数据信息,而校验字段用于确保数据的完整性和正确性。 Modbus RTU协议支持多种功能码,包括读取单个寄存器、写入单个寄存器、读取多个寄存器和写入多个寄存器等操作。这些功能码的使用可以实现设备之间的数据交换和控制指令的传输。 总之,Modbus RTU通讯协议是一种简单、可靠且广泛应用的串行通信协议,适用于工业控制和数据采集领域。通过遵循该协议,不同设备之间可以进行有效的数据交换和通信,提高了系统的可靠性和灵活性。 ### 回答2: Modbus RTU(Remote Terminal Unit)是一种常用的串行通信协议,用于在工业自动化系统中实现设备之间的数据通信。该协议由Modicon(一家法国工业控制设备制造商)于1979年开发,后来成为Modbus协议家族的一部分。 Modbus RTU采用串行通信方式,使用RS485通信电平进行数据传输。它采用主从通信结构,其中主节点负责发送请求并接收从节点的响应。从节点可以是各种设备,如传感器、执行器和PLC(可编程逻辑控制器)等。这种通信方式相对简单、可靠,并且可以支持远距离传输。 Modbus RTU协议的数据是以字节为单位进行传输的,其中包括了功能码(如读取、写入等操作)、寄存器地址、数据长度和校验码等信息。常用的功能码包括读取单个寄存器、写入单个寄存器和读取多个寄存器等。 Modbus RTU协议主要用于监控和控制系统,可以实现实时监测和远程控制设备。它被广泛应用于工业自动化领域,如能源、石化、制造业和交通运输等行业。该协议的优点包括易于实现、成本低廉和可扩展性强。 总结而言,Modbus RTU是一种常用的串行通信协议,用于实现工业自动化系统中设备之间的数据通信。它采用主从通信结构,使用RS485通信电平进行数据传输,具有简单、可靠和可扩展性强等特点。这使得Modbus RTU成为工业领域中广泛应用的通信协议之一。 ### 回答3: Modbus RTU通讯协议是一种常见的串行通讯协议,用于在工业自动化领域中实现设备之间的数据交换。 该协议是基于主从架构设计的,包括了主站和多个从站。主站负责发送命令并接收从站返回的响应,而从站则负责根据主站的指令执行相应的操作并返回结果。 Modbus RTU采用二进制编码,数据以16进制形式表示。数据包括地址码、功能码、数据域和CRC校验码。地址码用于标识从站的地址,功能码表示要执行的操作类型,数据域用于传输数据,而CRC校验码则用于保证数据的完整性。 Modbus RTU支持多种功能码,包括读取和写入寄存器、读取和写入线圈、读取和写入输入寄存器等。通过这些功能码,可以实现对各种类型数据的读取和修改操作。 Modbus RTU的通讯速率可以根据实际需求进行设置,一般可选的速率有9600、19200、38400等。通讯距离一般在几十米到几百米之间,可以通过串口转RS485的设备来实现多从站的连接。 Modbus RTU协议的优点是简单易懂,易于实现和调试。它的应用广泛,可以与各种设备进行通讯,包括传感器、控制器、PLC等。此外,Modbus RTU协议还支持多主站的连接,可以实现更灵活的系统架构。 尽管Modbus RTU协议有一些限制,比如通讯速率较低、没有自动发送机制等,但由于其简单性和可靠性,仍然被广泛应用于工业自动化领域,成为了常用的通讯协议之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值