第 22卷第 5期 苏 州 大 学 学 报(工 科 版) Vol . 22 No. 5
2002年 10月 JOURNAL OF SOOCHOW UNIVERSITY( ENGINEERING SCIENCE EDITION) Oct12002
文章编号: 1000- 1999( 2002) 05- 0059- 07
基于MSP430F413 MCU 的 IC卡
煤气
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
与实现X
蔡柏良,王宜怀
(苏州大学计算机科学与技术学院,江苏 苏州 215006)
摘 要:提出了以TI公司MSP430系列MCU为基础的 IC 卡煤气表的设计思想, 给
出了总体设计、硬件电路设计、软件
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
设计及主要模块的编程框架, 讨论了低功
耗问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
。同时, 对 IC卡煤气表设计中一些应注意的问题也进行了简要的阐述。
关键词:MSP430系列MCU; IC卡煤气表; 硬件设计;软件设计;低功耗
中图分类号: TP393 文献标识码: A
MSP430系列MCU 是美国TI(Texas Instruments,德州仪器)公司于近几年推出的一种以性
能价格比较优、功耗低为重要特色的 16位单片机品种, 1999 年开始在我国推广使用。在
2000年又增加了MSP430F4xx子系列,分别是具有 8kB 超低功率闪存的 MSP430F413和具有
4kB超低功率闪存的MSP430F412,于 2001年在我国推广。这一系列具有 Flash存储器,并提
供在线编程功能, 具有较广泛的应用前景, 将在嵌入式产品的开发中获得广泛的应用。
MSP430F4xx 子系列单片机主要具有低功耗、外部接线简捷、RISC指令集、工作电压范围宽等
特点。MSP430F4xx子系列单片机主要功能模块有:基础时钟模块、看门狗定时器、带有 3个
捕获/比较寄存器的 16位定时器、模拟比较器、基本定时器、LCD接口模块、并行端口、供电
电压监控模块、仿真调试接口等。
在我们承担 IC 卡煤气表的开发任务之初, 就仔细分析了市场上现有的 IC卡煤气表的
优缺点,结合最新发展的MCU技术,努力研制出可靠性高、功耗低、计量准、使用方便的新一
代 IC卡煤气表。首先根据系统性能、功耗、可靠性等方面要求选择MCU芯片, 考虑到 IC卡
煤气表使用电池供电, MSP430F4xx系列单片机的超低功耗特点、休眠工作模式、外围引脚较
多、价格适中等特点,我们决定使用MSP430F4xx 系列单片机。同时可利用该系列MCU 的
Flash在线编程功能存储一些运行数据,实现掉电保护,使电路省去了外围 EEPROM,简化了
电路设计。本文给出基于 MSP430F4xx 系列单片机的 IC 卡煤气表的总体设计、硬件电路设
计、软件设计,并阐述 IC卡煤气表设计中低功耗应考虑的问题及其它应注意的问题。在软
X 收稿日期: 2002- 07- 02
作者简介:蔡柏良( 1977- ) ,男,硕士研究生,主要从事嵌入式系统开发、数据库、工业过程控制方面的研究。
件设计中,给出了关键模块的子程序代码。
1 基于MSP430F413MCU 的 IC卡煤气表的总体功能及硬件设计
1. 1 IC卡煤气表的功能分析
作为使用电池供电的 IC卡煤气表,它应该符合功耗低、计量准、体积小、价格低等基本
要求, 并且具有一定的容错、识别非法操作、保证数据完整性等特性。经过与委托单位的反
复讨论、分析,确定 IC卡煤气表的基本功能如下:
( 1)开机检测功能:系统在断电复位后,应能根据上次保存的数据, 以及当前的状态(如
电压、磁场等) , 决定是否开阀。( 2)掉电数据存储功能: 在外置电源供电突然停止的情况下
应完整无误的将一些重要数据保存下来,以便系统复位后, 能重新调入重要数据。( 3)低电
压检测功能:由于本煤气表是用电池供电,故电压检测功能必不可少。当电压下降至某一值
时,系统应能感知,并提示用户更换电池;若用户不换电池,电压继续下降至某一值时,系统
应能自动关闭阀门。( 4)强磁场干扰检测功能:当外界有强磁场干扰, 企图影响煤气表正确
计量时,系统应能自动关闭阀门。( 5)断电关阀功能:受控阀门在外置电源供电突然停止的
瞬间应有充分的电能关闭阀门。( 6)报警显示功能:当剩余气量不足、欠压和有故障时,应能
声音报警,屏幕显示。( 7)读写 IC 卡功能:应能正确无误的读写 IC 卡。( 8)正确计量功能:
准确计量,并能对气压变化所引起的计量误差进行修正。
112 IC卡煤气表的硬件设计
图1 系统硬件框图
根据系统功能进行硬件设计,
硬件框图见图1。各部分简要说明
如下。
(1) 电源: 本煤气表使用普通
的两节 1. 5V 电池串连供电, 在实
际运行时, 由于大部分时间处于低
功耗状态(睡眠模式) , 所以在软件
上采用中断唤醒的工作方式。
(2) IC卡: IC 卡用的是德国西
门子公司的 SIM4442逻辑加密卡,
IC卡卡座选用的是常开型卡座, 当
IC卡插入时,迫使卡座中的两个脚
短路, 这两个脚一端接地, 一端接
单片机具有中断功能的 I/ O脚, 通
过外部上拉。
( 3)电压监控:由于电池供电,电压自然会逐渐下降, 所以必须对电源进行监控。这里用
的是两片电压检测芯片。一片用来捕捉欠压(报警电压)信号,该信号会向单片机提出中断
60 苏州大学学报(工科版) 第 5期
请求;另一片用来捕捉低压(关阀电压)信号, 该信号也是一个中断信号。
( 4)液晶显示:由于本煤气表使用的单片机内部集成了LCD驱动模块,所以这里可以用
的不带绑定控制芯片的液晶显示片,它具有 4个COM口。
( 5)计量信号、工作信号、防磁检测信号: 这三个信号线由基表部分引出, 三个信号线在
基表内各自通过干簧管与地相连, 当磁体靠近时干簧管吸合,远离时断开。
( 6)备用电源:为了防止用户恶意地切断电源供电, 系统应该有能力在没有电池供电的
情况下保存数据至 FLASH 区,并及时关阀,要实现这样的功能就要求系统有储备电能的功
能。用备用电池显然不合适, 所以这里用了大容量的电容。
( 7)阀门驱动电路:这里选用的阀门是电磁阀门,这种阀门的优点是驱动电流比其它类
型的阀门小,但对于单片机来说,仍然是大电流输出,所以采用了差动电路来驱动阀门。
2 IC卡煤气表的软件设计
2. 1 软件设计概述与总体流程
考虑到 M430F413的资源相对较为丰富,内存和程序 FLASH 区较大, 其开发器支持 C编
译,调试灵活方便,以及 C语言本身所具有的灵便性, 所以选用 C 语言开发本系统, 采用自
定向下和自底向上相结合的软件设计
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
, 大大缩短了开发周期。主程序采用顺序执行的
方法,逐个扫描各个自定义标志位,检查是否有动作发生,若有发生则转入相应子程序处理,
处理完后回到主程序,继续扫描其后的标志位,最后进入低功耗状态,等待中断唤醒,唤醒后
同样扫描一遍, 又进入低功耗状态。由于各信号以中断的的方式进入的,所以要特别注意中
断的优先级及中断的嵌套问题。
采用模块化方法设计各个子程序。根据不同功能,定义了不同的功能模块。明确入口
出口,相互之间的调用关系,以供调用。主要软件模块有: IC 卡读写模块,液晶显示模块, 计
量模块, FLASH 读写模块,欠电保护模块,磁干扰保护模块等。
系统开机后首先进行安检,判断故障或窃气现象、电源电压是否正常等, 若一切正常则
开阀供气, 然后系统设置参数准备计量。在计量工作中主要处理两个信号: 工作信号(工作
信号为开关信号,当煤气表有煤气通过时,使煤气表内部气囊膨胀, 推动小磁体靠近干簧管
使之吸合产生低电平,没有煤气通过时, 干簧管断开产生高电平。)和计量信号(计量信号为
脉冲信号)。无论在什么情况下只要有窃气信号(即外界强磁干扰)都认为有窃气行为,先在
故障类型中记录这一类型,然后输出报警,再关阀。同样, 无论在什么情况下只要有欠压信
号出现,系统就提示欠压,蜂鸣器报警, 液晶显示, 提示用户更换电池。如果用户不换电池,
一旦低电压信号出现,系统自动关闭阀门。当煤气表处于使用状态时,工作信号首先出现,
30秒内出现计量信号视为正常,否则视为计量故障。断定计量故障后,阀门立即关闭,同时
液晶显示计量故障, 蜂鸣器报警。计量信号首先出现,以 30秒加 60个计量脉冲为基准, 检
查工作信号,有工作信号视为正常,否则视为工作信号故障,阀门立即关闭,同时液晶显示工
作信号故障,蜂鸣器报警。若 30秒内未有 60个计量脉冲则对工作信号不作比对, 进入下一
61第 22卷 蔡柏良,王宜怀:基于MSP430F413 MCU 的 IC卡煤气表的设计与实现
图 2 总体流程图
次检查。上述检测到故障后立即写入单片机内的用户 FLASH。
2. 2 关键模块编程框架
21211 计量模块的程序框架及流程图
计量模块流程图见图 3。产生计量信号后,系统首先判断阀门是否漏气,若漏气作异常
处理。不漏气的情况下, 若计量信号比工作信号先出现, 则检查工作信号,有工作信号视为
正常,否则计时。接下来就是计算用量和存量。下面是计量信号处理程序的源代码,限于篇
幅,给出了关键部分。
62 苏州大学学报(工科版) 第 5期
图 3 计量模块流程图
void Jlcome( void)
{ / /计量信号处理子程序
_DINT( ) ; / /禁止中断
P1IFG&= ~ INT_JLXH;
if( flagctl&DOOR_CLOSED_FLAG)
{ , / /漏气
closing( ) ; / /关闭阀门
_EINT( ) ; / /放开中断
return;
}
impulse_a+ = 1; / /计量脉冲数加 1
if ( ! ( flagctl&FIRSTCAL_FLAG) &&! ( flagctl&FIRSTWORK_FLAG) ) / /如果是计量
信号先来
{
flagctl| = FIRSTCAL_FLAG; / /置先来标志
CCR1= TAR; / /开TIME_A定时器
CCR1+ = 0xffff; / /使之产生秒中断
63第 22卷 蔡柏良,王宜怀:基于MSP430F413 MCU 的 IC卡煤气表的设计与实现
CCTL1| = 0x10;
TACTL| = MC1;
}
,
subdata( ) ; / /计算存量
bcdtodisplay(&cl_num[ 0] , 4) ; / /显示存量
* ( LCDRAM+ 9) = 0x04;
auto char i= 1;
bcd_add(&yl_num[ 0] ,&i, 6, 1) ; / /计算用量
,
_EINT( ) ; / /开放中断
return;
}
21212 读 IC卡模块的程序框架
读 IC卡模块是通过 IC卡的 I/ O脚,从 IC卡中读出若干个字节(由入口参数 len确定读
出的个数) ,MCU通过 P6端口的一个引脚产生符合 IC卡规定的时序信号给 IC卡。系统在
时序的每个低电平位置读出每一位的值,合成字节后存入目标数据缓冲区内。下面是该模
块的程序源代码,有关变量声明略。
void read_ic( unsigned char * r_to_waddress, unsigned char len)
/ / * r_to_waddress为读出数据存放缓冲区, len位要读数据的个数
{
P6DIR&= ~ IO; / / P6. 2( I/O) 定义为输入。从该线上读数据
for ( j= 0; j< len; j+ + )
{
for( i= 0; i< 8; i+ + )
{ P6OUT&= ~ CLK; / / CLK= 0( CLK原为 1,在时钟下降沿,出现数据)
delay( 3) ; / /延时 12Ls(等待数据稳定)
P6OUT| = CLK; / / CLK= 1
delay( 3) ; / /延时 12Ls
read_temp= read_temp> > 1;
if ( IO & P6IN)
read_temp= read_temp| 0x80;
delay( 1) ;
if ( i= = 7)
* ( r_to_waddress+ j) = read_temp;
/ /没读完一个字节,继续读
}
64 苏州大学学报(工科版) 第 5期
}
P6OUT&= ~ CLK; / / CLK= 0
P6OUT| = IO;
}
3 结束语及讨论
本煤气表经过测试, 运行稳定,计量准确。系统的静态功耗(在低功耗模式下)为 2. 6个
微安,工作电流也在 2个毫安以内。
MSP430F413有 5种低功耗模式: LMP0、LMP1、LMP2、LMP3、LMP4。在本系统中选择了
LMP3低功耗模式,因为系统需要开定时器。为了让系统的耗电尽可能的低, 在软硬件设计
上本系统采取了以下措施:
( 1) 将不用的 FETI输入端连接到地。
( 2) 关闭外部模拟电压发生器。
( 3) JTAG端口TMS、TCK和TDI 不要连接到地。
( 4) CMOS输入端不能有浮空的节点, 将所有输入端接适当的电平。
( 5) 选择尽可能低的运行频率,不管是内核还是外围模块。
( 6) 对于液晶显示,不用时及时关闭。
参 考 文 献
[ 1] TEXAS INSTRUMENTS INCORPORATED[ Z] .MSP430 Application Report, 2000.
[ 2] 胡大可.MSP430系列 FLASH型超低功耗 16位单片机[M ] .北京:北京航空航天大学出版社, 2001.
[ 3] 王卓人,邓晋钧,刘宗祥. IC卡的技术与应用[ M] .北京:电子工业出版社, 1999.
[ 4] 谭浩强. C程序设计[ M] .北京:清华大学出版社, 1991.
DESIGN AND IMPLEMENTATION OF THE IC CARD GAS
METER BASED ON MSP430F413 MCU
CAI Ba-i liang, WANG Y-i huai
( College of Computer Sci-Technology of Soochow University, Suzhou, Jiangsu 215006, China )
Abstract: In this paper, based on MSP430MCU of TI Corp. , we introduce the designing idea about
an IC card gas meter. The general designing, hardware circuit, software flow chart and the main pro-
gramming frame are provided. Low- power consumption and some key issues are discussed.
Key words:MSP430 MCUs; IC Card Gas Meter; Hardware Design; Software Design; Low- power Con-
sumption
65第 22卷 蔡柏良,王宜怀:基于MSP430F413 MCU 的 IC卡煤气表的设计与实现