利用MAXQ3210进行环境监视

2012-03-19 08:44:29来源: 互联网
摘要:在MAXQ系列以及其他嵌入式微控制器中,MAXQ3210独具特色。它把基于EEPROM的代码和数据存储、压电喇叭驱动器、9V稳压器集成在低引脚数封装内。高性能的16位RISC核使其运行速度快,并且省电。由于是基于MAXQ10核,MAXQ3210不同于其他的MAXQ微控制器,它采用的是8位累加器,而不是16位累加器。MAXQ3210非常适合于需要较少I/O引脚和一些智能控制的许多应用。本文讨论它在环境监视中的应用。

MAXQ3210的特性及其监视功能

MAXQ3210包含2kB EEPROM程序存储器、128字节EEPROM数据存储器、64字节RAM存储器。其内置的9V稳压器简化了电池供电电路。它也为其他电路元件输出5V电源。在调试方面,它用内置的JTAG调试引擎取代了昂贵的外部仿真器。

MAXQ3210集成了用于环境监视的外围部件。当环境条件不安全和发生变化时,它能够通过压电喇叭驱动器和大电流LED驱动器等外围部件进行告警。这些外围部件在简单的保安系统、烟雾警报器、温度监视器和运动检测器等应用中很实用。

此外,MAXQ3210为环境监视电路提供了多种接口选项。其内部的电压比较器可以监视外部电路输出的随外部环境变化的电压值。其外部电路可以很简单,比如测量温度的热敏电阻;也可以较复杂,比如测量电容充电时间的斜率式模数转换器(ADC)。

除了电压比较器外,MAXQ3210也可以通过数字I/O口监视外部电路。例如,当环境条件超出范围时,外部监视电路可以通过中断引脚向MAXQ3210发送中断请求信号。MAXQ3210也可以使用串行通信协议,通过数字I/O口与测量距离和照明情况的外部IC电路进行数据传输。

监视系统的软件架构

通常,为MAXQ3210编写的应用程序都很简短,足以用MAXQ汇编语言编写。下面列举的应用程序用MAX-IDE工具包编写。MAX-IDE是一个由Dallas Semiconductor免费提供的开发环境,为MAXQ系列微控制器提供了一个汇编和调试环境。图1示出了一个环境监视应用的基本架构。

图1. MAXQ3210的环境监视主程序循环在大部分时间内处于休眠状态,定期唤醒后去读取并分析传感器输出。
图1. MAXQ3210的环境监视主程序循环在大部分时间内处于休眠状态,定期唤醒后去读取并分析传感器输出。

启动后,微控制器首先要经过一个初始化过程,将相关寄存器和配置位按照应用要求进行设置。如果微控制器初次加电,可能还需要一些额外的操作,例如制造商设定的一些测试和配置。经过初始化和加电检测后,应用程序进入主循环体,开始测量和响应外部环境的变化。首先,应用程序通过电压比较器或数字I/O口读取环境信息,并分析环境条件是否超出范围。接下来,进行系统诊断,如检测外部电路、测量电池电压、核实存储在数据EEPROM中的永久性故障信息等等。随后,应用程序检查状态信息,其中包括告警(如低电池)和提示信息(如温度过高)。如果环境情况要求执行一些动作,有以下一些选项我们将在下面讨论:驱动喇叭发声,使LED闪烁,通过I/O引脚和其他设备通信,或者简单地把告警信息存入数据EEPROM以便后续分析。

简单的监视应用软件

可以下载为开发环境监视系统而编写的简单应用程序。该程序是在MAXQ3210评估工具上编写和测试的。一个按钮被用来切换告警和正常状态。喇叭发声表示告警。

该环境监视应用的主循环体在下面几段中给出。用于环境监视的状态机非常简单:获取传感器输出并分析它是否超出了某种门限(温度太高,空气中烟雾浓度太大等)。如果超出边界,则发出告警。

MainLoop:
    move  DP[0], #CONDITION_FLAG  ; see if we are alarming
    move  ACC, @DP[0]             ; read the alarm flag
    jump  z, MainLoop_NoSignal    ; skip next code if not alarming

    ;
    ; If our condition is above threshold, see if it is 
    ; time to sound the horn
    ;
    call  CheckSignalTime         ; see if it is time to sound the horn
    jump  nz, ReadAndSleep        ; back to sleep if no signal
    call  SignalCondition         ; sound horn, light LEDs, etc.
    jump  ReadAndSleep            ; let's go to sleep now
    ;
    ; In a real sensor, we still want to take readings even if we are
    ; signaling.  We need to check to see if environmental conditions
    ; have returned to normal.  
    ;
MainLoop_NoSignal:
    call  CheckForSelfTest        ; time to run periodic diagnostics? 
    jump  z, ReadAndSleep         ; skip if not time yet
    call  SelfTest                ; perform self diagnostics

ReadAndSleep:
    call  ReadSensor              ; get a 'sensor reading'
    call  AnalyzeSensor           ; see if condition out of threshold
    jump  Sleep                   ; put the device into low power mode
