首页 > 嵌入式硬件 > 存储技术

引言

本文引用地址: http://embed.21ic.com/hardware/storage/201806/64872.html

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/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。


2.1 I/O端口引脚控制

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

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

该例中的置位指令BISB是用原操作数(01000010)与目的操作数(P1OUT)做逻辑或运算得到的。因此该命令与第二行的指令是等效的。虽然,这样的控制方法比起8031略显复杂,但它的控制能力有所增强。从例子中不难看出,这种方式可以同时控制多个端口位。

2.2 简化I2C接口的方法

众所周知,实现I2C总线协议主要是控制SDA、SCL使其产生协议所规定的各种时序。要控制P6.7、P6.6产生I2C总线要求的各种时序,就要频繁使用到输入、输出以及方向寄存器。而要减少代码的量,简化接口控制,最直接的方法就是减少有关寄存器操作次数。要实现这一想法需要软硬件结合,充分利用I/O口的特点以及I2C总线协议的特点。

仔细观察图3的基本数据操作时序[1]可以发现:第一,I2C总线在无数据传输时均处于高电平状态;第二,SDA引脚是数据的输入输出端,它的状态变化最为复杂,控制它需要频繁的使用P6IN、P6OUT、P6DIR三个寄存器。

图2中的R1、R2是上拉电阻,其阻值由选用的I2C总线器件的电器特性确定。在本文中这两个电阻不但起上拉的作用,还有助于解决第一个问题。当P6.6、P6.7处于接收状态时,上拉电阻可以将该点的电平拉升为VCC,从而确保总线空闲时有稳定的高电平。

延续以上的思路可以发现,方向寄存器相应位为输入时,就等于给I2C从器件发送了逻辑'1'。那么如何发送逻辑'0'呢?将对应的方向控制位设为输出,然后输出寄存器相应位置为'0'就可以实现。再进一步,如果将输出寄存器对应为设为'0',只控制方向寄存器的变化就可以发送两种逻辑电平。这样,在发送数据时只需要控制方向寄存器。对于SDA需要频繁切换输入输出状态的特点,本方法可以减少15%左右的代码量,并使程序更清晰。这样就为第二个问题找到了很好的解决方法。


3 I2C总线控制时序的实现

以上讲述了I2C总线最基本的操作时序。I2C总线中的各种操作都是由这些基本操作组合完成的。由于I2C总线器件的类型、功能、结构不尽相同,因此每一种器件具体控制时序有所区别。图4是AT2402读取指定字节数据控制时序。从图中可以看出一个读取操作中要使用到起始、发送字节、处理回应、接收字节、停止这些基本操作。附录中的代码就实现了这个时序。对于AT2402还有其他控制的时序,如字节写时序、数据页读时序、地址读取时序等等[1]。附录中代码对基本操作分别编写为子程序。对于不同的功能时序,可以通过子程序的调用来实现。

LM92是一种高精度的温度传感器,它也采用I2C总线方式控制。图5是该器件读取温度数据的时序。因为它的功能和结构与AT2402有很大的区别,所以二者控制时序不尽相同。如图4和图5,虽然都是实现读取操作,但是二者时序差别很大,LM92的控制时序明显要复杂的多。不过仔细分析可以看出这些时序也都是由一些基本操作组合实现的。这样就可以在上述方法的基础上完善LM92所需要的基本操作子程序,进而根据时序需要安排子程序实现对LM92的各种控制。

综上所述,要实现I2C总线的控制时序,需要仔细分析各种器件的时序要求及特点,构建所有的基本操作,并按时序要求合理安排基本操作。


4结束语

应用上述的设计方法和电路,实现了MSP430与I2C总线器件的接口,很好的控制AT2402和LM92,达到了预期的目标。实践证明该方法对实现I2C总线器件控制非常有效,而且使用该方法编制的程序代码量小,执行效率高。该方法为MSP430与I2C总线接口提供了一种可行的方案。

换一批

延伸阅读

[新鲜事] 【MWC 2017】联发科宣布量产Helio X30最强处理器 10nm十核!

