SmartCardSmartCard 接触式存储卡技术接触式存储卡技术电子与信息工程学院电子与信息工程学院SmartCardSmartCard提 纲q 接触式IC卡概述 基本构成、物理特性、工作原理q 接触式存储器卡芯片技术 典型卡型剖析:AT24C**系列 存储结构与芯片构成q 接触式存储卡的接口电路q 接触式存储卡的读写控制 典型卡型剖析:AT24C**系列 时序分析与读写程序SmartCardSmartCard什么是接触式IC卡?q所谓接触式IC卡就是在使用时,通过有形的金属电极触点将卡的集成电路与外部接口电路直接接触连接,提供集成电路工作的电源并进行数据交换的IC卡其特点是在卡的表面有符合ISO7816标准的多个金属触点SmartCardSmartCard 接触式IC卡的基本构成 q接触式IC 卡的实际构成可分为: 半导体芯片、电极模片、塑料基片SmartCardSmartCardSmartCardSmartCard接触式IC卡的工作原理q接触式接触式IC卡是如何获取工作电压的?卡是如何获取工作电压的? 接触式IC卡通过其表面的金属电极触点将卡的集成电路与外部接口电路直接接触连接,由外部接口电路提供卡内集成电路工作的电源。
q接触式接触式IC卡是如何与读写器交换数据的?卡是如何与读写器交换数据的? 接触式IC卡通过其表面的金属电极触点将卡的集成电路与外部接口电路直接接触连接,通过串行方式与读写器交换数据(通信)SmartCardSmartCardIC卡的触点尺寸和位置 q接触式IC卡有8个触点,即8个集成电路引脚,从C1到C8 SmartCardSmartCard触点功能定义SmartCardSmartCard触点辩识SmartCardSmartCard存储器卡存储器卡(Memory Card) q卡内嵌入的芯片多为通用EEPRO或Flash Memoryq无安全逻辑,可对片内信息不受限制地任意存取q卡片制造中也很少采取安全保护措施q不完全符合或支持ISO7816国际协议,而多采用2线串行通信协议(I2C总线协议)或3线串行通信协议(SPI协议)q功能简单,价格低廉、开发使用简便、存储容量增长迅猛,因此多用于某些简单的、内部信息无须保密或不允许加密(如急救卡)的场合 SmartCardSmartCard存储器的典型产品存储器的典型产品q存储器卡的代表产品: 美国ATMEL公司的 AT24系列:EEPROM,2线串行即I2C总线协议 AT93系列:EEPROM,3线串行协议 AT45系列: DataFlash ,达64M bit,SPI协议SmartCardSmartCardSerial EEPROMqAtmel is the leading supplier of Serial EEPROM devices supporting 2-wire, 3-wire, and SPI protocols, memory densities from 1K-bit through 1M-bit, voltages from 1.8V to 5.5V, and industry standard PDIP, SOIC, and TSSOP package types.AT24AT24系列:系列: 2-wire2-wireAT25AT25系列:系列: SPISPIAT93AT93系列:系列: 3-wire3-wireSmartCardSmartCardDataFlashqDataFlash® is the world's number one selling serial interface flash family. Introduced in 1997, Atmel's Dataflash families (45 series and the recently introduced 26 series) are feature rich, low pin count, sequential access families ideal for program code, data storage, Serial EEPROM replacement, and the next generation PC Bios Market. SmartCardSmartCardqThe simple SPI interface greatly reduces system pin counts, power consumption and switching noise. System design is greatly simplified with DataFlash, as all densities 1 Mbit to 128 Mbits (45 series), and 4 Mbit to 32M bit (26 series) require only 4 pins to connect to the system processor, controller or DSP. AT45AT45系列:系列: SPISPIAT26AT26系列:系列: SPISPISmartCardSmartCardAT24C**存储器卡剖析q芯片特点q存储结构q触点分配与引脚功能q芯片结构q接口电路q时序分析q读写控制SmartCardSmartCardAT24C**芯片特点q低电压/标准电压操作:1.8V~5V q2线串行链接通讯协议q支持7816-10同步协议q8B(01/02)、16B(04/08/16)、32B(32/64)页面写入方式q自定时写入周期q高可靠性:使用寿命100 000次写/删除,数据保留期100年 SmartCardSmartCardAT24C系列存储卡存储结构AT24C系列01A020408163264128256容量1Kbits2Kb4Kb8K16K32K64K128K256K内存组织形式128*8256*8512*81024*8256*82048*88192*816384*832786*8页写入方式8B8B16B16B16B32B32B64B64B通信协议ISO/IEC7816-3同步协议,双线串行接口工作频率1MHz(5V),1MHz(2.7V),400KHz(1.8V)工作电压5V,最低可至1.8VICC电流读:1mA,写:3mA工作温度0-70℃写/擦除次数大于1,000,000次数据保护100年应用领域数据存储SmartCardSmartCardAT24C**的存储单元地址AT24C01•容量:1Kbits/•存储结构:128B*8即按字节存储、读写•字节(存储单元)地址:0~127即00H~7FHAT24C064•容量:64Kbits/•存储结构:8KB*8即按字节存储、读写•字节地址 :0~8091即0000H~1FFFHSmartCardSmartCard触点分配和引脚功能C1:VccC2: (NC)C3:SCL串行时钟C4: (NC)C5:GNDC6:SDA串行双向数据传输C7: (NC)C8: (NC)SmartCardSmartCard芯芯片片结结构构SmartCardSmartCard实训1 接触式存储卡的读写操作 q用用万万用用表表测测试试接触式IC卡读写器的电源的正、负极及输出电压并记录在实训报告上。
q按标志连接接触式IC卡读写器的电源线及串口线,注注意意电电源源+5V+5V与与地地不不可可接接反反指指示示灯灯电电亮亮( (红色红色),),蜂鸣器鸣响为电源连接正确蜂鸣器鸣响为电源连接正确. .q打开接触式IC卡读写器读写操作软件DEMO,确认通信正常q将AT24C01卡插入接触式IC卡读写器插卡槽(卡触点向内、向下,指示灯转为绿色表示插卡到位),利用DEMO软件对AT24C01卡进行读/写/擦除操作,记录其容量、存储结构与操作条件SmartCardSmartCard实训小结qAT24C01的存储容量为1Kbits(128 Byte),存储结构为128×8bits(字节地址0~127或00H~7FH)qAT24C01按字节读写,所有字节的读/写/擦除均可任意进行这种卡被称为存储器卡 SmartCardSmartCard实训报告规范q实训目的q实训设备与器件q实训步骤与实训记录q实训总结q思考题q意见与建议SmartCardSmartCard任 务有若干户外气候监测站的监测数据(时间、温度、湿度、风力等)需要传送到气象局数据库中进行存储与分析,若采用AT24C**系列存储卡作为数据转存卡,任务1:将监测站存储的数据转存/写写到卡中任务2:从卡中读读出数据上传到气象局数据库中SmartCardSmartCard任务的硬件实现q接触式IC卡接口设备(读写器)应具备的基本功能:(1)实现与卡的数据交换,并提供相应控制信号;(2)通过触点向接触式IC卡提供稳定的电源和时钟;(3)IC卡插入/退出的识别与控制,实现“不带电插 /拔卡”;(4)为加密数据系统提供相应加解密处理及密钥管理机制;(5)提供相应外部控制信息,与PC等其他设备进行信息交换。
SmartCardSmartCard接触式IC卡卡座滑触式(Sliding)或摩擦式着落式(Landing)SIM卡座SmartCardSmartCard常开型与常闭型卡座q根据插卡检测状态开关的不同Ø常开型: 未插卡时,开关断开 插卡到位后,开关闭合Ø常闭型: 未插卡时,开关闭合 插卡到位后,开关断开SmartCardSmartCard接口电路q卡座:卡与MCU的物理连接;插卡到位检测q电源:上电控制q时钟提供上拉电阻q信号传输上拉电阻SmartCardSmartCard插卡上电控制程序Ø插卡上电程序PWRONpwron: clr SCL clr SDA;总线下电,保证端口不带电 lcall recog;插卡识别,Vcc=? clr SCL ;SCL=L,准备加载时钟 lcall delay-0.5ms ;使端口逻辑信号稳定 clr PWR ;加电,Vcc=? clr SDA ;SDA=L,准备传送数据 retSmartCardSmartCard插卡识别程序Ø常开型卡座插卡识别程序RECOGrecog: jb SW,recog ;无卡插入则等待, Vcc=? lcall delay-5ms;延时去抖 jb SW,recog ;再次判断,无卡插入则等待 ret ;确实有卡插入,返回SmartCardSmartCard插卡识别程序Ø常闭型卡座插卡识别程序RECOGrecog: jb SW,recog;无卡插入则等待,Vcc=? lcall delay-5ms;延时去抖 jb SW,recog ;再次判断,无卡插入则等待 ret ;确实有卡插入,返回SmartCardSmartCard任务的软件实现AT24C**AT24C**的读的读/ /写操作模式:写操作模式:q写操作写操作•写字节写字节((BYTE WRITEBYTE WRITE))•写页面(写页面(PAGE WRITEPAGE WRITE))q读操作读操作•现行地址读(现行地址读(CURRENT ADDRESS READCURRENT ADDRESS READ)) •随机寻址读随机寻址读((RADAM ADDRESS READRADAM ADDRESS READ)) •顺序读(顺序读(SEQUENTIAL READSEQUENTIAL READ)) SmartCardSmartCard写字节操作时序分析SmartCardSmartCardBYTE WRITE A write operation requires an 8-bit data word address following the device address word and acknowledgment. Upon receipt of this address, the EEPROM will again respond with a zero and then clock in the first 8-bit data word. Following receipt of the 8-bit data word, the EEPROM will output a zero and the addressing devi ce, such as a microcontroller, must terminate the write sequence with a stop condition.At this time the EEPROM enters an internally timed write cycle, tWR, to the nonvolatile memory. All inputs are disabled during this write cycle and the EEPROM will not respond until the write is completeSmartCardSmartCardLCALL STARTLCALL START ;;开始开始JC BACK1 JC BACK1 ;;确认总线有效确认总线有效MOV A,#0A0H MOV A,#0A0H ;;送器件地址到送器件地址到A A,,设置写设置写LCALL SHOUT LCALL SHOUT ;;输出器件地址到输出器件地址到ICIC卡卡JC FAULT1 JC FAULT1 ;;判断是否有应答判断是否有应答MOV A,@R0 MOV A,@R0 ;;从卡地址缓冲区取字地址从卡地址缓冲区取字地址LCALL SHOUT LCALL SHOUT ;;输出字地址到输出字地址到 ICIC卡卡JC FAULT1 JC FAULT1 ;;判断是否有应答判断是否有应答MOV A,@R1MOV A,@R1;;从写数据缓冲区取数据从写数据缓冲区取数据LCALL SHOUT LCALL SHOUT ;;输出字地址到输出字地址到ICIC卡卡JC FAULT1 JC FAULT1 ;;判断是否有应答判断是否有应答CLR CCLR C;;设置操作成功标志设置操作成功标志FAULT1:FAULT1: LCALL STOP LCALL STOP ;;停止停止BACK1BACK1::RETRETSmartCardSmartCard开始与停止时序开始与停止时序SmartCardSmartCardSTART & STOPqSTART CONDITION: A high-to-low transition of SDA with SCL high is a start condition which must precede any other command (refer to Start and Stop Definition timing diagram).qSTOP CONDITION: A low-to-high transition of SDA with SCL high is a stop condition.After a read sequence, the stop command will place the EEPROM in a standby power mode (refer to Start and Stop Definition timing diagram).SmartCardSmartCardSTART SETB SDASETB SDA ;;升高升高SDASDA SETB SCL SETB SCL ;; Verify bus availableVerify bus available,,校验总线有效校验总线有效 JNBJNB SDA, X40 SDA, X40 ;;jump if not highjump if not high,若,若SDASDA不为高则跳转到不为高则跳转到x40x40 JNB JNB SCL, X40 SCL, X40 ;;jump if not highjump if not high,若,若SDASDA不为高则跳转到不为高则跳转到x40x40 NOP NOP NOP NOP ;;保持数据建立延迟及周期延迟保持数据建立延迟及周期延迟 CLRCLR SDA SDA ;;降低降低SDASDA ACALL DELAY4us ACALL DELAY4us ;; 保持保持SDASDA为低,保持时间为低,保持时间hold delayhold delay CLR SCL CLR SCL ;;降低降低SDLSDL CLR C CLR C ;;clear error flagclear error flag,,清零错误标志清零错误标志 AJMP X41AJMP X41X40:SETB CX40:SETB C ;;set error flagset error flag,,置位错误标志置位错误标志X41:RETX41:RET SmartCardSmartCardSTOPq请自行参照时序编写STOP子程序。
SmartCardSmartCard器件地址q紧接着开始状态后需给卡一个8位器件地址(Device Address),用于设定读/写操作以及第9\10\11位字节地址 SmartCardSmartCard数据的输入输出ØSDSDAA总总线线上上的的数数据据仅仅在在SCLSCL低低电电平平时时间间周周期期可可能能改改变变SCLSCL上上升升沿沿时时数数据据输输入入芯芯片片((写写入入)),,SCLSCL下下降降沿沿时时数数据据从从芯芯片片输输出出((读读出出)所有地址和数据字以8位码串行输入、输出)所有地址和数据字以8位码串行输入、输出EEPROMEEPROM SmartCardSmartCard数据输出Ø当数据(包括地址、数据)由读写器送往AT24Cxx时,称为输出数据(写数据)Ø数据总是按字节(8位)逐位串行输出,每个时钟脉冲输出一位ØSDA总线上的数据应在SCL低电平期间改变(输出),在SCL高电平期间稳定程序实现 SHOUTSmartCardSmartCardSHOUT MOV B, #8MOV B, #8 ;;bit counterbit counter,,设置位计数器设置位计数器X42: RLC AX42: RLC A ;;move bit into CYmove bit into CY,,移一位到移一位到CYCY中中 MOV SDA, CMOV SDA, C ;;output bitoutput bit,,输出位输出位 NOPNOP NOP NOP ;;保持保持SCLSCL为低且使数据稳定为低且使数据稳定 SETB SCL SETB SCL ;;raise clockraise clock,,升高时钟升高时钟 ACALL DELAY4usACALL DELAY4us ;;enforce SCL highenforce SCL high,,保持保持SCLSCL为高为高 CLR SCLCLR SCL ;; drop clockdrop clock,,降低时钟降低时钟 DJNZ B, X42DJNZ B, X42 ;;next bitnext bit,,传送下一位传送下一位 SETB SDASETB SDA ;;release SDA for ACKrelease SDA for ACK,,释放释放SDASDA等待应答等待应答 ACALL DELAY4usACALL DELAY4us ;;enforce SCL low enforce SCL low ,,保持保持SCLSCL为低为低 SETB SCLSETB SCL ;;raise ACK clockraise ACK clock,,升高升高ACKACK时钟脉冲时钟脉冲 ACALL DELAY4usACALL DELAY4us ;;enforce SCL highenforce SCL high,,保持保持SCLSCL为高为高 MOV C, SDAMOV C, SDA ;;get ACK bitget ACK bit,,读入读入ACKACK位位 CLR SCLCLR SCL ;;drop ACK clockdrop ACK clock,,降低降低ACKACK时钟脉冲时钟脉冲 RETRETSmartCardSmartCard输入数据Ø当读写器从AT24Cxx的数据线上读取数据时,称为输入数据(读数据)。
Ø数据总是按字节(8位)逐位串行输入,每个时钟脉冲输入一位ØAT24Cxx的EEPROM在在SCL低电平期间将数据送往SDA总线,在SCL高电平期间SDA总线上的数据稳定,可供读写器读取程序实现 SHINSmartCardSmartCard确认应答SmartCardSmartCardACKNOWLEDGE All addresses and data words are serially transmitted to and from the EEPROM in 8-bit words. The EEPROM sends a zero to acknowledge that it has received each word. This happens during the ninth clock cycle. 所有地址和数据字以8位码串行输入/输出EEPROM,EEPROM在收到每个地址或数据码之后,置SDA于低电平作为确认应答,该确认应答发生于第九个时钟周期SmartCardSmartCard确认应答的程序实现串行输出字节子程序SHOUTØ当读写器向卡发送完8位数据后,程序将产生第9个时钟脉冲并将SDA线读入Cy位,此时Cy位的状态即为卡应答ACK。
ØCy=1:卡尚未接收到数据,不能进行下一步的操作;ØCy=0:卡已接收到数据,可以进行下一步的操作 SmartCardSmartCard小结q如何实现开始/停止-----START/STOPq什么是器件地址?如何设置器件地址?q如何实现串行输出一个字节(例如送8位地址/数据)? ---SHOUTq为什么需要在传送字节间加ACK应答?如何实现应答?q什么是内定时写入周期?如何满足内定时写入周期的要求?SmartCardSmartCard随机地址读操作时序SmartCardSmartCardRANDOM READqA random read requires a “dummy” byte write sequence to load in the data word address. Once the device address word and data word address are clocked in and acknowledged by the EEPROM, the microcontroller must generate another start condition.The microcontroller now initiates a current address read by sending a device address with the read/write select bit high. The EEPROM acknowledges the device address and serially clocks out the data word. The microcontroller does not respond with a zero but does generate a following stop condition .SmartCardSmartCard LCALL STARTLCALL START;;开始(空写)开始(空写) JC BACK2JC BACK2 MOV A,#0A0HMOV A,#0A0H;;送器件地址到送器件地址到A A,,设置空写设置空写 LCALL SHOUT LCALL SHOUT ;;输出器件地址到输出器件地址到ICIC卡卡JC FAULT2 JC FAULT2 ;;判断是否有应答判断是否有应答 MOV A,@R0 MOV A,@R0 ;;从卡地址缓冲区取字节地址从卡地址缓冲区取字节地址 LCALL SHOUT LCALL SHOUT ;;输出字地址到输出字地址到ICIC卡卡 JC FAULT2 JC FAULT2 ;;判断是否有应答判断是否有应答 LCALL STARTLCALL START;;开始(读)开始(读) MOV A,#0A1HMOV A,#0A1H;;送器件地址到送器件地址到A A,,设置读设置读 LCALL SHOUTLCALL SHOUT;;输出器件地址到输出器件地址到ICIC卡卡 JC FAULT2JC FAULT2;;判断是否有应答判断是否有应答 LCALL SHINLCALL SHIN;;读取读取ICIC卡的数据卡的数据, , MOV @R1,AMOV @R1,A;;送入读数据缓冲区送入读数据缓冲区 LCALL NAKLCALL NAK;;送送NO ACK NO ACK 给卡给卡 CLR CCLR C;;设置操作成功标志设置操作成功标志BACK2:BACK2:LCALL STOP LCALL STOP ;;停止停止FAULT2:FAULT2:RETRETSmartCardSmartCardSETB SDA ;; make SDA an input,使,使SDA为高,准备读为高,准备读PUSH BMOV B,,#8;; bit count,设置位计数器,设置位计数器L2:NOP;; enforce SCL low and data setup,保持,保持SCL为低为低且使数据稳定且使数据稳定NOPSETB SCL ;; raise clock,升高时钟,升高时钟NOP;; enforce SCL high,保持,保持SCL为高为高NOPMOV C, SDA;; input bit,输入位,输入位RLCA;; move bit into byte,将位移入,将位移入ACLRSCL;; drop clock,降低时钟,降低时钟DJNZ B, L2 ;; next bit,传送下一位,传送下一位POPBRET SHINSmartCardSmartCard小 结q如何实现串行输入一个字节(例如读8位数据)?---SHINq随机地址读是如何确定EEPROM字节地址的?---空写qNAK与ACK应答有何不同,如何实现?---NAKSmartCardSmartCard任务完成了吗?——提高质量Ø按字节读/写AT24C**卡的问题: 数据转存卡要求读/写大量数据 数据量较大时按字节读/写速度太慢Ø如何加速? 采用按页写入及顺序读SmartCardSmartCard写页面操作时序SmartCardSmartCardq写页面的过程与写字节类似,但读写器无需在每写一个字节后发出一个停止状态;而是每写一个字节(收到EEPROM的ACK确认后),接着传送下一个,直至写完一页。
最后读写器必须通过停止状态终止页面写序列 q如果数据字超过 一页,数据字地址将重复滚动,以前的数据将被覆盖SmartCardSmartCard写页面子程序流程SmartCardSmartCard顺序读操作时序分析SmartCardSmartCardq顺序读取由立即寻址读取或随机寻址读取开始,读写器每收到一个字节数据之后,通过“ACKACK”应答,EEPROM收到ACKACK之后,会继续将数据码地址+1(自动指向下一存储单元)并串行输出数据码q当达到存储地址极限时,数据码地址将重复滚动,顺序读取将继续;q当终止顺序读操作时,读写器不产生确认信号,而是使SDA总线处于高电平应答(NAKNAK),随后产生一个停止条件状态 SmartCardSmartCard顺序读子程序流程SmartCardSmartCard实训2 接触式存储卡读写控制q用万用表测试卡座的SW1、SW2引脚,识别是常开还是常闭卡座,并检测卡座质量根据卡座的类型编写插卡识别程序q用万用表判别9012的B、C、E脚q按电路原理图焊接好接触式存储卡接口电路,注意卡座的摆放方向应(入卡口朝外以保证足够的插卡空间);卡座各触点引脚与卡触点应一一对应;9012的集电极接卡座的VCC端,发射极接+5V电源,切勿接反。
未焊好电路者不得参加实训! 实 训 准 备(硬件)SmartCardSmartCardØ按硬件电路编写插卡上电控制子程序和下电控制子程序Ø按操作时序编写AT24C01A写字节子程序要求将单片机片内RAM(30H)~(37H)单元的8个数据写入卡中,被更新的卡存储单元地址存放于单片机片内RAM(20H)~(27H)单元Ø按操作时序编写AT24C01A随机地址读子程序要求将步骤(2)写入的数据重新从卡中读出并存放到单片机片内RAM(40H)~(47H)单元中实 训 准 备(软件)SmartCardSmartCard电路检查与程序编译(1)对照电路图用万用表检查电路,确认连接正确2)将MCS-51系列单片机仿真器的仿真头插入实验电路板上的40脚IC座3)在MCS-51系列单片机仿真开发系统中打开并编译实训程序SmartCardSmartCardSmartCardSmartCard上电控制功能的调试q未插卡时,用万用表测试卡座SW2、VCC引脚的电压,并记录在报告上q 插卡后,用万用表测试卡座SW2、VCC引脚的电压,并记录在报告上q在插卡上电控制子程序的结束语句设置断点,运行程序未插卡时,记录程序运行状态及卡座SW2、VCC引脚的电压;插卡后,,记录程序运行状态及卡座SW2、VCC引脚的电压。
q根据程序上述调试结果,判断电路及控制程序是否能实现“不带电插卡,插卡后上电的功能”若不能实现,请根据故障现象分析软、硬件故障原因,并排除故障直至上电控制模块调试正常 SmartCardSmartCard按字节写卡功能的调试(1)用通用读写器读原始数据并记录2)设置要写的卡地址与写入的数据(3)运行写字节子程序,查看Cy位是否为04)再次读卡中数据,与(1)中数据一一对应则写入正确5)若未能正确写入,根据现象判断故障原因,并通过调试定位与排除故障SmartCardSmartCardLCALL STARTLCALL START ;;开始开始JC BACK1 JC BACK1 ;;确认总线有效确认总线有效MOV A,#0A0H MOV A,#0A0H ;;送器件地址到送器件地址到A A,,设置写设置写LCALL SHOUT LCALL SHOUT ;;输出器件地址到输出器件地址到ICIC卡卡JC FAULT1 JC FAULT1 ;;判断是否有应答判断是否有应答MOV A,@R0 MOV A,@R0 ;;从卡地址缓冲区取字地址从卡地址缓冲区取字地址LCALL SHOUT LCALL SHOUT ;;输出字地址到输出字地址到 ICIC卡卡JC FAULT1 JC FAULT1 ;;判断是否有应答判断是否有应答MOV A,@R1MOV A,@R1;;从写数据缓冲区取数据从写数据缓冲区取数据LCALL SHOUT LCALL SHOUT ;;输出字地址到输出字地址到ICIC卡卡JC FAULT1 JC FAULT1 ;;判断是否有应答判断是否有应答CLR CCLR C;;设置操作成功标志设置操作成功标志FAULT1:FAULT1: LCALL STOP LCALL STOP ;;停止停止BACK1BACK1::RETRETSmartCardSmartCard按字节读卡功能的调试(1)用通用读写器在卡中写入原始数据。
2)设置要读的卡地址,清零读缓冲区3)运行读字节子程序,查看Cy位是否为04)若读缓冲区与(1)中数据一一对应则读卡正确5)若未能正确读卡,根据现象判断故障原因,并通过调试定位与排除故障SmartCardSmartCard LCALL STARTLCALL START;;开始(空写)开始(空写) JC BACK2JC BACK2 MOV A,#0A0HMOV A,#0A0H;;送器件地址到送器件地址到A A,,设置空写设置空写 LCALL SHOUT LCALL SHOUT ;;输出器件地址到输出器件地址到ICIC卡卡JC FAULT2 JC FAULT2 ;;判断是否有应答判断是否有应答 MOV A,@R0 MOV A,@R0 ;;从卡地址缓冲区取字节地址从卡地址缓冲区取字节地址 LCALL SHOUT LCALL SHOUT ;;输出字地址到输出字地址到ICIC卡卡 JC FAULT2 JC FAULT2 ;;判断是否有应答判断是否有应答 LCALL STARTLCALL START;;开始(读)开始(读) MOV A,#0A1HMOV A,#0A1H;;送器件地址到送器件地址到A A,,设置读设置读 LCALL SHOUTLCALL SHOUT;;输出器件地址到输出器件地址到ICIC卡卡 JC FAULT2JC FAULT2;;判断是否有应答判断是否有应答 LCALL SHINLCALL SHIN;;读取读取ICIC卡的数据卡的数据, , MOV @R1,AMOV @R1,A;;送入读数据缓冲区送入读数据缓冲区 LCALL NAKLCALL NAK;;送送NO ACK NO ACK 给卡给卡 CLR CCLR C;;设置操作成功标志设置操作成功标志BACK2:BACK2:LCALL STOP LCALL STOP ;;停止停止FAULT2:FAULT2:RETRETSmartCardSmartCard进阶项目q按页写入功能的实现。
q顺序读功能的实现qAT24C64卡的读写SmartCardSmartCard思 考q若采用AT24C64卡采集某户外气候监测站中的监测记录,每条记录包括4字节的日期、3字节的时间、 2字节的温度、1字节的湿度和1字节的风力则一张AT24C64卡可以存储几条监测记录?SmartCardSmartCard作业q根据时序画出AT24C64卡的按字节写程序流程图q为加大数据转存卡的容量及加快读写速度,拟采用DATAFLASH卡AT45D041请上网查找AT45D041的芯片资料、卡触点分配资料及其市场价格、购货渠道。