色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

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

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

          本文引用地址:http://cafeforensic.com/article/201808/384840.htm

          1 器件的特點(diǎn)

          *可編程64位讀寫(xiě)密碼保護(hù);

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

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

          *8字節(jié)頁(yè)寫(xiě)方式;

          *最大1 MHz時(shí)鐘速率;

          *I2C總線接口;

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

          *10萬(wàn)次擦寫(xiě)和100年數(shù)據(jù)保存;

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

          2 封裝與引腳說(shuō)明

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

          引腳功能如下:

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

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

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

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

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

          3 器件的讀寫(xiě)時(shí)序

          3.1 I2C總線協(xié)議

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

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

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

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

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

          3.2 命令代碼

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

          表1 命令代碼

          命令代碼功 能

          100S3S2S1S00頁(yè)寫(xiě)

          100S3S2S1S01頁(yè)讀

          1111110改變寫(xiě)密碼

          11111110改變讀密碼

          010101密碼間詢

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

          3.3 頁(yè)寫(xiě)與頁(yè)讀

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

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

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

          4 密碼的修改

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

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

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

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

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

          ;將40H單元開(kāi)始的8個(gè)數(shù)據(jù)寫(xiě)入X76F100的第二頁(yè)。寫(xiě)

          ;密碼在70H開(kāi)始的8個(gè)單元中

          ;

          ;***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ā)送一個(gè)字節(jié)到X76F100中,發(fā)送數(shù)據(jù)在A中,返

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

          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信號(hào)

          CLR SCL

          RET

          ;***主程序***

          MAIN: CLR CS

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

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

          MOV A,#100001000B ;寫(xiě)控制字

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

          JNC MAIN0 ;NO-ACK,重來(lái)

          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 ;密碼問(wèn)詢

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

          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ā)停止條件,啟動(dòng)寫(xiě)操作

          SETB CS

          MAIN3:SJMP MAIN3 ;其他程序省略

          ERROR:DJNZ R5,MAIN0

          ERROR1:SJMP EPPOR1 ;出錯(cuò)處理程序省略

          結(jié)束語(yǔ)

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



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

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