您的位置: turnitin查重官网> 管理学 >> mba >> mba优秀范文 >机上I2C总线技术在MSP430单片机上实现查抄袭率

机上I2C总线技术在MSP430单片机上实现查抄袭率

收藏本文 2024-04-22 点赞:14553 浏览:59779 作者:网友投稿原创标记本站原创

摘要:本文介绍了I2C总线的特点及数据传输时序,并以串行EEPROM为例,给出了在MSP430F449上使用通用I/O口模拟实现I2C总线接口的方法,包括硬件设计及I2C模拟软件包,经过反复调试,运行效果良好。
关键词:I2C 总线 MSP430F449 EEPROM
1、引言
I2C总线是PHILIPS公司推出的一种新型串行总线,它可使器件之间通过简单的两线实现全双工同步数据传送。极大简化了应用系统的硬件设计,节省了系统资源,降低了系统成本,而且系统的修改和升级也极为方便,只需向总线上加载或卸载芯片即可。I2C总线的简单性并没有影响到它的实用性,它是一种具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线,已广泛应用于自动控制、通讯产品、家电、智能仪器仪表等场合。在标准模式下,I2C总线的数据传输速率可达100Kbit/s,高速模式下可达400 Kbit/s。
I2C总线串行数据传送的主要特点如下:
(1) 两线传输。I2C总线上的所有节点,如主器件(单片机、微处理器等) 、器件等都连到同名端的SDA(串行数据线)、SCL(串行时钟线)上,并通过这两根线在器件之间传送信息。
(2) 系统中有多个主器件时,任何一个主器件在I2C上工作时都可成为主控制器(无中心主机)。
(3) 系统中所有器件采用器件地址和引脚地址的编址方法,避免了片选线的连接方法。
(4) 所有带I2C总线接口的器件都具有应答功能。片内有多个单元地址时,数据读写都有地址自动加1功能。这样准备好读写入口条件后,只需启动I2C总线就可对相应器件自动完成N个字节的读写操作。

2、I2C总线技术

2.1I2C总线协议概述

I2C总线是一个十分完善的多主机系统总线,即它可以由多个相互连接的器件控制。任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率,在任何时间点上只能有一个主控。在互联的系统中,每个控制设备都有自己唯一地址,可以作为发送设备,接收设备,或同时具有两种功能。这样,各控制电路虽挂在同一条总线上,却彼此独立。
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。故I2C数据是通过数据线SDA和时钟SCL进行传送的,由于都是开漏极端,因此,I2C总线上所有设备的SDA和SCL引脚都要外接上拉电阻。

2.2I2C总线典型信号

I2C总线有严格的规范,因此,对于那些无专用I2C接口的单片机来说,大量的带有I2C接口的芯片,无法直接利用标准的I2C总线软件包实现通讯,一定程度上限制了I2C总线技术的推广与应用。
目前,解决的办法之一是利用单片机普通的I/O接口,通过软件指令模拟I2C信号及其时钟时序,实现对带有标准12C接口芯片的通讯。I2C总线数据传输的模拟大大扩展了I2C总线器件的适用范围。I2C总线协议规定如下:
1) 只有在总线空闲时,才允许启动数据传送
2)在数据传送过程中,当时钟线为高电平时,数据位必须在数据线上保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被看作是总线的启动或停止信号。

2.3I2C总线的数据传送过程

由I2C总线的工作特点决定了它有四种工作方式:主发送,主接收,从发送,从接收。但实际的I2C总线应用系统绝大多数都是单主机系统,只用到了主方式,即主发送与主接收,本文所介绍的I2C总线模拟方法也只考虑这种情况。
I2C总线数据传输时必须遵循规定的数据传送格式。按照总线规约,在I2C总线上传送的一个数据字节由八位组成。总线对每次传送的字节数没有限制,但每个字节后必须跟一个应答位。发送时,首先发送的是数据的最高位。数据传送时首先由主机发出启动信号,然后由主机发送一个字节的数据。启动信号后的第一个字节数据具有特殊含义:高七位是从机的地址,第八位是传送方向位,0表示主机发送数据(写),1表示主机接收数据(读)。被寻址到的从机设备按传送方向位设置为对应工作方式。标准I2C总线的器件都有一个七位地址,所有连接在I2C总线上的器件都接收启动信号后的第一个字节,并将接收到的地址与自己的地址进行比较,如果地址相符则为主机要寻访的从机,应在第九个时钟脉冲时向SDA线送出低电平作为应答。除了第一字节是通用呼叫地址或七位从机地址之外,第二字节开始即数据字节。数据传送完毕,由主机发出停止信号。

