高性价比的单片机应用系统结构设计方案

最新更新时间:2013-05-27来源: 与非网关键字:嵌入式  单片机 手机看文章 扫描二维码
随时随地手机看文章
  MSP430系列单片机作为一个性能优异的MCU在大陆已经得到了广泛的应用。MSP430在高整合性与高性能方面与其他MCU比较有较大优势。该系列芯片的价格也较为合理,目前整合性最好的MAP430F44X系列,整合了60K字节程序存储(可记录数据)、2K字节片内RAM、6个I/O端口(P1、P2能中断)、160段液晶驱动、两个串行端口、4个定时器(其中TB带有7个捕获/比较器、包括看门狗)、模拟比较器、硬件乘法器、8路12位A/D转换器、还有频率调整电路FLL+、系统复位SVS模块等。而较为基本型的MSP430F1101、MSP430C1101只有1K字节程序存储、128字节片内RAM、模拟比较器、两个定时器等。他们的性能比较可参考图一、图二以及图三。




图一 MSP430F11XX系列结构框图




图二 MSP430F41XX系列结构框图








图三 MSP430F44X系列结构框图

  由图一、图二以及图三可以看出,MSP44X与MSP11X在硬件结构上、在系统整合上存在较大差异;MSP41X与MSP11X的差异不是很大。但这三个系列芯片的价格由49美分到7美圆不等,那么怎么选择我们的系统芯片呢。


二 一般常用的MSP430应用系统的设计方案

  图四是常用的MSP430应用系统。在这个系统中,有模拟量采集、脉冲数字量采集、日历时钟、液晶显示、有键盘可供操作、大量的运算等。在这个系统中,可采用以下几种方案进行MSP430的选型。下面同时给出对他们的比较。






图四 常用的MSP430应用系统




1 使用MSP430F44X系列

  在这个选型方案中,设计起来最简单,因为目前的MSP430F44X系列芯片是整合最齐全的。该系列任何一款都能胜任(一般程序不会大于32K字节)。

2 使用MSP430F41X系列

  如果程序在8K字节范围以内,这无疑也是一种较好的方案。MSP41X系列就差不能直接A/D转换,系统价格适中。


3 使用MSP430F11XX系列

  这种方案中MSP430不能直接驱动液晶,程序量较小,也没有直接A/D转换能力,这是与前两种方案相比较的明显不足,但它的价格是最好的。

  在这三中方案中,可以看出如果不计硬件成本,第一种方案最好;如果一定要考虑硬件成本(比如大量产的民品),则第三种方案最好,是性价比最高的。如果使用MSP430C1101,则官方报价在49美分,价格相当便宜,适合与大批量的、成本价格敏感的产品,可得到最高的性能价格比。但第三种方案存在很多问题有待解决。

三 高性价比的MSP430应用系统解决方法

  图四是较为经典的MSP430应用系统框图,如果使用最经济的MSP430系列器件MSP430F11XX系列,则要解决五个问题:模数转换的问题、液晶显示问题、程序量小的问题、日历时钟的程序化、串行通讯问题。

1 模数转换(A/D)的问题解决方案

  MSP430X11XX系列单片机片内有模拟比较器Comparator_A与功能强大的定时器Time_A,可以构成斜边(Slope)A/D转换,实现模拟量到数字量的转换。具体原理是(这里以电阻量到数字量的转换为例)。




图五 斜边(Slope)A/D转换原理图

  在图五中,R1、R2分别为标准的参考电阻(R1)与被测量的电阻(R2),电容C1起充放电作用。比较器的输出CAOUT用于驱动定时器捕获的发生。MSP430内部的模拟比较器能产生用于比较的模拟电压(电源VCC、1/2VCC、1/4VCC、二极管管压降)。比较器负端选择1/2VCC。首先,标准电阻对电容C1充电到VCC,再通过参考电阻R1放电,同时记录定时器值T1;当电容放电到1/2VCC时,比较器产生输出,CAOUT触发定时器产生捕获动作,将定时器值T2读出;其次使用被测量电阻R2对电容充电到VCC,再通过R2放电,同时读取定时器值T3;当电容放电到1/2VCC时,比较器输出信号再次捕获定时器数据T4。则在电容放电的线性区域可以得到被测量电阻的阻值:

R2 = (T2 - T1)* R1 / (T4 - T3)

对于其他物理量的测量也可以使用类似的办法。



2 液晶显示问题的解决方案

  MSP30X11XX没有液晶驱动能力,必须外部扩展。如果可以使用外扩2圆人民币不到的液晶驱动芯片(比如HT1621或其他),为什么还使用自带液晶驱动的40-70圆人民币左右的MSP430F43X、MSP430F44X系列呢。

  这里以便宜的HT1621为例说明液晶驱动芯片与MSP430系列的接口。HT1621有128段的液晶驱动能力。有4个公共端、32个段输出,能实现静态、2MUX、3MUX、4MUX等液晶驱动方式。须3或4线与单片机接口,同时可定时输出信号驱动单片机(在单片机间歇工作时很有用),也能输出用于驱动蜂鸣器的信号。与MSP430单片机接口如图六所示。如果不需要读出显示内容,则读信号可以不使用,只需要3线就可实现液晶显示的驱动,在口线紧张的情况下,可这样使用。




