技术热线: 4007-888-234

单片机PIC16C7X在低功耗识别抄表的应用

更新时间: 2019-03-23
阅读量:1789

单片机PIC16C7X在低功耗识别抄表的应用

       摘要:介绍一种低功耗的自动识别抄表系统。详细介绍其结构和工作原理、设计思相,并给出两种信息钮的操作方法。

       关键词:低功耗 识读器 通信座 接触型iButton1990A 感应型TK5550

       目前,许多行业的抄表系统,一般都停留在手工抄写然后人工汇总的水平上。随着经济改革的深入发展,人们要求信息及时、准确、全面;显然,手工抄写不能满足经济生活的要求。本文介绍了一种用单片机控制的抄表系统,可以记录多项信息,具有低功耗、低成本、便于携带、易于操作等特点,非常适合电厂、化工厂等相关行业的抄表系统。

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]。

       感应型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