摘要:设计了一种以MSP430F149单片机作为控制核心,辅以实时时钟、数据存储、打印输出、模拟控制量输出、小键盘、液晶显示、及带串行通信远程抄表的智能流量积算仪表。给出了系统的框架原理图、各功能部件的硬件电路设计和软件流程图及部分源程序。
O、前言
流量检测仪表与系统可广泛应用于水泥、化工、轻纺、医药、造纸、给排水、食品饮料等技术部门,其产品的性能、质量和可靠性对上述企业的经济效益有着重要的影响。特别是近年来,企业污水和控制己成为环保等政府职能部门的重要工作任务,计量污水排放的流量仪表系统则是定量管理企业污水排放不可或缺的工具。而随着社会经济的高速发展,智能三表已经越来越多的走进智能小区和居民区。
1、流量积算仪硬件设计
1.1 系统方案
系统的主要组成原理图,如图1所示。以ABG公司的MSP430FI49单片机作为主处理器,根据传感器产生的模拟信号经放大转换送到集成了高精度A/D转换器的MSP430FI49单片机进行转换,在微处理器中完成数据处理,通过点阵LCD实时显示瞬时流量、累积流量和提供历史数据查询,通过打印机打印需要的数据,参数的设定通过键盘完成,并掉电保存参数和积算后的数据。系统附加有实时时钟、恒流源输出模块和通过Modem串行通信的远程抄表系统。恒流源输出通过MSP430F149根据流量数据产生频率信号,经过F/V、V/I转换将数字量转变为0~10mA或4—20mA的电流量。远程抄表系统用外置式Modem通过共用的电话交换网调用流量检测仪表的流量数据,并把命令下达到各流量仪表节点。
.png)
1.2 MSP430F149
MSP430系列是TI公司开发的具有16位总线的RISC指令集单片机,具有丰富的片上外围模块。
MSP430F149有60K的FLASH型ROM,2K的RAM,片内有精密硬件乘法器、2个16位定时器、1个l4路的l2位的模数转换器、1个看门狗、6路8位的双向P口、两路USART通信端口、1个比较器、1个DCO内部振荡器和2个外部时钟,可以通过JTAG在线对单片机进行调试和下载,方便实用。而且具有5种省电模式的低功耗工作方式。其中P1和P2口可作为中断源,自带的A/D转换器简单好用、精度达到了万分。MSP430F149集低功耗、强外围模块、精度的数据采集、大容量程序空间于一身,在数据采集系统里有很大的优势,是一款极高的芯片。
1.3 实时时钟
为了使系统能够记录发生的意外掉电事件时间和打印当前时间下的累积流量和方便用户使用,设计了时钟电路。时钟芯片采用ABG仪表集团的DS12C887,DS12C887芯片的晶体振荡、振荡电路、充电电路和可充电锂电池等一起封装在芯片的上方,组成一个加厚的集成电路模块,正常工作时可保证时钟数据十年内不会丢失。此外该芯片提供114字节的掉电保护的RAM单元;DS12C887和430连接图,如图2所示。其中的DB数据线接430的P1口,74LVC4245是3/5V电平转换芯片,起电平匹配作用。
.png)
1.4 液晶显示和键盘
本流量计显示功能采用液晶GDM12864A来实现。GDM12864A是128×64低功耗点阵式LCD模块,具有以下特点:
(1)显示格式为128点(列)×64点(行),能显示8页,每页为128点(列)×8点(行);(2)与CPU的接口采用8位并行数据总线和5条控制线,每次接受一个字节的显示数据,每一位对应一个点,可以控制每个点的亮暗来产生图画或动画;(3)一屏可显示16×16点阵的汉字-32个或16×8点阵的西文字符64个或8×8点阵西文字符128个。液晶按键具体接口电路,如图3所示。其中数据线接430的P1口,5个控制线直接接430的P5口,用I/O口模拟时序来控制液晶。
.png)
另外采用6个按钮来接受用户输入,6个按钮为取消、上、下、左、右、确认。上下键用来给用户在主菜单项上下移动和实现可修改参数数值的上下循环变化;左右键用来给用户在主菜单项左右移动和在可修改参数的位置上实现左右移动选择;确认键表示用户选择确认和参数输入确定,取消键表示用户退出或放弃当前操作。6个按键通过上拉电阻接430的P2口,按键按下时,产生的边沿信号引发P2口产生中断。
1.5 Modem通信
为了给生产管理人员参考和管理,提供了远程的流量抄表系统。当前远程数据通信既灵活方便又经济实用的方法是利用调制解调器通过公共电话网进行远程数据传输。主处理器采用MAX232芯片实现电平转换,按照RS-232通信标准与MODEM相连接通电话线路,使用AT命令集可实现对MODEM的控制。抄表系统原理图,如图4所示。用VB编写的抄表软件位于远程PC,通过通信协议和远程流量检测仪表方便有效地调用数据和发送指令。
.png)
1.6 串行EEPROM
流量数据提供4年内的查询,这里选用串行EPROM的24C64作为数据的存储器,主要是考虑到IIC模块的成熟和减小印刷板空间。系统先用DS17287附加的l14B静态RAM来缓冲要不停累加的新的流量值,当新的到来时,再把这13流量和可能的年月流量数据,写到24C64里面去,解决FLASH的1O万次写寿命问题。24C64与单片机的接口电路,如图5所示。用430的普通I/O口虚拟IIC的数据、时钟线。
.png)
2、流量积算仪软件设计
2.1 系统程序
该系统的应用程序主要包含4个部分的功能:①流量的测量功能(包括采集、处理和显示);②是数据的复现,即对已往保存的数据进行查询;③是远程抄表通信功能7;④是实时时钟、模拟量输出等附加功能。其中流量的测量功能贯穿于整个应用程序,而后三者相对独立为子程序。用TB产生125ms的定时中断来进行A/D采样,由于430单片机没有中断嵌套性能,所以在时间和按键的P2口中断和串口通信中断中设置中断标志位,在主程序里循环查询执行,TB中断级别高,有执行优先权。应用程序的主要流程框图,如图6所示。在TB中断中执行的A/D转换和数据处理流程图,如图7所示。
.png)

