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