本文主要讨论的是ARM处理器与IC卡接口的时序匹配问题,特别是在使用NXP公司的TDA8007 IC卡读卡芯片时如何进行有效的通信。TDA8007是一款设计用于满足ISO7816、EMV和GSM 11.11标准的读写接口芯片,能处理两个IC卡接口,并提供电源管理、ESD保护以及接口短路处理等功能,适用于各种电压范围的IC卡应用。
在传统的解决方案中,通常会在ARM处理器和TDA8007之间加入一个51单片机作为中介,利用51单片机来控制TDA8007,这样可以确保时序匹配,同时也节省了ARM处理器的资源。然而,这种方案并不适用于所有情况,特别是当ARM处理器如LPC2220这样的32/16位ARM7TDMI-S CPU被采用时。
LPC2220微控制器不支持直接与TDA8007的时序兼容,因为TDA8007最初是为51核单片机设计的。因此,需要寻找新的解决方案来调整ARM处理器的读写总线时序以适应TDA8007。文章提出了一种创新的方法,即通过组合电路和一个独立的GPIO来调整时序,以确保ARM处理器能够正确地控制TDA8007。
在基于ARM核心的嵌入式系统中,程序通常存储在外部NAND Flash中。当TDA8007接入总线时,如果采用总线复用的方式,会使得程序运行在内存中,需要11个GPIO来控制TDA8007的读写。但本文选择非总线复用的方式,避免了这个问题。
在时序比较方面,TDA8007的读写时序与ARM处理器的总线时序存在差异,这是由于它们设计目标的不同。ARM处理器的总线时序通常更复杂,而TDA8007则更侧重于与51单片机的兼容性。通过调整ARM处理器的GPIO输出,可以模拟出与TDA8007相匹配的时序,从而实现两者之间的有效通信。
总结来说,文章重点在于解决ARM处理器(如LPC2220)与TDA8007 IC卡读卡芯片之间的时序匹配问题,提出了使用组合电路和GPIO的解决方案,避免了额外的51单片机中介,提高了系统的效率和资源利用率。这对于嵌入式金融系统产品的开发,尤其是需要通过EMV认证的应用,具有重要的参考价值。