人狗畜禽COMPANY LIMITED|全是肉的高H文〈男男〉|全篇肉高H秘书被C办公室四爱|全黄H全肉共妻|全黄H全肉短篇禁乱NP慕浅浅|全黄H全肉短篇N男男

技術(shù)熱線: 4007-888-234

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

提供開發(fā)工具、應用測試 完善的開發(fā)代碼案例庫分享

從全面的產(chǎn)品導入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

技術(shù)支持

單片機PIC16C7X在低功耗識別抄表的應用

更新時間: 2019-03-23

單片機PIC16C7X在低功耗識別抄表的應用

       摘要:介紹一種低功耗的自動識別抄表系統(tǒng)。詳細介紹其結(jié)構(gòu)和工作原理、設(shè)計思相,并給出兩種信息鈕的操作方法。

       關(guān)鍵詞:低功耗 識讀器 通信座 接觸型iButton1990A 感應型TK5550

       目前,許多行業(yè)的抄表系統(tǒng),一般都停留在手工抄寫然后人工匯總的水平上。隨著經(jīng)濟改革的深入發(fā)展,人們要求信息及時、準確、全面;顯然,手工抄寫不能滿足經(jīng)濟生活的要求。本文介紹了一種用單片機控制的抄表系統(tǒng),可以記錄多項信息,具有低功耗、低成本、便于攜帶、易于操作等特點,非常適合電廠、化工廠等相關(guān)行業(yè)的抄表系統(tǒng)。

1 系統(tǒng)的總體結(jié)構(gòu)及工作原理

       該系統(tǒng)由信息訊、識讀器、通信座、計算機組成。將一個包含特定標識信息的“信息鈕”安放在某個固定位置上,該位置可能是一臺設(shè)備或一個部位,設(shè)備上安裝有許多表顯示設(shè)備運行狀況。工作人員定時或不定時記錄表上數(shù)據(jù),用攜帶的“識讀器”先讀信息鈕,提取信息鈕中的信息并儲存在“識讀器”內(nèi),信息鈕中的信息標識該設(shè)備,然后把該設(shè)備上各表的讀數(shù)逐薦通過識讀器上鍵盤輸入并儲存在“識讀器”內(nèi);巡檢結(jié)束時,用“通信座”通過網(wǎng)絡(luò)將存儲在“識讀器”內(nèi)的信息傳送至計算機進行處理,技術(shù)人員和管理人員就可準確掌握設(shè)備現(xiàn)場情況,并及時了解設(shè)備運行和管理中存在的問題。由于信息鈕中的信息具有唯一、無法仿制、無法人工偽造的特點,一個信息鈕只能標識一臺設(shè)備或一個部位,并且識讀器內(nèi)含有時鐘芯片,讀信息鈕的同時記錄當時時間。該系統(tǒng)用于管理和技術(shù)分析非常方便實用。考慮到有些設(shè)備和部門的現(xiàn)場情況,通信座和計算機之間采用管程和遠程兩種傳輸方式,近程通過RS232串口傳輸,遠程利用MODEM通過電話線傳輸。在該系統(tǒng)中,低功耗、便攜式識讀器的設(shè)計和制造是核心和關(guān)鍵。

2 低功耗便攜式識讀器的設(shè)計

2.1 設(shè)計原則

       本系統(tǒng)中識讀器的設(shè)計要求有兩點:(1)小巧玲瓏,方便攜帶;(2)電池供電,功力量一定要小,延長電池使用壽命。根據(jù)這兩點要求,在設(shè)計中一是采用集成度高的貼片封裝芯片,二是芯片的外圍元件盡可能要少。通過對幾種型號CPU的篩選,我們在本系統(tǒng)中采用美國Microchip公司的PIC16C74作CPU,該芯片特別符合上述要求。PIC16C74有44個管腳,I/O管腳多,內(nèi)部集成了很多功能,可以節(jié)省很多外圍元件,減小系統(tǒng)功耗。

