- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SPI、I2C、URT三种串行总线协议的区别
SPI、I2C、UART三种串行总线协议的区别第一个区别当然是名字:
????SPI(Serial?Peripheral?Interface:串行外设接口);
????I2C(INTER?IC?BUS:意为IC之间总线)
????UART(Universal?Asynchronous?Receiver?Transmitter:通用异步收发器)
第二,区别在电气信号线上:
????SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现?多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
????如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
????I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
????如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备)
????UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
????显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;
第四,看看牛人们的意见吧!
????wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。
quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少
串口进行通信的方式有两种:同步通信方式和异步通信方式?
1 串行通信的概念
?
图1-1
所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。如图1-1所示。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。
由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串→并)和“发送移位寄存器”(并→串)。典型的串行接口的结构如1-2所示。
?
图1-2
在数据输入过程中,数据1位1位地从外设进入接口的“接收移位寄存器”,当“接收移位寄存器”中已接收完1个字符的各位后,数据就从“接收移位寄存器”进入“数据输入寄存器”。CPU从“数据输入寄存器”中读取接收到的字符。(并行读取,即D7~D0同时被读至累加器中)。“接收移位寄存器”的移位速度由“接收时钟”确定。
在数据输出过程中,CPU把要输出的字符(并行地)送入“数据输出寄存器”,“数据输出寄存器”的内容传输到“发送移位寄存器”,然后由“发送移位寄存器”移位,把数据1位1位地送到外设。“发送移位寄存器”的移位速度由“发送时钟”确定。
接口中的“控制寄存器”用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接口的工作方式。
“状态寄存器”的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状态或某种错误。例如,用状态寄存器的D5位为“1”表示“数据输出寄存器”空,用D0位表示“数据输入寄存器满”,用D2位表示“奇偶检验错”等。
能够完成上述“串- -并”转换功能的电路,通常称为“通用异步收发器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550.
******?
第一个区别当然是名字:????SPI(Serial?Peripheral?Interface:串行外设接口);????I2
您可能关注的文档
- REUSE_ALVGRID_DISPLAY超详细讲解.doc
- RFC1055_在行线路上传输IP数据报的非标准协议.doc
- Renesas R78L1C 16位MCU开发方案.docx
- RF+jenkin+svn自动化持续集成环境搭建.doc
- RFID技术在广东网固定资产管理中的应用.doc
- RJ必修2化学第四~学业测评(孔诗韵)知识点.docx
- ROUTE Chater 1 6.0 .doc
- RL-QP-01 件控制程序 -6修改.doc
- ROS ADSL双负载均衡+PPPOE服务器教程图文详解.doc
- RouterOS 3.24版本PCC多线负载均衡设置例程.doc
- Spring视频教 Spring MVC开发实例-基于SpringMVC、MyBatis、FreeMarker架构实战CMS大型门户网站.doc
- spket IDEeclipse插件的安装.doc
- Spring MV学习(七)-------SpringMVC数据类型转换.docx
- SQL Serve 数据库案例教程课后习题答案.docx
- Sql Serve Transact-SQL 新兵器学习总结之-公用表表达式(CTE).doc
- sql serve 存储过程及应用实例笔记.docx
- Sql serve r2的10.5版数据库文件还原成10.0版数据库文件.doc
- SQL Serve 中的新日期数据类型.docx
- sql serve 教材思考与练习答案(1-9).doc
- SQL Serve 登录问题(错误 233和18456)解决方法.docx
最近下载
- Wexner便秘评分及罗马三诊断标准.doc VIP
- 施工材料进场检验及存储管理方案.docx VIP
- 双金属温度计与压力式温度计检定规程.pdf
- 成人呼吸道感染病原诊断核酸检测技术临床应用专家共识( 2023.pdf VIP
- 人教版(PEP)新教材小学四年级英语上册Unit 1 Helping at home单元测试卷及答案.docx VIP
- Python程序设计PPT课件(共12章)第11章 正则表达式.pptx VIP
- 红领巾伴我成长主题班会课.pptx VIP
- 路灯安装施工组织设计.pdf VIP
- 初步设计及概算评估咨询服务方案投标文件(技术方案).doc
- 危险性上消化道出血急诊救治快速通道.docx VIP
文档评论(0)