UART、IIC、SPI详解

UART

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),也就是通常说的串口。一般主要有4条线,RX(数据接收)、TX(数据发送)、GND(地)、VCC(电源)。他是一种全双工通信(即可以在接收数据的同时发送数据)。还需要注意的一点是两个设备通过UART通信,那么A设备的RX应该与B设备的TX连接、A设备的TX与B设备的RX连接,这个很好理解A设备发送数据那么B设备肯定是接收数据。 
另外,如果一方为PC机A,一方为单片机B。需要将TTL/CMOS(单片机电平)转换为RS232(PC机电平)。因为TTL/CMOS电平范围为0-1.8/2.5/3.3/5V,逻辑上1表示高电平,0表示低电平。RS232的电平范围为-12-12V,-5—— -12V表示高电平,5-12V表示低电平,确实是反着来的。

IIC

IIC(Inter Integrated Circuit)翻译过来是内部集成电路(我也不知道为啥),这个通讯协议就两根线SCL(时钟线)、SDA(数据线)。物理上的简单意味着逻辑上的复杂。这个通讯方式是半双工(也就是可以发送和接收数据但两者不能同时进行)。IIC通信的设备在两跟线上可以挂载多个设备。 
根据时序图我看可以看出: 
首先我们需要知道SCL与SDA都处在高电平因为停止位的原因(后面会讲),开始我们需要先将SDA拉低到低电平再将SCL拉至低电平,这个过程为起始位,表示开始传输数据。在数据传输过程中SCL以一定的周期产生脉冲,而SCL一般在脉冲周期的上升沿采集数据,因此我们一般会先更新SDA的值,在SCL下降沿后再变换下一位的SDA的值,直到数据传输完毕(一般为8位),最后将SDA拉至低电平(这个一般由接收数据的设备拉低),SCL产生最后一个脉冲,表示接收设备接收到数据,即应答位,应答失败则会停止下一帧的传输,如果成功那么先将SCL拉高至高电平,再将SDA拉高至高电平,表示停止位,与开头第一句话形成一个循环,然后发送下一次数据。 备注:1、起始位 2、发送地址 3、读写位 4、应答位 5、停止位


我们上面说到两根线上可以挂载多各设备,因此为区分他们我们发送数据前会最先发送一帧地址(发送方式跟发送数据一样),对应的两个设备之间再进行设备数据交互,发送地址一般是7个地址位(即对多可挂载127个设备)1个指示位(0表示写,1表示读)
注意要点: 
1) 严格按照时序图的要求进行操作, 
2) 若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻。 
3) 程序中为配合相应的传输速率,在对口线操作的指令后可用NOP指令加一定的延时。 
4) 为了减少意外的干扰信号将EEPROM内的数据改写可用外部写保护引脚(如果有),或者在EEPROM内部没有用的空间写入标志字,每次上电时或复位时做一次检测,判断EEPROM是否被意外改写。

SPI

SPI(Serial Peripheral interface)串行设备外围接口,是一种全双工的通信协议,常被用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。有四个引脚:SDI(串行输入)、SDO(串行输出)、SCK(串行移位时钟,由主设备产生)、CS(从设备使能信号,由主设备控制)。在SPI上可以挂载一个主设备和多个从设备,一次一个主设备只与一个从设备进行通信,通信的从设备CS为低电平(有效),也可以不用CS引脚,那么SPI上只能有一个主设备与一个从设备。 
数据传输,数据在时钟上升或下降沿由SDO输出在下降或上升沿读入。8/16次的时钟改变完成8/16次的数据传输。缺点是SPI没有应答机制,全都由主设备进行控制数据传输成功与否没法直接验证。

总结

上述三种传输方式都是串行传输方式,也就是只能一位位的传输。传输距离上来看,UART的RS232(全双工)一般在15M以内,RS485(半双工)在1500M以内。而IIC与SPI一般都是只限于板级。传输速率上与传输距离相反,232与485也就几百K,IIC与SPI是十几M的样子。

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值