在上一篇文章中写道:这似乎是一个更专注于软件级别的主题。
在我反复选择硬件解决方案,布局和布线等之前,我发现我需要考虑的不仅仅是电路设计或过程。
。
后来,我开始反思。
尽管我说过“技术行业有专门知识”,但作为研发工程师,您需要建立新的项目和遇到的问题。
您不需要了解您认为的硬件或软件。
知识”遇见你。
除非您想成为一名“只是倾听他人”的技术人员。
命令和做事”。
I2C,SPI和UART是常见的低速板级通信协议。
当前,主流SoC具有用于这些通信协议的内置控制器。
同样,各种传感器,触摸控制器,指纹模块,蓝牙模块和WIFI模块也兼容。
这三种通信方法中的一种或多种。
这三种通信协议之间的区别可以非常精细地加以区分,包括信号的单位,传输协议中的数据包格式等。
UART通常由TXD,RXD和GND组成,这是一种异步传输协议。
主机和从机都可以自由发送数据,但是由于UART总线没有时钟线,因此需要事先约定相应的波特率。
这是一个非常简单的传输协议,可以在此基础上通过电路来实现。
RS-232,RS-242,RS-485和其他通讯协议。
过去,老式计算机配备了RS-232接口,但是在过去的10年中,计算机仅配备了USB,因此它们通常需要通过UART到USB开关电路相互连接。
UART比较简单,因此CPU输出日志通常通过UART端口输出,而UART端口是当前最常用的调试接口。
它的传输速度相对较慢。
传统的传输速度为115200bps或更低,但是大多数UART控制器也可以支持4Mbps或8Mbps。
I2C是两条线,即SDA(数据)和SCL(时钟),这是半双工同步传输协议。
主机发送启动信号后,它首先发送7位地址位和1位读/写位。
每个从机都有自己的I2C地址。
当发现命令已发送给自己时,拉下SDA线(即应答ACK信号),然后主机发送或接收数据以完成传输。
传输完成后,主机发送一个停止位以完成传输。
I2C最初是由PHILIPS提出的。
它用于芯片之间的传输。
理论上,可以连接128个从站(通常最多只能连接10个)。
原则上,它只能由PCB上的铜箔线承载。
但是,目前,许多应用程序都使用I2C电缆。
此外,I2C总线的引脚均为漏极开路输出,必须连接一个上拉电阻。
可以根据总线速度计算出电阻值。
通常,我们通常使用400kbps的传输速率(标准模式:100kbps,快速模式:400kbps,高速模式:3.4Mbps),上拉电阻为2.2K。
SPI有四根线,分别是CS(片选),MOSI(主发送和接收),MISO(从发送和接收)和CLK(时钟)。
它是一种全双工同步传输协议。
主机发送CLK信号,从主机到从机的数据在MOSI线上传输,从从机到主机的数据在MISO线上传输。
在开始发送之前,您需要拉低(通常是这种情况,有些芯片是CS高电平有效)对应于从机CS引脚的。
发送完成后,将CS引脚拉高,从器件的SPI从模块进入休眠状态。
SPI是由Motorola发明的。
像I2C一样,可以连接多个从站,但是每次添加一个从站时,都必须至少添加一行。
可以同时进行发送和接收,并且传输速度可以达到几Mbps,这比I2C更快。
UART与后两者的最大区别在于后两者是同步的,并且必须具有统一的时钟线,而UART则不需要,并且接线方便,但是发送方和接收方都需要配置相同的波特率,即设备必须具有自己的时钟源:I2C协议中有地址规则,因此在一对多通信中更具优势。
它通常用于连接传感器。
SPI编程很简单,可以在设备数量不多,端口足够大且通信速度要求不高的情况下使用。
它更常用于连接EEPROM,FLASH或LCD。
免责声明:本文内容经21ic授权后发布,版权归原作者所有。
该平台仅提供