X76F100是一种暗码拜访安全监控器材,内部含有1个112×8位的保密数据阵列,对该阵列的拜访由2个64位的读写暗码来操控,暗码与数据经过I2C总线接口完结输入输出。正常情况下,X76F1000供给最少为10万次的擦写期限和最少100年的数据保存运用。
1 器材的特色
*可编程64位读写暗码保护;
*重试计数寄存器答应8次暗码实验,然后阵列清零;
*32位对复位的呼应(RST输入);
*8字节页写方法;
*最大1 MHz时钟速率;
*I2C总线接口;
*宽电压(3.0~5.5V)低功耗CMOS;
*10万次擦写和100年数据保存;
*多种(8脚PDIP、SOIC、MSOP、智能卡)外形封装。
2 封装与引脚阐明
图1是X76F100的各种封装方法。
引脚功用如下:
(1)串行时钟SCL。串行时钟输入端用业操控一切的数据输入和输出器材。
(2)串行数据SDA。SDA是一个漏极开路的串行数据输入/输出引脚。
(3)片选CS。CS为低电平时,X76F100处于作业方法;不然,处于等候方法。
(4)复位RS。RST是器材的复位脚。当RST被触发为高电平为CS为低电平时,X76F100将输出标准的32位“复位同步呼应”数据。
(5)电源Vcc,地Vss。在器材上应施加3.0~5.5V的作业电压。
3 器材的读写时序
3.1 I2C总线协议
X76F100支撑I2C二线制总线协议。数据发送以字节为单位,高位在前,低位在后,且在一切运用中X76F100都被作为从机。总线协议约好如下:
开端条件-当SCL为高电平时,SDA由高电平到低电平的跳变。
中止条件-当SCL为高电平时,SDA由低电平到高电平的跳变。
数据改动-SDA线上数据的状况只需在SCL为低电平时才干改动。
应 答ACK-用来标明数据传送成功的软件约好。发送器材在发送1个字节的8位今后,将开释总线,在额定的第九个时钟周期,接纳器将SDA线接至低电平,以应 答它接纳到了8位数据。此刻SDA的高电平被认为是一个NO-ACK(数据无效)。I2C的通讯时序等具体技术标准可参看有关手册。
3.2 指令代码
如表1所列,X76F100一共有5种操作,分别由不同的指令代码来挑选。器材操作时,指令代码有必要跟随在开始信号后宣布。
表1 指令代码
指令代码功 能
100S3S2S1S00页写
100S3S2S1S01页读
1111110改动写暗码
11111110改动读暗码
010101暗码间询
对其他的不合法指令代码器材将用NO-ACK作为呼应,然后回到等候方法。页面读与写指令中的S3S2S1S0为页面地址,代表14个8字节的页中的一个。对阵列的读或写总是从页的第一个地址开端。读操作能够不限制地持续,而写操作一次有必要是悉数8个字节。
3.3 页写与页读
页 写或页读时,应让CS和RST均坚持低电平,其作业流程如图2所示。写指令或读指令操控字节中包括所要写入的页地址,随后紧跟8字节的写操作或读操作密 码。暗码是否正确应经过一个暗码问询(开始信号+01010101)来判别,ACK答复标明暗码正确,NO-ACK答复则标明则输入的暗码有误。 X76F100内部包括一个重试计数器,对任何不正确的暗码重试计数器都将计数加1。当计数到8次溢出时,器材的存储器区和两个暗码会主动铲除为0(就像 刚出厂相同)。假如在重试计数器溢出曾经收到一个正确的暗码,则重试计数器复位并答应拜访器材。
暗码正确时,写操作 要求传送8个字节的数据,在最终字节传送今后宣布一个中止条件。这个条件发动非易失性写周期,数据从页的第一个地址开端写入。假如传送少于或多个8个字 节,则写周期不会被发动,页中的数据将坚持不变。在数据写入时(约10ms),器材对新的指令将不予应对(答复NO-ACK)。
假如是读操作则有必要从页的第一个地址开端,但一次读出的字节数可任意。读到最终一页时,器材将主动转回到第一页持续。在读完最终一个字节后,主机可不作ACK承认而直接宣布完毕信号,至此,此次读操作完结。
4 暗码的修正
器材从工厂中运出时一切的暗码都等于“0”,运用前应对其作必要的修正,别的,用户也有或许需求更改已知的暗码。它们可经过在正常的页面写操作过程中送一个“改动读暗码”或“改动写暗码”指令来完成。
图 3是修正暗码流程图。送出“改动读暗码”或“改动写暗码”指令后,应将现在的暗码(如出厂时的全0)宣布,然后进行暗码问询。得到一个有用的暗码应对呼应 ACK后,再传送一个悉数8字节的新的暗码即可。用户可在2 ms内,用一个数据应对轮询指令来判别新暗码的写操作是否现已发动,一个ACK标明写操作未能成功发动,而NO-ACK应对则标明暗码正在写入;别的,用 户也可用一个重复的暗码应对轮询指令来查看新的暗码是否已被正确的写入。一个ACK应对(一般10ms后)标明新的暗码已有用。
X76F100中的暗码能够修正,但无论如何都无法将其读出。
5 运用编程举例
只需契合X76F100的数据通讯标准,微操控器与其接口就不会有问题。下面给出的是AT89C51对X76F100进行写操作的例程。读操作或修正暗码的程序可照此编写。稍加修正,该程序也可移植到其他微操控器与X76F100的接口通讯中。
;将40H单元开端的8个数据写入X76F100的第二页。写
;暗码在70H开端的8个单元中
;
;***AT89C51与X76F100接口***
SCL EQU P3.2
SDA EQU P3.3
CS EQU P3.4
;***开始条件与完毕条件***
START:SETB SDA ;开始条件
SETB SCL
CLR SDA
CLR SCL
RET
STOP:CLR SCL ;完毕条件
CLR SDA
SETB SCL
SETB SDA
RET
;***发送一个字节到X76F100中,发送数据在A中,返
;回的应对在进们中***
WBYTE:MOV R7,#8
WBYTE1:RLC A
MOV SDA,C ;发送一位
SETB SCL
CLR SCL
DJNZ R7,WBYTE1
SETB SCL
MOV C,SDA ;读应对ACK信号
CLR SCL
RET
;***主程序***
MAIN: CLR CS
MOV R5,#8 ;置暗码重试次数
MAIN0:LCALL START ;发开始条件
MOV A,#100001000B ;写操控字
LCALL WBYTE ;发送写操控字
JNC MAIN0 ;NO-ACK,重来
MOV R6,#8
MOV R0,#70H ;8字节暗码首址
MAIN1:MOV A,@R0
LCALL WBYTE ;发送8位暗码
JNC MAIN0
INC R0
DJNZ R6,MAIN1
MOV A,#55H
LCALL WTYBE ;暗码问询
JNC ERROR ;暗码有误,转错误处理
MOV R6,#8 ;暗码正确
MOV R0,#40H ;发送8字节数据
MAIN2:MOV A,@R0
LCALL WBYTE
JNC MAIN0
INC R0
DJNZ R6,MAIN2
LCALL STOP ;发中止条件,发动写操作
SETB CS
MAIN3:SJMP MAIN3 ;其他程序省掉
ERROR:DJNZ R5,MAIN0
ERROR1:SJMP EPPOR1 ;犯错处理程序省掉
完毕语
X76F100 首要运用在电子钱银、身份辨认、考勤办理等方面。在IC卡的运用过程中,电路及编程设计都要考虑因插卡而形成的电路短路、触摸颤动等搅扰要素。上述编程实 例没有考虑X76F100因毛病形成NO-ACK,程序进入死循环的问题。实践运用编程时,应留意处理。