工业上常常需要记录温度、压力、流量等信息,常规模拟记录仪由于功能少、显示单一、需要记录笔的缺点,正被无纸记录仪取代。作为一款以微处理器为核心、集液晶汉字与图形显示为一体,具有无纸记录、实时性好、通用性好、精度高、带通信功能的智能化仪表,其市场广阔。目前许多厂商正将目光聚焦于记录仪的彩屏化、大容量存储、超大屏幕液晶显示等功能;然而对于用户来说,最关心的是精度与可靠性、性价比等仪表的综合性能,因此研究此类问题尤为关键。
2、设计方案
如图1,来自外部传感器的模拟信号(压力、温度、流量等)经过前端处理后进行A/D转换,经过信号隔离后送入单片机完成数据处理,由LCD显示当前的压力、温度、瞬时流量、累积流量等信息。通过键盘操作,可在各界面之间切换,分别显示各通道的实时、历史数据及曲线、报警情况、断电情况,以及每月、日、年度的累积流量。另外,提供通讯功能,可以通过和上位机通过串行口读写参数与运行数据,实现打印等信息交互。
3、硬件组成
如图1,由信号采集、MSP430F149(以下简称430)、液晶显示及键盘、数据存储、实时时钟、通讯等模块组成。
3.1 MSP430F149单片机[1]
MSP430F149是具有60K闪存ROM、2K RAM、 6个端口、2个16位计数器、两路UART通信端口、具有端口和计数等多种中断模式、5种省电模式的高集成单片机,特别适用于复杂仪表系统的开发。
3.2 信号采集模块
外部信号有标准电流、电阻、mV电压、频率信号等。当为模拟量时,为提高测量精度采用了4通道差分输入、自带仪表放大器、滤波器的16位精度、SPI接口的AD 芯片CS5523芯片,通过光耦隔离后和430进行通信。如图2(a)、(b)、(c)分别是输入为电流、热电偶mV电压、热电阻信号时的处理电路。其中当热电阻输入时,采用高精度双路精密电流源REF200提供,最终接入AD 采样端的信号U=UAN+-UAN-=(Rt+2r)I0-(R0+2r)I0=(Rt-R0)I0,可见消除了热电阻导线电阻r的影响,保证了较高的测量精度。当频率输入(如涡街流量计输出)时,采用光耦隔离后输入430的TIMERA计数模块进行脉冲计数。
3.3 液晶显示与键盘模块
采用3V、并口输入128*64点阵形液晶模块JM12864,实现图文的综合显示。采用2*3线接口,共6个按键,分别为前后追忆、通道、时标、确认、翻页,通过弱上拉和430的P2口相连,采用上升沿触发的方式产生中断通知430进行处理。
3.4 数据存储模块
为方便保存仪表参数,了解工艺参数历史,采用了两片EEPROM存储器24C512。一片用于存储通道运行数据,另一片用于分区存储密度、汉字及字符字模数据、系统参数、记录时间、掉电情况等信息,两片存储器通过弱上拉电阻并联于同一总线上。
3.5实时时钟模块
为了记录系统的掉电、当前时刻下的日、月、年累积流量,需要实时时钟信号。这里采用通用ds1302芯片作为时钟信号,由法拉电容作为备份电源。
4、软件设计
4.1 系统主程序及中断
如图3,主程序以检测时间间隔为主线,分别进行流量计算、实时信息记录等操作,同时处理各外部事件。如图4,中断程序检测各种中断(由TIMERB连续计数提供的0.5s采集定时、键盘、通信等中断),进行必要处理后记录此信息,发送标志到主程序等待处理。
4.2 数据采集
将芯片复位,检测并设定Configuration寄存器(包含转换模式、复位标志、放大器截止频率等参数),CSR(Channel-Setup寄存器,包括内部放大器增益、数据传输速率、通道、输入电压极性等设置)后,发送启动转换命令,等待转换完成(完成后SDO线会自动变为0)。需要注意的是在系统在高电平时读数,低电平时锁存数据,必须严格保证系统时序,否则将引起读写错乱。
4.3 流量计算
先根据流量模型(开方、线性等)得出流量计在工业状况下的体积流量,一般需要转化为工业标准状况下的流量,这里根据仪表设置中的流量补偿模式(一般气体,、温度/压力补偿、过热蒸汽、饱和蒸汽等),查表得到密度,计算标准流量,提高精度[2][3]。
4.4 液晶显示
包括数据和曲线显示,是通过将相应液晶点写为1或0(亮或暗)实现的。128列*64行点阵LCD在显示时是以字节方式进行操作的,一次写入1列8行(共8个点),因此在数据显示时,首先要将字符所对应的字模数据,以从左到右、从上到下(列序)的取模方法顺序写入表格中。在显示时查表将字模数据依次写入LCD即可。在显示曲线时,通过两点之间连折线的方式进行,其过程如图5、图6所示。
4.5 键盘处理
负责界面切换(流量显示、实时/历史曲线、设定模式等界面)、菜单选择、参数设置(包括通道类型、量程、切除、报警设定,流量模型及系数K设定,流量补偿模式及公式参数值设置,通讯参数设置,密码设置,时间设置等)。
5、设计关键
5.1 合理的程序流程
(1)消息机制:系统需要处理的事件较多,有各种中断,若中断处理时间过长,则会使系统不能及时进行其它处理,导致系统错误。如若将流量计算程序置入数据采集定时中断处理程序中时,有时会使系统很难完成正常的串行通信。在此借鉴了WINDOWS系统消息处理机制,如4.1所述,即当系统发生外部中断时,只是进行很少的必要操作,然后将该中断作标记,由主程序空闲时检查此标志。
(2)菜单处理:将菜单按深度进行定位,系统共有三级菜单用Step[3]表示,根据Step[i]值判断当前菜单位置,增强软件的条理性。
5.2 数据存储效率
仪表要记录的通道历史数据较长,在有限的存储空间应高效利用所有存储区域。这里采用记录各通道数据占通道量程比例的方式来压缩数据,将比例限定在0-65535之间(2个字节,对应0-100%)。对于数据要求不高的场合设定采用1个字节来表示。经多次实验知,可有效拓展记录长度。
5.3 数据运算的速度与精度
(1)虽然430可以进行浮点运算,但运算将会消耗大量资源,而且浮点数一般只能保留7位有效数字,因此在进行大数和小数运算时,会丢失许多有效位,使结果极不准确。笔者采用长整数记录有效数字,字符整数记录小数点位置组合表达数据的方式进行运算,有效提高了速度和精度。
(2)当外部信号为频率输入时,应将TIMERA配置为最大连续计数方式,仅在计数溢出后清除溢出标志,然后根据前后1s内两次脉冲之差(考虑是否溢出)得出脉冲数,否则可能会丢失脉冲。
(3)采集数据的准确性是影响精度的主要因素,必须保证CS5523参考电压的精度,并要求在电源稳定后采样;在进行通道切换后应把第一次转换结果抛弃,否则将会引起很大的干扰误差。即便如此,由于电路噪声、标准电阻使用环境及接线的影响有时还会导致采样不准,此时需要采用CS5523自身的校验方式去除失调电压,并通过软件进入校验模式,采用标准输入信号进行标定。
5.4 系统的可靠性
采取了以下实用的措施保证可靠性:
(1)干扰主要是通过电源和外部输入引入的,为防止系统意外重起或死机,这里采用电源滤波器和光电耦合隔离的方式。
(2)采用看门狗保障系统在故障情况下自动恢复运行[4]。
(3)在对LCD和EEPROM写入数据后,立刻读出所写数据进行校验,保证数据传输正确。
(4)采用内部备份电源,掉电后自动保存所有数据并进入休眠状态。
(5)理清程序结构,采用模块化方法提高可移植性。
5.5 系统的适应性
由于工业测量介质的多样化,介质标准密度表不尽相同,而且随着传感器技术的不断进步,可能出现新型热电偶或热电阻。为增强系统的灵活性,在软件上预留特殊的输入类型,只要将设定在厂商模式下,即可通过串口向内部EEPROM写入密度或分度表数据。
6、结 论
本文作者创新点:以提高系统精度、可靠性和易用性为设计核心,采用了高精密自校验的采集方案,软件上借鉴了WINDOWS的消息机制,提出了采用整型数据代替浮点数运算等提高速度和效率的方案,并开放内部表格提高了系统的灵活性。通过实验发现整机的精度可达到0.2%以上,且具有较好的人机接口、适应性和可靠性,因此应用前景广阔。
参考文献
1 胡大可.MSP430系列FLASH型超低功耗16位单片机[M].北京:北京航空航天大学出版社,2001
2 朱峥.消除涡街流量计的使用障碍.计算机测量与控制,2002,10(7) :448-490
3 汪里迈,纪纲.蒸汽流量测量中的温压补偿实施方案.石油化工自动化.1998,3:39-42
4 张军,彭宜戈.嵌入式系统抗干扰技术[J].微计算机信息,2006,05-2:17-18