使用MAXQ3210进行环境监测

描述

新型MAXQ3210的功能使其在MAXQ系列和嵌入式微控制器市场中独树一帜。MAXQ3210在低引脚数封装中集成了EEPROM代码和数据存储、压电喇叭驱动器和9V稳压器。高性能 16 位 RISC 内核使该器件既快速又节能。基于MAXQ10内核,MAXQ3210与其他MAXQ微控制器不同,具有8位累加器而不是16位累加器。MAXQ3210可用于许多需要几个I/O引脚和一些智能控制的应用。本文介绍了一些理想的环境监测应用。

MAXQ3210特性和监视功能

MAXQ3210具有2kB的EEPROM码空间、128字节的EEPROM数据空间和64字节的RAM。集成的 9V 稳压器简化了电池供电应用中的电路。MAXQ3210还为其它电路元件提供稳定的5V输出。JTAG调试引擎允许在没有昂贵的仿真器的情况下进行应用内调试。

MAXQ3210集成了独特的外设,可用于环境监测应用。压电喇叭驱动器和高电流LED驱动器可在环境条件不安全或变化时提供即时状态反馈。这些外设功能在许多监控应用中都很有用;简单的安全系统、烟雾报警器、温度监视器和运动探测器都可以放置驱动电喇叭的微控制器。

此外,该器件还提供多种连接环境监测电路的选项。MAX3210的内部模拟比较器监测外部电路中的电压变化,这些变化是环境变化的结果。该外部电路可以是简单的温度热敏电阻,也可以是更复杂的电路,例如测量电流为电容器充电所需的时间的斜率模数转换器(ADC)。

监视外部电路的另一种选择是通过MAXQ3210的数字I/O。例如,当发生超出范围的情况时,环境监测电路产生外部中断,唤醒MAXQ3210。MAXQ3210的I/O引脚也可以使用串行传输协议与测量距离或照明条件的外部IC进行数据通信。

监控应用程序的软件体系结构

为MAXQ3210编写的应用通常体积小,简单,可以用MAXQ汇编语言进行编码。对于本文后面介绍的示例应用程序,使用了MAX-IDE工具集。MAX-IDE是达拉斯半导体公司的免费开发环境,为MAXQ器件提供汇编器和调试环境。图 1 显示了环境监控应用程序的基本架构。

传感器


图1.MAX3210在环境检测应用中的主程序环路大部分时间处于休眠模式,定期唤醒传感器并分析结果。

启动时,器件会经历一个初始化周期,在该周期中,寄存器和配置位被设置为一般应用程序使用。如果设备刚刚通电,则可能需要额外的操作,例如制造测试和配置。通过初始化和开机检查后,应用程序进入主循环,在其中测量并对其环境做出反应。首先,通过比较器或数字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

自检功能允许定期系统诊断,其中应用程序可以监控其电池状况或检查电路是否行为异常。自检也是增加内部定时器的好地方,用于跟踪MAXQ3210的工作时长,从而使带有传感器的外部系统能够按计划终止使用寿命。

应用代码演示了MAXQ外设的易用性,以及它们如何节省代码空间和执行周期。例如,喇叭驱动器只需要一个位来激活或停用喇叭输出。

 

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

电源管理

功耗是环境监测应用中最重要的因素之一,通常使用电池供电。MAXQ3210提供低功耗停止模式和低压电池监控。

当应用周期性测量环境条件时,MAXQ3210的低功耗停止模式有两种唤醒选项:外部中断或唤醒定时器,可使器件退出休眠模式并开始代码执行。当应用程序等待外部电路触发条件时,外部中断是一个不错的选择。典型的例子是等待门打开或热敏电阻两端的电压超过外部中断的阈值。

唤醒定时器是使MAXQ3210退出停止模式的另一种选择。唤醒是演示应用中前面讨论的功能:外部监测电路唤醒MAX3210,测量环境,必要时做出反应,然后返回睡眠状态。图2显示了此类应用的典型电流消耗模型。微控制器的大部分时间都花在低功耗休眠模式下。当设备唤醒时,电流消耗要高得多。这就是MAXQ内核的高性能的用处。MAXQ3210计算速度快,在高功耗状态下花费的时间更少,在低功耗休眠模式下花费的时间更多。

传感器

图2.监视应用程序大部分时间处于休眠状态以节省电源,在非常短的运行时会定期唤醒。

由于电池寿命是大多数监控应用的关键组成部分,因此检测电池何时接近使用寿命非常有用。MAXQ3210通过检查寄存器中的状态位来确定电池电压是否降至门限以下。该电压阈值固定为 7.7V,这是 9V 电池开始击穿的地方。在此电压电平下,电池中剩余充足的电量供MAXQ3210继续工作。功耗敏感型应用可以在低电量下运行数天或数周,并定期发出警告信号,就像烟雾报警器中常见的那样。

数据电子工程

MAXQ3210的128字节数据EEPROM使应用更加智能。它允许应用程序保留永久配置和状态数据,即使在电源故障或电池拆卸时也是如此。永久数据存储有多种用途。

提高产量。行为略微超出规格的设备(例如,测量有点短的距离检测器)可以存储永久配置信息,允许软件补偿外部电路的变化。这允许激活或出售以前可能被丢弃的终端设备。

