公民身份證閱讀器(National ID Reader)是一種基于RFID技術(shù)的智能識別設(shè)備,用來讀取公民身份證的數(shù)據(jù)和顯示計算機(jī)中的資訊。本參考設(shè)計使用了意法半導(dǎo)體公司的μPSD32xx或μPSD33xx 8051微控制器內(nèi)核,以及CRX14非接觸耦合器,主要用于中國第二代公民身份證閱讀系統(tǒng)。本設(shè)計的閱讀器與PC之間使用USB總線或RS232接口進(jìn)行通訊,符合ISO14443 typr-B標(biāo)準(zhǔn)。
1、公民身份證閱讀器硬件描述
本參考設(shè)計系統(tǒng)可劃分為兩個主要部份:一是主控板;另一個是加強(qiáng)天線板。
(1)主控板
主控板由一個uPSD3234A控制單位、一個安全模組和一個電源模組組件組成。
其中,uPSD3234A通過一個USB/RS232接口與PC進(jìn)行通訊,并通過I2C總線控制讀卡器芯片的操作。如果使用安全模組,uPSD3234A也負(fù)責(zé)安全模塊的控制,并與其進(jìn)行通訊。
演示板上的安全模組為將來預(yù)留了擴(kuò)充功能。如果將來需要使用這些安全鑒定機(jī)制,用戶只要將他們的安全模組置入板上的預(yù)留空間,并對它們本身的固件進(jìn)行編程。安全模組的基本操作符合ISO7816標(biāo)準(zhǔn)(參見ISO7816標(biāo)準(zhǔn)和特定安全摸組數(shù)據(jù)手冊)。安全模組的時鐘既可通過uPSD3234A的PWM管腳提供,也可由外部晶體振蕩器直接提供。
電源模組為系統(tǒng)提供了一個穩(wěn)定的5V直流電壓源。用戶還可以通過電源連接器為系統(tǒng)提供9-12V直流電壓。為了兼容μPSD33xx家庭器件,本參考設(shè)計還提供了一個3.3V直流電壓。
(2)增強(qiáng)型天線板
如果發(fā)射功率增加了,CRX14與ID標(biāo)簽之間的距離也可以增加,接收到的信號也會放大。
(3)CRX14
CRX14是一個短范圍非接觸耦合器芯片,符合ISO14443 type-B標(biāo)準(zhǔn)。它能夠產(chǎn)生一個按照ISO14443 type-B標(biāo)準(zhǔn)進(jìn)行調(diào)制的13.56MHz信號。發(fā)送的數(shù)據(jù)用ASK方式調(diào)制,接收到的數(shù)據(jù)則是將終端負(fù)載變量信號解調(diào)所得。天線上產(chǎn)生的信號,采有一個847kHz的二進(jìn)制BPSK副載波譯碼,發(fā)送的ASK波有10%被調(diào)制。在發(fā)送和接收模式中,CRX14與終端之間的數(shù)據(jù)傳送速率為106Kb/s。
CRX14含有一個自動抗沖突機(jī)制,能夠檢測和選擇在CRX14有效范圍內(nèi)同時出現(xiàn)的多張ID卡。防沖突功能基于ST的微電子概率掃描法。CRX14還通過允許終端鑒定的FRANCE TELECOM技術(shù)提供抗克隆功能。CRX14帶有一個單片耦合器,易于設(shè)計成一臺具有鑒定功能的閱讀器,或建立一個低成本高水平的安全系統(tǒng)。CRX14內(nèi)部由四部分組成:
(1)I2C總線控制器管理與應(yīng)用主機(jī)間的串聯(lián),遵循400kHz的I2C總線規(guī)格,并控制對所有CRX14寄存器的讀或?qū)懖僮鳌?BR>(2)RAM緩沖器是雙向緩沖器,存儲所有即將發(fā)送至終端的請求幀字節(jié)和所有由答復(fù)幀終端發(fā)出的接收字節(jié)。
(3)發(fā)送器通過在外部天線上產(chǎn)生一個13.56MHz的射頻磁場來對量程內(nèi)的所有遙控終端上電。該磁場的10%可用來對流出的數(shù)據(jù)進(jìn)行ASK(振幅偏移鍵控制法)調(diào)制。
(4)接收器對信號進(jìn)行解調(diào)。天線上的信號由遙控終端的負(fù)載變量產(chǎn)生。接下來的信號則由847kHz的BPSK(二進(jìn)制相位偏移鍵控)副載波解碼器解碼。
本設(shè)計中,CRX14耦合器在以下兩端之間進(jìn)行接口:一邊為存儲器標(biāo)簽,采用I/O緩沖和ISO14443 type-B RF協(xié)議;另一邊為系統(tǒng)主控處理器,采用一個400kHz I2C總線。
CRX14耦合器芯片工作于5V電源,采用SO16N封裝,可嵌入終端設(shè)備中,是構(gòu)建非接觸讀卡器的理想方案,可以在操作范圍和系統(tǒng)成本之間進(jìn)行優(yōu)化。
(4)除錯程序
為了使天線電路良好地工作,需要對其進(jìn)行一些除錯處理。
(1)測試CRX14的輸出。RFOUT管腳上的信號應(yīng)該在頻率為13.56MHz的載波上進(jìn)行10% ASK調(diào)制。
(2)測試E類放大器的輸出。L7(電路原理圖上的測試點(diǎn)2)之後的信號應(yīng)該是經(jīng)過放大的RFOUT信號。如果沒有,就應(yīng)該檢查它周圍的晶體管和被動元件。
(3)使天線工作于最佳狀態(tài)。天線(Za)的輸入阻抗及其匹配線路應(yīng)該與E類放大器的輸出阻抗相匹配。由于電路板的材料可能存在一些細(xì)微的差別或其他問題,天線的性能可能有所不同,例如天線的感抗(La)和阻抗(Rp)等。因此,必需對天線的匹配電路進(jìn)行一些調(diào)整,以達(dá)到更高的性能。
由于這些差別并不大,天線匹配電路的調(diào)整非常簡單,只使用一臺示波器即可完成。使用二個可變電容器替代C26+C27和C28+C31。這兩個可變電容器的可調(diào)范圍應(yīng)該在C26+C27和C28+C31的原始值附近,即27pF和125pF。然后,仔細(xì)調(diào)節(jié)這兩個可變電容器,當(dāng)天線環(huán)路的電壓達(dá)到最大值時,就找到了正確的電容器容量值。
檢查濾波器和放大器。運(yùn)算放大器后面的信號(原理圖上的點(diǎn)3)的峰峰值應(yīng)該大約3.5V。RFIN管腳的信號應(yīng)該為4.6V(峰峰值)。
2、固件
由于本設(shè)計只是演示版,本文使用了只有次級閃存的μPSD。如果μPSD中的主、次級閃存都用上了,本設(shè)計就可能具有應(yīng)用內(nèi)編程(In Application Programming, IAP)功能。
運(yùn)行于μPSD的固件主要控制CRX14的操作,并與PC進(jìn)行交流。固件將會不斷地控制CRX14,將詢問信號發(fā)送給附近區(qū)域。如果該區(qū)域里有一個居民身份證,μPSD將會命令CRX14讀取卡片中的數(shù)據(jù),并通過USB或RS232把這些數(shù)據(jù)發(fā)送給PC。當(dāng)收到一個來自PC的寫入指令的時候,μPSD將會命令CRX14將數(shù)據(jù)寫入居民身份證里面。
3、居民身份證示范結(jié)構(gòu)
該示范中,居民身份證使用的是意法半導(dǎo)體公司的SRIX4K標(biāo)簽。它可以在37個區(qū)段內(nèi)存儲147字節(jié)數(shù)據(jù),并按照如下所述的方式進(jìn)行映射。事實上,SRIX4K標(biāo)簽為用戶提供了121個區(qū)段(484字節(jié))的存儲空間。其中,區(qū)段7-9(11個字節(jié))包括:
• ID號碼(BCD碼),9個字節(jié);
• 性別和民族:1個字節(jié)。性別碼中,1表示男人,0表示女性;民族代碼為從0到55的56個數(shù)字,分別代表56個民族。
• 有效期(BCD碼):1個字節(jié)。
區(qū)段10-13(16個字節(jié))包括:
• 名字(統(tǒng)一碼):最多8個字節(jié)(4個字符),并且是固定的;
• 出生日期(BCD碼):4個字節(jié);
• 發(fā)行日期(BCD碼):4個字節(jié)。
區(qū)段14-23(40個字節(jié))包括:
• 發(fā)行部門(統(tǒng)一碼):最多40個字節(jié)(固定);區(qū)段24-43(80個字節(jié)):
• 住址(統(tǒng)一碼):最多80個字節(jié)(40個字符)(固定)。
4、CRX14控制驅(qū)動程序
CRX14控制程序由四個文件組成,即upsd_i2c.c、upsd_i2cc.h、CRX14_fncs.c、CRX14_fncs.h。該驅(qū)動程序通過I2C接口控制CRX14的表現(xiàn)。
5、USB HID驅(qū)動程序
本設(shè)計的USB HID驅(qū)動程序符合USB規(guī)范1.1版,兼容1.5Mbit/s低速裝置,兼容其它人機(jī)接口(HID)裝置。其中,USB HID驅(qū)動程序頭端文件包括APP_INTR.H、uPSD_USB.H和USB.H,USB HID驅(qū)動程序的C信源文件包括USB_USER.C、uPSD_USB.C、uPSD_CFG.C和uPSD_DEC.C。
借助于接口開關(guān),固件可以在USB和RS232之間自動地轉(zhuǎn)變接口。如果該演示板是通過USB電纜連接到PC的,那么固件將選擇USB接口,否則就選擇RS232接口。
了解設(shè)計細(xì)節(jié),請訪問http://www.st.com/mcu/familiesdocs-80.html。