DIY编程器网
标题:
基于IC卡的记录式温度表
[打印本页]
作者:
liyf
时间:
2014-10-5 09:50
标题:
基于IC卡的记录式温度表
基于IC卡的记录式温度表
摘要:
基于IC卡的温度表是一种新颖的现场仪表。它利用IC卡作为信息载体进行双向数据传送,可以共享PC机的强大功能;利用PC机,可对仪表的测量数据进行记录、分析、处理、存档、打印、绘制曲线等,具有记录波形的功能。
关键词:
IC卡 热电阻传感器 采样时间
1 一种新颖的记录仪表
温度计是常用的热工仪表,常用于工业现场作为过程的温度测量。在工业生产过程中,不仅需要了解当前温度读数,而且还希望能了解过程中的温度变化情况。最近,笔者设计的基于IC卡的记录式温度表,价格与数字式温度表相近;但可以记录、存储数据,并可通过IC卡与PC机接口,是一种新颖的记录式仪表。
该温度表将热电阻传感器测得的温度信号,经过信号调理和A/D转换,在面板上显示,同时将数据存储在仪表中的E2PROM中。在仪表的面板上有一个钥匙小孔,当用户需要时,只要将IC卡插入,即可取出存储的数据。用户将IC卡再插入接在普通PC机打印口上的IC卡读写器,即可将数据送入PC机。利用PC机的强大功能,可进行数据处理、分析、显示、存储、打印。这种仪表不仅可以显示读数,而且还可以记录温度的实时变化。例如,可以显示或打印一个过程的温度曲线。这种温度表用极低的代价,使数字温度表升级成为电记录仪表,实现了仪表的信息化。
与集散系统中的仪表相比,该温度表不用连接导线,而且IC卡作为信息载体传送数据。虽然在速度上比不上现场总线的快捷和方便,但同时也避免了拉长线所带来的干扰问题,同时不受距离、仪表数量的限制。因此,适用于分散、固定在工业现场的各种仪表。
[attach]32110[/attach]
图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卡插入,如有卡插入,则根据卡上的标志字确定是参数卡还是数据卡。不同的卡采用不同的读/写流程。不论何种卡,在读/写操作时都要启动定时器,使讯响器发出均匀的“嘟-嘟”读/写讯号。
[attach]32111[/attach]
图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卡,如有错误,给出显示;
数据处理模块—将被压缩的二进制数据解压为按时间排列的数据表;
显示数据模块—显示运行记录表;
2006912225352621.gif
(10.81 KB, 下载次数: 48)
下载附件
保存到相册
基于IC卡的记录式温度表
2014-10-5 09:50 上传
显示曲线模块—显示温度-时间曲线,并可根据需要进行X轴放大,Y轴放大。
温度表的工作参数和温度数据,均可在PC机屏幕上显示,也可用打印机打印出来。图3是温度表所记录的某过程的温度曲线。
结语
基于IC卡的记录式温度表是一种具有存储功能的仪表。它在仪表与PC机之间引入了一个简单方便的接口,从而可以利用PC机的强大功能,使仪表成为一个数据采集的黑盒子。只黑盒子里的数据,可以方便地从钥匙孔里取出,从而使温度的实时记录成为可能。这种记录式仪表,不仅适用于温度表,也适用于其它仪表。对于分散在工业现场的各种分立式仪表,这是实现仪表信息化的切实可行的办法。
作者:
dna-jm
时间:
2017-10-18 23:51
基础资料不错!
作者:
李小路
时间:
2020-9-30 19:13
谢谢分享!
作者:
李小路
时间:
2020-10-1 09:46
谢谢分享!
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2