I2C 与UART的区别与比较--精选文档

上传人:博****1 文档编号:500676285 上传时间:2023-04-27 格式:DOC 页数:4 大小:25KB
返回 下载 相关 举报
I2C 与UART的区别与比较--精选文档_第1页
第1页 / 共4页
I2C 与UART的区别与比较--精选文档_第2页
第2页 / 共4页
I2C 与UART的区别与比较--精选文档_第3页
第3页 / 共4页
I2C 与UART的区别与比较--精选文档_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《I2C 与UART的区别与比较--精选文档》由会员分享,可在线阅读,更多相关《I2C 与UART的区别与比较--精选文档(4页珍藏版)》请在金锄头文库上搜索。

1、I2CIIC本身是为板级通讯设计,没有考虑远距离通讯.UART通讯编程简单,通讯速度远比IIC快,可以直接使用RS485延伸通讯距离达到1km,通讯速度很容易做高。UART是一个并行输入成为串行输出的芯片.有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信. I2C(InterIntegrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高

2、等优点。发送器:发送数据到总线的器件;接收器:从总线接收数据的器件;主机:初始化发送产生时钟信号和终止发送的器件;从机:被主机寻址的器件;多主机:同时有多于一个主机尝试控制总线但不破坏传输;仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏的过程;同步:两个或多个器件同步时钟信号的过程 。 两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只 有在SCL 线的时钟信号是低电平时才能改变。SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件;SCL 线是高电平时,S

3、DA 线由低电平向高电平切换,这个情况表示停止条件。 发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位(MSB),如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续。 数据传输必须带响应,相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间发送器释放SDA 线(高)。在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低

4、电平。 写操作 写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。 读操作 读操作有三种基本操作:当前地址读、随机读和顺序读。图4给出的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是“不关心”。为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。 I2C的读操作与写操作: I2C与UART不同的地方首先在于先传高位,后传送低位。主机写数据时,每发送一个字节,接收机需要回复一个应答位“0”,通过应答位来判断从机是否接收成功。主机读数据时,接收一个字节结束后,主机也需要发送一应答位“0”,

5、但是当接收最后一个字节结束后,则需发送一个非应答位“1”,发完了1后,再发一个停止信号,最终结束通信。I2C写数据流程首先I2C起始信号,然后发送首字节,即器件(EEPROM)地址。并且在读写方向位上选择“写操作”方向。(0xa0)第二个字节,发送数据的存储地址,就是要读取的数据所存储在EEPROM中的位置。第三个字节,发送要存储的数据第一个字节,第二个字节注意:在写数据的过程中,都要等待EEPROM返回一个“应答位”。write_eeprom:void write_e2prom(uint8 addr,uint8 databyte)I2CStart();I2CSend(0xa0);/起始信号后

6、写入器件地址,写操作I2CSend(addr);/写入发送数据的存储地址I2CSend(databyte)/发送存储的数据I2CStop;void I2CSend(uint8 byte)uint8 mask=0x80; /数据由高位依次传输 int i;for(i=0;i=1;Delay();/SDA延迟一个高电平SCL=1; /下一个时序,Delay();/SCL延迟一个低电平,保证时序的完整性/一个字节的数据传输完成之后,要等待应答位SCL=0;/接着上一个时序,保证完整性SDA=1;/主机释放SDA,拉高SDA,观察应答位Delay();/延迟一个时序,等待应答位j=SDA;/取出从机返

7、回的应答位进行判断,低电平的时候有效Delay();/延迟一个时序SCL=1;/拉高SCL,等待下次传输 UART通信UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是58个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。在接收过程中,UA

8、RT从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。例如,如果产生一个奇偶错误,UART就置位奇偶标志。异步串口通信协议作为UART的一种,工作原理是将传输数据的每个字符一位接一位地传输。其中各位的意义如下:起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。波特率:是衡量资料传送速率的指针。表示每秒钟传送的二进制位数。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10120=1200位/秒=1200波特。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 人力资源管理师

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号