專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!
單片機(jī)PIC16C7X在低功耗識(shí)別抄表的應(yīng)用
摘要:介紹一種低功耗的自動(dòng)識(shí)別抄表系統(tǒng)。詳細(xì)介紹其結(jié)構(gòu)和工作原理、設(shè)計(jì)思相,并給出兩種信息鈕的操作方法。
關(guān)鍵詞:低功耗 識(shí)讀器 通信座 接觸型iButton1990A 感應(yīng)型TK5550
目前,許多行業(yè)的抄表系統(tǒng),一般都停留在手工抄寫(xiě)然后人工匯總的水平上。隨著經(jīng)濟(jì)改革的深入發(fā)展,人們要求信息及時(shí)、準(zhǔn)確、全面;顯然,手工抄寫(xiě)不能滿足經(jīng)濟(jì)生活的要求。本文介紹了一種用單片機(jī)控制的抄表系統(tǒng),可以記錄多項(xiàng)信息,具有低功耗、低成本、便于攜帶、易于操作等特點(diǎn),非常適合電廠、化工廠等相關(guān)行業(yè)的抄表系統(tǒng)。
1 系統(tǒng)的總體結(jié)構(gòu)及工作原理
該系統(tǒng)由信息訊、識(shí)讀器、通信座、計(jì)算機(jī)組成。將一個(gè)包含特定標(biāo)識(shí)信息的“信息鈕”安放在某個(gè)固定位置上,該位置可能是一臺(tái)設(shè)備或一個(gè)部位,設(shè)備上安裝有許多表顯示設(shè)備運(yùn)行狀況。工作人員定時(shí)或不定時(shí)記錄表上數(shù)據(jù),用攜帶的“識(shí)讀器”先讀信息鈕,提取信息鈕中的信息并儲(chǔ)存在“識(shí)讀器”內(nèi),信息鈕中的信息標(biāo)識(shí)該設(shè)備,然后把該設(shè)備上各表的讀數(shù)逐薦通過(guò)識(shí)讀器上鍵盤(pán)輸入并儲(chǔ)存在“識(shí)讀器”內(nèi);巡檢結(jié)束時(shí),用“通信座”通過(guò)網(wǎng)絡(luò)將存儲(chǔ)在“識(shí)讀器”內(nèi)的信息傳送至計(jì)算機(jī)進(jìn)行處理,技術(shù)人員和管理人員就可準(zhǔn)確掌握設(shè)備現(xiàn)場(chǎng)情況,并及時(shí)了解設(shè)備運(yùn)行和管理中存在的問(wèn)題。由于信息鈕中的信息具有唯一、無(wú)法仿制、無(wú)法人工偽造的特點(diǎn),一個(gè)信息鈕只能標(biāo)識(shí)一臺(tái)設(shè)備或一個(gè)部位,并且識(shí)讀器內(nèi)含有時(shí)鐘芯片,讀信息鈕的同時(shí)記錄當(dāng)時(shí)時(shí)間。該系統(tǒng)用于管理和技術(shù)分析非常方便實(shí)用??紤]到有些設(shè)備和部門(mén)的現(xiàn)場(chǎng)情況,通信座和計(jì)算機(jī)之間采用管程和遠(yuǎn)程兩種傳輸方式,近程通過(guò)RS232串口傳輸,遠(yuǎn)程利用MODEM通過(guò)電話線傳輸。在該系統(tǒng)中,低功耗、便攜式識(shí)讀器的設(shè)計(jì)和制造是核心和關(guān)鍵。
2 低功耗便攜式識(shí)讀器的設(shè)計(jì)
2.1 設(shè)計(jì)原則
本系統(tǒng)中識(shí)讀器的設(shè)計(jì)要求有兩點(diǎn):(1)小巧玲瓏,方便攜帶;(2)電池供電,功力量一定要小,延長(zhǎng)電池使用壽命。根據(jù)這兩點(diǎn)要求,在設(shè)計(jì)中一是采用集成度高的貼片封裝芯片,二是芯片的外圍元件盡可能要少。通過(guò)對(duì)幾種型號(hào)CPU的篩選,我們?cè)诒鞠到y(tǒng)中采用美國(guó)Microchip公司的PIC16C74作CPU,該芯片特別符合上述要求。PIC16C74有44個(gè)管腳,I/O管腳多,內(nèi)部集成了很多功能,可以節(jié)省很多外圍元件,減小系統(tǒng)功耗。
2.2 PIC16C74單片機(jī)
PCI16C74單片機(jī)是一種低功耗、高性能的芯片。由于采用全靜態(tài)CMOS設(shè)計(jì),電源操作能耗很低,且非??煽?。片內(nèi)有上電復(fù)位電路、監(jiān)視定時(shí)器電路和RC振蕩器電路選擇等,不需要增加價(jià)格高的片外支持的功能元件,從而降低了系統(tǒng)成本和系統(tǒng)功耗。PIC的小晶片尺寸加上Microchip公司先進(jìn)的CMOS技術(shù)使芯片具有很寬的性能范圍以及低工作電流(典型值:在3V,32kHz時(shí)工作電流為15μA)和極小的待命狀態(tài)電流(休眠方式3V工作情況下大于1μA)。低電流特性應(yīng)用于長(zhǎng)壽命電池供電的是非常理想的。
該芯片內(nèi)部帶有8個(gè)高速A/D轉(zhuǎn)換通道,在需要進(jìn)行A/D轉(zhuǎn)換時(shí),可以省去附加的A/D轉(zhuǎn)換外圍部件。
采用先進(jìn)的類—RISC結(jié)構(gòu)、Harvard雙總線結(jié)構(gòu)、兩級(jí)指令流水線結(jié)構(gòu),具有8級(jí)堆棧,多個(gè)內(nèi)部和外部中斷位,指令只有35條,易于編程,軟件代碼少,執(zhí)行速度快。
該芯片還具有休眠(SLEEP)功能,執(zhí)行一條SLEEP指令,芯片就進(jìn)入休眠方式??梢酝ㄟ^(guò)內(nèi)部或外部中斷方式喚醒芯片,使芯片重新進(jìn)入正常工作狀態(tài)[2]。
3 讀信息鈕
在本系統(tǒng)的設(shè)計(jì)中,為了使產(chǎn)品應(yīng)用范圍更寬、使用面更廣,考慮到各個(gè)行業(yè)有不同的要求,不同地點(diǎn)的應(yīng)用環(huán)境又有很大差異,而信息鈕又是安裝在應(yīng)用現(xiàn)場(chǎng),所以設(shè)計(jì)的識(shí)讀器可以讀取兩種型號(hào)信息鈕,根據(jù)用戶的實(shí)際情況推薦可行的方案。這兩種型號(hào)信息鈕是:(1)接觸型iButton1990A;(2)感應(yīng)型TK5550。這兩種型號(hào)信息鈕在實(shí)際安裝時(shí)都加上特制的護(hù)套,增強(qiáng)信息鈕耐腐蝕性、抗沖擊性,護(hù)套有不同的形狀,使安裝施工更加方便。
3.1 讀接觸型iButton1990A
iButton1990A接觸型存儲(chǔ)器是美國(guó)Dallas公司生產(chǎn)的自動(dòng)識(shí)別芯片。讀寫(xiě)簡(jiǎn)單,只用一條數(shù)據(jù)線和一條地線,采用一線協(xié)議完成命令和數(shù)據(jù)的傳送。識(shí)別系統(tǒng)依靠存在脈沖檢測(cè)iButton1990A的存在,操作時(shí)需要的能量從數(shù)據(jù)線上“竊取”或從嵌入的鋰電池獲得。
接觸型iButton1990A內(nèi)部包括64位ID,其中前8位是家族碼,接下來(lái)是48位序列碼,這48位序列碼是唯一的,每個(gè)信息鈕各不相同,最后8位是校驗(yàn)和,校驗(yàn)和是對(duì)前56位作CRC校驗(yàn)。操作時(shí)采用一線協(xié)議完成命令和數(shù)據(jù)的傳送。信息鈕上64位序列碼是由信息鈕生產(chǎn)廠家生產(chǎn)時(shí)用激光做的,用戶只能讀,不能寫(xiě),也即信息鈕上信息不能人為仿造和更改,保證信息鈕信息的唯一性和可識(shí)別性。
當(dāng)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 ;準(zhǔn)備讀數(shù)據(jù)位
bcf rp0
nop
nop
nop
nop
nop
nop
bcf c
btfsc porta,1 ;取數(shù)據(jù)位放入進(jìn)位位
bsf c
nop
movlw d'15' ;延時(shí)等待下一次讀
movwf r3
decfsz r3,1
decfsz r2,1
nop
goto bit_loop
rrf r1,1
nop
movlw d'15' ;延時(shí)等待下一次讀
movwf r3
decfsz r3,1
goto $-1
return
3.2 讀感應(yīng)型TK5550
TK5550是由美國(guó)TEMIC公司開(kāi)發(fā)的非接觸式讀/寫(xiě)識(shí)別IC,其無(wú)線載頻范圍RF為100~150kHz。該芯片上有264位EEPROM,分成8個(gè)區(qū),每區(qū)33位,可以從基站按區(qū)讀和寫(xiě)。每個(gè)區(qū)的第0位為L(zhǎng)OCK位,該位被置1時(shí)這個(gè)區(qū)的數(shù)據(jù)不能再修改,且LOCK位無(wú)法恢復(fù)。LOCK位不隨其它位一起動(dòng)射到基站,用戶實(shí)際使用的數(shù)據(jù)是每區(qū)的后32位,共256位。0區(qū)是為設(shè)置IC的操作模式而保留的。7區(qū)是口令區(qū),在口令加密功能啟動(dòng)時(shí)這里存放IC的讀寫(xiě)控制密碼,當(dāng)加密功能沒(méi)有使用時(shí)該區(qū)也可以存放用戶數(shù)據(jù)。其它6個(gè)區(qū)用戶可以存放數(shù)據(jù)[3]。
感應(yīng)型TK5550可以從基站按區(qū)讀和寫(xiě)。TK5550可以設(shè)置成多種工作模式,所以TK5550操作非常方便,使用時(shí)可任選一種。另外,因TK5550可以寫(xiě),在設(shè)計(jì)時(shí)可以根據(jù)用戶要求把用戶信息編為特殊的碼,讓用戶看到信息就能夠確認(rèn)信息所表示的含義。
下面給出在設(shè)置為曼切斯特碼時(shí),讀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 ;確認(rèn)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 ;確認(rèn)1
goto read_7
incf r4,1
goto read_4
read_6
bcf status,c
goto