1、 DS1991概述
iButton information Button 信息紐扣是一種封裝在扁圓型不銹鋼外殼里的直徑為16毫米的微型智能化信息載體?具有雙向通訊功能,數(shù)據(jù)傳輸使用獨(dú)特的1-Wire(單總線)協(xié)議,僅用一根數(shù)據(jù)線即可與外界進(jìn)行信息交換?iButton信息鈕扣與其讀寫(xiě)器的信息傳遞只需短暫接觸即可完成,傳輸速率可達(dá)16.3kbps?信息紐扣內(nèi)置的NVSRAM存儲(chǔ)器可存放文字或數(shù)字化的圖像,任何時(shí)刻只要短暫的觸碰就可更改存放的信息?在每一個(gè)信息紐扣的芯片上都有工廠光刻的?獨(dú)一無(wú)二的64位注冊(cè)碼,該號(hào)碼具有不可偽造性?先進(jìn)的設(shè)計(jì)理念及封裝形式賦予了iButton超強(qiáng)的抗沖擊?防靜電?防腐蝕?防水?防摩擦等性能,極大的提高了數(shù)據(jù)的安全性,并可確保十年以上的使用壽命?
DS1991是一種加密存儲(chǔ)型信息紐扣,它有三個(gè)獨(dú)立的電子密鑰分區(qū)(提供1152位的可讀寫(xiě)非易失安全存儲(chǔ)器)和512位暫存器?每個(gè)密鑰分區(qū)包括384位,具有獨(dú)立的64位密碼和64位ID碼?對(duì)密鑰分區(qū)的讀/寫(xiě)操作均需進(jìn)行密碼驗(yàn)證?三個(gè)區(qū)的數(shù)據(jù)可分別操作,互不干擾?512位的暫存器主要用于加密數(shù)據(jù)的拷貝,以保證安全存儲(chǔ)器中數(shù)據(jù)的完整性?DS1991可在惡劣環(huán)境中實(shí)現(xiàn)帶密碼保護(hù)的數(shù)據(jù)傳送?
DS1991通過(guò)嚴(yán)格的1-Wire(單總線)協(xié)議傳輸數(shù)據(jù)?1-Wire協(xié)議定義了復(fù)位脈沖?應(yīng)答脈沖?寫(xiě)0?寫(xiě)1和讀數(shù)據(jù)時(shí)序等幾種信號(hào)類型,所有單總線命令序列都是由這些基本的信號(hào)類型組成的?單片機(jī)訪問(wèn)DS1991必須嚴(yán)格遵循單總線命令序列,即初始化?ROM操作?存儲(chǔ)器功能命令?
DS1991的ROM操作命令有讀?。?3H)?匹配(55H)?搜索(F0H)?跳過(guò)(CCH)等?這些命令可作用于DS1991的64位光刻注冊(cè)碼?DS1991有6個(gè)設(shè)備檢測(cè)命令:寫(xiě)暫存器(96H)?讀暫存器(69H)?復(fù)制暫存器(3CH)?
寫(xiě)密碼(5AH)?寫(xiě)密鑰子區(qū)(99H)?讀密鑰子區(qū)(66H)?存儲(chǔ)器功能命令由三段組成:一為功能代碼,二為命令的起始地址和子密鑰的地址代碼,三為第二個(gè)字節(jié)的取反?
2 、系統(tǒng)結(jié)構(gòu)與工作原理
本文設(shè)計(jì)了一種基于DS1991的智能水卡?這種智能水卡由于運(yùn)用了iButton信息紐扣,因而便于攜帶,不易損壞,只需在觸頭上一碰,水就嘩嘩的流出,再次觸碰則可關(guān)閉水龍頭,從而很好的達(dá)到了節(jié)約用水的目的?
本設(shè)計(jì)中的單片機(jī)選用Microchip公司的PIC16C63,其最大優(yōu)點(diǎn)是省電,該單片機(jī)在低功耗休眠狀態(tài)時(shí)的靜態(tài)電流小于1μA,正常工作時(shí)的最小工作電流僅為15μA,并具有看門(mén)狗復(fù)位電路,特別適合用來(lái)設(shè)計(jì)小型電子產(chǎn)品?無(wú)用戶用水時(shí),系統(tǒng)處于休眠狀態(tài),當(dāng)水卡第一次碰觸頭時(shí),單片機(jī)從休眠狀態(tài)喚醒?iButton觸頭與單片機(jī)的連線極其簡(jiǎn)單,只需將PIC16C63的一根口線與其相連并外接一個(gè)上拉電阻即可?選用24WC02存儲(chǔ)器可在掉電時(shí)保存數(shù)據(jù)?CD4098是雙單穩(wěn)態(tài)觸發(fā)器?流量傳感器選用基于模擬水表的旋翼式結(jié)構(gòu),可將葉輪的旋轉(zhuǎn)轉(zhuǎn)換為電信號(hào)?電磁閥選用12V低壓電磁閥?其硬件連接如圖1所示?
使用時(shí),先由管理員將用戶預(yù)購(gòu)的水量存于卡中?用水時(shí),用戶將水卡與觸頭一碰?單片機(jī)首先判斷是否為壞卡,然后讀取iButton序列號(hào)以判斷是否為該供水系統(tǒng)所接受的智能水卡?水卡辨識(shí)正確后再讀取卡中的水量信息并打開(kāi)電磁閥,此后,數(shù)碼管動(dòng)態(tài)顯示并扣除卡中所有現(xiàn)存水量,以防用戶不進(jìn)行關(guān)水觸碰?單片機(jī)實(shí)時(shí)采集流量信號(hào),并做相應(yīng)扣除?當(dāng)剩余水量小于初始給定值時(shí),水卡發(fā)出聲音報(bào)警提示用戶及時(shí)購(gòu)水?當(dāng)用戶用水完畢再次觸碰后或剩余水量為零時(shí),關(guān)閉閥門(mén),并將剩余水量存入水卡,同時(shí)存儲(chǔ)器實(shí)時(shí)存儲(chǔ)卡中信息,以備系統(tǒng)故障時(shí)正確處理?
3 、軟件設(shè)計(jì)
本系統(tǒng)對(duì)DS1991進(jìn)行的操作主要包括三個(gè)過(guò)程:其中讀取序列號(hào)和讀密鑰子區(qū)的流程圖見(jiàn)圖2所示?寫(xiě)密鑰子區(qū)的流程圖見(jiàn)圖3?為確保數(shù)據(jù)傳輸?shù)恼_性,本設(shè)計(jì)對(duì)欲寫(xiě)的數(shù)據(jù)組都追加一個(gè)計(jì)算出的CRC校驗(yàn)碼,并對(duì)讀出的數(shù)據(jù)組添加CRC校驗(yàn)?只有檢驗(yàn)正確,才視為讀出的數(shù)據(jù)組,從而確保了觸碰時(shí)數(shù)據(jù)傳輸?shù)恼_?
1-Wire的CRC校驗(yàn)碼由如圖4所示的多項(xiàng)式生成?該多項(xiàng)式方程為X8+X5+X4+1?每片DS1991都有唯一的64位ROM代碼,即:8位家族碼+48位唯一序列碼+8位CRC校驗(yàn)碼?移位寄存器進(jìn)行零初始化后從8位家族碼的最低有效位開(kāi)始移入,每次移1位,當(dāng)?shù)?位家族碼移入后開(kāi)始移入序列號(hào),第48位序列號(hào)移入后,移位寄存器中的值即是CRC值,此后繼續(xù)移入DS1991內(nèi)部的8位CRC校驗(yàn)碼?此時(shí)如果接收數(shù)據(jù)正確,則使移位寄存器歸零?CRC的編程如下:
CHECKCRC:
MOVLW 8
MOVWF RXBUF
CRCLP:
BTFSS MD2,0
GOTO CRC0
MOVLW 1
GOTO CRC1
CRC0: MOVLW 0
CRC1: XORWF MD1,W
MOVWF NUMB
RRF NUMB
BTFSS STATUS,0
GOTO CRC2
MOVF MD1,W
XORLW 18H
MOVWF MD1
CRC2: RRF MD1
RRF MD2
DECFSZ RXBUF
GOTO CRCLP
RETURN
本系統(tǒng)軟件采用模塊化設(shè)計(jì),分為初始化模塊?檢驗(yàn)壞卡模塊?讀序列號(hào)模塊?CRC校驗(yàn)?zāi)K?讀/寫(xiě)DS1991模塊?流量檢測(cè)數(shù)據(jù)處理模塊?I2C存儲(chǔ)器存儲(chǔ)模塊?動(dòng)態(tài)顯示模塊以及報(bào)警提醒模塊等?
4 、結(jié)束語(yǔ)
使用iButton作智能水卡時(shí),其堅(jiān)固的不銹鋼外殼確保了水卡的抗沖擊?防水?耐磨?耐腐蝕特性;而先進(jìn)的防靜電電路及芯片則可確保iButton能承受高達(dá)8,000伏的靜電,從而保證自身和存儲(chǔ)數(shù)據(jù)的安然無(wú)恙?在耐用性?識(shí)別成功性?使用方便性?加密性能及攜帶性等方面,該水卡比現(xiàn)今較流行的磁卡?IC卡?射頻卡都優(yōu)越許多?此外,DS1991的多密鑰特性更是為數(shù)據(jù)的保密提供了可靠的保證?
責(zé)任編輯:gt
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7496瀏覽量
163929 -
ROM
+關(guān)注
關(guān)注
4文章
573瀏覽量
85806 -
協(xié)議
+關(guān)注
關(guān)注
2文章
602瀏覽量
39246
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論