图六 HT1621与单片机的接口

  HT1621片内有32*8位静态显示存储器,该存储器的内容直接映射到液晶驱动器,可使用读写命令直接访问。通过对显示存储器内容的操作实现液晶显示。图七为MSP430单片机对1621的操作时序图。




图七 1621的操作时序



3 程序量小的解决方案

  MSP430F11XX系列单片机最大的程序容量只有4K字节,对于大多数的用途基本够用,但对相对复杂的应用,就显得程序空间较小。对于MSP430系列单片机有个巧妙的解决办法:利用MSP430单片机的存储器是线性统一编址的特点,单片机运行的程序可以在除了片内外围模块空间而外的任何存储空间,这里将RAM用来做程序存储器使用。由于RAM内容可变,故可将程序存放在外部存储器中,在需要的时候调到RAM中,再执行RAM中的程序。而外部存储器选用串行24C系列EEPROM,可使系统体积减小,同时可使程序空间增加32K字节乃至128K字节!而系统成本增加很少。24C系列EEPROM与MSP430单片机的接口,这里不多说了,只需要两根I/O口线与两个上拉电阻。

  首先,需要将存放在EEPROM中的应用程序划分为较小的模块。这里针对MSP430F1121将每个模块的大小限定在128字节内。MSP430F1121片内RAM有256字节,拿一半用于程序处理中的数据存储,而另一半用于程序调度的程序暂存。

  其次,MSP430F1121/1111/1101的片内存储器用于存放对串行24C系列EEPROM存储器的读写操作程序,以及最常用的处理程序,各种中断服务程序等等。

  然后,将各个小模块的应用程序存放在EEPROM中,同时,每个小模块的应用程序在EEPROM中的起始位置与模块长度在MSP430的程序存储器中用数据表格的形式存放。每当要调用在EEPROM中的小模块时,就在此表格中查找。使用EEPROM读程序,在EEPROM中读出全部的该小模块程序数据到MSP430的RAM后128字节。

  最后,将程序计数器(PC指针)压栈,再改变PC内容为280H(RAM的后128字节开始位置),程序将由此开始运行。当该模块运行完毕,最后一句是RET,则将刚压栈的PC指针恢复。程序继续430FLASH中的主程序运行。

4 日历时钟的程序化解决方案

  由于MSP430系列单片机的超低功耗特性,使用其内部定时器模块的比较模式实现日历时钟,时钟源使用32768Hz产生的ACLK信号。将定时器模块设置为1秒中断一次,在中断服务程序中编写日历程序。在程序编写时要注意闰年与闰月以及月大与月小的情况,详细方法这里不用多说
。在中断程序完毕则进入低功耗LMP3,这时系统耗电在1uA左右,比常用的专门日历时钟芯片的耗电还要少。在MSP430系列单片机中,将日历时钟程序化从各方面讲(功耗、成本、体积、可靠性等)都是很好的解决方案。

5 串行通讯的解决方案

  MSP430F11XX系列单片机片内没有串行通讯模块,不能直接用于异步串行通讯,但由于定时器TIME A的捕获与比较以及特殊的结构,利用定时器实现异步串行通讯的位定时(波特率产生)以及起始位检测等功能,可方便实现串行通讯。

  串行发送相对简单一点:设置TIME A为比较模式,比较的数据体现每一位的发送时间,使用中断,每当时间到则发送下一位,全部发送则发送完毕。

  串行接收相对复杂一点:首先设置TIME A为捕获模式,要捕获到串行通讯的起始位。捕获到起始位之后,则要将TIME A 设置为比较模式,同时第一位与后面的其他位定时时间不一样,第一位的定时时间是其他位的1.5倍。当所有数据接收完毕则结束。在硬件上使用232或485都可以。

小结

  在充分掌握MSP430各个片内模块的性能与特性基础上,使用最简单、最便宜、最常规的器件,设计高性能价格比的应用系统是非常可行的。同时随着产量的增加,经济效益也会显著增加。


参考文献:
1 魏小龙 MSP430 系列单片机接口技术及系统设计实例 北京航空航天大学出版社 2002
2 TI资料 Implementing a UART Function With TimerA3
3 TI资料 Economic Measurement Techniques With the Comparator_A Module
关键字:嵌入式  单片机 编辑:探路者 引用地址:高性价比的单片机应用系统结构设计方案

上一篇:实现可靠的高性能数字电源
下一篇:具有双层散热能力的新型功率半导体——CanPAK

推荐阅读最新更新时间:2023-10-17 15:43

