单片机PIC16C7X在低功耗识别抄表的应用
扫描二维码
随时随地手机看文章
目前,许多行业的抄表系统,一般都停留在手工抄写然后人工汇总的水平上。随着经济改革的深入发展,人们要求信息及时、准确、全面;显然,手工抄写不能满足经济生活的要求。本文介绍了一种用单片机控制的抄表系统,可以记录多项信息,具有低功耗、低成本、便于携带、易于操作等特点,非常适合电厂、化工厂等相关行业的抄表系统。
1 系统的总体结构及工作原理
该系统由信息讯、识读器、通信座、计算机组成。将一个包含特定标识信息的“信息钮”安放在某个固定位置上,该位置可能是一台设备或一个部位,设备上安装有许多表显示设备运行状况。工作人员定时或不定时记录表上数据,用携带的“识读器”先读信息钮,提取信息钮中的信息并储存在“识读器”内,信息钮中的信息标识该设备,然后把该设备上各表的读数逐荐通过识读器上键盘输入并储存在“识读器”内;巡检结束时,用 “通信座”通过网络将存储在“识读器”内的信息传送至计算机进行处理,技术人员和管理人员就可准确掌握设备现场情况,并及时了解设备运行和管理中存在的问题。由于信息钮中的信息具有唯一、无法仿制、无法人工伪造的特点,一个信息钮只能标识一台设备或一个部位,并且识读器内含有时钟芯片,读信息钮的同时记录当时时间。该系统用于管理和技术分析非常方便实用。考虑到有些设备和部门的现场情况,通信座和计算机之间采用管程和远程两种传输方式,近程通过RS232 串口传输,远程利用MODEM通过电话线传输。在该系统中,低功耗、便携式识读器的设计和制造是核心和关键。
2 低功耗便携式识读器的设计
2.1 设计原则
本系统中识读器的设计要求有两点:(1)小巧玲珑,方便携带;(2)电池供电,功力量一定要小,延长电池使用寿命。根据这两点要求,在设计中一是采用集成度高的贴片封装芯片,二是芯片的外围元件尽可能要少。通过对几种型号CPU的筛选,我们在本系统中采用美国Microchip公司的PIC16C74作 CPU,该芯片特别符合上述要求。PIC16C74有44个管脚,I/O管脚多,内部集成了很多功能,可以节省很多外围元件,减小系统功耗。
2.2 PIC16C74单片机
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位序列码是唯一的,每个信息钮各不相同,最后8位是校验和,校验和是对前56位作CRC校验。操作时采用一线协议完成命令和数据的传送。信息钮上64 位序列码是由信息钮生产厂家生产时用激光做的,用户只能读,不能写,也即信息钮上信息不能人为仿造和更改,保证信息钮信息的唯一性和可识别性。
当iButton1990A被唤醒,接受到33H命令后读iButton1990程序如下:
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
tdl 1 equ 0c0e
read_ok
movlw 08h
movwf r5
btfsc port_d,0 ;首先判断是1,0?
goto read_3
movlw 00h
movwf r4
read_1
movlw tdl 1
xorwf r4,0
btfss status,z
goto read_2
goto trad_mo
read_2
btfsc port_d,0 ;确认0
goto reqd_6
incf r4,1
goto read_1
read_3
movlw 00h
movwf r4
read_4
movlw tdl 1
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
在磁场干扰比较大的环境下,用接触型信息钮比较合适,如电厂;因感应型信息钮可以完全封装起来,在潮湿、腐蚀性比较大的环境下,用感应型信息钮比较合适,如水厂、化工作等。
本系统中,由于采用了先进的冗余技术,实际使用中也经过多次改进,具有较高的可靠性;只读器配有液晶显示,能信座有指示灯显示通信过程,管理系统使用汉字处理操作系统,界面清晰明了,使用非常方便、简单。