单片机应用_i2c总线

单片机应用_i2c总线

ID:9952913

大小:911.01 KB

页数:50页

时间:2018-05-12

单片机应用_i2c总线_第1页
单片机应用_i2c总线_第2页
单片机应用_i2c总线_第3页
单片机应用_i2c总线_第4页
单片机应用_i2c总线_第5页
资源描述:

《单片机应用_i2c总线》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机应用设计项目实训——I2C总线学习内容:一。总线(I2C总线)。二。AD、DA转换(PCF8591)。三。键盘。 四。数码管显示。五。通信。(232、485)。 六。步进电机驱动控制。第一篇i2C总线(理论2学时,实践4学时)学习目的:(1).认识i2C总线的实现原理,简单了解其协议思想。(2).通过i2C总线,认识器件之间,以及电路与软件的融合思想。(3).通过i2C总线,使学生能触类旁通的扩展到其它协议类的原理。(4)通过i2C总线,学习单片机控制原理。i2C(Inter-IntegratedCircuit)总线:它是PHILIPS公司开发的双向两线制串行总线,用于

2、连接微控制器及其外围设备,属于器件总线。i2C总线产生于80年代,最初为音频和视频设备开发,在彩色电视机中大规模应用,如今主要应用于电讯和影音产品,微控制器与各种功能模块的连接,器件之间的互连通信,在计算机服务器的管理中也大量应用。应用实例图一单片机i2C总线应用实例图二一。i2C总线特点简单性(2线,电路简单,编程方便)有效性I2C功能器件包括:实时时钟、LCD驱动、I/O扩展、AD转换器、LED调光、闪光器、LED调光、闪光器、数字温度传感器、数字DIP开关;i2C总线在IC之间进行双向数据传送,典型速度100Kbit/S,快速模式达400Kbit/S,后来增加了高速模式

3、达3.4Mbit/S。总线的长度可达1000米。i2C总线上的每个电路和模块都有唯一的地址,像手机拨号一样。每一个IC都可以是主控器(或被控器),都可以是发送器(或接收器)。二。I2C总线的工作原理:数据传输的实质是:通过实现数字逻辑的“与”逻辑来传递二进制1和0的数据。“1”高电平;“0”低电平。端口A端口B结果001101010001器件A的端口器件B的端口I2C总线接口的实现电路简图SDAIN=1时,T上拉通,SDA=1;IN=0时,T下拉通,SDA=0。多个并联,即实现了“与”逻辑。0锁定总线,1释放总线。SDASDA2.1I2C总线的构成及信号类型:一。构成:数据线

4、SDA时钟线SCL二。数据传输的有效规则:1.SCL高电平期间,SDA保持不变,数据有效。2.SCL低电平期间,SDA改变,数据变化有效。三。应用方式:1.标准硬件i2C端口(硬核)。2.软件模拟i2C端口(可编程器件用软件实现)。SDASCL单片机EEPROM普通I/O口普通I/O口单片机EEPROMI2C总线的三种信号类型:[开始信号]SCL高电平时,SDA产生高到低的下降沿跳变[结束信号]SCL高电平时,SDA产生低到高的上升沿跳变[应答信号]接收数据的器件在接收到8bit数据后,向发送数据的器件发出低电平信号,表示已收到数据。这个信号由接收数据的器件发出。发送端收到应

5、答信号后,作出分析判断。若未收到应答信号,则判断为受控单元出现故障。I2C总线数据传送典型信号时序串行总线上的数据传送时序图:2.2总线的工作原理时序图时钟线数据线下降沿开始位上降沿结束位数据位应答位时间轴总线数据传送的模拟(1)总线数据传送的时序要求为了保证数据传送的可靠性,标准的总线数据传送有着严格的时序要求,如总线上时钟信号的最小低电平周期为4.7us,最小的高电平周期为4us等。用单片机的普通I/O口模拟总线的数据传送时,单片机的时钟信号都能满足SDA、SCL上升沿、下降沿的时间要求,因此,在时序模拟时,最重要的是保证典型信号。(2)I2C总线的控制程序实现:/*I2

6、C的启动程序*/(时钟线高时,数据线上升沿)VoidI2CStart(void){SDA=1;//释放数据线SomeNOP();//延时SCL=1;//时钟线拉高SomeNOP();//延时SDA=0;//数据线拉低SomeNOP();//延时SCL=0;//时钟线拉低SomeNOP();//延时}/*I2C的停止程序*/(时钟线高时,数据线上升沿)voidI2CStop(void){SDA=0;SomeNOP();SCL=1;SomeNOP();SDA=1;SomeNOP();}/*I2C的应答程序*/voidACK(void)//Acknowledge信号{SDA=0;/

7、/发送0,应答SomeNOP();SCL=1;SomeNOP();//产生时钟高电平SCL=0;SomeNOP();}voidNACK(void)//没有Acknowledge信号{SDA=1;//发送1,非应答SomeNOP();SCL=1;SomeNOP();//产生时钟高电平SCL=0;SomeNOP();}检测应答位bitTestAck(){bitErrorBit;SDA=1;SCL=1;ErrorBit=SDA;SCL=0;return(ErrorBit);}写8位数据bitWrite8Bit

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。