【MWC 2017】联发科宣布量产Helio X30最强处理器 10nm十核!

今天,联发科在MWC大展上正式宣布,旗下的新一代旗舰机处理器Helio X30正式开启大规模量产,投入商用阶段,首款搭载该处理器的手机将于第二季度正式上市。......

关键字:MWC 联发科 Helio X30

[新鲜事] Imagination 发布 Series8XE Plus 中端 PowerVR GPU 新品

Imagination 发布 Series8XE Plus 中端 PowerVR GPU 新品

某杂志读者 David Kanter 曾介绍过 Nvidia Maxwell GPU 所使用的“基于图块的渲染”,且 AMD Vega 也正朝着同样的方向去发展。不过 Imagination Technologies 旗下 PowerVR ......

关键字:GPU Imagination Series8XE Plus

[新鲜事] 印度发生史上最大数据外泄 1亿用户遭殃

印度发生史上最大数据外泄 1亿用户遭殃

据外媒报道,印度运营商Reliance Jio近期遭遇用户数据外泄事件,超过1亿用户的个人资料被泄露在了网站Magicapk.com上,此次事件也成了印度运营商史上最大的用户数据外泄事件。Reliance Jio称它们已经开始着手对该事件进......

关键字:印度 Reliance Jio 数据外泄

[新鲜事] iOS10.2新Bug曝光 苹果故意的?

iOS10.2新Bug曝光 苹果故意的?

根据外媒报道,iOS 10.2系统不允许用户播放一些从DVD或者其他来源中获取,然后加载到iTunes中的视频。目前,我们还不清楚这是iOS 10.2系统的一个bug或者是苹果有意识的举动。......

关键字:苹果 ios10.2 bug

[新鲜事] Astronaut.io横空出世:一个专为无名视频打造的网站

Astronaut.io横空出世:一个专为无名视频打造的网站

据外媒报道,刚经历了艰难的一天?或许看看YouTube上的视频能够帮你舒缓压力。然而在这个网站却可能存在着一些有意思、有意义但却无人问津的视频,造成这一现象的原因是它们没有名字只有编号,也就是说用户根本没法用关键词搜索到它。现在,一个叫做A......

关键字:Astronaut.io 无名视频

[新鲜事] 受昆虫复眼启发:研究人员制造了一款仅2毫米厚的超薄摄像头

受昆虫复眼启发:研究人员制造了一款仅2毫米厚的超薄摄像头

尽管智能手机变得越来越轻薄,但是后置摄像头那块还是难免会突出一丢丢。受当前技术的限制,制造商很难作出薄于 5 毫米的设备,毕竟镜头部分很难被精简掉。好消息是,德国弗劳恩霍夫“应用光学与精密工程”研究所的科学家们,已经开发出了一种仅 2 毫米......

关键字:2毫米 摄像头 超薄 facetVISION

[趣科技] 一款名为ElliQ的家用机器人:或能帮助老年人对抗孤独!

一款名为ElliQ的家用机器人:或能帮助老年人对抗孤独!

如何帮助老年人对抗孤独感?一款名为 ElliQ 的机器人试图提供答案。它由以色列初创公司 Intuition Robotics 制造,Fuseproject 的 Yves Behar 设计。......

关键字:家用机器人 Intuition Robotics 老年人

[新鲜事] 联发科苦心打造Helio X30:完败于骁龙835

联发科苦心打造Helio X30:完败于骁龙835

2017年,新一轮的智能手机大战正在徐徐拉开,而作为基础平台的应用处理器,也面临新一轮的激战,但还没有真正交手,高下已经立判了。......

关键字:联发科 Helio X30 骁龙835

[新鲜事] 联发科Helio X30遭小米弃用,客户只剩魅族、乐视?

联发科Helio X30遭小米弃用,客户只剩魅族、乐视?

联发科2016年营收增长了16%,相比2015年接近于零的增长已经大为改善,但是联发科的心病在于高端市场一直未能突破天花板,重金打造的Helio X系列在X10、X20时代都不尽如人意,被手机厂商打成了千元机。......

关键字:联发科 Helio X30 小米
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14