EDN China > 设计实例 > 嵌入式系统 > 操作系统 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) MSP430与I2C总线接口技术的研究

来源:TI / 作者:西安交通大学润滑理论及轴承研究所 周华 徐华 朱均?? 2006年03月07日 ?? 收藏0
?????? 引言

?????? MSP430单片机自从2000年问世以来,就以其功能完善、超低功耗、开发简便的特点得到了许多设计人员的青睐。MSP430与传统的51单片机在结构上有很大的区别。其中之一就是:在MSP430的外围接口电路中,没有提供像51那样控制外设读、写、地址锁存信号的硬件电路。与这种接口电路相适应,MSP430更倾向使用I2C总线以及ISP等基于串行接口的外围器件。另一方面,随着I2C技术的发展和成熟,其硬件结构简单、高速传输、器件丰富等特点使该类器件的应用越来越广泛。因此研究新型单片机MSP430与I2C总线接口技术有着重要的意义。本文针对这一问题进行研究,分析研究了MSP430与I2C总线接口的原理和方法,提出了高效的接口方法,介绍了优化的程序。

?????? 1 MSP430单片机I/O端口控制特点

??????
与8031单

片机相比,MSP430的I/O端口的功能要强大的多,其控制的方法也更为复杂。MSP430的I/O端口可以实现双向的输入、输出;完成一些特殊功能如:驱动LCD、A/D转换、捕获比较等;实现I/O各种中断。MSP430采用了传统的8位端口方式保证其兼容性,即每个I/O端口控制8个I/O引脚。为了实现对I/O端口每一个引脚的复杂控制,MSP430中的每个I/O口都对应一组8位的控制寄存器(如图1)。寄存器中的每一位对应一个I/O引脚,实现对该引脚的独立控制。寄存器的功能和数目是由该I/O口所能完成的功能以及类型确定的。[2]

?????? 图1为MSP430的一个I/O端口的控制结构示意图。对于最基本的只能完成输入、输出功能的I/O端口其控制寄存器只有3个。其中,输入寄存器保存输入状态;输出寄存器保存输出的状态,方向寄存器控制对应引脚的输入、输出状态。本文中用来实现I2C总线接口的P6.6、P6.7都属于这类的端口。此外,有些I/O端口不但可以用作基本的输入输出,而且可以用作其他用途,比如可以作为LCD的驱动控制引脚。这类端口的控制功能寄存器实现引脚功能状态的切换。再者,有一类端口不但可以完成上述两种端口的功能,而且可以实现中断功能。该类端口拥有图1中所有的寄存器,中断触发的方式以及中断的屏蔽性都可以通过相应的寄存器控制。本文中使用的P2.0就属于该类端口,利用它来接收LM92发出的中断。

MSP430的一个I


?????? 通过上述的控制结构,MSP430的I/O端口可以实现很丰富的功能。不仅如此,其中一些I/O口还可以与MSP430中的特殊模块相结合完成更为复杂的工作。如与捕获比较模块相结合可以实现串行通信,与A/D模块结合实现A/D转换等。此外,MSP430 I/O端口的电器特性也十分突出,几乎所有的I/O口都有20mA的驱动能力,对于一般的LED、蜂鸣器可以直接驱动无需辅助电路。许多端口内部都集成了上拉电阻,可以方便与外围器件的接口。

?????? 2 MSP430与I2C总线器件接口

??????
通过上述的介绍了解了MSP430中I/O口的一些控制特点。以下介绍如何利用这些特点实现I2C总线的接口。如图2所示,使用41系列单片机的P6.6产生I2C总线的时序同步信号;使用P6.7完成I2C总线的串行数据输入输出;利用P2.0接收LM92产生的中断信号。基于I2C总线规范,通过对LM92的A0、A1和AT240的A0、A1、A2设定不同的器件地址,两个器件可以共用SCL、SDA。

MSP430与I2C总线器件接口


?????? 2.1 I/O端口引脚控制

??????
与8031不同,MSP430没有位空间,也没有专门执行位操作的控制电路。那么对于一个指定的I/O端它是如何进行控制的呢?MSP430中有关位操作的指令都是通过逻辑运算实现的。[3]例如:

?????? BISB #01000010B,P1OUT ; 将P1.6和P1.1置位XORB #01000010B,P1OUT ; 逻辑或运算


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

I2C? 总线? 接口?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