基于IC卡的记录式温度表
基于IC卡的记录式温度表 关键词:IC卡 热电阻传感器 采样时间 1 一种新颖的记录仪表 温度计是常用的热工仪表,常用于工业现场作为过程的温度测量。在工业 生产过程中,不仅需要了解当前温度读数,而且还希望能了解过程中的温度变化 情况。最近,笔者设计的基于IC卡的记录式温度表,价格与数字式温度表相近;但可以记录、存储数据,并可通过IC卡与PC机接口,是一种新颖的记录式仪表。
该温度表将热电阻传感器测得的温度信号,经过信号调理和A/D转换,在 面板上显示,同时将数据存储在仪表中的E2PROM中。在仪表的面板上有一个钥 匙小孔,当用户需要时,只要将IC卡插入,即可取出存储的数据。用户将IC卡再 插入接在普通PC机打印口上的IC卡读写器,即可将数据送入PC机。利用PC机的 强大功能,可进行数据处理、分析、显示、存储、打印。这种仪表不仅可以显示 读数,而且还可以记录温度的实时变化。例如,可以显示或打印一个过程的温度 曲线。这种温度表用极低的代价,使数字温度表升级成为电记录仪表,实现了仪 表的信息化。
与集散系统中的仪表相比,该温度表不用连接导线,而且IC卡作为信息载 体传送数据。虽然在速度上比不上现场总线的快捷和方便,但同时也避免了拉长 线所带来的干扰问题,同时不受距离、仪表数量的限制。因此,适用于分散、固 定在工业现场的各种仪表。
图1 2 硬件组成 本设计采用铜热电阻作为温度传感器。传感器作为电桥的一臂,用三线制 接入电桥。电桥电压经运算放大器7650放大后送入模/数转换器。在本设计中, 采用7107作为模/数转换器,7107是三位半双积分式模/数转换器,可直接驱动LED 数码管。当前温度值由数码管直接显示。单片机89C51将7107输出的数字量取到 计算机中。7107输出的是七段字形代码,位数较多。经逻辑化简后,这三位半数 字可简化为16位二进制代码。由软件进行反译码可以得到8421的BCD码。选用 7107作为A/D转换器,是考虑到该芯片的性价比高。得到的温度数字量存入仪表 内部的E2PROM 24C256中。24C256是I2C总线的串行E2PROM。可存放32KB数据,可重复擦写10万次, 数据保存100年不丢失,写入时间为10ms,可采用页写入方式,一次写入64字节。
在I2C总线上最多可挂接4片24C256芯片,通过地址线A1、A0的硬接线进行选片。
IC卡也是由一片24C256芯片组成,IC卡上的插座挂接在I2C总线上。仪表 内的24C256片地址是“00”,IC卡上的24C256的片地址是“01”。IC卡上有五个引 脚:电源、地、SDA、SCL、RDY。RDY在卡上与地短接,用来给单片机作卡插 入判别信号。
图1是该温度表的硬件接线原理图。
DS1302是一片串行时钟日历芯片,可进行秒、分、时、日、月、星期、 年的走时;
在芯片内部还有31字节的静态RAM可资利用;
在2.5V工作时,芯片 电流小于300nA;
外接备用电池,在外部停电的情况下可长期正常走时可给系统 提供记录数据的实时时间。另外,DS1302内部的RAM可以作NVRAM来使用, 存储仪表的工作参数。
在单片机的P3.4口线上,接有一只有源讯响器。该讯响器用作IC卡读、写 指示和超限报警。在IC卡进行读/写操作时,讯响器发出均匀的“嘟嘟”声。读/写 结束后音响停止。如读/写错误,则发出短促报警声。在IC卡未插入的正常工作 情况,如温度超过设定值,则发出温度超限报警。
3 存储分配和软件考虑 用于记录式温度表的IC卡有两种:一种用于设定仪表的工作参数,称“参 数卡”;
另一种用于读取仪表的工作参数和温度数据,称“数据卡”。工作参数包 括卡标志字、表号、采样时间、超限设定,时间/日期。标志字用来区别参数卡 和数据卡。采样时间可以从1s到1小时任意设定。如按1s的时间间隔进行采样, 则最多可存放10小时的数据。如按1次/小时的时间间隔采样温度,则1次可取出8 年的温度数据。
在主程序中,单片机的工作是按时读取A/D的输出数字量,将数据存入 24C256中;
并将该数据与超限报警的设置值进行比较,如超过了设定值,则启 动讯响器进行报警。
每存放一个数据,必须修改一次地址指针。该地址指针存放在DS1302的NVRAM中。在系统停电的情况下,地址指针保存在NVRAM中不致丢失,以便 在系统恢复送电时,从该地址继续记录数据。该指针在IC卡读取数据时也作为工 作参数一起取走,送入PC机。PC机根据该指针来确定IC卡上的有效数据的长度。
该指针不能存放在24C256中,因为E2PROM的写操作次数是有限的。另外,在对 7107读数时,为防止7107数字量翻转时可能出现的竞争现象,在程序中安排对 A/D进行两次取数。只有在两次取数的值相同时,才认为是一次有效数据,否则 应重新取数。
在主程序中,单片机扫描RDY信号,判断有无IC卡插入,如有卡插入,则 根据卡上的标志字确定是参数卡还是数据卡。不同的卡采用不同的读/写流程。
不论何种卡,在读/写操作时都要启动定时器,使讯响器发出均匀的“嘟-嘟”读/ 写讯号。
图2 4 PC机的管理功能 IC卡取出后,数据传送到PC机中。PC机的IC卡读/写器接在PC机的并行打 印口的25针插座上,数据从打印口进入计算机。因一般的PC机打印口只有单向 输出数据的能力,为了与串行E2PROM实现双向数据传送,在打印插头上外接一 块三态门电路,其线路连接如图2所示。PC机数据输出通过三态门送到SDA上。
当PC机输入数据时,三态门关闭,SDA上的信号通过打印插头的15脚进入PC机。
因读/写电路和IC卡的电流很小,可以从打印口的空闲数据线上取得电源。只要 在读/写过程中,将这些线置成高电平即可。
PC机对数据的管理采用菜单方式进行,其主菜单如下:
①读入IC卡内容并进行数据的分页显示、打印曲线、存档;
②半温度表的工作参数写入IC卡;
③查看记录在磁盘上的各台仪表的数据;
④退出。
该程序采用C语言编制,整个程序包括以下几个主要的功能模块:
读卡程序模块—将IC卡数据读入PC机内存区,如有错误,给出显示;
写卡程序模块—将键盘输入或磁盘上的仪表工作参数写入IC卡,如有错误, 给出显示;
数据处理模块—将被压缩的二进制数据解压为按时间排列的数据表;
显示数据模块—显示运行记录表;
显示曲线模块—显示温度-时间曲线,并可根据需要进行X轴放大,Y轴放 大。
温度表的工作参数和温度数据,均可在PC机屏幕上显示,也可用打印机 打印出来。图3是温度表所记录的某过程的温度曲线。
结语 基于IC卡的记录式温度表是一种具有存储功能的仪表。它在仪表与PC机 之间引入了一个简单方便的接口,从而可以利用PC机的强大功能,使仪表成为 一个数据采集的黑盒子。只黑盒子里的数据,可以方便地从钥匙孔里取出,从而 使温度的实时记录成为可能。这种记录式仪表,不仅适用于温度表,也适用于其 它仪表。对于分散在工业现场的各种分立式仪表,这是实现仪表信息化的切实可 行的办法。