行为配置和自定义。MAXQ3210应用可以针对特定的目标环境或最终用户进行定制。例如,环境监视应用程序可能配置为较大网络的一部分。当设备的测量在某个阈值被触发时,微控制器不仅会发出喇叭,而且还可以切换端口引脚以提醒其他设备有关该条件的信息。出厂配置可以启用或禁用此网络通知。

寿命结束。在环境传感器中,测量环境的电路可能会随着使用而退化。通过随着时间的推移更新MAX3210的EEPROM,应用可以控制在必须更换之前运行多长时间。例如,传感器在运行五年后可以自动禁用,通过喇叭或闪烁的 LED 发出信号,表明它不再起作用。

环境监测应用

MAXQ3210的一些更明显的环境监测应用是家庭安全应用:火灾报警和气体报警。MAXQ3210具有集成在片上的所有应用工具。然而,MAXQ3210比专用烟雾报警器微控制器更通用。使用前面讨论的简单环境监控软件架构可以创建各种应用程序。以下示例中的一些针对可防止或最大程度地减少对企业或家庭的损害的安全应用。其他应用程序为消费者提供便利。

为了防止损坏家庭或办公室,一种应用是地下室的水位监测器,其中一段时间内可能不会注意到积水。在这种情况下,使用湿度传感器或类似于厕所中使用的水箱设备检测水。当水使浮子上升到某一点以上时,浮子触发外部中断,MAXQ3210发出电喇叭提醒居民。此外,MAXQ3210将情况传达给更大的家庭或企业网络,后者又通知企业或房主有关情况。

温度监测是另一个潜在的应用。超市冰柜或送货卡车上的冷藏车的内容物是否过热受到监控。一个简单的热敏电阻与模拟比较器一起使用;当食品冷却器的温度超过安全限值时,MAXQ3210向杂货店店员指示情况。这种局部温度监测具有无穷无尽的有用应用,例如网络设备、饮料、胶片、实验室设备、艺术用品以及几乎任何易腐烂的产品。

应用程序也可以是关于便利性的。MAXQ3210内置智能运动检测器,当宠物、儿童或入侵者进入房屋禁区时,会提醒房主。按钮用于配置传感器。

MAXQ3210非常适合作为泊车助手。MAXQ3210使用简单的距离检测电路,根据测量的距离,发出不同的喇叭。此应用需要在微控制器中进行配置和智能。当放置在车库中时,该电路可帮助车主停放汽车而不会撞到墙壁。最终用户可能不希望他们的自动停车助手每次走在赛道前时都按响电喇叭。因此,设备被编程为初始延迟 - 当首次检测到运动时,系统等待两秒钟以查看是否检测到任何其他运动。如果不是,则可能是有人走在传感器前面。此外,可以通过使用按钮禁用该设备;如果最终用户在车库工作时设备不断发出哔哔声,那将很不方便。

评估套件

MAXQ3210评估板(EV kit)是开始对任何MAXQ3210应用进行原型设计的绝佳平台。它采用 9V 电源或 9V 电池供电。两个按钮控制复位和外部中断信号。10引脚JTAG接头提供对硬件调试例程的访问,从而允许查看和修改寄存器、存储器和堆栈。I/O 引脚连接到一个方便的 2 x 20 接头,靠近用于测试外部电路的原型区域。

板载压电喇叭和LED可用于测试应用的视觉和声音。默认情况下,喇叭输出阻尼声音 - 响亮但不痛苦。可以在电路板上添加跳线以短路阻尼电路,从而允许喇叭以其全部 85dB 音量驱动。

MAXQ3210评估板可与MAX-IDE配合使用。它支持MAXQ3210的硬件调试引擎,提供源代码级调试和存储器监控。

传感器


图3.MAXQ3210评估板提供压电喇叭、LED和9V电池座,用于完整的应用开发。

MAXQ3210优点摘要

如我们所见,MAXQ3210在环境监测应用中具有若干优点。主要优势在于集成——监控应用所需的组件(比较器、喇叭和LED驱动器)集成在芯片上,无需外部芯片来驱动这些功能。集成降低了整体系统成本,并通过减少需要测试的组件数量提高了可靠性。此外,单芯片需要的连接更少,从而缩短了终端电路板的测试时间。单芯片解决方案还意味着更小、更便宜的 PC 板。

微控制器的其他优势是高性能和低功耗。单周期MAXQ内核和大寄存器空间允许应用高效存储数据并快速执行计算。MAXQ3210在低功耗休眠模式下花费的时间更长,执行代码的时间更少。

最后,MAXQ3210的电池监视器和数据EEPROM允许智能、自我监控应用。设备可以在电池电量接近耗尽时警告用户。此外,应用程序可以跟踪其组件的寿命并实施计划的生命周期结束。

结论

MAXQ3210是MAXQ微控制器的低引脚数实现方案,设计用于不需要昂贵微控制器提供的外设支持的应用。虽然MAXQ3210非常适合环境传感器,但它确实是一款通用、高性能、省电的微控制器,能够为许多应用增加智能和交互。

需要注意的是,虽然本文讨论环境监测,但MAXQ3210的应用范围要广泛得多。MAXQ16具有数据EEPROM、支持捕获、比较和PWM操作的3210位定时器以及高性能MAXQ微控制器内核,适用于各种微控制器应用。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分