摘要:设计了一种基于单片机ADuC845和PTR2000的无线数据采集系统,该系统充分利用ADuC845单片机的片上资源,特别是两个多通道且皆可达到24位分辨率的A/D转换器。它对外部模拟信号温度、湿度、压力通过传感器进行输入、放大、滤波后送入A/D转换器。通过对寄存器的合理配置,得到稳定的输出值,在数码上显示输出。最终通过PTR2000将处理后的数据发送到PC机上。
引言
在工业控制领域,常常需要采集大量的现场数据,如电压、电流、温度、湿度、气压等,并将这些数据采集模块采集的数据传输到主机进行处理。由主机根据处理的结果,将控制信号传输给现场执行模块进行各种操作。而目前数据传输通常使用的是RS485或者是CAN等网络。这些网络均基于有线传输,有线传输方式存在布线困难、维护成本高等问题,而无线通信技术解决了这些问题,因此被广泛应用在很多场合。随着信息技术的高速发展,人们需要能够准确、快速和便携地获得大量数据,并将采集到的数据通过无线传输方式传给远端主控制室。无线传输具有一定的优势,成本相对低,并且传输中的干扰也较少,这也在一定程度上提高了传输的可靠性。本文将单片机技术与数据采集技术、无线传输技术结合起来,设计了一套高速的无线数据采集系统。
1 无线数据采集系统的总体构成
无线数据采集系统首先将传感器所采集到的模拟信号经过信号调理模块进行调理,然后进入到ADuC845单片机的A/D转换端口进行模/数转换,最后通过PTR2000无线收发模块将数据发送出去。无线数据采集系统的硬件结构框图如图1所示。它包含信号调理模块、电源模块、LED显示与键盘电路模块、复位电路模块、PTR2000无线收发模块、LCD显示模块以及蜂鸣电路模块等。
2 主要芯片的选取
2.1 ADuC845单片机
ADuC845是高度集成的单片机,该芯片主要由两个多通道且皆可达到24位分辨率的A/D转换器、双D/A转换器以及一个8位可编程微控制器组成。在ADuC845的双通道ADC电路中,主通道用丁转换第一级传感器的输入,该通道具有缓冲能力,并可编程为8个输入范围,工作电压为±20~±2.56 mV,可由5个差动输入端之一驱动。ADuC845采用△-∑转换技术来实现高达24位无遗漏码的优良性能。
2.2 无线收发PTR2000
PTR2000是一个小型、超低功耗无线数据收发模块。该模块将发射和接收合为一体;采用FSK调制/解调,可直接输入/输出,抗干扰能力强,特别适合工业控制场合;采用DDS+PLLL频率合成技术,因而频率稳定性极好;功耗低,具有两个频道,广泛应用于多信道工作需要的场合。
3 硬件电路设计
3.1 信号调理电路设计
信号调理电路的设计就是利用放大电路、缓冲级电路、滤波电路等,将传感器采集的非电量微弱信号调理成可以测量的数字信号,以方便检测系统后续处理或显示。信号调理电路如图2所示。
温度传感器AD590采集的信号通过放大电路OP07进行放大,通过加法比例电路来进行零点漂移,调节R1来进行放大倍数的调节,使V1电压输出在0~2.5 V。然后再通过电压跟随器OP491和滤波电路,最后输入到单片机ADuC845的一个AIN1输入通道。
HIH3610相对湿度传感器将采集的信号电压V2接到信号调理电路中,同时要对电压信号进行调理,让其满足ADuC845的通道输入电压,然后通过电压跟随器和滤波电路进入ADuC845中的AIN2输入通道来进行数据采集。
26PC压力传感器是美国HoNEYWELL公司生产的差压、表压,无放大的带温度补偿的压力传感器,输入电压(0~16 V)通过电压跟随电路和滤波电路后,连接到单片机ADuC845的AIN3输入通道之中进行数据采集。
3.2 无线收发电路设计
PTR2000无线收发模块与单片机ADuC845连接时,PTR2000模块的D0和D1分别与ADuC845的RXD和TXD连接。单片机可直接通过P3.2位置高/低电平来控制收发模块发射/接收状态。ADuC845与PTR2000的接口电路如图3所示。
当PC机与PTR2000之间连接时,必须经过电平转换,将TTL电平利用MAX232转换成RS-232电平。PTR2000与MAX232的电平转换电路如图4所示。
3.3 LED显示与键盘电路设计
LED显示与键盘电路的设计主要是用于采集、显示、打印等操作。ZLG7289是一片具有串行接口,可同时驱动8位共阴式数码管的智能显示驱动芯片。该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能,且不占用单片机系统资源。
电路的两个下拉电阻R1、R2阻值为100 kΩ,8个按键与位选线DIG0~DIG7相连的8只电阻为位选电阻。SG~DP引脚为行扫描输出,DIG7~DIG0引脚为列扫描输出。LED显示与键盘电路如图5所示。
4 软件设计
根据数据采集系统的功能要求,进行系统软件的设计。包括主程序部分和子程序部分,主程序部分主要完成系统对各个硬件的初始化工作,子程序主要是完成和单片机进行交互并实现本部分的功能。主程序流程如图6所示。
子程序包括A/D转换、LED显示与键盘、通信模块和无线收发模块等。数据采集子程序用来启动A/D转换,将采集值存放在内部RAM以及将采样值送入显示缓存区。ADC的设置和控制是通过专用寄存器中的一组寄存器来实现的,在进行数据采集时可以采取每隔一段时间采集一次、采集多次取平均值的方法来减小系统带来的误差。A/D数据采集流程如图7所示。
编写ADC程序中的主要函数有:
◆ void InitTIATION(),主要功能是端口初始化、主要包括初始化ADC、RAM、读写初始化;
◆ void ADC_Int(),ADC初始化函数;
◆ void Delay(),延时功能;
◆ void Extern_Interrupt_Open(),开外部中断函数;
◆ void Extern_Interrupt_Close(),关外部中断函数;
◆ void ADC_Conversion_Start(),A/D转换启动函数。
显示子程序负责将显示缓存区的数据进行显示。监控子程序负责系统的正常运行,以及调用各种子程序和管理中断服务程序。系统的通信发送子程序负责与PC机的通信和发送采集的数据。PC机通信接收子程序负责接收单片机发送来的数据并处理。
5 结论
数据采集系统充分利用ADuC845具有多通道高速数据采集特性,实现了对温度、湿度、压力等信号的采集和处理功能;ADuC845具有2个独立的高分辨(24位)的A/D转换器,温漂和失调系数都很小,符合高速数据采集系统的要求。PTR2000无线数据传输模块是一种超小型、低功耗、高速率的无线收发传输模块,通过PTR2000无线传输芯片,构建了一个数据采集、处理、显示、控制为一体的无线数据采集系统。该系统具有精度高、速度快、成本低等优点。
作者:周鸿雁 来源:《单片机与嵌入式系统应用》
我推荐大家读
轻松参与
VS
表达立场
这是垃圾文章