32位和8位单片机的无线传感器网络系统
扫描二维码
随时随地手机看文章
摘要:采用STM32F10X系列的芯片为主芯片、SH79F32为辅芯片,温度传感器DS18B20做采集工具,PTR8000无线模块做通信工具,实现无线传感器网络功能。通过Altium Designer Release 10进行原理图设计及PCB板的绘制,并制作电路板、焊接电路板,之后利用Keil软件设计程序,实现不同单片机之间的无线传感器网络通信,并完成了无线通信平台的设计与制作。
引言
无线传感器网络(Wireless Sensor Networks,WSN)是由分布在监测区域内的大量的传感器节点,通过无线通信的方式形成的多跳自组织网络,可以组成区域内的无线传感器网络,广泛应用于环境监测,如温度、湿度、压力、短距离无线通信等。
无线传感器网络,其主题是低成本、低功耗、多功能的集成化传感器网络。这些传感器具有无线通信、数据采集和处理、协同合作的功能。无线传感器网络能够通过各类集成化的传感器协作地实时监测、感知和采集各种环境或监测对象的信息,通过嵌入式系统对信息进行处理,并通过随机自组织无线通信网络以多跳中继方式将所感知信息传送到用户终端,使用户完全掌握监测区域的情况并作出反应。
1 无线传感器网络通信平台系统的设计
无线传感器网络通信平台系统由主机和从机组成,如图1、2所示。从机的处理器为SH79F32单片机,外挂128×64液晶显示模块、nRF905无线模块、数字温度传感器DS18B20等。主机的处理器为芯片STM32F103R8T6,是基于ARM的32位微控制器俗称单片机,外挂LCM045段式液晶显示模块、nRF905无线模块等。
1.1 处理器
主机和从机分别采用两种芯片,分别是STM32F103R8T6和SH79F32。STM32F103R8T6是基于ARM核的32位微控制器的增强型单片机,64引脚,闪存存储器容量为64 KB,最后一位“6”说明此款芯片的工业级温度范围是-40~85℃。中颖单片机SH79F32作为从机主芯片(单片机)。 SH79F3是一颗整合了低功耗时钟和存储周期的高速8051可兼容单片机。在同样的振荡频率下,较之传统的8051芯片,它有着运行更快速的特性。
为了达到高可靠性和低功耗,SH79F32内建PLL时钟、SLP(Super Low Power)LCD驱动器、看门狗定时器、低电压复位功能、低电压检测功能。此外SH79F32还提供了低功耗省电模式。
1.2 LCM045显示模块
设计需要将无线通信中传递的数据显示出来以便于终端进行数据采集和处理,并利用这些数据对监控区域进行调控,本设计选用北京青云创新科技生产的LCM045段式液晶显示模块产品。
1.3 128×64显示屏
节点显示采用KS0108控制器系列的128×64点阵液晶显示模块。它的特性有:工作电压为+5 V±10%,可自带驱动LCD所需的负电压;全屏幕点阵,点阵数为128(列)×64(行),可显示8×4个(16×16点阵)汉字,也可完成图形、字符的显示,不带字库;与CPU接口采用5条位控制总线和8位并行数据总线输入/输出,适配M6800系列时序;内部有显示数据锁存器;具有简单的操作指令,如显示开关设置,显示起始行设置,地址指针设置和数据读/写等指令。
1.4 温度传感器
温度传感器选用Maxim公司出产的DS18B20,其可以提供9位温度读数,指示器件的温度。DS18B20有两种供电方式,可以使用寄生电源供电,也可以使用外部电源供电。如果使用寄生电源,不用外部电源,则当总线为高时由DQ端提供电源,同时向内部电容充电,以求在总线拉低时为DS18B20提供电量。上电后,DS18B20进入空闲状态,要启动温度测量和模拟到数字的转换,处理器须向其发出Convert T[44h]的命令。转换完成后,DS18B20回到空闲状态。温度数据是以带符号位的16位补码形式存储在温度寄存器中。
2 无线传感通信平台硬件设计
本设计主机采用STM32F103R8T6单片机。
2.1 基于STM32芯片的主机通信单元
PTR8000无线通信模块的核心是nRF905芯片,该芯片工作在433/868/915 MHz的ISM频段。nRF905的RF工作频率由配置寄存器中的CH_NO和HFREQ_PLL设置。在本次设计中写配置寄存器第一字节设置工作频率为433.0 MHz。配置各字节寄存器内容为write_nrf(0x0c),即不重发数据、正常模式、+10 dBm输出功率、433 MHz频段;write_nrf(0x44),即4字节TX地址宽度、4字节RX地址宽度;write_nrf(0x20),即32字节RX有效数据宽度;write_nrf(0x20),即32字节TX有效数据宽度;write nrf(‘s’),RX地址第0字节;write_nrf(‘l’),RX地址第1字节;write_nrf(‘a’),RX地址第2字节;write_nrf(‘l’),RX地址第3字节;write nrf(0x5b),8位CRC校验位、允许、晶体16 MHz、没有外部时钟。无线通信模块PTR8000电路如图3所示。
2.2 基于STM32主机的显示单元
LCM045液晶模块无论是写命令还是读/写数据都是根据其本身的格式和时序完成的,它有三种时序,分别是读数据RAM时序、写命令/数据时序和连续写数据时序。对应的三种格式,即读数据格式、写命令格式和写数据格式。
2.3 基于SH79F32节点电源单元
电源单元工作原理:首先外部220 V标准电压经变压器转换为12 V交流电压,12 V交流点在经过由二极管组成的桥式全波整流电路后变为12 V直流电压,然后12 V的直流经LM7805芯片转换为单片机可用的+5 V电压,再经过LM117T电压芯片转换输出稳定的+3.3 V工作电压,+3.3 V电压为无线模块供电,+5 V电压为单片机和其他模块电路供电,其中各个电容起到滤波的作用。
2.4 基于SH79F32节点处理单元
如图4所示,为SH79F32单片机的接口电路,所选取的晶振频率为6 MHz,图中J4为向芯片烧入程序的接口,通过向TCK、TMS、TDO、TDI四个引脚灌入特定的序列进入烧写模式。P0口的8条数据线接液晶模块的数据口,P1.2~P1.7接液晶模块的控制口,P4口、P2.6、P2.7、P3.7和无线模块接口相连,P3.0与P3.1引出的两条线属于串口通信线,通过MAX202电压转换芯片,直接与PC机进行通信。控制DS18B20测温只需要一条数据线即可,本设计由P3.3口控制温度采集并读取温度值。
3 无线通信软件设计
nRF905有两个激活(收发)模式和两种省电模式,nRF905模式决定于trx_ce、tx_en和pwp_up的设置。典型的ShockBurstTM TX的流程图如图5所示,当应用单片机的远程节点的数据、接收节点地址(TX地址)和有效载荷数据(TX载荷)送入nRF905通过SPI接口。然后单片机置trx_ce和tx_en高,这激活了nRF905 ShockBurst TM传输。然后接收机自动开机,数据包完成(CRC计算)和传播(100 kbps,GFSK,曼彻斯特编码),DR设置为高,传输完成。
典型的ShockBurstTM RX接收流程图见图6。首先,ShockBurstTM RX是通过设置高和低trx_ce、tx_en实现的。当nRF905的检测到载波,载波检测(CD)引脚设置高。当一个有效的地址收到,地址匹配(AM)引脚设置高。当一个有效的数据包已经收到(正确CRC发现),数据准备(DR)引脚设置高。当nRF905的数据准备(DR)和地址匹配(AM)低了。该芯片是现在准备进入单片机TX或RX,掉电模式。
4 性能测试
测试结果如图7所示,图中左边是主机电路,显示被测温度为30.7℃;图中右边为节点(从机)电路,其显示屏为128×64液晶屏,其上显示第1行字样temperature;第2行字样030.7;第3行字样为“TX:0041”(即节点发送第41次)。节点的温度由DS18B20拾取,显示在节点机的液晶屏上,同时,由在从机上的无线模块以无线信号发出去。
主机上的无线模块接收信号,并把温度值也显示在主机屏上。经测试,主从机之间的距离达到500 m时,温度传感、通信成功。
结语
本文通过主机和传感器节点硬件的设计以及软件系统的部署,设计电路,焊接电路,编程,调试等,用两种不同单片机分别作为主从机的处理器,外挂无线通信模块PTR8000、数字温度传感器DS18820,实现了温度传感器系统平台的功能,通信距离可以达到500m。