2.2 LCD显示操作
字符或数字在液晶中的显示是通过写相应的内码(I对应点亮,0对应暗)实现的,于是先做好码表。把用到的字符或数字对应的内码保存在表中,在显示一屏时,先给屏幕变量RM—PICNO赋值,根据屏幕变量值调对应表数值,根据数值的定义意义写数字、汉字或参数,直到取到表示屏幕结束的FEH值。程序流程,如图8所示。
.png)
2.3 按键处理
如果程序检测到有键被按下,先读入键值并判断是哪一个键被按下,由于本流量检测仪表显示屏幕较多,在不同的屏幕按键的作用可能是不同的,这里用屏幕号来散转程序,不同的屏幕对应不同的子程序。也可能在几个屏幕,某个按键功能是相似的,可以通过调用同一个子程序来简化。下面是以确定键为例的MSP430的汇编部分程序。
.png)
2.4 12887时钟操作
用DS12C887附加的114字节RAM作设置参数和重要标志字节的掉电保护。同时还利用其定时报警功能进行定时中断,实现流量实时刷新显示和系统定时的流量保存,中断引脚/IRQ接430的P2.2脚来引发中断。对DS12C887的有关操作技术比较成熟,请参阅参考文献。
2.5 流量积算仪Modem初始化
所有的标准Modem都支持一组通用的AT命令、s寄存器和结果码集,可以用AT命令来配置Modem、拨号、挂断电话或摘机应答一个呼叫等。Modem通信关键的就是对Modem的初始化,通过430的一个USART经过电平转换向Modem发AT命令,每一条AT命令都对应Modem的某种操作,当然也可以一次发送多个命令。需要注意的是:Mo-dem要判断AT命令头和根据命令头来检测传输的波特率、数据位、停止位、检验位等数据格式,所以发了AT命令头后要延时几毫秒到几十毫秒,不然Mo—dem会死机或不接收命令。下面是MSP430初始化Modem的部分汇编程序。
SET_MODEM:;串口0用来和MODEM通信,先要初始化UARTO
.png)
3、结束语
本单片机流量检测系统的硬软件设计丰富能满足用户应用的要求,已应用到实际工作中,使用效果良好。本设计的一些特点可供其他人员设计时参考。