本文采用台湾华邦公司生产的高性能Turbo-51系列单片机 W77E58,实现了一种基于单片机的通用数据采集和通讯仪的研制,具有较高的实用价值。为了使设计的数据采集仪应用方便,系统利用PTR2000无线数据传输模块与上位机进行通讯,以便能随时响应控制中心的PC机的数据上传命令,将采集到的数据实时上传给控制中心。
1 系统硬件设计
本文设计的通用数据采集和通讯仪能够对各种现场设备的标准输出信号进行采集,包括传感器输出的0-5V/4-20mA模拟信号;开关量信号;频率量信号;此外系统还具有RS-485接口,以便能够与现场具有485接口的智能仪表相连接。为了实现良好的人机交互,系统扩展了键盘输入,液晶显示,实时时钟以及现场故障报警指示电路等模块。系统总体框图如图1所示。
1.1 电源模块电路设计
在单片机数据采集系统中,电源的设计是非常关键的。本仪表设计采用电网和充电电池双电源供电。电源设计如图2所示。
当电网电压正常时,220V交流电经过24V稳压电源,电解电容器C1滤波后的电压经二极管D1后分成两路,一路通过三极管Q1到7805三端稳压芯片,完成稳压输出+5V电压,供单片机W77E58等芯片所需的电源;另一路通过电阻R1对镍镉电池9V进行充电,充电电流选择约40mA。如果电网停电, C1放电为0V,这时,电池通过D2、Q1到7805向电路供电,使输出端仍有+5V电压,从而完成电网短时停电时,单片机后备电源的功能。
二极管D1起隔离作用,使得当电网偶尔停电时,能够阻止电池电流流向24V稳压电源。稳压管D3(5.6V)的作用,是防止电池(+9V)过放电,即当电池放电下降到约6V时,因D3作用,三极管Q1截止,电池放电停止,此时单片机将停电。
1.2 实时时钟芯片DS12887
为了能够实时显示系统时间以及实现按时间日期保存采集到的数据的功能,系统扩展了一片并行实时时钟日历芯片DS12887。DS12887是DALLAS半导体公司推出的实时时钟芯片,采用CMOS技术制成,把时钟芯片所需的晶振和外部锂电池相关电路集成于芯片内部。DS12887芯片具有微功耗、外围接口简单、精度高、工作稳定可靠等优点,在现代工业控制及智能仪器仪表中有着广泛的用途。
1.3 键盘接口电路
为便于人机交互,采用专用键盘接口芯片8279,配合74LS138译码器,系统扩展了3×8=24键的键盘。键盘上设置有0~9数字键,以便输入各种信息。同时还设有各种控制按键。通过键盘能够控制对各种类型数据进行采集。为提高CPU的效率,键盘采用中断方式。
1.4 LCD液晶显示模块
为便于实时显示采集的数据及人机交互,系统扩展了图文液晶显示模块MGLS-12032,MGLS-12032是由香港精电公司生产的内置SED1520控制驱动器的LCD模块,使用简单方便。液晶显示模块MGLS-12032与W77E58的硬件接口。
其中D0~D7与单片机的数据总线相连,A0、A1为单片机的P0口经74LS373地址锁存器后产生的低两位地址线,系统用74LS138译码器产生的Y5、Y6作为MGLS12032两个控制驱动器工作的选通信号。
1.5 模拟信号采集电路
系统采用12位并行A/D转换器MAX197对传感器输出的0-5v/4-20mA 模拟电信号进行采集。MAX197是美国Maxim公司推出的多量程(本系统采用0-5V量程)、8通道、12位快速A/D转换器,采用逐次逼近工作方式,片内含有高精度的参考电压源和时钟电路,使它可以在不需要任何外部电路和时钟的情况下完成一切A/D转换功能,应用非常方便。并且MAX197内部具有输入跟踪/采样保持电路,其并行输出口很容易与单片机连接,仅需外接几个电容即可。
MAX197与单片机的典型接口电路如图4所示。设计采用MAX197的CH0-CH6通道采集7路0-5V电压信号。而4-20mA电流信号则经过8选 1模拟开关CD4051轮流选通,再经灵敏电阻,放大器转化为0-5V电压信号后,进入MAX197的CH7通道进行模数转换,从而系统可以采集8路电流信号。
1.6 开关量采集电路设计
系统通过一片8255芯片来扩展并行口。编程使8255的A口为输入,用于采集8路开关信号。B口为输出,用于8路开关量的输出。为了增强系统抗干扰能力,开关量输入/输出通道都采用光电隔离。开关量采集电路图略。
1.7 频率信号测量电路设计
本系统利用8253芯片的定时器/计数器1和2对两路待测脉冲个数进行记数,8253的定时器/计数器0用来定时,利用W77E58有多个中断源的特性,定时结束产生中断,在中断服务程序中,读取8253定时器/计数器1和2的当前记数值,通过计算便可得到待测频率量。
频率信号测量电路如图5所示。其中D0-D7与W77E58数据总线相连,单片机P2口高三位经138译码器译出的Y0与8253的CS引脚相连,用来选通8253芯片,8253的A0、A1直接与低二位地址线相连,因此8253的端口地址为1FFCH~1FFFH。
1.8 串行通讯设计
利用MAX485芯片,W77E58单片机的增强串口用来扩展485接口,以便能够与工业现场具有485接口的智能仪表相连接。单片机与MAX485芯片的连接只需要外加几个电阻,非常简便,在此不再详述。
为了使设计的数据采集仪应用方便,系统利用PTR2000无线数据传输模块与上位机进行通讯,以便能随时响应控制中心的PC机的数据上传命令,将采集到的数据实时上传给控制中心。PTR2000是一种超小型、低功耗、高速率的无线收发数据传输模块。其通讯速率最高可达20Mbit/s,也可工作在其他速率,如4800bit/s、9600bit/s。系统无线数据传输原理图如图6所示。
PTR2000可直接与单片机的串口TXD、RXD相连接。PTR2000无线MODEM的DO和DI引脚分别连接单片机串口的RXD和TXD,这样单片机就可以和无线数据传输模块进行串行通信。PTR2000的PWR脚和单片机的P1.0脚相连,以便对无线数据传输模块的电源进行管理,TXEN与单片机的P1.1脚连接,控制PTR2000无线收发模块的收发状态转换。上位机通过PTR2000与单片机进行实时通讯。由于上位机串口通常采用RS-232 电平,而单片机串口使用的是TTL电平,故PTR2000与上位机连接时必须将TTL电平转换成RS-232电平,系统采用MAXM公司的MAX232芯片进行转换。上位机用串口的RTS与PTR2000的TXEN连接来控制PTR2000无线收发模块的收发状态转换。
2 系统软件设计
系统软件采用模块化设计,主程序首先对各接口芯片进行初始化,然后分别调用各个子程序模块以进入各个数据采集子系统,并将采集到的数据存储在32K字节的串行E2PROM AT24C256中,以备控制中心查询,同时将对应的数据在液晶显示器上显示。如果系统接收到上位机的数据上传命令,就将存储在E2PROM中的数据通过 PTR2000发送给PC机。系统主程序流程如图7所示。
串口通信程序中双方通信协议是至关重要的,这关系到无线数据传输的可靠性,本系统约定双方的通信协议格式如下:串行通信使用单片机的内部定时器/计数器1 作为波特率发生器,本系统波特率设定为4800 bit/s;帧格式为1位起始位,8位数据位,1位停止位,无奇偶校验;通信采用中断方式;上位机采用COM 1通信。在设计时,数据传输通道也采用光电隔离来提高系统的抗干扰能力,并且采用了CRC校验以确保数据传输的准确。单片机系统初始化时,将单片机的 P1.1脚设置为低电平,这就可使得在默认状态下,PTR2000处于接收状态,以便时刻监听上位机的数据上传命令。当接收到上位机的命令后,中断服务程序将数据从单片机数据缓冲区取出,同时将模块的接收状态切换为发射状态,转换过程所需时间约5ms,然后将这些数据以FSK的调制形式发射出去, PTR2000模块随后恢复为接收状态。从单片机系统发射的数据经上位机系统中的PTR2000接收,由RS232接口进行电平转换,送进上位机,上位机对数据进行分析和处理后,向单片机系统发送一个确认数据包,以确认单片机系统数据包的正确性。上位机接收完数据后,它的PTR2000模块又恢复为常发射状态。如果数据在传输的过程中有数据丢失,上位机将要求单片机系统重新发送数据,直到数据全部正确为止,串行中断服务程序如图8所示。
3 结束语
本文利用8位单片机设计的通用数据采集系统,可以作为工业现场的远程监控终端来使用,也可以方便的设计成便携式智能数据采集和通讯仪表,由于数据传输采用了无线方式,使其能够非常广泛的应用于工业上需要数据采集的场合,具有比较高的实际应用价值。