利用曼码调制的非接触IC卡读写程序编制
读操作时,是首尾相接、循环执行的。 识别数据起始标志和数据结束标志,是通过参数stepcnt进行的顺序化判别,故stepcnt为读操作的判据二(首尾检测指标)。 非接触IC卡在读操作时,第三个须要关注的问题是,如何确定1.5P、1P和0.5P三个特征判据?e5550和U2270B的射频振荡频率范围在100~150kHz,当位传送率选择RF/32时,即fOSC经过32分频后,上述的三个参数在不同的fOSC时,处于什么样的范围内呢?请见表3。 由上可知,只要1.5P、1P和0.5P的间期是不重叠的。根据采用100~150kHz和110~140kHz两组数据的对比可见,使用后者更合适。另一个办法是:通过试验,找到合适的间期指数,即可依此作为电平跃变的判别阈。这样,在确保识别能力的前提下,又从工艺上降低了对于振荡回路的频率精度要求。 根据上述振荡频率的变化范围110~140kHz,将编码变化的不同间隔转化成相应的间期指数,具体如表4所列。 1.5P、1P和0.5P是识别数据起始标志、位数据序列和数据结束标志的间期特征值。通过试验,它可用间期指数prdcnt反映,故为读操作的判据三(间期检测指标)。 三、 非接触IC卡的写操作 基站产生固定间隙的射频振荡,并通过控制两个间隙之间的振荡时间对位数据1和位数据0进行编码,持续地发送位数据流,完成写操作。写操作射频振荡波形示意如图4所示。 图4 写操作时的信号流 图4写操作时的信号流非接触IC卡插入基站后,射频线圈的耦合产生载波振荡,利用两次相邻停振之间的不同时间间隔,区分位数据1和位数据0的编码。停振间隙约在50~ 150域时钟;位数据0的持续振荡时间间隔为24域时钟;位数据1的持续振荡时间间隔为56域时钟。当停振间隙结束后,持续振荡的时间间隔高于64域时钟,则IDIC退出写操作方式。 考虑到写操作启动(start)时,有一频率稳定过程,写操作停止(stop)时,有一EEPROM的写入过程约16ms,于是将start和stop两个阶段均以20ms计。图4中标注的trnssqnc为发送顺序编号,启动阶段为0,位数据流发送阶段为1,发送结束阶段为2。 基站读写器上有三个引脚:bsout、bscfe和bsin,它们的含义见表5。 向e5550写位数据时,有四种合法的数据流,具体如图5所示。其中,OP为操作类型码,包含两位,10表示即将进行的是写操作,11为终止IDIC操作码。多IDIC操作情况下,用这一特性可逐一控制应答器,使待控应答器逐一产生稳定的射频振荡。当方式数据区的第28位(usePWD)为1时,在写操作码10之后,位数据流有33位,是按区写入的。其中的第一位为锁定位L,L=1表示该区为只读区,L=0表示该区为读写区,其余的32位为位数据。ADR为该位数据流的存放数据区,取值范围为0~7。 根据上述的载波振荡特性,利用carriercnst参数进行界定(见表7),读写操作过程中,均使用了2μs为单位的计数值作为定时单位,目的是要使用MCS-51系列的微控制器的定时器。 结束语 采用曼码调制的非接触IC卡读写程序便不难编制,实现IDIC的完整功能,还需要其他的一些程序模块,如数据存储格式、编码的加密算法,一次读/写操作中若出错,则须重复进行读/写操作、究竟重复几次、读/写操作过程在超时后退出等,这些均可根据应用对象的需求予以相应的解决。
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- Linux内核解读入门(11-09)
- Linux操作系统网络驱动程序编写(04-11)
- Linux系统对ISA总线DMA的实现(06-19)
- 基于MPEG-4的嵌入式多媒体监控系统中压缩/解压卡的设计与实现(10-15)
- Windows CE下驱动程序开发基础(04-10)