博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SPI UART区别是什么
阅读量:6604 次
发布时间:2019-06-24

本文共 1114 字,大约阅读时间需要 3 分钟。

一般设备和设备之间的通讯,无非就是发送数据和接收数据,问题就在这里,不考虑两条电源线的情况下要多少根线来收发数据?这里Motorola公司就提出一种方案:1.--Serial Peripheral Interface串行外围设备接口,是一种三线同步总线,即由1根发送线+1根接收线+1根时钟线(数据传送时序控制线)构成,由于发送和接收线是独立的,所以发送和接收可以同时进行。注:时钟线,简单来说,就是用来决定数据什么时候发送和什么时候不发送的,这样是为了两设备之间的同步数据传输,也可以说是数据传送指令线。2.(Universal Asynchronous Receiver Transmitter:通用异步收发器,也就是人们常说的串口。它其实就是的基础上少了时钟线构成的,即由1根发送线+1根接收线构成。没有时钟线,那它怎么保证数据传送的同步性和准确性呢?这时就规定了,发送端的设备和接收端的设备发送数据和接收数据的速度必须保证相同。怎么个相同法,人们规定这个速度叫做波特率,即串口一旦工作,发送端就会按照事前设计好的波特率来发送数据,接收端也是按这个波特率来接收数据,这样就实现同步了,所以串口比较复杂,因为它需要一个波特率发生器为它提供波特率。3.I2C--INTER-IC(INTER IC BUS:意为IC之间总线)串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线。串行总线是相对于并行总线来说的,我们玩单片机经常用到P0口来做多设备通讯的数据总线,一个8位并行数据总线,这里的串行总线即是相对这个说的。IIC由1根串行数据线(SDA)+1根串行时钟线(SCL)构成,实现了双工的同步数据传输(双向传输)。有人会凝问,一根线作为总线就算了,但是它怎么实现双向传输数据呢?你可别忘了,它还有一根时钟线,作用同spi的时钟线。所以总结一下,数据传输说白了就两种方式:有时钟线和无时钟线。至于是1根串行的数据线还是2根独立收发的数据线,就看实际场合的应用了,一根串行数据传送数据的缺点很明显,不能同时收发造就了它的不灵活性和速度慢的缺点,而有时钟线的缺点就是线多,所以IIC就是为了减少线的数量的情况下诞生的产物。无时钟线的缺点就是同步同题,两个设备使用通讯之前一定要设置好一致的波特率。所以不难看出,uart就是以上所有缺点中最好的选择,只要事先设置好一致的波特率,那么以后的通讯只需2条线,并且这时就具有SPI的优点(双向同步)又有IIC的优点(线少),以上就是我个人的理解,如有误的地方请友好指出。

转载于:https://www.cnblogs.com/fire909090/p/9355961.html

你可能感兴趣的文章
Implicit declaration of function 'BMKCoordinateForMapPoint' is invalid in C99
查看>>
Intent传参数
查看>>
MVC 和 Web Form
查看>>
2016阿里巴巴73款开源产品全向图
查看>>
[转]平面方程
查看>>
20165105 第八周学习总结
查看>>
Sublime Enter Key Setting自动缩进设置
查看>>
maven在win7系统上的安装
查看>>
实例讲解教你读懂路由表
查看>>
Glibc 和 uClibc
查看>>
VMware 虚拟机的虚拟磁盘编程知识点扫盲之二
查看>>
Have a Good Attitude 良好的态度
查看>>
win7 web开发遇到的问题-由于权限不足而无法读取配置文件,无法访问请求的页面...
查看>>
vs2012中自带IIS如何让其他电脑访问
查看>>
谁(何时)需要设置监听器(回调)
查看>>
关于termux在手机上搭载Linux系统,python,ssh
查看>>
Redux:异步操作
查看>>
Mysql学习第三课-分析二进制日志进行增量备份和还原
查看>>
2-11
查看>>
关于C#调用广州医保HG_Interface.dll调用的一些总结(外部组件异常)
查看>>