我们所居住的嵌入式世界是由数千种不同的MCU和CPU共同开发的。为了支持数据和信息的自由流动,许多数据和信息是相互联系的,而且通常都是无这种数据交换提供了更方便和更安全的生活方式。 Digi-Key气象中心说明了如何连接各种MCU以便与手持智能手机进行无线通信。气象中心是一个太阳能供电的多节点项目,各种MCU和传感器通过无线网络连接在一起。这些联网节点提供了天气状况和太阳能电池板阵列功率输出的快照,为主要气象中心的电力总线供电。
PIC24FJ192GA110 MCU实现
PIC24FJ192GA110 MCU用作天气节点,可以从各个传感器返回温度,湿度和Lux(光通量密度)的无线读数。该节点还通过使用高阻分压器和电压跟随器监控其自身电压。这些模拟信号通过片内ADC以十六进制平均值读取。人机界面通过密封的触觉按钮开关和LCD屏幕使用更改通知(CN)中断,以使用当前传感器数据更新本地用户。
该节点的平均电流消耗仅为9.25 mA,在设计时考虑了低功耗和无线连接。该系统以57,600波特率运行,使用PIC的UART2端口作为与直通模式下XBee Pro单元(XBP24-BWIT-004-ND)串行通信的方式。这允许即插即用连接,就像PIC的UART端口在硬线上物理连接一样。
大多数情况下,PIC MCU实际上处于低功耗状态。系统通过两个事件之一唤醒和更新;通过按下按钮的用户交互或来自网关的系统请求将强制系统唤醒和更新。如果发生按钮按下事件,则触发改变通知中断,并且相应的处理程序设置用于改变程序流程并在LCD屏幕上更新天气数据的标志。 LCD屏幕驱动程序通过并行主端口接收数据。这允许用户选择显示哪个读数。如果网关通过XBee Pro设备上的引脚声明请求,则系统唤醒,读入输入并在返回休眠之前发送适当的数据。程序流程如下图1所示。使用V-Infinity 500 mA DC-DC转换器(102-1709-ND)有效地将太阳能充电铅酸电池的电源电压与PIC和其他节点的外设。该稳压器允许32 V输入,并提供低纹波输出,效率高达96%。
图1:程序流程。
外围设备,传感器和硬件
并行主端口用于更新Newhaven显示器(NHD-0208AZ-RN-YBW-3V-ND)。选择此显示器的原因是其占地面积小,兼容的电源电压和可用性。
对于Lux传感,由于其温度稳定性和近似人眼光谱响应,使用了Microsemi Lux传感器(LX1971IDU-ND)。这意味着传感器输入(Lux)和输出(电压)之间的关系导致平方根传递函数。这允许通过使用分支语句进行分段转换以确定输出是否位于传递函数的弯曲部分或线性部分上。找到曲线的正确部分后,计算输出。对于日光条件,大部分输出是线性的。因此,针对大多数环境光测量计算快速线性缩放。
对于湿度测量,使用霍尼韦尔HIH-5031湿度传感器(480-3284-1-ND)。选择该传感器是因为它具有0到100%的相对湿度操作范围,具有+/- 3%的低滞后。为了获得更好的精度,可以通过考虑温度和电源电压测量来补偿温度和电压的变化。这两种测量均可用于计算更精确的湿度读数。
使用Microchip(TC1047AVNBCT-ND)温度传感器测量温度。该传感器采用低至35μA的电源电流工作,并呈现线性响应,从而降低了处理器的计算负荷。如上所述,温度传感器还用于在计算相对湿度时补偿温度的变化。
PIC24FJ192GA110天气节点的电路如下图2和图3所示。
图2:传感器和开关电路。
图3:电源输入和外设电路。
设计挑战
高电阻分压器减少了电源电流流出量(如图3所示),它还会导致PIC的ADC阻抗不匹配,导致读数不准确。对于从任何电压源到ADC的最大输入阻抗,PIC的数据表建议不要超过2.5KΩ。分频器产生的近似输出阻抗为388KΩ。通过使用Microchip高精度运算放大器(MCP6031T-E/OTTR-ND)缓冲分压器的输出来解决这种阻抗失配问题。由于其低成本和低静态电流消耗0.9μA,这款特殊运算放大器是此应用的理想选择。事实证明,这是整个系统功耗的一个小因素。
由于MCU大多数时间都处于休眠状态,因此需要双速启动以及从XBee触发的引脚更改(RD1)中断,以确保在网关请求时立即将UART传输到XBee模块。在双速启动模式下,MCU使用快速RC(FRC)振荡器从睡眠模式唤醒,频率为8 MHz +/- 2%,典型启动时间为15μs。这允许从8 MHz内部FRC振荡器开始从睡眠中快速,低功耗唤醒,并且一旦PLL锁定,最终切换到32 MHz的外部晶体振荡器。 PLL本身通常需要2 ms才能锁定。