新闻  |   论坛  |   博客  |   在线研讨会
曼码调制的非接触ID卡通用读卡程序编制
tvb2058 | 2007-12-08 13:17:02    阅读:2049   发布文章

非接触ID卡技术已广泛应用于诸如家居、公司办公通道,各种限权进入场所的门禁,乃至宠物识别等领域。因其使用便捷、安全,已引起有关技术领域工程师的更多关注。

  图1是采用H4001/U2270B的非接触卡读卡系统示意图。非接触ID卡是一种接口电路,它通过卡上配置的发射机应答器振荡线圈与基站振荡线圈的耦合取得能量,通过必要的通信软件配合,保证卡与基站间实现数据交换。

图11H4001/ U2270B器件组的基本性能
(1) U2270B基站读写器的基本性能
U2270B是德国Temic公司生产的射频卡基站读写专用芯片,其载波频率fOSC范围为100 kHz~125 kHz,典型fOSC为125 kHz,此时的数据传送速率为5 kb/s。U2270B适用的调制方式为曼彻斯特码和双相位码,可由5 V的稳压电源供电,有与微控制器兼容的接口。
(2) H4001射频只读晶片基本性能
H4001是瑞士钟集团生产的低频射频只读应答晶片,其载波频率为50 kHz~400 kHz,典型的工作频率为125 kHz。它有64位列阵紫外线可编程存储空间,CMOS低功耗。有两种调制方式的产品:曼彻斯特码方式和移相键控码。
2设计简介
由于H4001晶片具有与U2270B基本相同的工作频率和调制方式,因此用它们组成一个ID识别系统是非常合适的。目前,市面使用的ID卡多以JK4001、H4001、EM4001等居多,其结构和工作原理都一样,故只掌握一种便可通用了。
H4001内部阵列存储空间结构如图2所示。
图2由图2可知,H4001内部64位信息由5个区组成:9个引导位“1”,10个行奇校验位“P0~P9”,4个列奇校验位“PC0~PC3”,40位数据位“D00~D93”和一个停止位“0”。
9个引导位是出厂就掩膜到晶片内的,其值为111111111。当它输出数据流时,首先是输出9个引导位,然后是10组由4个数据位和1个行奇校验位组成的数据串,之后是1组由4个列奇校验位组成的数据串,最后是停止位“0”。
“D00~D13”是一个8位的晶片版本号或ID识别码。“D20~D93”是4组32位的晶片信息,即卡号。
当H4001得电初始化后,便依次将这64位数据反复输出,直到卡片离开基站读写器失电为止。
曼码解码方式如图3所示。
图3由图3可知,采用曼码调制数据,位数据"1"对应着电平下跳,位数据"0"对应着电平上跳。在一串传送的数据序列中,两个相邻的位数据传送跳变时间间隔应为1P。若相邻的位数据极性相同,则在该两次位数据传送的电平跳变之间,有一次非数据传送的、预备性的(电平)"空跳"。
电平上跳、电平下跳和两个相邻的同极性位数据之间的预备性空跳是确定位数据传送特征的判据。
位传送时钟周期如图4所示。
图4由图4可知,在曼彻斯特码调制方式下H4001每传送一位数据的时间是64个振荡周期,其值由RF/n决定。若载波频率为125 kHz,则每传送一位的时间为振荡周期的64分频,故位传送时间
1P=64/125 kHz=512 μs
曼码方式下的数据传送方式如图5所示。
图5由图5可以看出,晶片按曼码方式输出的数据中,前9位是引导位,10~63是54位数据,第64位是最后一位停止位0,每一位的位传送周期都是512 μs,再结合图3、图4,便可清淅、方便的编写读码程序了。
3软件设计
弄懂了上面的原理后,便可进一步编写软件了。
首先,要检测9个引导位,因为卡一旦靠近基站便开始反复发送数据了,而没法直接接收数据,只有检测到引导位并正确接收后才可往下接收数据。引导位之后是54位的数据串,没法直接接收和暂存,只能5位一个字节的存储(有4个数据位和1个奇效验位),这样方便接收又便于校验。
一个位周期为1P=512 μs,而数据跳变在0.5P=256 μs。前半周期确定一个电平,加上后半周期的电平跳变类型便可判断是数据0或1。由于射频场信号的强弱和外界的影响数据位传送周期不是很稳定的,根据经验得出:490μs<1P<520μs;230μs<0.5P<280μs。
C语言源代码程序(见本刊网站,www.dpj.com.cn)已在工程中应用过,效果可靠,解得一个卡号用时小于70 ms。感兴趣的朋友如果想进一步了解可通过Email(yf432131@sohu.com)与我联系。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客