51单片机-数码管&LED
1.同时点亮猜想 在本章第一节里说过要想点亮数码管,那么我们第一章学过的LED小灯就没有机会点亮了,硬件上的确是这样。 不过我们软件上还是可以实现让一个数码管和一盏LED小灯同时点亮的,大家还记得我们之前举过一个这样的例子吗? #include reg52.h sbit LED2 = P0^0; sbit ADDR2 = P1^2; sbit ADDR1 = P1^1; sbit ADDR0 = P1^0; sbit ENLED = P1^4; sbit ADDR3 = P1^3; void main() { ADDR3 = 1;//使能三八译码器 ENLED = 0;// ADDR2 =
[单片机]
stc89c51单片机矩阵键盘扫描
#include reg52.h #include stdio.h #define GPIO_KEY P0 #define GPIO_LED P1 unsigned char KeyValue;//存储键值 unsigned char code DIG_CODE ={ 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F}; void Delay10ms();//延时10ms void KeyDown();//监测按键函数 void main(void) { while(1) { KeyDown()
[单片机]
51单片机数据存储类型
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型。分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。 在51系列中data,idata,xdata,pdata的区别: data:固定指前面0x00-0x7f的128个RAM,可以用acc直接
[单片机]
avr单片机可演奏的电子琴仿真加源码
单片机电子琴仿真原理图如下 avr单片机源程序如下: //----------------------------------------------------------------- // 名称: 电子琴仿真 //----------------------------------------------------------------- // 说明: 本例在键盘矩阵上模拟演奏电子琴,数码管显示键号. // 按下不同按键时将输出不同频率音符,按键长按时发出长音, // 短按时发出短音. // //-------------------------------------------------------
[单片机]
avr<font color='red'>单片机</font>可演奏的电子琴仿真加源码
瑞萨电子与台积电联手打造微控制器的生态系统
全球领先的高级半导体和解决方案的供应商瑞萨电子株式会社(TSE:6723,董事长:赤尾泰,以下简称“瑞萨电子”) 与台湾积体电路制造(TSMC)(总公司:台湾新竹、日本法人:TSMC日本株式会社、横浜市西区、董事长:小野寺诚、以下简称TSMC)——今天(28日)共同宣布,双方已经签署协议,将在微控制器(MCU)技术方面的合作扩大至40纳米嵌入闪存(eFlash)的制造,以生产应用于下一代汽车及家电等消费类产品的微控制器。瑞萨电子先前已委托TSMC生产90纳米工艺的微控制器,本次合作方案中,瑞萨电子将委托TSMC生产40纳米工艺及更先进生产工艺的微控制器。 结合瑞萨电子支持高可靠性及高速的金属氧化氮氧化硅(Metal-Oxid
[单片机]
义隆单片机中断c语言使用
根据仪陇单片机TINYC使用手册翻译 中断c语言,关于中断的现场保护,由于英文手册还没有看懂,所以空来没有写出。 低级中断,中断保护程序 中断执行前对一些寄存器进行保护 Void intcall tcc_1(void) @ 0x03:low_int 0 中断服务程序 Void intcall tcc(void) @ int 0 中断向量数,是指MCU有几个中断向量,用标号将每种中断向量分开。 编译器根据中断向量数将中断保护程序和中断服务程序结合起来 全局中断向量IntVecIdx 先申明全局中断下向量IntVecIdx Extern int IntVecIdx;
[单片机]
基于AVR单片机的实用车载空调控制器电路
  电子设备在汽车中的广泛应用被认为是汽车技术发展进程中的一次革命。随着汽车电子技术的发展和汽车控制单元的增加,汽车电子技术正朝着集中化、智能化、网络化和模块化方向发展。车内CAN/LIN总线网络的使用使得车内各个控制单元的数据可以共享,从而使在汽车嵌入式计算平台上采用多变量多目标的综合协调控制成为可能。另一方面,网络化拓展了汽车的服务领域,为汽车的移动通信、移动办公、娱乐、导航定位和远程诊断与维修提供了技术基础,逐步形成了汽车、家庭、社会一体化的互动体系。汽车嵌入式计算平台在该一体化体系中担当重要角色。   本文介绍了车载嵌入式计算平台,它为完成汽车辅助驾驶和安全监控、远程诊断和维修、在线/离线导航定位、娱乐、与家庭互动等各
[嵌入式]
为什么STM32单片机编程时需要使能时钟
作为一个STM32的菜鸟级人物,我刚开始接触STM32时,其实和当年开始学习51单片机的心理是一样的。茫然,谁说不是呢?但是,正常的学习途径无非就是看书,然后敲代码,最后烧程序,有问题就check,然后再继续烧,我都怀疑我快成了火头工。因为在我的印象中,只有这类职业才和“烧”有着密不可分的联系。即使当一名敬业又牛逼的火头工是我毕生的梦想。OK,不侃了。我希望,通过写日志把我作为一个菜鸟在学习STM32中的问题记录下来,同时以我为鉴,规避那些没有必要的破事。 1. 学习STM32要不要基础 原则上它应该是需要的,但是,我们也能发现很多人也是没有基础的。比如说,我们实验室的大师兄原来是管理专业,但是现在相当牛逼,软硬皆通。如果你和
[单片机]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved