徐先峰,魏 文,李常磊,段晨东
(长安大学电子与控制工程学院,西安710064)
工业现场往往需要对温度、压力、流量、液位以及湿度等物理量进行监测,而相关传感器或变送器的输出信号往往为4 mA ~20 mA、0~5 V、1 V ~5 V、0~10 V等几种,给工业现场实时显示带来诸多不便。目前,市场上出现的参数显示仪器仪表一般只支持一种或者两种变送输出信号,且功能相对单一,参数标定也较为困难,尤其在同时存在多种变送输出信号的场合,须采用多个或者多种参数显示仪才能实现对各类物理量的监测,因而,设计一种新型的工业现场显示仪显得极为重要[1]。为解决上述问题,提出了一种基于STC系列单片机的智能工业现场显示仪设计方法,以单片机为核心,结合A/D转换技术、LED数码管动态显示、RS232串口通讯与红外遥控技术,实现对变送输出信号的电流电压转换与采集、越限报警以及远程操控等功能,显示仪可与电流或电压信号输出的变送器和传感器配合使用[2]。
智能显示仪的系统结构如图1所示,主要由核心控制器、LED数码管、信号转换与采集模块、红外遥控模块、系统电源模块以及串口通讯等部分组成。采用高性能的STC系列单片机为控制核心,实现变送输出信号转换、参数显示、报警处理、仪表状态指示、仪表设置、参数标定和参数补偿等功能;为方便与各类变送器、传感器配合使用,显示仪同时设有4 mA~20 mA电流接口与多范围电压接口;数码管采用大尺寸数码管,便于远距离、多角度参数观察;显示仪的输出功能采用RS232通讯接口实现,显示仪的模式设置、参数标定等功能通过红外遥控器实现。
图1 显示仪系统结构框图
智能显示仪的核心控制器选用STC12C5A60S2单片机,该微控制器是宏晶公司最新推出的一款高性能增强型8051单片机,指令系统与传统8051单片机完全兼容,运行速度却是传统8051单片机的8倍~12倍,片上集成1 280 byte RAM,具有8路高速10 bit A/D转换,内部包含1 kbyte的EEPROM。STC12C5A60S2丰富的硬件资源以及高速运算性能,使得系统硬件电路简单、可靠性高[3-4]。微控制器及其外围电路如图2所示,单片机主要实现A/D转换结果读取、参数显示、报警处理、仪表状态指示、仪表设置、参数标定和参数补偿等功能;STC12C5A60S2单片机的通用I/O口具有强推挽/强上拉功能,每个I/O口驱动能力可达20 mA,显示仪中用于状态指示的LED灯由单片机通用I/O口直接驱动;单片机采用11.059 2 MHz石英晶振来产生系统时钟,使得系统定时更加准确,同时也保证了RS232串行通讯的可靠与稳定[5]。
图2 微控制器及其外围电路图
图3 电源模块电路图
智能显示仪由220 V单相交流电直接供电。由于电流/电压转换器RCV420的供电电压为±12 V,单片机及其他芯片供电电压+5 V,所以需设计相应的降压电路,如图3所示[5]。AC 220 V经降压变压器得到AC 15 V,再由二极管1N5408组成的整流桥进行整流,最后通过滤波电容C1、C4,防自激电容C2、C3以及固定式三端稳压器LM7812得到+12 V电压;-12 V电压由极性反转电源转换器HT7660实现,只需外接10 μF的小体积电容,HT7660的输入电压为+12 V;+5 V电压由固定式三端稳压器LM7805得到,其输入电压为+12 V。LM78xx系列三端稳压器最大输出电流达1.5 A,自带过载保护与短路保护,使得电源电路简单且安全可靠。
如图4所示,电流/电压转换由精密电流环接收器芯片RCV420完成,将4 mA~20 mA电流信号转换成为0~5 V的电压信号;RCV420采用±12 V双电源供电,电源去耦电容采用1 μF钽电容,为避免其他电路引入的增益与共模抑制误差,去耦电容需尽量靠近RCV420电源管脚;RCV420的CT端、Rcv Com端和Ref Com端单点接地,使其接地电阻为最小,以免形成地线回路而引起转换误差。数模转换芯片选用MAX1272,其为仪表专用12 bit ADC转换器,采用+5 V单电源供电,输入范围可编程设置,最大测量范围达±10 V。
图4 输入信号转换与采集电路
图5 LED数码管驱动电路图
数值显示采用5 inch共阳极LED数码管完成,数码管具有发光强、能耗低、可视性高和成本低等优点,而常用的LCD显示器亮度低,同时远距离、大角度观察效果较差。5 inch数码管所需驱动电流较大,不能由单片机直接驱动,需另外设计数码管驱动电路,由 MAX7219、ULN2803、74HC540 以及 TD62783 完成LED数码管的驱动,如图5所示。MAX7219是Maxim生产的串行输入/输出共阴极数码管显示驱动芯片,其可驱动8个7段(包括小数点为8段)LED数码管,兼容SPI接口,MAX7219工作时,在其内部硬件动态扫面显示控制电路的作用下,实现8 bit LED数码管的动态显示;ULN2803是摩托罗拉公司生产的具有高电压、大电流的8路达林顿驱动器,各路驱动电流可达500 mA,满足5 inch数码管对驱动电流的要求;MAX7219本身用于驱动共阴极数码管,DIG0~DIG7经反相器74HC540后作为8位数码管的位选控制信号;数码管的位选线驱动由8通道高电压驱动器TD62783完成,其单端驱动电流可达500 mA,输入电压达50 V。
串口电路主要实现向连接于显示仪的其他终端传送数据以及接收上位机的控制命令。STC系列单片内部有1个可编程的全双工串行口,能同时发送与接收数据,单片机内部串行数据的发送与接收都是通过访问特殊功能寄存器SBUF来实现,可方便地实现与上位机或者其他带串口终端实现通讯。STC单片机采用TTL电平传送数据,需要进行电平转换才能实现RS232通信,显示仪中使用Maxim公司的MAX232电平转换芯片实现RS232接口电平转换,其电路如图6所示[4]。MAX232外围连接五个0.1 μF去耦电容,主要作用是为本电路蓄能、滤除MAX232产生的高频噪声以及防止电源携带的噪声对电路产生干扰。
图6 串口通讯电路
系统的软件设计主要包括A/D转换结果读取、RS232通讯设计、红外遥控操作、显示仪参数保存和仪表标定等部分。被测物理量的大小主要通过MAX1272转换实现,配置A/D量程与读取其转换数据是软件设计的重点。MAX1272兼容SPI串行接口,单片机通过I/O口模拟SPI总线时序实现与MAX1272的数据传输;MAX1272的工作模式采用单个寄存器进行配置,设置控制字节的BIT6、BIT5可完成0~5 V、-5 V~+5 V、0~+10 V和-10 V~+10 V四种量程的选择。MAX1272的输出数据为12位,输出时高位在前,每次读取转换数据时需先发送控制字节,下一时钟SCLK的下降沿开始输出有效的转换数据。
图7 上位机控制字节格式
智能显示仪通过串口连接至上位机,对显示仪进行配置,同时也可通过串口传输显示数据至其他终端。上位机的控制信号为单个字节,上位机每发送一个字节即可完成对显示仪的参数配置,控制字节格式如图7,其中BP1、BP0位用于选择A/D转换器量程,D2为串口输出标志位,0表示关闭串口输出功能[6];串口输出显示数据时,传输格式为“=*******”,‘*’代表一个十进制数,范围为0~9,高位在前,输出数据为显示仪显示数值,每一数据序列输出均以‘=’作为开始标志,接收‘=’后7个十进制数作为有效数据。STC12C5A60S2单片机串行口均通过SBUF寄存器接收与发送数据,每发送或接收数据完成都产生串行中断,查询TI、RI标志位判断是否接收或发送数据,软件实现流程图如图8所示。
图8 串口通讯流程图
由于现场变送信号或传感器信号的非线性以及环境变化的影响,A/D转换结果必须通过校正才能得到被测物理量的精确值,而这种校正关系一般很难通过固定的代数式表示,智能显示仪采用了线性插值法完成自动标定。取被测物理量高、低两个标定样本,采用标准法得到被测物理量的精确值y0、y1,同时记录原显示值、,x0、x1分别表示高、低样本的A/D转换结果,数学建模如下[7]。
对于任意新测值y',通过k1/k2、y0、y'03个常参数可得标定后的物理量数值y。将k1/k2、y0、y'03 个常参数写入单片机内部EEPROM中,既能实现掉电保护,同时也能随时重新标定。
智能显示仪上电后,8位LED数码管顺序闪烁显示‘0’~‘9’,说明显示仪LED数码管显示功能正常;利用PC机作为上位机,通过串口对显示仪发送控制命令,显示仪闪烁显示“---PC---”,指示上位机链接成功,并接收到有效控制命令,通过串口可设置A/D转换量程,打开或关闭报警、状态指示、上限、下限和串口输出等功能,同时上位机可对显示仪进行复位操作[8-9]。
选择工业现场的温度对显示仪进行标定与测试,标定完成后,温度每变化2℃记录1次,结果如表1所示,智能显示仪显示温度与使用标准温度计测量的温度值误差均在±0.3℃范围内,线性度较好。
表1 现场温度测试结果
智能显示仪以增强型单片机STC12C5A60S2为核心,外扩电源模块、数码管显示模块、RS232通讯模块以及红外遥控模块,采用AC 220 V供电,适用于电流或电压输出的各类变送器与传感器,实现了对工业现场的温度、湿度、压力、液位、流量等物理量的显示、限值报警控制以及串口输出;显示采用大尺寸高亮度LED数码管,适合于大空间、远距离观察场合的参数显示。基于STC系列单片机的智能工业现场显示仪设计方法,不仅设计成本低廉,显示仪稳定性可靠性高,同时对其他智能显示仪表也有很强的实用参考价值[10]。
[1]孙启富,孙运强,姚爱琴.基于STM32的通用智能仪表设计与应用[J].仪表技术与传感器,2010(10):24-36.
[2]唐洪富,张兴波.基于STC系列单片机的智能温度控制器设计[J].电子技术应用,2013(5):86-88.
[3]代杰,段晨东,李磊.彩色液晶显示模块在智能仪表中的应用[J].工业仪表与自动化装置,2012(2):27-30.
[4]吴宏岐,郭梦宇.基于STC单片机的仿生六足机器人设计[J].电子器件,2013,36(1):128-131.
[5]韩庆瑶,洪草根,朱晓光.基于AVR单片机的多舵机控制系统设计及仿真[J].计算机测量与控制,2011,19(2):332-334.
[6]李文涛,杨小新.基于 STC89C52的智能温度变送器的设计[J].仪表技术与传感器,2012(12):67-70.
[7]杜克铭,姚燕,李景涌.基于STC89C52的多路温度传感器标定系统[J].电子技术应用,2009(4):152-155.
[8]张建军,李颀,丁明东.基于单片机与BP网络的高精度压力变送器的设计[J].计算机测量与控制,2010,18(2):397-400.
[9]李耀军,刘瑞华.基于单片机的电子飞行仪表设计与实现[J].计算机工程与应用,2012,48(S2):508-511.
[10]牛昱光,崔正文.多现场总线接口智能仪表设计[J].电子技术应用,2011(8):131-134.