新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 密碼訪問器件X76F100在單片機系統(tǒng)中的應(yīng)用

密碼訪問器件X76F100在單片機系統(tǒng)中的應(yīng)用

作者: 時間:2018-08-01 來源:網(wǎng)絡(luò) 收藏

X76F100是一種密碼訪問安全監(jiān)控器件,內(nèi)部含有1個112×8位的保密數(shù)據(jù)陣列,對該陣列的訪問由2個64位的讀寫密碼來控制,密碼與數(shù)據(jù)通過I2C總線接口完成輸入輸出。正常情況下,X76F1000提供最少為10萬次的擦寫期限和最少100年的數(shù)據(jù)保存使用。

本文引用地址:http://butianyuan.cn/article/201808/384840.htm

1 器件的特點

*可編程64位讀寫密碼保護;

*重試計數(shù)寄存器允許8次密碼試驗,然后陣列清零;

*32位對復(fù)位的響應(yīng)(RST輸入);

*8字節(jié)頁寫方式;

*最大1 MHz時鐘速率;

*I2C總線接口;

*寬電壓(3.0~5.5V)低功耗CMOS;

*10萬次擦寫和100年數(shù)據(jù)保存;

*多種(8腳PDIP、SOIC、MSOP、智能卡)外形封裝。

2 封裝與引腳說明

圖1是X76F100的各種封裝形式。

引腳功能如下:

(1)串行時鐘SCL。串行時鐘輸入端用業(yè)控制所有的數(shù)據(jù)輸入和輸出器件。

(2)串行數(shù)據(jù)SDA。SDA是一個漏極開路的串行數(shù)據(jù)輸入/輸出引腳。

(3)片選CS。CS為低電平時,X76F100處于工作方式;否則,處于等待方式。

(4)復(fù)位RS。RST是器件的復(fù)位腳。當(dāng)RST被觸發(fā)為高電平為CS為低電平時,X76F100將輸出標準的32位“復(fù)位同步響應(yīng)”數(shù)據(jù)。

(5)電源Vcc,地Vss。在器件上應(yīng)施加3.0~5.5V的工作電壓。

3 器件的讀寫時序

3.1 I2C總線協(xié)議

X76F100支持I2C二線制總線協(xié)議。數(shù)據(jù)發(fā)送以字節(jié)為單位,高位在前,低位在后,且在所有應(yīng)用中X76F100都被作為從機??偩€協(xié)議約定如下:

開始條件-當(dāng)SCL為高電平時,SDA由高電平到低電平的跳變。

停止條件-當(dāng)SCL為高電平時,SDA由低電平到高電平的跳變。

數(shù)據(jù)改變-SDA線上數(shù)據(jù)的狀態(tài)只有在SCL為低電平時才能改變。

應(yīng) 答ACK-用來表示數(shù)據(jù)傳送成功的軟件約定。發(fā)送器件在發(fā)送1個字節(jié)的8位以后,將釋放總線,在額外的第九個時鐘周期,接收器將SDA線接至低電平,以應(yīng) 答它接收到了8位數(shù)據(jù)。此時SDA的高電平被認為是一個NO-ACK(數(shù)據(jù)無效)。I2C的通信時序等詳細技術(shù)規(guī)范可參看有關(guān)手冊。

3.2 命令代碼

如表1所列,X76F100一共有5種操作,分別由不同的命令代碼來選擇。器件操作時,命令代碼必須跟隨在起始信號后發(fā)出。

表1 命令代碼

命令代碼功 能

100S3S2S1S00頁寫

100S3S2S1S01頁讀

1111110改變寫密碼

11111110改變讀密碼

010101密碼間詢

對其他的非法命令代碼器件將用NO-ACK作為響應(yīng),然后回到等待方式。頁面讀與寫命令中的S3S2S1S0為頁面地址,代表14個8字節(jié)的頁中的一個。對陣列的讀或?qū)懣偸菑捻摰牡谝粋€地址開始。讀操作可以不限定地繼續(xù),而寫操作一次必須是全部8個字節(jié)。

3.3 頁寫與頁讀

頁 寫或頁讀時,應(yīng)讓CS和RST均保持低電平,其工作流程如圖2所示。寫命令或讀命令控制字節(jié)中包括所要寫入的頁地址,隨后緊跟8字節(jié)的寫操作或讀操作密 碼。密碼是否正確應(yīng)通過一個密碼問詢(起始信號+01010101)來判斷,ACK回答表示密碼正確,NO-ACK回答則表示則輸入的密碼有誤。 X76F100內(nèi)部包含一個重試計數(shù)器,對任何不正確的密碼重試計數(shù)器都將計數(shù)加1。當(dāng)計數(shù)到8次溢出時,器件的存儲器區(qū)和兩個密碼會自動清除為0(就像 剛出廠一樣)。如果在重試計數(shù)器溢出以前收到一個正確的密碼,則重試計數(shù)器復(fù)位并允許訪問器件。