3、I2C总线在MSP430单片机上的实现

MSP430F449[3]是一款功能强大,超低功耗的单片机。内置有2KRAM和容量60KB、点擦除可高达1万次以上的FLASH,便于实时在线编程和动态数据存储。
不带I2C总线接口的MSP430单片机可以使用软件来模拟I2C的操作,包括串行时钟、数据输入和输出。本文以MSP430F449和24LCXX系列串行EEPROM的接口为例说明I2C总线在MSP430上的软件模拟方法。24LCXX是具有I2C总线接口的串行EEROM,容量为1千位以及超过1千位的器件具有页写入能力,支持100万次的擦写,数据能有效保持200年。24LCXX系列EEPROM的型号地址皆为1010,器件地址中的低3位为引脚地址A2、A1、A0,对它们进行组合之后,连接到一条总线上的从机最多八个,故8位寻址信号即可对其片内单元进行寻址。进行连续读写操作时,24LCXX系列能实现字节地址自动加1,故只需指定首地址。为了指定首地址,需要两个伪字节来给定器件地址和片内地址,重复一次启动信号和器件地址(读),就可读出该地址的数据。
对24LCXX系列EEPROM的读写操作完全遵守I2C总线的主收从发和主发从收的规则。

3.1硬件实现

图1MCU与24LCXX的连接图
在24LCXX中[4],WP 为写保护引脚,它为高电平时,内部数据被硬件写保护,不能写入。A0~A3为器件地址输入引脚。SCL为串行时钟输入引脚,用于产生器件收发数据所需的时钟信号。SDA为串行数据引脚为双向引脚,用于把地址和数据输入/ 输出器件。由于该引脚为漏极开路,它与VCC 之间要接入上拉电阻(通常频率为100 kHz时电阻阻值10 kΩ , 400 kHz 或1 MHz时阻值

源于:论文提纲格式www.udooo.com

2 kΩ )。正常的数据传输只允许在SCL为低电平期间改变SDA 电平。若SDA电平在SCL高电平期间发生变化则表明起始和停止条件产生。
MCU的通用输入/出(GPIO)端口P

2.1、P2与24LCXX的SCL、SDA端口相连接构成I2C总线[4]。

3.2模拟I2C软件解决方案

限于篇幅,本文仅给出MSP430F449向存储器24LCXX写入单字节的子程序框图和向其连续单元写N个字节的子程序框图,分别如图2和图3所示:
读子程序框图与写入子程序类似,主要区别在于单片机进行读操作时,首先需发送器件的7位地址码和写方向“0”,然后再发送一个字节,读出器件的存储区的首地址,分别收到器件应答后,单片机要重复发送一次起始信号和器件地址及读方向位“1”。

4、结束语

本文应用上述的设计方法和软件程序,实现了MSP430与I2C总线器件的通信,当运用大量的数据处理时,可以进行数据的存储,在掉电保护时也起到了对系统数据备份的作用,再加上I2C模拟通信简洁高效的C语言编程风格,在MSP430系列单片机开发上得到了广泛的应用。
参考文献:
柯艳明,I2C总线技术在DSP系统中的实现,黄石理工学院学报,2008
何立民,I2C总线应用系统设计[M] ,北京航空航天大学出版社,1995
[3]沈建华 杨艳琴等,MSP430系列16位超低功耗单片机原理与应用[M],清华大学出版社,2004
[4]黄剑眉 吴锰章,具有I2C总线接口的串行E2PROM24LC65原理及应用[J],工业仪表与自动化装置,1997
[5]季宏锋 吴军辉 徐立鸿,I2C总线技术及应用实例,自动化与仪表,2002

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号