摘要:目前,许多行业的
抄表系统,一般都停留在手工抄写然后人工汇总的水平上。随着经济改革的深入发展,人们要求信息及时、准确、全面;显然,手工抄写不能满足经济生活的要求。本文介绍了一种用单片机控制的抄表系统,可以记录多项信息,具有低功耗、低成本、便于携带、易于操作等特点,非常适合电厂、化工厂等相关行业的抄表系统。
1、系统的总体结构及工作原理
该系统由信息讯、识读器、通信座、计算机组成。将一个包含特定标识信息的“信息钮”安放在某个固定位置上,该位置可能是一台设备或一个部位,设备上安装有许多表显示设备运行状况。工作人员定时或不定时记录表上数据,用携带的“识读器”先读信息钮,提取信息钮中的信息并储存在“识读器”内,信息钮中的信息标识该设备,然后把该设备上各表的读数逐荐通过识读器上键盘输入并储存在“识读器”内;巡检结束时,用“通信座”通过网络将存储在“识读器”内的信息传送至计算机进行处理,技术人员和管理人员就可准确掌握设备现场情况,并及时了解设备运行和管理中存在的问题。由于信息钮中的信息具有*、无法仿制、无法人工伪造的特点,一个信息钮只能标识一台设备或一个部位,并且识读器内含有时钟芯片,读信息钮的同时记录当时时间。该系统用于管理和技术分析非常方便实用。考虑到有些设备和部门的现场情况,通信座和计算机之间采用管程和远程两种传输方式,近程通过RS232串口传输,远程利用MODEM通过线传输。在该系统中,低功耗、便携式识读器的设计和制造是核心和关键。
2、低功耗便携式识读器的设计
2.1设计原则
本系统中识读器的设计要求有两点:(1)小巧玲珑,方便携带;(2)电池供电,功力量一定要小,延长电池使用寿命。根据这两点要求,在设计中一是采用集成度高的贴片封装芯片,二是芯片的外围元件尽可能要少。通过对几种型号CPU的筛选,我们在本系统中采用美国Microchip公司的PIC16C74作CPU,该芯片特别符合上述要求。PIC16C74有44个管脚,I/O管脚多,内部集成了很多功能,可以节省很多外围元件,减小系统功耗。
2.2PIC16C74单片机
PCI16C74单片机是一种低功耗、高性能的芯片。由于采用全静态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位序列码是*的,每个信息钮各不相同,zui后8位是校验和,校验和是对前56位作CRC校验。操作时采用一线协议完成命令和数据的传送。信息钮上64位序列码是由信息钮生产厂家生产时用激光做的,用户只能读,不能写,也即信息钮上信息不能人为仿造和更改,保证信息钮信息的*性和可识别性。
当iButton1990A被唤醒,接受到33H命令后读iButton1990程序如下:
readbyte:
movlw08h
movwfr2
bit_loop:
rrfr1,1
bcfporta,1
bsfrp0
bcftrisa,1
bcfrp0
bcfporta,1;为iButton1990A送低电平
nop
nop
nop
bsfrp0
bsftrisa,1;准备读数据位
bcfrp0
nop
nop
nop
nop
nop
nop
bcfc
btfscporta,1;取数据位放入进位位
bsfc
nop
movlwd'15';延时等待下一次读
movwfr3
decfszr3,1
decfszr2,1
nop
gotobit_loop
rrfr1,1
nop
movlwd'15';延时等待下一次读
movwfr3
decfszr3,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的子程序:
tllequ0x0e
tlhequ0x19
thlequ0x1c
thhequ0x33
tdlequ0x32
tdl1equ0c0e
read_ok
movlw08h
movwfr5
btfscport_d,0;首先判断是1,0?
gotoread_3
movlw00h
movwfr4
read_1
movlwtdl1
xorwfr4,0
btfssstatus,z
gotoread_2
gototrad_mo
read_2
btfscport_d,0;确认0
gotoreqd_6
incfr4,1
gotoread_1
read_3
movlw00h
movwfr4
read_4
movlwtdl1
xorwfr4,0
btfssstatus,z
gotoread_5
gotoread_mo
read_5
btfssport_d,0;确认1
gotoread_7
incfr4,1
gotoread_4
read_6
bcfstatus,c
goto$+2
read_7
bsfstatus,c
rlfr0,1;读出位暂存储R0
movlwtdl;延时等待
movwfr3
decfszr3,1
goto$-1
bsfno_ok
return
read_mo:
bcfno_ok;时序不对,退出
return
在磁场干扰比较大的环境下,用接触型信息钮比较合适,如电厂;因感应型信息钮可以*封装起来,在潮湿、腐蚀性比较大的环境下,用感应型信息钮比较合适,如水厂、化工作等。
4、结束语
本系统中,由于采用了*的冗余技术,实际使用中也经过多次改进,具有较高的可靠性;只读器配有液晶显示,能信座有指示灯显示通信过程,管理系统使用汉字处理操作系统,界面清晰明了,使用非常方便、简单。