王晓丽 于 跃 姜 川
(吉林建筑大学电气与电子信息学院,长春 130118)
随着通信技术不断的发展,无线通信已经应用在生活的各个方面.常用的无线通信技术包括蓝牙、WSN,wifi,无线个域网、红外线、GSM等[1].但在数据采集过程中仍然存在很多问题,如重复的人工工作、复杂的线缆连接、实时的数据处理和电磁干扰等.考虑到不同技术的数据传输的成本、安全及可靠性等因素,蓝牙通信和无线传感器网络是短距离线通信和数据传输的最合适的方法,而且,蓝牙技术能解决如上提出的问题.
本文设计的系统使用了蓝牙通信技术进行无线的数据传输,使用了多个传感器来接收数据,同时使用虚拟仪器软件监控和处理所有节点的数据.本系统的优点是多通道数据采集,以及采用了基于短程无线数据采集运行速度较快的软件.
无线数据采集系统包含两个部分:数据采集部分和主机数据处理部分.传感器电路的数据采集部分主要负责接收外部信号,通过放大器电路可以放大这些不断变化的信号.可以使用微处理器STM32外围的12位高分辨率ADC把放大的模拟信号转换成数字信号,根据PC软件的要求,被转换的数据能被采集到,从而进行实时传输,或者储存进闪存,等待主机的读取.无线采集系统还能提供I2C串行总线接口,该接口主要用于连接总线传感器.经过STM32的内部倍频后,外部8M晶振的频率可达到72M.数据采集系统的电源为3.3V电源.PC具有主要负责接收所有从下位机发送数据的蓝牙串口接收器模块.USB电路负责USB与PC串口之间的通信[2].无线数据采集系统的框图如图1所示.
图1 无线数据采集系统的框图
本文使用STM32微处理器作为主控芯片,该处理器芯片具有
144个引脚.该处理器具有一个FSMC控制器,该控制器的数据线和位址线是分开的.FMSC控制器可以轻松完成读取和写入NAND闪存操作.为了长时间存储ADC转换后的大量数据,数据采集模块将通过一个外部128MB NAND闪存存储数据.STM32有一个16通道12位分辨率ADC转换器,其最高转换时间约为1.17us.主控制器具有5个用于串行通信的USART异步串行端口.蓝牙串行模块是CSR的蓝牙控制芯片——BlueCore4-External,其标准是蓝牙2.0协议,而且具有紧凑的尺寸、高效的天线和简单易懂的串口.还可以配合蓝牙适配器和蓝牙手机或配置成主从模式使用.根据实际需要,我们可以选择适合的传感器或具有I2C串行接口的传感器作为传感器电路和单放大电路[3].在测试期间,选择的温湿度传感器是SHT10,其成本低、反应快、质量好、抗干扰性强.工作电压为2.4~5.5V.
主控制器使用三星的K9F1G08
闪存,并与NAND闪存相连.蓝牙串行模块已经固化了与外部环境连接的接口,所以我们能简单的将模块和主控制器STM32的串口连接起来.主控制器的接口、串行模块、FSMC控制及NAND闪存如图2所示.
图2 MUC,NAND闪存和蓝牙串行模块的连接
蓝牙串行模块是无线通信系统核心部分,在整个无线数据通信系统中起到至关重要的作用.我们在蓝牙模块中使用CSR的BlueCore4-External芯片.该芯片提供了USB,UART,SPI和外部闪存的接口.在硬件设计中,这是为蓝牙和主控制电路进行的模块设计.主控制电路可以通过串口与蓝牙芯片通信.
在整个无线通信系统中,有一个蓝牙模块与PC机连接作为主机节点.从属蓝牙节点可以得到传感器电路通过串口采集到的数据,然后通过蓝牙主机将信息传送出去.蓝牙节点将从从属设备上接收信息,并将其转换成串口信息.为了实现PC串口与蓝牙串口之间的通信,我们进行了一个转换.共同电路是MAX232变换器.无论如何,在本次设计中,我们使用了PL2303芯片,它可以通过USB接口实现PC串口与蓝牙串口之间的通信.该方法也可以为蓝牙主机节点提供电源.正如图中PL2303接口的结构所示,我们只需要连接USB数据线缆和PL2303D.整个模块电路如图3所示.
本文设计了两个电源,分别是USB接口电源和AC/DC适配器电源.如图4所示,这两个电源都将采用调整电路.调整器芯片ASM117可以将电源从5V转换为3.3V.4个电容器就可以实现电源电压信号的过滤.
图3 USB串口模块连接
图4 电源
无线数据采集软件包括两个部分.第一部分是包括硬件在内的驱动,主要有数字传感器驱动、STM32及外围设备的驱动、FSMC控制器驱动的配置,以及蓝牙串行模块的驱动的配置[4].每个硬件的驱动都要得到合适的配置.最复杂的驱动是FSMC的驱动和蓝牙芯片的驱动.第二部分是虚拟仪器PC软件对PC端的编程程序.主机计算机软件可以控制每个蓝牙节点,并使能数据传输和数据处理.在PC软件的设计中,核心部分是VISI硬件接口驱动.无线数据采集系统使用VISI的串口驱动与无线传输模块进行通信.
虚拟仪器程序作为无线数据采集系统的顶层部分,主机计算机软件的特点是处理PC硬件采集的数据.为了加快软件的开发过程,我们已经采用虚拟仪器[5]来建立软件.对于虚拟仪器复杂的体系结构,VISI可以连接常用总线,如GPIB,USB,串口和以太网等.虚拟仪器还可以提供总线VISI驱动.主机软件的整个设计过程如下:①配置PC串口;②选择数据采集节点;③通过底层硬件使能数据传输和读取储存器;④处理数据并保存.
该程序包括两层叠套结构.第一层如图5所示,我们初始化了VISI串行的一些参数.需要注意的是,PC串行率、蓝牙串行模块率及主控制器的STM32外部设备USART率应该是一致的,以便保证数据的传送和接收的正确性.本文配置的串口率为115 200bps,而且测试显示,该串口率下的数据传输是稳定可靠的.第二个程序的框架如图6所示,应用了循环事件结构.这些事件包括:打开串口、选择节点、启动数据采集、接收数据、保存文件和关闭VI.
图5 PC串行配置的虚拟仪器程序
图6 主机计算机保存数据事件的框图
数据采集系统的传感器部分与温湿度传感器SHT10相连.如图7所示,Labview界面会显示测出的温度及测量过程中出现温度的最大值和最小值.根据该项目的实际需要,无线数据采集系统装有多个用于数据采集的传感器.由于STM32具有16个ADC和多个I2C,所以可以轻松连接传感器和整个系统.同理,对于虚拟仪器主机计算机软件程序,通过增加基础软件程序中相应处理事件,可以快速升级系统.
图7 LabVIEW实时显示
本文将STM32和STH10温湿度传感器相连,将采集到的温度数据传给上位机,并在LabVIEW界面上显示出具体温度数据.校园能耗数据采集系统的建成具有十分重要的意义,能够对校园的能源消耗进行实时监测,成本低、性能好、数据传输稳定可靠、可行性高,从而对其进行科学有效的管理,让全校师生参与到建设节约型校园中来,培养大家节能减排的意识,充分发挥学校在倡导低碳生活中的宣传和教育作用,也可以广泛应用到与工业实时信息采集、无线通讯、数据采集读数与处理技术方面.
[1]张士兵,包志华,徐 晨.近距离无线通信及其关键技术[J].电视技术,2006(6):1-3.
[2]廖义奎.ARM Cortex-M4嵌入式实战开发精解-基于STM32F4[M].北京:北京航空航天大学出版社,2013:43-45.
[3]曹圆圆.基于STM32的温度测量系统[J].仪器与仪表分析检测,2010(1):1-3.
[4]丁珍红.基于STM32的高速大容量数据采集存储系统设计[D].上海:上海交通大学,2011.
[5]白 云,高育鹏.基于LabVIEW的数据采集与处理技术[M].西安:西安电子科技大学出版社,2009:8-38.