H4001非接觸式IC卡讀卡程序的研究
文章出處:http://hz-huyue.com 作者:朱 偉、薛有為、高 玉 人氣: 發表時間:2011年10月24日
[文章內容簡介]:H4001非接觸式IC卡讀卡程序的研究
【摘 要】 介紹了基于P4095芯片的一種非接觸式IC卡(H4001)的讀卡機制,并提出了一種曼徹斯特碼的解碼方法。
IC卡(Integrated Circuit Card)經過20多年的發展,已廣泛應用于金融、電信、保險、商業、國防、公共事業等領域。IC卡按外部接口設備的連接方式可分為接觸式IC卡和非接觸式IC卡(又稱射頻卡)兩類。接觸式IC卡,就是IC卡與外界進行數據通訊時,芯片的電極觸點必須與IC卡讀寫設備直接連接;非接觸式IC卡在使用時則無須與IC卡讀寫器設備直接連接,而是通過無線電波或電磁感應的方式實現與IC卡讀寫設備的數據通訊。在刷卡速度要求高,用卡環境惡劣,污染嚴重等環境下,非接觸式IC卡有著它特有的優勢。
我們利用EM公司(EM MICROELECTRONICMARIN SA,2074 MARIN-Switzerland)生產的P4095芯片,制作了IC卡讀頭,并在此基礎上,編寫了EM公司H4001非接觸式IC卡的讀卡程序。
1 工作原理
讀卡的工作原理如圖1所示。
當IC卡(H4001)靠近讀卡器時,圖1中的兩個回路在125kHz時產生諧振。IC卡從中獲取能量,連續地向外發送信號。P4095接收信號,送單片機分析處理該卡的信息。
2 P4095芯片介紹
該芯片集成相同步邏輯系統,可以得到與線圈諧振頻率相同的載波頻率;不需外部晶振;載波頻率為100到150kHz;支持多種IC卡傳輸協議,如H400X,P4150,P4069等;封裝形式為SO16或PSOP216。用P4095制作的射頻卡讀頭可完成下列功能:(1)載波頻率驅動線圈。(2)對可寫卡磁場的調幅調制。(3)對線圈上由卡引發的調制信號進行幅度解調。(4)與微處理器通過簡單的連線相互通信。
芯片的操作由SHD和MOD控制。SHD為高時進入睡眠模式,在芯片供電之后,SHD必須為高以對芯片進行正確的初始化,然后SHD再接低電平,這樣芯片可以發出射頻場,由解調模塊將線圈上讀到的信號由DEMOD__OUT輸出。MOD接地使芯片進入只讀狀態。應用圖如下圖2所示。
3 H4001原理
H4001是在異頻無線傳送中應用的CMOS集成電路。電路由放在磁場中的線圈驅動,并從中得到時鐘脈沖。開關調制電流可以送回包含在激光可編程邏輯器件中的64位信息。
串行輸出的數據包括9位起始位,40位信息位,14位校驗位,1位停止位。
而這64位信息是通過曼徹斯特碼調制的。邏輯“1”是在一個位周期內產生一個下降沿,邏輯“0”是在一個位周期內產生一個上升沿。64位曼徹斯特碼如圖3所示。一旦發送,就將連續地發。圖4所示的就是邏輯電平與曼徹斯特碼之間的關系。從圖中可以看出64位信號連續循環輸出的情況。
4 曼徹斯特碼解碼方法
根據曼徹斯特碼的特點,得知曼徹斯特碼中高電平持續的時間有兩種情況:半個位周期和一個位周期。高電平持續一個位周期的情況是因為其中前面半個位周期高電平屬于前一位邏輯“0”所有,后半個位周期高電平是屬于后一位邏輯“1”所有。根據這個特點,我們分析圖5示的波形,首先找一個下跳,然后找一個上跳,目的是確認是否接收到信號(曼徹斯特碼)。而后進入一個延時階段t(延時t大于半個位周期,小于一個位周期)。接著讀入信號,它必須是“1”。那么這個“1”就肯定是數據序列中某一位(如果不是“1”,就從頭再來)。接下來就是找該位“1”的下跳,找到之后又延時t,繼續讀入下一位數據。重復找跳變和延時的操作,就可以正確地讀出曼徹斯特碼序列。由于H4001在電磁場中是連續循環地輸出它的信息的,為了確保完全讀入卡上64位的信息,我們每張卡都讀128位。
根據H4001的特性,我們知道它的數據序列是以9個連續的“1”開始的,然后就是數據和校驗位。因此,只要在上面128位信息中找到9個連續的“1”,并且分析其后的數據位和行列校驗位就可以確定這一張卡的信息。
5 研究結果
在試驗的過程中,根據以上原理編制的程序每次都能正確讀取卡上的信息。
經測量,程序讀卡距離為9.5cm~11.5cm。讀卡
時間為0.086s。(測量方法:把卡放在線圈上,開啟程序,正確讀到信號就停止。)
6 程序流程圖
程序流程圖見圖6。程序略。
參考文獻
1 孫涵芳,徐愛卿.MCS-51、96系列單片機原理及應用.北京:北京航空航天大學出版社,1988
本文關鍵詞:H4001非接觸式IC卡讀卡程序的研究