密碼正確時,寫操作 要求傳送8個字節(jié)的數(shù)據(jù),在最后字節(jié)傳送以后發(fā)出一個停止條件。這個條件啟動非易失性寫周期,數(shù)據(jù)從頁的第一個地址開始寫入。如果傳送少于或多個8個字 節(jié),則寫周期不會被啟動,頁中的數(shù)據(jù)將保持不變。在數(shù)據(jù)寫入時(約10ms),器件對新的命令將不予應(yīng)答(回答NO-ACK)。

如果是讀操作則必須從頁的第一個地址開始,但一次讀出的字節(jié)數(shù)可任意。讀到最后一頁時,器件將自動轉(zhuǎn)回到第一頁繼續(xù)。在讀完最后一個字節(jié)后,主機可不作ACK確認而直接發(fā)出結(jié)束信號,至此,此次讀操作完成。

4 密碼的修改

器件從工廠中運出時所有的密碼都等于“0”,使用前應(yīng)對其作必要的修改,另外,用戶也有可能需要更改已知的密碼。它們可通過在正常的頁面寫操作過程中送一個“改變讀密碼”或“改變寫密碼”命令來實現(xiàn)。

圖 3是修改密碼流程圖。送出“改變讀密碼”或“改變寫密碼”命令后,應(yīng)將現(xiàn)在的密碼(如出廠時的全0)發(fā)出,然后進行密碼問詢。得到一個有效的密碼應(yīng)答響應(yīng) ACK后,再傳送一個全部8字節(jié)的新的密碼即可。用戶可在2 ms內(nèi),用一個數(shù)據(jù)應(yīng)答輪詢命令來判斷新密碼的寫操作是否已經(jīng)啟動,一個ACK表明寫操作未能成功啟動,而NO-ACK應(yīng)答則表明密碼正在寫入;另外,用 戶也可用一個重復(fù)的密碼應(yīng)答輪詢命令來檢查新的密碼是否已被正確的寫入。一個ACK應(yīng)答(通常10ms后)表示新的密碼已有效。

X76F100中的密碼可以修改,但無論如何都無法將其讀出。

5 應(yīng)用編程舉例

只要符合X76F100的數(shù)據(jù)通信規(guī)范,微控制器與其接口就不會有問題。下面給出的是AT89C51對X76F100進行寫操作的例程。讀操作或修改密碼的程序可照此編寫。稍加修改,該程序也可移植到其他微控制器與X76F100的接口通信中。

;將40H單元開始的8個數(shù)據(jù)寫入X76F100的第二頁。寫

;密碼在70H開始的8個單元中

;

;***AT89C51與X76F100接口***

SCL EQU P3.2

SDA EQU P3.3

CS EQU P3.4

;***起始條件與結(jié)束條件***

START:SETB SDA ;起始條件

SETB SCL

CLR SDA

CLR SCL

RET

STOP:CLR SCL ;結(jié)束條件

CLR SDA

SETB SCL

SETB SDA

RET

;***發(fā)送一個字節(jié)到X76F100中,發(fā)送數(shù)據(jù)在A中,返

;回的應(yīng)答在進們中***

WBYTE:MOV R7,#8

WBYTE1:RLC A

MOV SDA,C ;發(fā)送一位

SETB SCL

CLR SCL

DJNZ R7,WBYTE1

SETB SCL

MOV C,SDA ;讀應(yīng)答ACK信號

CLR SCL

RET

;***主程序***

MAIN: CLR CS

MOV R5,#8 ;置密碼重試次數(shù)

MAIN0:LCALL START ;發(fā)起始條件

MOV A,#100001000B ;寫控制字

LCALL WBYTE ;發(fā)送寫控制字

JNC MAIN0 ;NO-ACK,重來

MOV R6,#8

MOV R0,#70H ;8字節(jié)密碼首址

MAIN1:MOV A,@R0

LCALL WBYTE ;發(fā)送8位密碼

JNC MAIN0

INC R0

DJNZ R6,MAIN1

MOV A,#55H

LCALL WTYBE ;密碼問詢

JNC ERROR ;密碼有誤,轉(zhuǎn)錯誤處理

MOV R6,#8 ;密碼正確

MOV R0,#40H ;發(fā)送8字節(jié)數(shù)據(jù)

MAIN2:MOV A,@R0

LCALL WBYTE

JNC MAIN0

INC R0

DJNZ R6,MAIN2

LCALL STOP ;發(fā)停止條件,啟動寫操作

SETB CS

MAIN3:SJMP MAIN3 ;其他程序省略

ERROR:DJNZ R5,MAIN0

ERROR1:SJMP EPPOR1 ;出錯處理程序省略

結(jié)束語

X76F100 主要應(yīng)用在電子貨幣、身份識別、考勤管理等方面。在IC卡的應(yīng)用過程中,電路及編程設(shè)計都要考慮因插卡而造成的電路短路、接觸抖動等干擾因素。上述編程實 例沒有考慮X76F100因故障造成NO-ACK,程序進入死循環(huán)的問題。實際應(yīng)用編程時,應(yīng)注意解決。



關(guān)鍵詞: 單片機

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