2.2 PIC16C74單片機

       PCI16C74單片機是一種低功耗、高性能的芯片。由于采用全靜態(tài)CMOS設(shè)計,電源操作能耗很低,且非??煽?。片內(nèi)有上電復位電路、監(jiān)視定時器電路和RC振蕩器電路選擇等,不需要增加價格高的片外支持的功能元件,從而降低了系統(tǒng)成本和系統(tǒng)功耗。PIC的小晶片尺寸加上Microchip公司先進的CMOS技術(shù)使芯片具有很寬的性能范圍以及低工作電流(典型值:在3V,32kHz時工作電流為15μA)和極小的待命狀態(tài)電流(休眠方式3V工作情況下大于1μA)。低電流特性應用于長壽命電池供電的是非常理想的。

       該芯片內(nèi)部帶有8個高速A/D轉(zhuǎn)換通道,在需要進行A/D轉(zhuǎn)換時,可以省去附加的A/D轉(zhuǎn)換外圍部件。

       采用先進的類—RISC結(jié)構(gòu)、Harvard雙總線結(jié)構(gòu)、兩級指令流水線結(jié)構(gòu),具有8級堆棧,多個內(nèi)部和外部中斷位,指令只有35條,易于編程,軟件代碼少,執(zhí)行速度快。

       該芯片還具有休眠(SLEEP)功能,執(zhí)行一條SLEEP指令,芯片就進入休眠方式??梢酝ㄟ^內(nèi)部或外部中斷方式喚醒芯片,使芯片重新進入正常工作狀態(tài)[2]。

3 讀信息鈕

       在本系統(tǒng)的設(shè)計中,為了使產(chǎn)品應用范圍更寬、使用面更廣,考慮到各個行業(yè)有不同的要求,不同地點的應用環(huán)境又有很大差異,而信息鈕又是安裝在應用現(xiàn)場,所以設(shè)計的識讀器可以讀取兩種型號信息鈕,根據(jù)用戶的實際情況推薦可行的方案。這兩種型號信息鈕是:(1)接觸型iButton1990A;(2)感應型TK5550。這兩種型號信息鈕在實際安裝時都加上特制的護套,增強信息鈕耐腐蝕性、抗沖擊性,護套有不同的形狀,使安裝施工更加方便。

3.1 讀接觸型iButton1990A

       iButton1990A接觸型存儲器是美國Dallas公司生產(chǎn)的自動識別芯片。讀寫簡單,只用一條數(shù)據(jù)線和一條地線,采用一線協(xié)議完成命令和數(shù)據(jù)的傳送。識別系統(tǒng)依靠存在脈沖檢測iButton1990A的存在,操作時需要的能量從數(shù)據(jù)線上“竊取”或從嵌入的鋰電池獲得。

       接觸型iButton1990A內(nèi)部包括64位ID,其中前8位是家族碼,接下來是48位序列碼,這48位序列碼是唯一的,每個信息鈕各不相同,最后8位是校驗和,校驗和是對前56位作CRC校驗。操作時采用一線協(xié)議完成命令和數(shù)據(jù)的傳送。信息鈕上64位序列碼是由信息鈕生產(chǎn)廠家生產(chǎn)時用激光做的,用戶只能讀,不能寫,也即信息鈕上信息不能人為仿造和更改,保證信息鈕信息的唯一性和可識別性。

當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 ;準備讀數(shù)據(jù)位

bcf rp0

nop

nop

nop

nop

nop

nop

bcf c

btfsc porta,1 ;取數(shù)據(jù)位放入進位位

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公司開發(fā)的非接觸式讀/寫識別IC,其無線載頻范圍RF為100~150kHz。該芯片上有264位EEPROM,分成8個區(qū),每區(qū)33位,可以從基站按區(qū)讀和寫。每個區(qū)的第0位為LOCK位,該位被置1時這個區(qū)的數(shù)據(jù)不能再修改,且LOCK位無法恢復。LOCK位不隨其它位一起動射到基站,用戶實際使用的數(shù)據(jù)是每區(qū)的后32位,共256位。0區(qū)是為設(shè)置IC的操作模式而保留的。7區(qū)是口令區(qū),在口令加密功能啟動時這里存放IC的讀寫控制密碼,當加密功能沒有使用時該區(qū)也可以存放用戶數(shù)據(jù)。其它6個區(qū)用戶可以存放數(shù)據(jù)[3]。

       感應型TK5550可以從基站按區(qū)讀和寫。TK5550可以設(shè)置成多種工作模式,所以TK5550操作非常方便,使用時可任選一種。另外,因TK5550可以寫,在設(shè)計時可以根據(jù)用戶要求把用戶信息編為特殊的碼,讓用戶看到信息就能夠確認信息所表示的含義。

下面給出在設(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 ;確認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

404
返回首頁 |  返回上一頁
遂宁市| 福贡县| 尖扎县| 武功县| 湘阴县| 石棉县| 章丘市| 达日县| 浪卡子县| 库车县| 藁城市| 长垣县| 恩施市| 阳江市| 自治县| 八宿县| 平塘县| 怀集县| 惠州市| 无为县| 昌黎县| 且末县| 新津县| 利津县| 岳阳市| 来凤县| 行唐县| 定远县| 同心县| 揭东县| 晋宁县| 宁波市| 陕西省| 五寨县| 独山县| 康乐县| 延边| 翁源县| 新乐市| 盖州市| 惠来县|