多传感器简易数据信息采集系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多传感器简易数据信息采集系统
程婷婷,赵正芳,徐小民,单伟振
中国矿业大学信电学院,江苏徐州(221008)
E-mail:zhaozhengf@
摘要:传感器采集信号已广泛应用于环境监控系统,以使人们能够实时实地的得到当前的环境状况,为此,设计了多传感器简易数据信息采集系统。本系统采用AT89S51单片机作为处理器,主要对外界环境温度、湿度、气压信息进行采集和预处理,然后经由串口发送到嵌入式处理器PXA270进行多传感器信息融合。实现了数据采集功能,完成了信息收集。关键词:温度,湿度,气压,传感器,AT89S51单片机
中图分类号:TN957.52
1. 引言
在现实生活中,为了达到对环境实现精确监测监控的目的,需要实时采集来自现场的各种传感器信号,如压力传感器,温度传感器以及湿度传感器等[2]。如何实现对现场的各种传感器实时采集并作相应的参数越限事后处理将显得尤为必要。本文应用AT89S51单片机作为处理器建立了多传感器信息采集系统,实现了对来自现场的温度、湿度、气压信息的实时采集,具有对各种传感器的参数上限值进行在线整定和报警的功能。
Liod嵌入式平台由深圳市武耀博德信息技术有限公司采用采用业界领先的Intel XScale PXA270 嵌入式处理器,推出的功能完善、性能优异的嵌入式开发系统平台[1]。
2.系统硬件设计
2.1系统设计思路
温度传感器采用DS18B20 ,这个传感器是1-wire数字温度传感器直接通过一根线连到单片机上,然后完成数据采集。湿度传感器是个可变电容,电容阻抗根据湿度的变化而变化,但是单片机不能直接测量电容的变化量。因此通过555电路将电容的变化量转化为频率的变化量,单片机通过测定频率后通过运算得到湿度的测量值。对气压传感器上电后,气压传感器输出一个差分的电压信号,电压信号随着气压的改变而改变。电压信号经过AD7715 16位A/D转换芯片将电压信号转换成数字量采集到单片机中进而得到气压值。将温度湿度气压传感器采集到的数据送给单片机,单片机处理后送到嵌入式系统。8051 系列微处理器基于简化的嵌入式控制系统结构被广泛应用于从军事到自动控制再到PC 机键盘上的各种应用系统。而ATMEL公司的AT89S51单片机价格低,可以完全达到本系统的要求,因此本系统采用AT89S51单片机作为底层多传感器数据采集模块的核心。
本系统单片机控制电路如图1所示。本电路为了达到和上位机多波特率、无差错的串口通信,因此采用11.0592M的晶振;复位电路采用上电复位和按键复位相结合电路;P1.0~P1.2三个I/O口接发光二极管,用来指示多传感器的工作状态;P1.7口接温度传感器DS18B20的数据信号线,用来采集环境温度信息;外部中断INT0口接湿度传感器HS1101的频率转换电路,用来采集环境湿度信息;P2.4-P2.7口接气压传感器PS500,用来采集环境大气压力信息;
图1单片机控制电路
2.2 模块的设计
2.2.1温度采集模块
本系统采用美国DALLAS公司的产品可编程单总线数字式温度传感器DS18B20实现温度信号的采集。DS18B20具有很多优点:直接输出数字信号,省去了后继的信号放大及A/D 转换部分;外围电路简单,成本低;单总线接口,只有一根信号线与CPU连接,且每一只都有自己唯一的64位系列号存储在其内部ROM存储器中,故在一根信号线上可以挂接多个DS18B20,便于系统以后的扩展。DS18B20的测量范围从-55~125℃,且在-10~85℃之
间精度位±0.5℃,完全满足环境温度监测的要求[5]。其硬件电路设计如图2所示。
图2 温度采集模块硬件电路
2.2.2湿度采集模块
测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气中吸收水分后引起的
物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。本系统采用电容式
湿度传感器HS1101测量环境湿度。其在电路构成中等效为一个可变电容,其电容量随着所
测空气湿度的增大而增大。而一般电容不能直接转换成可被单片机测量的数字信号,因此我
们必须要进行信号调理。将该湿敏电容置于555振荡电路中[3],将电容值转换为与之呈反比
的电压频率信号,可直接被单片机采集。本系统采用频率输出电路。其硬件电路设计如图3
所示。集成定时器NE555芯片外接电阻RH_R1、RH_R2与湿敏电容HS1101,构成了对
HS1101的充电回路。NE555的引脚7端通过芯片内部的晶体管对地短路又构成了对HS1101
的放电回路,并将引脚2、6端相连引到片内比较器,便成为一个典型的多谐振荡器,即方波发生器,RH_R3是防止短路输出的保护电阻,RH_C1用于平衡温度系数,RH_C2用于电源滤波。
图3湿度采集模块硬件电路
2.2.3 气压采集模块
本系统采用北大青鸟元芯公司的压力传感器PS500采集环境大气压力信息。PS500型压力传感器具有成本低,绝压,稳定性好等特点。PS500型压力传感器输出的是电压信号,我们要测试大气压力必须对电压信号进行A/D转换。A/D转换芯片选用16位A/D转换芯片AD7715。其硬件电路设计如图4所示。其中基准源由稳压管通过可变电阻分压提供,引脚DIN与单片机P2.7相连,DOUT与单片机P2.6相连,DRDY与P2.5相连,SCLK与P2.4相连。PS500输出的模拟信号采用差分输入的方式,所以将AIN(—)接地,AIN(+)接输入的模拟信号,即采样反馈电压。AD7715的读取数据流程图见单片机软件设计部分。当输出电流稳定时,ADC的采样值即为气压传感器的输出电压测量值,经过单片机进行处理后直接发送到Liod嵌入式平台。
图4 气压采集模块硬件电路
2.3 单片机与嵌入式平台串口通信模块
本系统Liod主板利用全功能串口和传感器采集串口模块进行通信,其硬件电路设计如图5所示。
图5传感器采集串口电路
由于此全功能串口在系统开发的过程中充当调试串口,用此串口时必须在烧写内核时屏蔽此串口的调试功能,然后才能作为传感器采集串口。
3.系统软件设计
3.1 单片机数据采集核心编程
单片机数据采集子系统以AT89S51为控制核心[4]。本系统使用C语言对单片机编程。C 语言有很好的结构性和模块化,更容易阅读和维护,而且模块化编写的程序有可移植性,功能化的代码能够方便的从一个工程移植到另一个工程,从而减少了开发时间。单片机主程序流程图如图6所示:
3.2 温度采集模块软件编程
DS18B20无论是初始化还是读写操作都有较为严格的时序要求。初始化主机需将总线拉低至少480us且等待DA18B20发挥的存在脉冲。DS18B20将在收到复位脉冲后15~60us 后将总线拉低60~240us作为存在脉冲,故主机需等待15~60us读取存在脉冲。读写时序分别把盘扩“写1”、“写0”时序和“读1”、“读0”时序。所有读写时序必须经过至少60us且在各个读写时序之间要有1us的恢复时间[9]。温度采集流程图如图7所示。
3.3 湿度采集软件模块编程
湿度采集软件模块主要采集湿度传感器转换电路的频率信号。采集频率的方法利用外部中断0用来计数频率脉冲,1S钟内计数脉冲个数即为频率信号;定时器0用来精确定时1S 钟。其湿度采集程序流程如图8所示: