浅谈USB接口的多节点无线测温系统

电子说

1.2w人已加入

描述

针对大规模测温系统在工程监测中的应用要求,提出了一种新型的基于无线数据传输的多节点远程温度监测系统。采用节点分机实现多点温度的测量和存储,通信机实现测温数据的接收,并将监测数据传送至主机,主机实现温度数据的转换和智能化监测管理。通信机采用CYGNAL公司的微控

1 引言

温度监测在土木建筑施工、储粮仓库、智能楼宇、空调系统以及其他工农业生产中有着广泛的应用。传统的测温方法是在各监测点布置温度探头,由专人每天定时采集各点的温度数据,再输入电脑保存,并生成温度、应力的变化曲线和测试报告,也有一些是通过数据采集箱采集温度和应力数据,然后通过电缆上传电脑做进一步的数据处理。

传统的测量方法需要监测人员频繁来往于施工现场,劳动强度大,数据采集和传输不方便,信息管理的自动化程度低,难于满足现代信息化监测的要求。为了提高测温数据采集的准确性、可靠性、及时性,同时实现温度和应力数据的智能化、信息化管理,本文针对大规模建筑施工监测等工程应用的要求,设计了一种基于无线数据传输和USB接口的多节点远程温度监测系统。

通过无线数据传输,一方面拓展了节点分机布置的空间范围,另一方面大大缩短了测温电缆的长度以方便布线。USB接口实现了将各节点分机的测温数据向主机的快速传输,取代了传统的RS 232等接口形式,大大方便了与主机的连接。主机软件完成数据的转换、存储、曲线和报表生成,实现混施工监测的信息化管理,也可以构建一个Web服务器,实现信息的异地监测。

2 测温系统的整体构造

测温系统是由主机、通信机和测温节点分机构成,整体框图如图1所示。

计算机

其中温度信号通过埋植在现场的传感器传输到节点分机,节点分机内部集成了调理电路和信号采集模块,以及由微处理器控制的存储模块和通信模块,一个节点分机最多可以处理64路温度信号,测温分机以主机设定的时间间隔通过无线或有线方式经通信机向主机传送数据,其中通信机采用了支持USB 2.0标准的微控制器C8051F320,使传输的数据通过USB传送到主机,PC机在软件支持下对数据进行处理并以报表以及曲线图表示出来。同时,主机也可以设定分机的数据采集间隔,监测的部位,系统时间等参数。

3 USB接口在测温系统中的应用

为了把测温数据传送到主机,传统的方法是利用RS 232或RS 485总线与主机通信。但由于这些接口传输速度慢,近年来,逐步被USB接口所取代。目前USB成为PC机的标准接口已经是大势所趋,在主机(host)端,目前推出的PC机几乎100%支持USB。鉴于此,本文采用CYGNAL公司的支持全速USB 2.0的微控制器C8051F320。

该单片机是完全集成的混合信号系统级芯片(SOC),具有与C8051完全兼容的CIP51内核,与MSC-51指令集完全兼容。片内集成了数据采集和控制系统中常用的模拟、数字外设及其他功能部件;内置FLASH程序存储器、内部RAM以及外部数据存储器RAM。

微控制器C8051F320带有USB接口,其功能控制模块符合USB 2.0规范,可在全速或低速下运行,并具有1 kB USB缓存、集成收发器,无需外部电阻。Silicon lab公司提供了USBXpress的开发套件。通过使用USBXpress库,大大简化了USB固件程序和PC端驱动程序的开发。其中USB通信总体框图如2所示。

USBXpress通过一系列函数实现单片机端的应用程序接口(API)。当主机需要数据时,可将测温节点分机数据通过通信机传输到主机中,应用程序对数据进行波形显示和数据分析处理。

计算机

4 USB通信

本系统的USB外设为非符合HID标准的设备,因此要使主机与通信机顺利传输数据,需要编写三部分的程序:设备端的固件程序、主机上的设备驱动程序以及客户应用程序。

4.1 固件程序设计

采用C语言编写,USB固件程序程序由3部分组成:

(1)初始化单片机和所有的外围电路;包括USB控制器的初始化、端点初始化、交叉开关和I/O口初始化、系统时钟设置,控制器使能;

(2)主循环部分,其任务是可以中断的;

(3)中断服务程序,其任务是对时间敏感的,必须马上执行。如图3所示。

根据USB协议,任何传输都是由主机(Host)开始的。单片机做它的前台工作,等待中断。主机首先要发令牌包给USB设备,C8051F320接收到令牌包后就进入中断服务程序,首先读单片机的中断寄存器,判断USB令牌包的类型,然后执行相应的操作。

计算机

在USB单片机程序中,要完成对各种令牌包的响应,其中比较难处理的是SETUP包,主要是端口0的编程。本系统中主要用到了初始化、读、写、中断这4个函数:初始化USB_Init(0,0xEA61,NULL,NULL,Serial,250,0x80,0x100)函数;块写函数Block_Write();块读函数Block_Read();USB中断使能函数。

USB的所有处理程序都是通过USB的中断服务程序完成的。进入USB中断后,程序调用Get_Interrupt_Source()函数获得USB中断的进入原因。然后根据不同的入口情况,来进行相应的处理。比如收到数据之后,读取相应的缓冲区内容到内存中;收到初始化命令时,复位单片机内的各个状态参数。

4.2 USB驱动程序

USB驱动程序是一个软件组件,封装了应用程序存取硬件设备的功能函数。USB驱动程序模型分为5层,如图4所示。

计算机

考虑到本系统使用了非标准类别,需要自己开发驱动程序,USB设备驱动程序的工具使用了USBXpressDevelopment Kit。主要函数如下:SI_Open()函数;SI_Close()函数;SI_Read函数;SI_Write()函数;SI_GetNumDevices()函数;SI_CheckRXQueue()。

用户端若要从设备读取数据,将调用一个应用程序接口API,如OpenFile,SiUSBXp.dll实现这个API。总线驱动程序控制对总线上所有设备的访问。

4.3 用户应用程序

主机软件采用可视化编程工具VC 6.0进行开发,采用数据库Microsoft Access 2003进行信息的管理。

根据实际的系统应用要求,整个系统的软件结构如图5所示。

计算机

5 测温系统在实际工程中的应用

测温系统在某议事大厦项目中进行了应用,该工程基础底板平面尺寸为65.4 m×47 m,其中中间区域3、7轴线与B、F轴线之间24.0 m×21.53 m部分板厚为2.2 m;该部分周围有15个大承台板厚为2.5 m;其余部分均为0.7 m,混凝土采用C40。

在进行该工程基础底板的混凝土施工过程中,本系统进行了为期将近两个星期的测温使用,效果很好。图6为自动记录的3号点的温度变化曲线。

计算机

6 结 语

基于C8051F320 USB接口的无线测温系统把计算机技术与传统信号采集技术紧密结合起来,充分发挥PC机和单片机各自的优点,实现传感器信号的采集、存储、传输、显示和处理。而借助USB接口的通信功能,减小了数据传输系统的复杂性,提高了传输速率极大地方便了系统的使用。

编辑:jq

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

全部0条评论

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

×
20
完善资料,
赚取积分