您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术MC9S08LL16 在水表气表中的设计应用 正文
MC9S08LL16 在水表气表中的设计应用

MC9S08LL16 在水表气表中的设计应用

点击数:7525 次   录入时间:03-04 11:38:45   整理:http://www.55dianzi.com   嵌入式系统-技术

  • 前言
    MC9S08LL 系列是 飞思卡尔 最新推出的内置LCD 驱动,极低功耗的单片机。 非常适合于在 水表 气表 中的设计应用。 本文介绍 MC9S08LL16 在智能气表的设计应用。由于水表与气表的工作原理非常相似,本文也可适用于水表的设计。


MC908LL16的主要功能
MC908LL16 是 Freescale 基于HCS08 核的8 位单片机。具有极低功耗,内置LCD 驱动及丰富的外围接口。LL16 的主要特性如下:
• 低工作电压1.8V-3.6V
• 最大总线频率10MHz
• 内置琐频环电路FLL
• 16K FLASH程序空间
• 2K字节RAM
• 2个16位定时器
• 实时时钟计数器 TOD
• 8路12位A/D
• 模拟比较器
• 内置LCD驱动,可配置为8*24 或4*28模式
• 1个外部中断和8个外部键盘中断KBI
• 内部RC振荡器的看门狗
• 低电压检测电路LVI
• 1个SPI,I2C,SCI


MC9S08LL16的低功耗特性
在水表气表中的应用中, 都是电池供电, 所以低功耗是设计中首要考虑的因素。系统功耗由两部分组成: 单片机本身的功耗和外部电路的功耗。 由于外部电路的功耗基本上是固定的,因此选用低功耗的单片机至关重要。LL16是目前业界功耗最低的单片机之一。 单片机本身的功耗包括正常运行时的功耗和睡眠时的功耗。 在水表气表中的应用中,单片机大部分时间工作于睡眠状态, 因此睡眠时的电流至关重要, 睡眠时的功耗主要决定系统的平均功耗。下图为LL16各种模式下的电流参数表:

LL16各种模式下的电流参数表

LL16   各种模式下的电流参数表

LL16各种模式下的电流参数表




从表中看出, 睡眠3(STOP3 )模式的电流为 400nA, 睡眠2(STOP2 )模式的电流为 350nA。由于STOP2 与STOP3功耗相差不大,但是STOP2下可以保持工作的外设很少,并且从STOP2唤醒的条件严格得多,从STOP2唤醒后,程序也会从复位处重新执行,且所有寄存器设置会回到默认状态,在实际应用中没有STOP3模式方便, 因此建议采用STOP3模式。


在水表气表中的应用中, 进入睡眠时, LCD屏需要常亮, 外部32.768 kHz的晶振不能停振,因为TOD模块采用外部32.768 kHz的晶振作为时钟源实现软时钟。 把这些模块的功耗考虑进去, 那么进入睡眠状态时, LCD常亮, TOD模块工作(定时唤醒 MCU ),外部32.768 kHz的晶振工作, MCU本身的功耗仅为2uA左右。

另外有一个参数对系统功耗的影响也非常重要, 即从睡眠模式唤醒的时间。 唤醒时间越短越好, 因为唤醒的过程中, 功耗会比较大。 LL16从睡眠3(STOP3 )模式唤醒的时间非常短, 只有6uS, 大大低于业界的大部分同类产品。

下面将以LL16在预付费IC卡气表中的应用为例, 介绍各模块的使用。


IC卡气表的原理框图

下图为预付费IC 卡气表的原理框图:

预付费IC卡气表的原理框图


电源电路
气表和水表采用电池供电,气表一般采用碱性电池或锂电池。 如果采用碱性电池,一般使用四节。 因此电池电压需经LDO降压到3V供给MCU。 由于IC卡工作电压有5V或3V的,如果采用工作电压为5V的IC卡, 电池电压需经另一LDO降压到5V供给IC卡。

