目前,很多行业的抄表系统,一般都停留在手工抄写然后人工汇总的水平上。随着经济改革的深进发展,人们要求信息及时、正确、全面;显然,手工抄写不能满足经济生活的要求。本文先容了一种用单片机控制的抄表系统,可以记录多项信息,具有低功耗、低本钱、便于携带、易于操纵等特点,非常适合电厂、化工厂等相关行业的抄表系统。
1 系统的总体结构及工作原理
该系统由信息钮、识读器、通讯座、计算机组成。将一个包含特定标识信息的"信息钮"安放在某个固定位置上,该位置可能是一台设备或一个部位,设备上安装有很多表显示设备运行状况。工作职员定时或不定时记录表上数据,用携带的"识读器"先读信息钮,提取信息钮中的信息并储存在"识读器"内,信息钮中的信息标识该设备,然后把该设备上各表的读数逐项通过识读器上键盘输进并储存在"识读器"内;巡检结束时,用"通讯座"通过网络将存储在"识读器"内的信息传送至计算机进行处理,技术职员和治理职员就可正确把握设备现场情况,并及时了解设备运行和治理中存在的题目。由于信息钮中的信息具有唯一、无法仿制、无法人工伪造的特点,一个信息钮只能标识一台设备或一个部位,并且识读器内含有时钟芯片,读信息钮的同时记录当时时间。该系统用于治理和技术分析非常方便实用。考虑到有些设备和部分的现场情况,通讯座和计算机之间采用近程和远程两种传输方式,近程通过RS232串口传输,远程利用MODEM通过电话线传输。在该系统中,低功耗、便携式识读器的设计和制造是核心和关键。
2 低功耗便携式识读器的设计
2.1 设计原则
本系统中识读器的设计要求有两点:(1)小巧玲珑,方便携带;(2)电池供电,功耗一定要小,延长电池使用寿命。根据这两点要求,在设计中一是采用集成度高的贴片封装芯片,二是芯片的外围元件尽可能要少。通过对几种型号CPU的筛选,我们在本系统中采用美国Microchip公司的PIC16C74作CPU,该芯片特别符合上述要求。PIC16C74有44个管脚,I/O管脚多,内部集成了很多功能,可以节省很多外围元件,减小系统功耗。
2.2 PIC16C74单片机
PIC16C74单片机是一种低功耗、高性能的芯片。由于采用全静态CMOS设计,电源操纵能耗很低,且非常可靠。片内有上电复位电路、监视定时器电路和RC振荡器电路选择等,不需要增加价格较高的片外支持的功能元件,从而降低了系统本钱和系统功耗。PIC的小晶片尺寸加上Microchip公司先进的CMOS技术使芯片具有很宽的性能范围以及低工作电流(典型值:在3V,32kHz时工作电流为15μA)和极小的待命状态电流(休眠方式3V工作情况下小于1μA)。低电流特性应用于长寿命电池供电的系统是非常理想的。
该芯片内部带有8个高速A/D转换通道,在需要进行A/D转换时,可以省往附加的A/D转换外围部件。
采用先进的类-RISC结构、Harvard双总线结构、两级指令流水线结构,具有8级堆栈,多个内部和外部中断位,指令只有35条,易于编程,软件代码少,执行速度快。
该芯片还具有休眠(SLEEP)功能,执行一条SLEEP指令,芯片就进进休眠方式。可以通过内部或外部中断方式唤醒芯片,使芯片重新进进正常工作状态2。
3 读信息钮
在本系统的设计中,为了使产品应用范围更宽、使用面更广,考虑到各个行业有不同的要求,不同地点的应用环境又有很大差异,而信息钮又是安装在应用现场,所以设计的识读器可以读取两种型号信息钮,根据用户的实际情况推荐可行的方案。这两种型号信息钮是:(1)接触型iButton1990A;(2)感应型TK5550。这两种型号信息钮在实际安装时都加上特制的护套,增强信息钮耐腐蚀性、抗冲击性,护套有不同的外形,使安装施工更加方便。
3.1 读接触型iButton1990A
iButton1990A接触型存储器是美国Dallas公司生产的自动识别芯片。读写简单,只用一条数据线和一条地线,采用一线协议完成命令和数据的传送。识别系统依靠存在脉冲检测iButton1990A的存在,操纵时需要的能量从数据线上"窃取"或从嵌进的锂电池获得。
接触型iButton1990A内部包括64位ID,其中前8位是家族码,接下来是48位序列码,这48位序列码是唯一的,每个信息钮各不相同,最后8位是校验和,校验和是对前58位作CRC校验。操纵时采用一线协议完成命令和数据的传送。信息钮上64位序列码是由信息钮生产厂家生产时用激光做的,用户只能读,不能写,也即信息钮上信息不能人为仿造和更改,保证信息钮信息的唯一性和可识别性。
当iButton1990A被唤醒,接受到33H命令后读iButton1990A程序如下
readbyte
movlw 08h
movwf r2
bit_loop
rrf r1 1
bcf porta 1
bsf rp0
bcf trisa 1
bcf rp0
bcf porta 1 为iButton1990A送低电平
nop
nop
nop
bsf rp0
bsf trisa 1 预备读数据位
bcf rp0
nop
nop
nop
nop
nop
nop
bcf c
btfsc porta 1 取数据位放进进位位
bsf c
nop
movlw d'15' 延时等待下一次读
movwf r3
decfsz r3 1
decfsz r2 1
nop
goto bit_loop
rrf r1 1
nop
movlw d'15' 延时等待下一次读
movwf r3
decfsz r3 1
goto $-1
return
3.2 读感应型TK5550
TK5550是由美国TEMIC公司开发的非接触式读/写识别IC,其无线载频范围RF为100~150kHz。该芯片上有264位EEPROM,分成8个区,每区33位,可以从基站按区读和写。每个区的第0位为LOCK位,该位被置1时这个区的数据不能再修改,且LOCK位无法恢复。LOCK位不随其它位一起发射到基站,用户实际使用的数据是每区的后32位,共256位。0区是为设置IC的操纵模式而保存的。7区是口令区,在口令加密功能启动时这里存放IC的读写控制密码,当加密功能没有使用时该区也可以存放用户数据。其它6个区用户可以存放数据3 。EEPROM结构如图1。
感应型TK5550可以从基站按区读和写。TK5550可以设置成多种工作模式,所以TK5550操纵非常方便,使用时可任选一种。另外,因TK5550可以写,在设计时可以根据用户要求把用户信息编为特殊的码,让用户看到信息就能够确认信息所表示的含义。
下面给出在设置为曼切斯特码时,读TK5550子程序:
tll equ 0x0e
tlh equ 0x19
thl equ 0x1c
thh equ 0x33
tdl equ 0x32
tdll equ 0x0e
read_ok
movlw 08h
movwf r5
btfsc port_d0 ;首先判定是 1,0?
goto read_3
movlw 00h
movwf r4
read_1
movlw tdl1
xorwf r40
btfss statusz
goto read_2
goto read_mo
read_2
btfsc port_d 0 ;确认 0
goto read_6
incf r4 1
goto read_1
read_3
movlw 00h
movwf r4
read_4
movlw tdl1
xorwf r4 0
btfss status z
goto read_5
goto read_mo
read_5
btfss port_d 0 ;确认 1
goto read_7
incf r4 1
goto read_4
read_6
bcf status c
goto $+2
read_7
bsf status c
rlf r0 1 ;读出位暂存储R0
movlw tdl ;延时等待
movwf r3
decfsz r3 1
goto $-1
bsf no_ok
return
read_mo
bcf no_ok ;时序不对,退出
return
在磁场干扰比较大的环境下,用接触型信息钮比较合适,如电厂;因感应型信息钮可以完全封装起来,在湿润、腐蚀性比较大的环境下,用感应型信息钮比较合适,如水厂、化工厂等。
本系统中,由于采用了先进的冗余技术,实际使用中也经过多次改进,具有较高的可靠性;识读器配有液晶显示,通讯座有指示灯显示通讯过程,治理系统使用汉字处理操纵系统,界面清楚明了,使用非常方便、简单。