其中的SelfTest为系统诊断子程序。系统诊断子程序用于监视电池电压和外部电路的异常情况。在SelfTest中也很适合实现一个计时器,用它来跟踪MAXQ3210投入运行的时间,从而计算外部传感器系统的工作寿命。

该应用程序说明了MAXQ微控制器外围部件的易操作性,以及如何节省代码的存储空间和执行周期。例如,仅需用一个单比特来开关喇叭。

SoundTheHorn:
    move  HORN_DRIVER, #1
    move  LC[0], #10
    call  DelayMilliseconds
    move  HORN_DRIVER, #0
    ret

电源管理

功耗是环境监视应用中最为重要的一个因素,因为它通常是由电池供电的。MAXQ3210提供低功耗停止模式和电池欠压监视器。

定期检测外部环境条件时,应用程序可以用两种方式唤醒处于低功耗停止模式的MAXQ3210,使其执行代码。这两种方式分别是外部中断或定时器唤醒。在等待外部电路触发条件的应用中,外部中断方式比较合适。比如,在等待开门或热敏电阻上的压降超出门限时,就应该采用外部中断。

唤醒定时器是另外一种使MAXQ3210脱离停止模式的方式。唤醒功能在前面的应用案例中已有讨论:外部监视电路唤醒MAXQ3210,使其检测外部环境条件,必要时进行响应,然后再返回到停止模式。图2示出了这种工作方式的电流消耗模式。从中可以看出,在大部分时间内,MAXQ3210微控制器处于低功耗休眠模式。当MAXQ3210从休眠模式醒来后电流消耗增大。此时正是高性能MAXQ核的用武之处。MAXQ3210能够更快地完成任务,在高功耗状态下停留的时间更短,而更多的时间处于低功耗休眠模式。

图2. 监视应用程序在大部分时间内休眠以节省功耗,它定期醒来并快速运行。
图2. 监视应用程序在大部分时间内休眠以节省功耗,它定期醒来并快速运行。

由于电池是大多数监视应用中的关键部件,检测电池是否快用完很重要。MAXQ3210通过检测一个寄存器状态位来判断电池电压是否低于门限。这个门限被固定于7.7V,这正是9V电池濒临耗尽时的电压。在这个电平下,电池还有一定的电量,可保障MAXQ3210继续运行一段时间。低功耗应用系统,比如烟雾警报系统,可以在电池电压低于门限后工作几天或几周,并不断发出低电压告警信号。

数据EEPROM

MAXQ3210的128字节数据EEPROM极大地方便了应用程序,可使应用程序存储永久性的配置和状态数据,即使在电源失效或去掉电池后也可保持这些数据。永久性数据存储可用于以下这些目的。
  1. 改进性能。稍微不能满足性能指标要求的系统(比如,测距仪测量的距离稍微偏短)可以存储永久性配置信息,以使软件能够补偿外部电路的偏差。这种措施可以使已被弃用的设备被重新利用或出售。
  2. 动作配置及用户化。MAXQ3210应用系统可以按照特定环境或用户的要求定制。比如,环境监视系统可以被配置为大型网络的一部分,当测量值超过门限时,该系统不但自己鸣喇叭告警,而且还可向其他设备发出警报。通过配置,生产厂家可以使能或禁止这种网络功能。
  3. 工作期限。用于环境监视的传感器和测量电路可能会随着使用期限而劣化。通过修改EEPROM中的数据,应用程序可以确定电路必须被替换的时间。比如,在使用5年后,监视系统可以自动禁止自己工作,并通过鸣喇叭或点亮LED提示自己不能再工作。

环境监视应用

火灾和煤气警报器等住宅安全系统是典型的环境监视应用。MAXQ3210完全可以实现这些功能,但是它比烟雾警报专用微控制器更通用。利用本文前面介绍的环境监视程序架构,可以开发出各种应用系统。在下面列举的安全应用中,有些应用是为了防止或减少公司或家庭的损失,其余的应用是为了方便用户。

为了防止家庭或办公室遭受水灾,可以为地下室安装水位监视系统。该系统可以利用湿度传感器或类似于卫生间冲洗水箱的装置来检测水位。当水溢出或超过一定水位时,传感器或浮漂触发外部中断,MAXQ3210鸣喇叭,发出警报。此外,MAXQ3210可以和公司或家庭网络通信,把警报发给公司或家庭成员。

温度监视是另一种可能的应用。超市冰柜或运输车冷冻车厢内的温度不能过高。为此,可以用简单的热敏电阻和MAXQ3210构成监视系统。当冷却器内的食物温度超过安全界线时,系统发出警报。这种监视系统有许许多多的用途,比如,用于监视网络设备、实验室设备、保藏艺术品、饮料以及其他易腐烂物品的温度。

监视应用的目的也可能是为了方便用户。当宠物、小孩或入侵者进入家庭的禁区时,由MAXQ3210构成的运动检测器可以向主人发出警报。当然,该检测器应该可

[1] [2]

关键字:MAXQ3210  环境监视

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/0319/article_15249.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
MAXQ3210
环境监视

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved