DIY编程器网
标题:
单片机PIC16C7X在低功耗识别抄表系统中的应用
[打印本页]
作者:
liyf
时间:
2012-1-27 14:12
标题:
单片机PIC16C7X在低功耗识别抄表系统中的应用
摘 要: 介绍一种低功耗的自动识别抄表系统。详细介绍其结构和工作原理、设计思想,并给出两种信息钮的操作方法。
关键词: 低功耗 识读器 通信座 接触型iButton1990A 感应型TK5550
目前,许多行业的抄表系统,一般都停留在手工抄写然后人工汇总的水平上。随着经济改革的深入发展,人们要求信息及时、准确、全面;显然,手工抄写不能满足经济生活的要求。本文介绍了一种用单片机控制的抄表系统,可以记录多项信息,具有低功耗、低成本、便于携带、易于操作等特点,非常适合电厂、化工厂等相关行业的抄表系统。
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 r11
bcf porta1
bsf rp0
bcf trisa1
bcf rp0
bcf porta1 为iButton1990A送低电平
nop
nop
nop
bsf rp0
bsf trisa1 准备读数据位
bcf rp0
nop
nop
nop
nop
nop
nop
bcf c
btfsc porta1 取数据位放入进位位
bsf c
nop
movlw d'15' 延时等待下一次读
movwf r3
decfsz r31
decfsz r21
nop
goto bit_loop
rrf r11
nop
movlw d'15' 延时等待下一次读
movwf r3
decfsz r31
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_d0 ;确认 0
goto read_6
incf r41
goto read_1
read_3
movlw 00h
movwf r4
read_4
movlw tdl1
xorwf r40
btfss statusz
goto read_5
goto read_mo
read_5
btfss port_d0 ;确认 1
goto read_7
incf r41
goto read_4
read_6
bcf statusc
goto $+2
read_7
bsf statusc
rlf r01 ;读出位暂存储R0
movlw tdl ;延时等待
movwf r3
decfsz r31
goto $-1
bsf no_ok
return
read_mo
bcf no_ok ;时序不对,退出
return
在磁场干扰比较大的环境下,用接触型信息钮比较合适,如电厂;因感应型信息钮可以完全封装起来,在潮湿、腐蚀性比较大的环境下,用感应型信息钮比较合适,如水厂、化工厂等。
本系统中,由于采用了先进的冗余技术,实际使用中也经过多次改进,具有较高的可靠性;识读器配有液晶显示,通信座有指示灯显示通信过程,管理系统使用汉字处理操作系统,界面清晰明了,使用非常方便、简单。
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2