- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
I2C总线技术在MSP430单片机上实现
I2C总线技术在MSP430单片机上实现
摘要:本文介绍了I2C总线的特点及数据传输时序,并以串行EEPROM为例,给出了在MSP430F449上使用通用I/O口模拟实现I2C总线接口的方法,包括硬件设计及I2C模拟软件包,经过反复调试,运行效果良好。
关键词:I2C 总线 MSP430F449 EEPROM
1、引言
I2C总线是PHILIPS公司推出的一种新型串行总线,它可使器件之间通过简单的两线实现全双工同步数据传送。极大简化了应用系统的硬件设计,节省了系统资源,降低了系统成本,而且系统的修改和升级也极为方便,只需向总线上加载或卸载芯片即可。I2C总线的简单性并没有影响到它的实用性,它是一种具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线,已广泛应用于自动控制、通讯产品、家电、智能仪器仪表等场合。在标准模式下,I2C总线的数据传输速率可达100Kbit/s,高速模式下可达400 Kbit/s。
I2C总线串行数据传送的主要特点[1]如下:
(1) 两线传输。I2C总线上的所有节点,如主器件(单片机、微处理器等) 、外围器件等都连到同名端的SDA(串行数据线)、SCL(串行时钟线)上,并通过这两根线在器件之间传送信息。
(2) 系统中有多个主器件时,任何一个主器件在I2C上工作时都可成为主控制器(无中心主机)。
(3) 系统中所有外围器件采用器件地址和引脚地址的编址方法,避免了片选线的连接方法。
(4) 所有带I2C总线接口的外围器件都具有应答功能。片内有多个单元地址时,数据读写都有地址自动加1功能。这样准备好读写入口条件后,只需启动I2C总线就可对相应器件自动完成N个字节的读写操作。
2、I2C总线技术
2.1 I2C总线协议概述
I2C总线是一个十分完善的多主机系统总线,即它可以由多个相互连接的器件控制。任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率,在任何时间点上只能有一个主控。在互联的系统中,每个控制设备都有自己唯一地址,可以作为发送设备,接收设备,或同时具有两种功能。这样,各控制电路虽挂在同一条总线上,却彼此独立。
I2C总线是由数据线SDA和时钟SCL构成的串行总???,可发送和接收数据。故I2C数据是通过数据线SDA和时钟SCL进行传送的,由于都是开漏极端,因此,I2C总线上所有设备的SDA和SCL引脚都要外接上拉电阻。
2.2 I2C总线典型信号
I2C总线有严格的规范,因此,对于那些无专用I2C接口的单片机来说,大量的带有I2C接口的外围芯片,无法直接利用标准的I2C总线软件包实现通讯,一定程度上限制了I2C总线技术的推广与应用。
目前,解决的办法之一是利用单片机普通的I/O接口,通过软件指令模拟I2C信号及其时钟时序,实现对带有标准12C接口外围芯片的通讯。I2C总线数据传输的模拟大大扩展了I2C总线器件的适用范围。I2C总线协议规定[2]如下:
1) 只有在总线空闲时,才允许启动数据传送
2)在数据传送过程中,当时钟线为高电平时,数据位必须在数据线上保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被看作是总线的启动或停止信号。
2.3 I2C总线的数据传送过程
由I2C总线的工作特点决定了它有四种工作方式:主发送,主接收,从发送,从接收。但实际的I2C总线应用系统绝大多数都是单主机系统,只用到了主方式,即主发送与主接收,本文所介绍的I2C总线模拟方法也只考虑这种情况。
I2C总线数据传输时必须遵循规定的数据传送格式。按照总线规约,在I2C总线上传送的一个数据字节由八位组成。总线对每次传送的字节数没有限制,但每个字节后必须跟一个应答位。发送时,首先发送的是数据的最高位。数据传送时首先由主机发出启动信号,然后由主机发送一个字节的数据。启动信号后的第一个字节数据具有特殊含义:高七位是从机的地址,第八位是传送方向位,0表示主机发送数据(写),1表示主机接收数据(读)。被寻址到的从机设备按传送方向位设置为对应工作方式。标准I2C总线的器件都有一个七位地址,所有连接在I2C总线上的器件都接收启动信号后的第一个字节,并将接收到的地址与自己的地址进行比较,如果地址相符则为主机要寻访的从机,应在第九个时钟脉冲时向SDA线送出低电平作为应答。除了第一字节是通用呼叫地址或七位从机地址之外,第二字节开始即数据字节。数据传送完毕,由主机发出停止信号。
3、I2C总线在MSP430单片机上的实现
MSP430F449[3]是一款功能强大,超低功耗的单片机。内置有2KRAM和容量60KB、点擦除可高达1万次以上的FLASH,便于实时在线编程和动态数据存储。
文档评论(0)