目前,許多行業的抄表系統,一般都停留在手工抄寫然后人工匯總的水平上。隨著經濟改革的深入發展,人們要求信息及時、準確、全面;顯然,手工抄寫不能滿足經濟生活的要求。本文介紹了一種用單片機控制的抄表系統,可以記錄多項信息,具有低功耗、低成本、便于攜帶、易于操作等特點,非常適合電廠、化工廠等相關行業的抄表系統。 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_d?0 ;首先判斷是 1,0? goto read_3 movlw 00h movwf r4 read_1 movlw tdl1 xorwf r4?0 btfss status?z 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 在磁場干擾比較大的環境下,用接觸型信息鈕比較合適,如電廠;因感應型信息鈕可以完全封裝起來,在潮濕、腐蝕性比較大的環境下,用感應型信息鈕比較合適,如水廠、化工廠等。 本系統中,由于采用了先進的冗余技術,實際使用中也經過多次改進,具有較高的可靠性;識讀器配有液晶顯示,通信座有指示燈顯示通信過程,管理系統使用漢字處理操作系統,界面清晰明了,使用非常方便、簡單。 |