在水表普遍采用锂电池供电, 锂电池电压可以不需需经LDO降压直接供给MCU,因为LL16工作电压范围为1.8V-3.6V.

采用四节碱性电池供电, 5V 工作的IC卡的电源电路


晶振电路
LL16内部有琐频环电路(FLL)可以把MCU运行的总线频率倍频上去, 最高可以倍频到20Mhz。 同时LL16内部有RC振荡器, 校准后的精度可以达到±2%(±2%为全温度范围的最大误差。常温下该精度为±0.2%)。 由于在大部分设计中使用软时钟而省去外部的专用RTC芯片以节省时间成本, 所以选择外接32.768k的晶振,以保证时钟的精度。时钟模块的初始化程序如下:

void ICS_init(void)

{

ICSC1 = 0x00;

ICSC2 = 0x47;

ICSSC_DRST_DRS=0;

while((ICSSC & 0xC0) != 0x00) { }

}


EEPROM接口电路
由于在气表水表应用中,需要不断地保存信息,例如:时间,当前用气/水量,剩余用气/水量等。因此需要EEPROM来保存这些数据。LL16的FLASH可以自我擦写,可以用来模拟EEPROM. 需要注意的是LL16 FLASH的擦写次数有限,常温下为10万次. 如果需要更多的擦写次数, 需要外接EEPROM。下面以外接24LC64为例介绍它的接口应用, 硬件接口电路如下:

以外接24LC64 为例介绍它的接口应用 硬件接口电路



为了降

www.55dianzi.com 低功耗, 24LC64的电源通过I/O口 PTB6控制。当需要读写24LC64时,PTB6输出高电平, 给24LC64供电,否则输出低电平, 关闭24LC64的电源。


IC卡接口电路
在 气表 应用中,根据存储介质的不同有CPU卡,IC卡,RF卡等。由于IC卡具有保密性强, 数据容量大,使用方便, 成本低等特点, 因此在预付费卡表普遍应用。 目前普遍采用的是SLE442。 这里以SLE4442为例,介绍IC卡如何与LL16进行接口及操作。SLE4442内置256字, 具有写保护和安全代码可编程等特点。 由于LL16工作在3V, 如果采用5V工作的SLE4442,需要电平转换。下图为LL16 与5V工作的SLE4442的接口电路图, 如果采用3V工作的SLE442卡, 则可省去电平转换电路。

LL16 与SLE4442的接口电路图


PTA1,A2与数据线DATA相连, PTA0与时钟线CLK相连, PTC7与复位脚RST相连。 PTA3控制SLE4442的电源。 对SLE4442的操作主要包括读写SLE4442的主存储器, 保护区存储器和安全区存储器。 对SLE4442写操作之前,必须先进行安全认证。 如果连续三次认证失败, 则IC卡被作废, 再也无法使用。PTA5,A4用于插卡检测, 检测IC卡是否插入卡座。 可以采用定时查询的方式或中断方式。

下面以读主存储器起始地址为0x20的3个字节为例说明它的编程:

/************* main function ************/
void main (void)
{
unsigned char buffer[3];
//read main memory at address 0x20. 21, 22, and stored at buffer
Read_4442_main_memory(0x20, 3, buffer);
}
// read main memory function
void Read_4442_main_memory(unsigned char Address, unsigned char number, unsigned
char *data)
{
unsigned char command[3];
command[0] = 0x30;
command[1] = Address;
send_SLE4442_Command(command);
send_SLE4442_Data(number, data);
}


电池电压检测
由于气表采用电池供电, 因此需对电池电压进行监测, 在电池耗尽之前, 报警提醒用户更换电池。 虽然LL16内部有掉电检测电路LVI, 但使能该模块将消耗较大的电流, 所以不宜采用。 可以利用LL16内部模拟比较器或A/D模块监测电池电压,A/D模块或内部模拟比较器会消耗一定的功耗, 为了降低功耗, 可以采用定时检测的方法, 因为电池电压是缓慢下降的。

[1] [2]  下一页


本文关键字:水表  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术