基于单片机的ic卡读写系统的实现内容摘要:

状态,以便准备接受新的命令。 在输出数据期间,任何“启动状态”和“停止状态”均 被屏蔽掉。 4) 处理数据模式 :这种模式是对 IC 卡芯片做内部处理。 芯片在第一个时钟脉冲的下降沿将 I/O 从 H状态拉为 L状态并开始处理。 此后芯片在内部连续计时计数,直到第 N个时钟脉冲之后的附加时钟脉冲的下降沿 I/O 线被再次置高,完成芯片的处理过程。 在整个处理过程中 I/O 线被锁定成低状态。 芯片的操作命令 1)命令的格式 :每条命令包含三个字节,其顺序如下 表 12: MSB 控制字 LSB MSB 地址字 LSB MSB 数据字 LSB B7 B6 B5 B4 B3 B2 B1 B0 A7 A6A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1D0 命令的传送总是从控制字节开始。 首先传送字节的最低位 LSB(即 B0)。 控制字节传送完毕以后,依次传送地址字节和数据字节,传送顺序均从各字节最低位开始。 在最后一位 D7传送完成之后,需要增加一个附加脉冲把 I/O 线置成高状态。 IC 卡 芯片具有七种命令,其格式和功能见下表 13 字节 1(控制) 字节 2(地址) 字节 3(数据) 功能 命令模式 30H 38 H 34 H 3B H 31 H 39 H 33 H 地址数 地址数 无效 地址数 无效 地址数 地址数 无效 输入数据 无效 输入数据 无效 输入数据 输入数据 读存储器 修改存储器 读保护存储器 写保护存储器 读加密存储器 修改加密存储器 比较校验数据 输出数据模式 处理模式 输出数据模式 处理模式 输出数据模式 处理模式 处理模式 2)有关命令的说明 : 读主存储器 :该命令是指读出主存储器的内容。 该命令的控制字为 (30H)。 对于每个字节来说总是从最低位开始读出。 从给定的字节地址 (N)开始,直到整个存储器的末尾。 在毕业论文:基于单片机的 IC 卡读写系统的实现 7 该命令输入以后,接口设备 IFD 必须提供足够的时 钟脉冲。 对于从地址 (N)开始读数据所需要的时钟脉冲的数量 M=(256N) 8+1。 对 主存储器做读操作不受限制。 读保护存储器 :该命令的控制字为 (34H).在连续输入 32 个时钟脉冲情况下,芯片将保护存储器内各位内容传送到 I/O 线上。 最后一个附加时钟将 I/O 线置为 H 状态。 对保护存储器进行读取操作不受限制。 读加密存储器 :该命令类似于读保护存储器那样,可以读出 4 个字节的加密存储器的内容。 在输出数据模式下,所需时钟脉冲的数量为 32。 其后再附加一个时钟脉冲将 I/O线置成高状态。 如果可编程加密代码( PSC)的校验不成 功 (除第 0 字节可读除外 ), I/O线总保持低状态。 修改主存储器 :该命令就是根据所传送地址字节数据,寻址主存储器的 EEPROM 字节,然后修改字节内容。 该命令的控制字为 (38H)。 在处理模式期间,可能有几种情况: —— 擦除和写入至少需要 5ms —— 只写入不擦除,至少需要 —— 只擦除不写入,至少需要 修改加密存储器 :该命令是根据所传送的字节数和要修改的数据,将加密存储器中相应字节的内容进行修改。 该命令的控制字为 (39H),该命令只能在可编程加密代码 (PSC)比较成功之后才能进行。 该命令的执行 时间和所需的时钟脉冲与修改主存储器的情况相同。 写保护存储器 :这一命令的执行过程包括一个把被输入的数据与在 EEPROM 中对相应数据进行比较的过程。 在确认一致的情况下,保护字位被写 0。 从而使得主存储器中的信息不可更改。 如果数据比较结果不一致,则保护字位的写操作将被禁止。 该命令所需时钟脉冲和执行时间与修改主存储器命令的情况相同。 存储芯片的选择 在此读写系统中,单片机必须扩展片外 E178。 PROM 用来存储关键信息。 工程上常用的E178。 PROM 的 28 系列的芯片具有编程简单、使用方便的特点,但是在此读写系统中其容量比实际要求的要大,若选用此系列的芯片不但能浪费绝大部分的存储单元,而且占用外部的存储空间,增加了译码线路,并且增加了线路板的面积。 因此,本系统选用美国 Microchip公司生产的 AT24C02 芯片,不但能最大限度地利用其容量,且不用地址译码,不占用外存空间。 该芯片存储容量为 256 字节,采用 I2C 串行总线协议与单片机通信,该芯片采用低功耗 CMOS 工艺制造,可以在无电源状态下长期可靠存储系统内重要数据,工作寿命可达毕业论文:基于单片机的 IC 卡读写系统的实现 8 106次。 当 IC 卡插入系统时,卡内的关键数据将存储在 AT24C02 芯片中,从而实现了重要数据的备 份,提高了读写器的可靠性与稳定性。 AT24C02 芯片还具有体积小巧的特点,并且采用特殊的工作时序,绝不会误写成功,具有高度的可靠性。 A01A22A23V s s4 S D A 5S C L 6Wp 7V c c 8 图 12 储存器 管脚图 SCL:串行时钟输入线。 数据发送或接收的时钟从该引脚输入。 SDA:串行数据 /地址线。 用于传送地址和发送与接收数据,为双向传输。 A0、 A A2:器件地址输入端。 WP:写保护端。 WP=1 为写保护,只能读出不能写入, WP=0 时器件允许进行正常的读写操作。 毕业论文:基于单片机的 IC 卡读写系统的实现 9 第二章 读写 系统的工作机制 通讯传输机制 本系统中设计的 读卡器与 IC 卡之 间通信按照一定的操作进行: 读卡器产生的 RF 场激活 IC 卡工作,之后 IC 卡等待来自 读卡器的命令, 读卡器传送寻卡命令, IC 卡接收到命令之后则传回响应信息。 时隙 算法 ,把时间分为离散的时间段(即时隙),时间段的个数一般有 16 个,每段时间对应一帧数据,一个时隙的大小一般规定的是 IC 卡传送自身 ID 号所用的时间,这种方法必须有全局的时间同步,在 系统中,所有的 IC 卡同步由读写器控制,时隙数的选择由随机数产生, IC 卡只在规定的相同的时隙开始才传送其数据帧,并在该时隙内完成传 送。 在时隙算法中,最大的问题是时隙个数的确定,隙数数量 N 对信道的传输性能有很大影响,如果有较多的 IC 卡处在读卡器的作用范围内,而时隙数有限,则系统的吞吐率就会下降很快。 在最坏的情况时,没有一个 IC 卡能单独处于一个时隙中发送成功,这时需要进行调整时隙数,以便有更多的时隙可以使用。 如果准备了较多的时隙,但 IC 卡较少,则会造成传输效率降低。 因此,在时隙算法的基础上,产生了动态时隙算法,该算法可动态的调整时隙数量。 动态时隙算法的基本思想是:读写器在等待状态中的循环时隙段内发送请求命令,该命令使处于工作 状态的 IC 卡同步,然后提供 1 或 2 个时隙给处于工作状态的 IC 卡使 用, IC 卡可以选择自己的传送时隙,如果在这 1 或 2 个时隙内产生了较多的数据冲突,则读写器就在下一个请求命令中增加可以使用的时隙数,直到不出现冲突为止。 命令处理流程 IC 卡进入 系统的工作场并获得足够的能量后,首先完成防冲突处理流程处理防冲突流程的命令,然后进入应用处理流程,处理应用层的命令。 卡片在与读写设备的通信过程中的状态见图 21: 毕业论文:基于单片机的 IC 卡读写系统的实现 10 P O W E R O F F状 态I D L E状 态R A E D Y状 态A C T I V E状 态H A L T状 态上 位 复 电R U P A W U P A 命 令应 用防 冲 突 循 环S E L E C T 命 令W U P A 命 令 图 21 IC 卡通信状态图 POWER OFF 状态:卡片缺少负载能量而处于断电状态。 IDLE 状态:卡片有电,可以侦听并识别寻卡命令 REQB、 WUPB。 在成功执行过寻卡命令后,卡可以进入 READY 状态。 READY 状态:可以应用法冲突方法得到 CID。 根据 CID,卡片被选中后,可进入 ACTIVE 状态。 ACTIVE 状态:卡片可执行应用操作,当接收到一个有效的挂起命令后,卡片进入 HALT 状态。 HALT 状态:在挂起状态,卡片仅对 WUPB 命令有反应。 防冲突处理流程 IC 卡感应到最小感应场后进入空闲状态,这时 ,卡被上电,只能响应寻卡 /唤醒( REQB/WUPB)命令,读写系统是与一个或多个 IC 卡通信时的主控方,它通过发出寻卡( REQB)命令来激活 IC 卡的通信活动,以便提示卡进行响应。 在防冲突期间,可能发生两个或两个以上都 IC 卡同时响应,也就是发生了冲突。 在完成防冲突处理后, IC 卡通信将完全处于 读写系统的控制下,读写系统只有一个接口,因此,每次通信只允许与一个 IC 卡通信。 防冲突处理方案是以时间槽为基础的,要求 IC 卡在时间槽内用最小的标识数据进行应答,时间槽的个数被参数化,范围从 1 到某一整 数 N, N 一般定义为 16,在每一时间槽内, IC 卡响应的概率也是可控制的。 在防冲突处理流程中, IC 卡仅被允许应答一次,从而,即便在 读写系统场中有多张卡,在一个时间槽内也仅有一张卡应答,并且 读写系统在这个时间槽内能捕获 IC 卡的标识,根据标识, 读写系统与被标识的卡建立一个通信通道。 IC 卡接收到正确的寻卡 /唤醒( REQB/WUPB)命令后进入预备接收( READYREQUESTED)状态,如果命令中应用类别号 (AFI)与自己的 AFI 相符,则继续判断时隙数 N,如果 N=1,则返回 ATQB,进入 READY_DECLARED 状态。 如果 N 不为 1,则在卡内产生一个 1~N 之间的随机数 R,如果 R=1,则返回 ATQB,进入 READY_DECLARED 状毕业论文:基于单片机的 IC 卡读写系统的实现 11 态。 如果 R1 则等待时隙数为 R 的 SLOT_MARKERL 命令后,发送 ATQB 命令,进入READY_DECLARED 状态。 此时,卡也可以响应 REQB/WUPB 命令,重新回到 READY_REQUESTED状态。 进入 READY_DECLARED 状态后,卡可识别 REQB/WUPB 命令、 ATTRIB 命令、 HALT 命令。 当接收到 REQB/WUPB 命令,则又重新回到 READYREQUESTED 状态。 当接收到休眠( HALT)命令,则进入休眠( HALT)状态,此时,卡之响应 WUPB 命令。 当接收到 ATTRIB命令,如果与自己的卡唯一标识符 PUPI 不同,则仍处于 READYDECLARED 状态,相同则返回响应,进入激活状态,此时,卡将只响应应用层命令和 DESELECT 命令。 数据传输的完整性和安全性 使用 识别技术传输数据时和容易遇上干扰,使传输的数据发生改变从而导致 传输错误。 通常使用数据检错与纠错算法来识别传输错误并启动校正措施。 在 识别的通信程过中最常用的检验方法就奇偶校验、循环冗余校验。 IC 卡应确认读卡器的身份,防止存储数据未被认可的读出或重写,而且读卡器也应确认 IC 卡的身份,以防止假冒和读入伪造数据。 在与安全有关的识别系统的应用中,例如出入系统或支付系统,必须采取安全措施来防止遭受恶意攻击。 认证过程 (a)读卡器发送查询命令给 IC 卡, IC 卡返回响应信息,响应信息中包含 一个随机数 Rb 给读卡器。 (b)读卡器产生一个随 机数 Ra,使用共享的密钥 K 和共同的加密算法 Ek,算出加密 数据块 TOKEN AB,并将 TOKEN AB 传送给 IC 卡。 (c) IC 卡接收到 TOKEN AB 后,进行解密,将得到的随机数 Rb’与原先发送的 Rb 比较,如果结果一致则读卡器获得了 IC 卡的确认。 (d) IC 卡发送另一个加密数据块 TOKEN BA 给读卡器, IC 卡产生一个随机数 Ra1,使用共享的密钥和共同的加密算法,算出加密的数据块 TOKEN BA,发送给读卡 器。 (e)读卡器接收到 TOKEN BA 并对其解密,若最后得到的随即数 Ra’与原先发送的随机数 Ra 相同,则完成了读卡器对 IC 卡认证过程。 加密的数据传输 :通信时的数据在传输时可能会受到非法的攻击。 识别系统在阅读器与应答器之间传输数据时,使用密钥和加密算法将传输数据(明文)变换为秘密数据(密文),可以有效防止攻击。 若不了解加密算法和密钥 K,攻击者无从解释其截获的密文。 通信命令及响应格式 毕业论文:基于单片机的 IC 卡读写系统的实现 12 21 ANTICMD CRC N Bytes 2Bytes ANTICMD:防冲突流程中的命令, N0 DATA CRC2。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。