基于STM32温度及光敏无线传感器设计
2016-08-16创新者李俊男王君贤
创新者:李俊男 苏 杨 薛 端 王君贤
基于STM32温度及光敏无线传感器设计
创新者:李俊男 苏 杨 薛 端 王君贤
采用ST Microelectronic公司生产的STM32F103C8作为主芯片连接DS18B20单总线数字温度计、光敏二极管和nRF24L01无线传输模块的外围设备,构成一个无线传感节点。将环境中的温度及光强数据通过无线模块实时的发送到汇聚节点的LCD屏上显示,当温度或光强超过设定值时,传感节点自动报警。文中对传感器系统的硬件电路、读写时序和驱动程序进行了详细的阐述,并对无线模块的固件编程进行了分析。
随着人们对物理世界的不断探索,我们获取信息的方式和途径越来越多样化,信息的来源、种类、数量呈现海量化的态势。传感器作为连接物理世界与电子世界的重要媒介,能将物理世界中模拟信号转化成为计算机能够处理的数字信号。
随着物联网领域的发展,现代传感器不仅包括了传感部件能够感知周围世界,而且也集成了微型处理器与无线通信模块,可实现各传感节点间信息的交换与通信,而且能够对前端感知的信息进行综合分析处理和网络传输。
系统总体方案设计
系统模块组成
微处理器模块采用的是ARM架构Cortex-M3内核系列的 CPU,最高工作频率72MHz,其中集成了12位模数转换器(ADC),较高的采集频率与很短转换时间,同时也保证了转换精度。采用了最优化电源配置管理,最小化系统能耗,所有外设处于工作状态时,系统消耗18mA,待机时下降到2μA。
传感设备模块使用DS18B20单总线数字温度计,其可工作环境温度变化范围大,采集数据精度高,可满足绝大多数工作环境及需求,该设备另一特点,无需外围电源,能耗极低,从而可延长传感器节点使用寿命。
无线传输芯片为nRF24L01,其内置2.4GHz天线,体积小巧、成本低廉,采用Enhanced ShockBurstTM模式控制技术,优化模块收发模式,减小系统开支。
硬件电路设计分析
使用Altium Designer电路设计软件进行原理图与PCB板的绘制,所有元器件引脚均采用网络标号的形式相连接,图1为系统电源模块主电路图。传感器节点自带12V的锂电池,U1芯片采用MP2359(单片集成降压转换器)良好的线性输出,避免电源输出发生波动对系统工作电路产生影响,起到保护电路的作用。此外考虑到传感节点能耗和使用寿命,并且环境温湿度及光强在较短的时间内不会发生急剧变化,在程序中配合实际硬件电路,控制了传感器的采集频率与发送频率,从软硬件方面同时减小系统开支。
传感器网络及系统结构框图
物联网整体架构由智能感知层、无线网络传输层和综合应用层组成,其三大关键技术类别包括智能感知识别、网络通讯及大数据分析。传感节点(Node)采集了海量数据后发送给汇聚节点,数据量庞大且大部分重复,因此在汇聚节点处应采用数据挖掘与数据融合技术筛选出具有代表性的特征数据完成传输,最后实现对监控环境的数据分析。
总体的系统架构基于嵌入式平台,前端由数据采集模块完成模拟信号的采集,通过串口输入主芯片实现信号的量化,接着通过无线传输模块将获取的环境数据发送至汇聚节点(Sink),再进一步完成数据的分析处理。
传感节点以STM32F103C8作为主芯片,主频高达72MHz,能快速的进行取指、译码、执行过程,在较短的时钟周期内就能完成一条指令语句,内部集成了12位高精度的ADC模块,能够快速准确的对输入的模拟信号进行AD转换。内核中将地址总线、数据总线和指令总线使用分开设计的方案,不仅可以快速完成指令和数据的传输与执行,而且优化电源管理,减小系统开销。内部集成有512KB的Flash和64KB的SRAM可以以CPU的时钟周期的速度完成数据的处理与转移。处理完成的环境数据通过无线模块按照设定的发送频率将数据发射至汇聚节点。
DS18B20可编程分辨率单总线数字温度计
DS18B20数字温度计是可编程配置为9-12位数字显示温度的设备,数据的输出/输入通过一根单总线与微控制器相连。进行数据的读、写和执行温度转换的能量均来自数据线。其具有超小的体积、超低的硬件开销、抗干扰能力强、精度高等特点,可用于环境控制、楼宇内温度感应、设备或机械装置温度检测及过程监控等。
DS180B20主要特征:
●用于通信的单总线接口只需一个端口引脚;
●电源供电范围3.0V~5.5V,电源也可来自数据线;
●检测温度范围-55℃~+125℃,其中-10℃~+85℃时的精确度为±0.5℃;
●可编程实现9~12位的分辨率;
●全数字温度转换传输。
测量温度操作
图1 系统电源主电路图
图2 无线传感网络
图3 传感器系统模块组成框图
DS18B20的核心功能就是将温度直接转换成数字量的传感器。主机发送一个转换命令(44h),DS18B20就执行温度转换操作并将数据存储在一个16位的高速暂存存储器中,其中有2个符号拓展位。一旦转换完成后,主机通过发送读暂存器命令(BEh)就能从单总线上获取温度信息。温度寄存器的最高有效位中包含了符号位,用于指示温度为正还是为负。
初始化操作——复位与存在脉冲
DS18B20所有通信均在单总线上进行并以初始化序列作为开始。初始化序列中包含了主机发出的一个复位脉冲和从机(DS18B20)发出的一个存在脉冲,见图4所示。从机发送存在脉冲是对复位脉冲的响应,是让主机知道总线上的从机已经准备就绪。
在初始化序列期间,主机发射复位脉冲是通过将总线拉低最少480μs,接着主主机释放总线并进入接收模式。当总线被释放后,4.7kΩ的上拉电阻又会将总线拉高。当DS18B20检测到上升沿,其等待15μs~60μs发射存在脉冲通过将总线拉低并维持60μs~240μs。
读写时间片
DS18B20数据读写操作是通过使用时间片控制位和命令字来指定操作方式。
(1)写时间片
当主机将数据线由高电平拉低进行写时间片的初始化。存在两种类型的写时间片:写“1”和写“0”时间片。所有写时间片最少必须维持60μs,在两个写时间片周期最少间隔1μs的恢复时间。两种类型的写时间片都是通过主机将总线拉低的方式,见图5所示。
要生成写逻辑1的时间片,主机将总线
拉低15μs后释放总线。总线被释放后,4.7kΩ的上拉电阻将会把总线拉高。要生成逻辑0时间片,主机将总线拉低并维持最少60μs。在DQ线被拉低后DS18B20的采样窗口时间为15μs~60μs,如果在采样期间总线为高电平,DS18B20被写“1”;如果在采样期间总线为低电平,DS18B20被写“0”。
图4 初始化时序图
图5 读写时间片时序图
(2)读时间片
当主机发送时间片时,DS18B20只能发送数据给主机。主机发送读暂存器命令(BEh)后,主机必须立刻生成读时间片。所有的读时间片都必须维持最少60μs,两个读时间片的间隔最少有1μs的恢复时间。主机通过拉低总线最少1μs后释放总线来进行时间片的初始化,如图2所示。主机初始化读时间片后,DS18B20在总线上开始发送“1”或“0”。在读时间片结束后DS18B20将会释放总线,随后总线又会被上拉电阻拉回高电平的空闲状态。初始化读时间片的下降沿出现后15μs,DS18B20输出有效数据。
2.4GHz单片高速无线收发芯片
nRF24L01是一块带有嵌入式基带协议机制(Enhanced ShockBurst™)的单片2.4GHz收发器适用于超低功耗的无线设备。无线收发器包括:频率发生器、Enhanced ShockBurstTM模式控制器、功率放大器、晶体震荡器、调制/解调器和频道选择。
模块主要性能介绍:
(1) nRF24L01工作频段2.4GHz全球开放ISM频段免许可证使用;
(2)最高工作速率2Mbps,高效GFSK调制,抗干扰能力强;
(3)内置硬件CRC检错和点对多点通信地址控制,自动应答及自动重发功能;
(4)工作电压范围1.9~3.6V,待机模式下电流为22uA;掉电模式低至900nA,内置2.4GHz天线,体积小巧:15mm×29mm。
nRF24L01的引脚及其功能描述:
CSN:芯片的片选线,CSN 为低电平芯片被选中;
图6 nRF24L01接口图6 nRF24L01接口
SCK:芯片控制的时钟线(SPI 时钟);
MISO:芯片主收从发数据控制线(Master Input Slave Output);
MOSI:芯片主发从收数据控制线(Master Output Slave Input);
IRQ:中断信号。通过IRQ与nRF24L01进行中断通信;
CE: 芯片的模式控制线。CE 协同nRF24L01的CONFIG 寄存器共同决定NRF24L01 的工作状态。
以下为nRF24L01的主要工作模式。
表1 nRF24L01主要工作模式
Enhanced ShockBurstTM收发模式概述
Enhanced ShockBurstTM自动进行数据包处理与定时设置。在发送数据包期间,ShockBurstTM组装要发送的数据包和配置时钟位;在接收期间,ShockBurstTM不断搜索来自解调信号中的有效地址。当ShockBurstTM发现有效地址时,它就会处理空闲的数据包并通过CRC校验其有效性,如果数据包为有效载荷就会被送入RX FIFO空缺时间片。所有数据包处理与定时设置位都是由ShockBurstTM控制。
Enhanced ShockBurstTM模式有如下的特征:
●当工作在应答模式时,快速的空中传输及启动时间,极大的降低了电流消耗;
●由于获得高速的射频发射,数据在空中传输时间很短,极大的降低了无线传输中的碰撞现象;
●低成本。nRF24L01集成了所有高速链路层操作。SPI接口可以利用单片机通用IO口进行模拟。
掉电模式
进入掉电模式后最小化系统开销,所有寄存器中的内容仍保持且SPI接口依然处于激活状态。
待机模式
图7 PID值检测
图8 DS18B20接口电路
待机模式Ⅰ最小化平均工作电流且维持快速启动时间,在该模式下只有部分晶体振荡器处于激活状态。在待机模式Ⅱ下,额外时钟缓冲器处于工作模式,如果有新的数据包被加载到TX FIFO寄存器,设置130μs延时后,PLL立即启动将数据包发射出去 。
应用于Enhanced ShockBurstTM模式下数据包识别和CRC校验
每个数据包都含有两位PID(数据包识别)来识别接收的数据是新数据包还是重发的数据包。在发送方每从MCU取得一新数据包后PID值加1。CRC校验是数据包中强制错误检测机制。其有1个或2个字节来计算是否为重发数据。如果在发送过程中有一些数据包丢失了,在检测数据包时就会出现与上一包数据相同的PID值,此时nRF24L01将对两包数据的CRC值进行比较。如果CRC值也相同的话就认为后一包是前一包的重发数据而被舍弃。
实验具体操作
DS18B20硬件连接与驱动程序分析
图8为DS18B20与STM32F103C8接口原理图,这里使用的是一个四孔的插槽,既可以接DS18B20这样的三脚温度计设备,也能够插DHT11型的四脚传感器。其中主机的PA6引脚与DS18B20的数据线端口相连,同时DQ端也连接着一个4.7kΩ的上拉电阻,此外VCC与GND端同时接入了一只0.1μF去耦电容,起到一个电池的作用,满足驱动电路电流的变化,避免相互间的耦合干扰。
下面是与硬件电路相匹配的主要驱动程序:
数据融合算法分析
算法设计:1)数据盒子生成;2)感知节点编址与寻址;3)汇聚节点数据上报;本文提出的感知层汇聚节点数据盒子的理念,适合于轻量级的数据管理,不需嵌入式操作系统支持,不需要动用嵌入式数据库。该算法计算出所有待定位节点距离中心节点以及所有相邻节点的距离,将距离信息和临节点表传到控制中心进行集中计算,确定节点位置。
对nRF24L01固件编程的基本思路如下
(1)Enhanced ShockBurstTM发射有效载荷:
A.配置PRIM_RX位为低电平并维持 CSN 位为低电平;
B.当MCU有数据要发送,配置接收节点(TX_ADDR)和有效载荷数据(TX_PLD)的时钟地址,通过SPI解控进入nRF24L01;
C.配置CONFIG寄存器,使之进入发送模式,微控制器把CE置高(至少10us),激发nRF24L01进行Enhanced ShockBurstTM发射;
D.将无线电源开启,16MHz的内部时钟启动,射频数据包完成,数据包高速发射(通过MCU配置)。
(2) Enhanced ShockBurstTM接收模式:
A.配置本机地址和需要接收的数据包大小;
B.配置PRIM_RX位为高电平并把CE置高,使之进入接收模式;
C.130us后,nRF24L01进入监视状态,等待数据包的到来;
D.当接收到有效的数据包(地址匹配和CRC校验正确),有效载荷自动存储在RX_FIFO中,同时RX _DR为置高,并产生中断,通知微控制器数据包已接收;
E.MCU通过SPI接口可配置时钟输出来匹配载荷速率;
F.MCU设置CE引脚为低电平进入待机模式Ⅰ(低功耗模式)。
环境数据的传输与系统响应
汇聚节点通过STM32的灵活静态存储控制(FSMC)接口来控制 TFTLCD (Thin Film Transistor-Liquid Crystal Display)的显示,传感节点通过无线模块将环境数据发送给汇聚节点,汇聚节点采用中断服务方式进行接收,在主程序中调用库函数LCD_ShowNum()显示当前环境数据。
在传感节点采集完数据后,其先发送两个头数据帧:0xff、0xff,接着发送温度和光强数据。汇聚节点通过串口中断服务函数进行接收,汇聚节点会先检测接收到的前两个数据是否是0xff、0xff,如果不是,则丢弃,如果是,则将接收到的温度和光强值与设定阈值进行比较,当两个值都在阈值范围内时,正常显示温度和光强数据且LED绿灯常亮;如果采集到的数据中有一个或两个数据超设定值时,支节点与汇聚节点的蜂鸣器响起,同时LED红灯闪烁,绿灯熄灭。
无线传感节点有一个自带的电源设备。目前传感器网络中节点的工作周期与使用寿命作为其使用性能指标的重要参数,电源模块对整个传感器系统的工作运行起着确定性的作用,考虑到上述因素,且兼顾环境温度及光强在较短的时间内不会发生急剧变化等情况,在设计程序中对传感器环境数据采集频率和发送频率进行适当控制,降低节点工作能耗,从而可以延长其使用寿命。
结语
物联网是把传统的信息通信网络延伸到更为广泛的物理世界,特别是传感器网络的技术的发展,能够为物联网的广泛运用提供支持。无线传感器网络设计用于工作在特殊环境下和完成指定任务。以互联网为发展平台孕育出的传感器网络是一种新颖的信息获取和处理的技术。
本文提供的系统硬件架构框图与设计电路,充分考虑了工程实际情况和专项任务的特点,完成了环境温度及光强的实时数据采集,并传输至汇聚节点进行数据分析与处理,经过实际验证,该系统稳定性高,实时性强,满足现场温度监测要求。
李俊男 苏 杨 薛 端 王君贤
云南大学信息学院
10.3969/j.issn.1001-8972.2016.09.027