www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]介紹基于Philips公司的基站芯片RC522的14443A協(xié)議讀卡器系統(tǒng)的設(shè)計與實現(xiàn);著重介紹了RC522應(yīng)用過程中防沖突處理的實現(xiàn)方法,給出了相應(yīng)的設(shè)計程序;指出對射頻卡進行操作時必須按照卡內(nèi)存儲器的組織形式進行讀/寫,并簡要介紹了RC522應(yīng)用時通信模擬接口的設(shè)置問題。

摘要 介紹基于Philips公司的基站芯片RC522的14443A協(xié)議讀卡器系統(tǒng)的設(shè)計與實現(xiàn);著重介紹了RC522應(yīng)用過程中防沖突處理的實現(xiàn)方法,給出了相應(yīng)的設(shè)計程序;指出對射頻卡進行操作時必須按照卡內(nèi)存儲器的組織形式進行讀/寫,并簡要介紹了RC522應(yīng)用時通信模擬接口的設(shè)置問題。
關(guān)鍵詞 14443A基站芯片RC522 防沖突PIC單片機


引 言
    14443 TypeA密耦合射頻卡標準廣泛應(yīng)用在門禁、身份識別和電子錢包等領(lǐng)域,而RC522作為Philips基站芯片產(chǎn)品系列的新成員,不僅兼容14443A/MIFARF標準,還具備低電壓(3.3V)、低功耗(休眠電流<lμA)、低成本、小尺寸等優(yōu)點,適用于智能儀表和手持設(shè)備的數(shù)據(jù)采集和處理。RC522對外提供多種標準的數(shù)字接口(如并行接口、SPI、I2C等),對其的控制通過對芯片內(nèi)部的4頁64個寄存器進行讀/寫來實現(xiàn)。由于寄存器控制涉及數(shù)字接口、防沖突和通信模擬接口等功能模塊,因此,基于RC522的讀卡器的設(shè)計難度主要體現(xiàn)在通過軟件與RC522片內(nèi)寄存器的交互,以實現(xiàn)對RC522與系統(tǒng)主控芯片間以及RC522與14443A射頻卡間通信過程的控制上。
    本文設(shè)計的讀卡器系統(tǒng)以PICl6F7x單片機作為主控芯片,選用MIFARE S50卡片,讀卡器與卡片間以106kbps速率通信,同時實現(xiàn)讀卡過程中的防沖突處理和對卡E2PROM塊內(nèi)容的讀/寫等功能。讀卡器內(nèi)部設(shè)置了Flash存儲器以存放卡數(shù)據(jù),在Flash容量滿的情況下可通過讀卡器的以太網(wǎng)口讀出全部數(shù)據(jù)到管理中心上位機,便于建立對卡數(shù)據(jù)的綜合管理系統(tǒng)。


1 硬件系統(tǒng)設(shè)計
   
讀卡器硬件框圖如圖1所示。

    單片機PICl6F7x通過SPI總線與RC522和Flash芯片AT45D011相連,同時用簡化的ISA總線連接以太網(wǎng)接口芯片C58900,以提供連接到局域網(wǎng)的能力。AT45D0ll存儲容量為lMb,可同時存儲7400多組MIFARE的E2PROM塊和UID號,提供了足夠讀卡器一天內(nèi)讀取的信息量的存放容量。對于RC522天線部分的設(shè)計,Philips公司有專門的手冊詳細介紹,本文不再贅述。RC522的SPI總線接口有其自身的時序要求。它只能工作于從模式,最高傳輸速率為10 Mbps,數(shù)據(jù)與時鐘相位關(guān)系滿足“空閑態(tài)時鐘為低電平,在時鐘上升沿同步接收和發(fā)送數(shù)據(jù),在下降沿數(shù)據(jù)轉(zhuǎn)換”的約束關(guān)系。PICl6F7x系列單片機的片上外設(shè)包括1個SSP模塊。該模塊可配置為SPI接口使用,通過相應(yīng)的寄存器可控制SPI接口的數(shù)據(jù)傳輸率、數(shù)據(jù)一時鐘相位天系等通信參數(shù)。本文中配置SSP模塊工作于SPI主模式下,時鐘為1/4單片機主頻,接收和發(fā)送數(shù)據(jù)都在時鐘上升沿發(fā)生。
    需要注意的是,由于RC522支持的數(shù)字接口形式多種多樣,因此芯片在每次復(fù)位時都會檢測外部引腳連接關(guān)系。對于SPI接口,RC522的相關(guān)引腳必須按照圖2所示的連接關(guān)系配置。

    除了通用的4條SPI信號線(時鐘線SCK、輸入數(shù)據(jù)線MOSI、輸出數(shù)據(jù)線MOSO和選通線NSS)以外,RC522要求額外的2個引腳I2C和EA分別固定接低電平和高電平。這2個引腳不參與SPI總線傳輸,只起設(shè)定RC522數(shù)字界面采用SPI接口的作用。另外,片選信號必須保證在寫入數(shù)據(jù)流期問為低電平,而在無數(shù)據(jù)流寫入時則為高電平;用戶不得為節(jié)省PIC單片機引腳資源而一直將NSS置為低電平。


2 軟件系統(tǒng)設(shè)計
   
相對于Philips公司生產(chǎn)的其他14443基站芯片(如RC500、RC530等),RC522簡化了內(nèi)部系統(tǒng)結(jié)構(gòu),去掉了片內(nèi)E2PROM。從而大大縮減了芯片命令集。另外,對載波調(diào)制電路,發(fā)送電路和解調(diào)、解碼電路的控制也相應(yīng)簡化,去掉了校準接收電路I時鐘、Q時鐘、校準發(fā)送與接收時鐘相位等繁瑣的操作。一般而言,單片機與RC522的通信流程如圖3所示。

    根據(jù)RC522和MIFARE卡問傳送的控制流數(shù)據(jù)的不同,通信過程中可能會出現(xiàn)不同的狀態(tài)。對各種狀態(tài)須作不同處理,這正是軟件系統(tǒng)開發(fā)的難度所在。下面給出RC522命令集中2個最基本命令(Tranceive和MFAuthe-nt)執(zhí)行過程中可能遇到的通信狀態(tài)及處理。這兩個命令分別實現(xiàn)向MIFARE卡發(fā)送/接收數(shù)據(jù)和加密認證功能。實際上,通過它們即可完成對MIFARE卡的所有操作,包括Request、Anticollision、Select、READ、WRITE等。
2.1 RC522命令集的實現(xiàn)
    RC522主要的狀態(tài)指示寄存器包括ComIrqReg、Er-rorReg、Status2Reg和FIFOLevelReg等。軟件處理的思路:通過ComIrgReg得到RC522內(nèi)部中斷狀態(tài);由中斷判斷RC522與MIFARE卡的通信流程信息,從而決定是否進行下一流程處理;若中斷指示有錯誤發(fā)生,則需進一步讀取ErrorReg的內(nèi)容,據(jù)此返回錯誤字。
2.1.1 Tranceive命令
    Tranceive命令的具體執(zhí)行過程;讀取RC522 FIFO中的所有數(shù)據(jù),經(jīng)基帶編碼和數(shù)字載波調(diào)制后通過通信接口以射頻形式發(fā)送到MIFARE卡;發(fā)送完畢后通過通信接口檢測有無MIFARE卡發(fā)送的射頻信號回應(yīng),并將收到的信號解調(diào)、解碼后放入FIFO中。分析以上Ttanceive命令執(zhí)行過程,可以得到處理該命令的算法流程圖,如圖4所示。

    為了處理MIIFARE卡在讀卡器產(chǎn)生的電磁場中激勵后,未完成處理義從激勵場中拿開的情況,軟件中啟用了RC522芯片內(nèi)部的定時器。若超過設(shè)定的時間未得到卡片應(yīng)答,則中止與卡的通信,返回“卡無反應(yīng)”的錯誤信息。
    從圖4中可以看出Tranceive命令的核心處理方法:根據(jù)相關(guān)通信狀態(tài)指示寄存器的內(nèi)容返回各種錯誤狀態(tài)字,若有位沖突錯誤,則進一步返回位沖突位置。Tranceive命令不處理面向比特的幀,這種幀只可能在MIFARE卡防沖突循環(huán)中出現(xiàn)。為了保持Tranceive命令對各種MI-FARE卡命令的普適性,該命令只完成幀的發(fā)送和接收,不對幀信息作處理,所有位沖突處理留在函數(shù)外進行。
    需要注意的是,Tranceive命令不能自動中止,在任何情況下從該命令返回時必須先執(zhí)行IDLE指令使RC522轉(zhuǎn)入空閑態(tài)。
2.1.2 MFAuthent命令
    RC522簡化了與MIFARE卡的加密認證操作,用一個MFAuthent命令代替了原來RC500需要的Authentl和Authent2兩條命令。MFAuthent命令執(zhí)行的最終目的在于開啟RC522的加密認證單元。該指令執(zhí)行成功后,RC522芯片與MIFARE卡間的通信信息將首先加密,然后再通過射頻接口發(fā)送。從本質(zhì)上講,MFAuthent是一條變相的Tranceive命令,其算法流程圖與圖4一致。但RC522芯片內(nèi)部已經(jīng)對通信過程中的各種通信狀態(tài)作了相應(yīng)處理,且該命令執(zhí)行完后自動中止,因此用戶只須檢測定時器狀態(tài)和錯誤寄存器狀態(tài)來判斷執(zhí)行情況。實際上,MFAuthent只可能有一種錯誤狀態(tài)(RC522與MI-FARE卡通信幀格式錯誤),此時該命令不能打開加密認證單元,用戶必須重新執(zhí)行認證操作。
    MFAuthent執(zhí)行過程中RC522將依次從FIFO中讀取1字節(jié)認證模式、l字節(jié)要認證的E2PROM塊號、6字節(jié)密鑰和4字節(jié)射頻卡UID號等信息,在命令執(zhí)行前必須保證這12字節(jié)數(shù)據(jù)完整地保存在FIFO中。認證模式有A密鑰認證和B密鑰認證兩種,一般選用A密鑰認證。
    一次MFAutllent認證只能保證對MIFARE卡的一個扇區(qū)中的4個數(shù)據(jù)塊解密,若要操作其他扇區(qū)的數(shù)據(jù)用戶還須另外啟動對該扇區(qū)的認證操作。
2.2 MIFARE卡操作指令
   
對MIFARE卡常用的操作指令包括查詢、防沖突、選卡、讀/寫E2PROM塊等。其中,防沖突指令是14443A協(xié)議的精華部分,實現(xiàn)難度較大。下面將重點介紹防沖突算法的軟件實現(xiàn)方法。
2.2.1 防沖突指令
    14443A標準定義的防沖突算法本質(zhì)上是一種基于信道時分復(fù)用的信道復(fù)用方法。在某一時刻若多個射頻卡占用射頻信道與讀卡器通信,則讀卡器將會檢測到比特流的沖突位置;然后重新啟動另一次與射頻卡的通信過程,在過程中將沖突位置上的比特值置為確定值(一般為1)后展開二進制搜索,直到投有沖突錯誤被檢測到為止。MIFARE卡內(nèi)有4字節(jié)的全球惟一序列號UID,而RC522防沖突處理的目的就在于最終確定MIFARE卡的UID。14443A標準的防沖突指令格式如下:

   
    其中:命令代碼“93”代表要處理的射頻卡UID只有4字節(jié);NVM表示此次防沖突命令的UID域中正確的比特數(shù);BCC字節(jié)只有在NVM為70(即UID的4字節(jié)都正確)時才存在,它表示此時整個UID都被識別,防沖突流程結(jié)束。
    防沖突算法流程圖如圖5所示。

    NVM初始值為20,表示該命令只含有2個字節(jié),即“93+20”,不含UID數(shù)據(jù),MIFARE卡須返回全部UID字節(jié)作為響應(yīng)。若返回的UID數(shù)據(jù)有位沖突的情況發(fā)生,則根據(jù)沖突位置更新NVM值??芍谒阉餮h(huán)中,隨著UID已知比特數(shù)的加入,NVM不斷增加,直到70為止。它表示除了“93+70”兩個命令字節(jié)外,還有UID0~UID3和BCC 5個UID數(shù)據(jù)字節(jié)。此時命令字節(jié)共有7個,防沖突命令轉(zhuǎn)變?yōu)榭ㄆx擇命令。
    防沖突流程中若遇到須發(fā)送和接收面向比特的幀的情況,則必須預(yù)先設(shè)置通信控制寄存器BitFramingReg。該寄存器可指明發(fā)送幀中最后一個字節(jié)和接收幀第一個字節(jié)中不完整的比特的位數(shù)。
2.2.2 讀卡和寫卡指令
    14443A協(xié)議中并沒有具體規(guī)定對射頻卡的讀寫操作方式,故對每種卡的讀寫操作都必須考慮該卡的存儲區(qū)域組織形式和應(yīng)答形式。MIFARE卡內(nèi)部存儲器是由E2PROM組成的,共劃分為16個扇區(qū),每個扇區(qū)4個塊,每塊16字節(jié)。對E2PROM的讀寫都以塊為單位進行,即每次讀/寫16字節(jié)。
    以寫卡指令為例,MIFARE卡要求有兩步握手,指令格式分別如下所述。
    Setp A:查詢塊狀態(tài)。

   
    若塊準備好,則MIFARE卡返回4比特應(yīng)答。若值為1010,則可進行下一步操作;若值非1010,則表示塊未準備好,必須等待直至塊準備好為止。
    Step B:寫數(shù)據(jù)。

   
    若寫入成功,則MIFARE卡返回4比特應(yīng)答,值仍為1010;若非lOl0,則表示寫入失敗。
    讀卡指令格式如下:

   
    若執(zhí)行成功,則MIFARE卡返回18字節(jié)應(yīng)答比特。需要注意的是,其中只有16字節(jié)是讀取的塊數(shù)據(jù),另外2個字節(jié)為填充字節(jié)。若字節(jié)數(shù)不為18,則可判斷讀卡操作錯誤。
    MIFARE卡數(shù)據(jù)加密時以扇區(qū)為單位,一次加密認證僅能操作一個扇區(qū)的數(shù)據(jù)。這為用戶實現(xiàn)“一卡通”功能提供了便利,用戶可在不同的扇區(qū)內(nèi)采用不同加密方式互不干擾地存放各種目的應(yīng)用數(shù)據(jù)。實際生活中常見的一種應(yīng)用是電子錢包,對卡的寫操作須按照一定的格式進行。一個塊的數(shù)據(jù)組成如下:

   
    注意:address值無意義,但value值寫入時必須在4~7字節(jié)中存入取反值。
2.3 讀卡器總體軟件設(shè)計
   
讀卡器的軟件設(shè)計思路是利用RC522的Tranceive命令作為標準函數(shù),通過調(diào)用此函數(shù)實現(xiàn)MIFARE卡操作指令。MIFARE卡的操作流程如圖6所示,其要點是將操作完成的卡轉(zhuǎn)入休眠態(tài),遞減可能發(fā)生沖突的卡片數(shù)目直至所有卡片操作完畢,此時防沖突函數(shù)無卡片應(yīng)答。

    RC522芯片在每次使用前都必須復(fù)位,除了在復(fù)位引腳NRSTPD輸入從低電平至高電平的跳變沿外,還必須向RC522的命令寄存器CommandReg寫人軟復(fù)位命令代碼0x0I?進行軟復(fù)位。在利用Rc522操作MIF’RAE卡之前,用戶必須正確設(shè)置芯片模擬部分的工作狀態(tài)。依筆者經(jīng)驗,一般情況下RC522調(diào)制、解調(diào)方式采用默認設(shè)置即可;在106 kbps通信速率下可正常使用,但必須保證天線驅(qū)動接口打開,可以通過設(shè)置Tx—controlReg寄存器實現(xiàn)。另外,由于14443A協(xié)議采用調(diào)制深度為100}《的ASK調(diào)制,這一點與默認設(shè)置不同,因此必須相應(yīng)設(shè)置TxASKRc毽來實現(xiàn)該種調(diào)制方式。
    RC522的通信參數(shù)設(shè)置很復(fù)雜,可以調(diào)控調(diào)制相位、調(diào)制位寬、射頻信號檢測強度、發(fā)送/接收速度等設(shè)置。在硬件調(diào)試過程中,用戶可根據(jù)實際情況選用適合自身使用的設(shè)置形式。


結(jié)語
   
本文設(shè)計的讀卡器在106 kbps通信速率下讀卡距離達50 mm,可以實現(xiàn)考勤、電子錢包功能;整個讀卡器采用低功耗元件,可以作為一個網(wǎng)絡(luò)終端、以電池作后備電源可靠地工作。對于Rc522的應(yīng)用,防沖突和通信接口的設(shè)置是重點。不同的射頻卡協(xié)議,防沖突流程各不相同,通信接口也會有差異,但修改Rc522的相關(guān)設(shè)置即可使物理接口滿足協(xié)議要求。對于防沖突處理,Rc522{支持基于比特沖突檢測的處理方式,不可處理類似144。13B的ALOHA時隙方式。(針對PIC16F7x開發(fā)的部分源程序見本刊網(wǎng)站www.mesnet.com.cn——編者注)

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在半導(dǎo)體制造中,《國際器件和系統(tǒng)路線圖》將5nm工藝定義為繼7nm節(jié)點之后的MOSFET 技術(shù)節(jié)點。截至2019年,三星電子和臺積電已開始5nm節(jié)點的有限風(fēng)險生產(chǎn),并計劃在2020年開始批量生產(chǎn)。

關(guān)鍵字: 芯片 華為 半導(dǎo)體

北京時間10月18日消息,富士康周二表示,希望有一天能夠為特斯拉公司生產(chǎn)汽車。眼下,富士康正在加大電動汽車的制造力度,以實現(xiàn)業(yè)務(wù)多元化。

關(guān)鍵字: 富士康 芯片 半導(dǎo)體 特斯拉

近日,中國工程院院士倪光南在數(shù)字世界??闹赋觯恢币詠?,我國芯片產(chǎn)業(yè)在“主流 CPU”架構(gòu)上受制于人,在數(shù)字經(jīng)濟時代,建議我國積極抓住時代機遇,聚焦開源RISC-V架構(gòu),以全球視野積極謀劃我國芯片產(chǎn)業(yè)發(fā)展。

關(guān)鍵字: 倪光南 RISC-V 半導(dǎo)體 芯片

新能源汽車市場在2022年有望達到600萬輛規(guī)模,為芯片產(chǎn)業(yè)帶來較大的發(fā)展機遇。2022年,我國芯片供應(yīng)比去年有所緩解,但仍緊張。中期來看,部分類別芯片存在較大結(jié)構(gòu)性短缺風(fēng)險,預(yù)計2022年芯片產(chǎn)能缺口仍難以彌補。這兩年...

關(guān)鍵字: 新能源 汽車 芯片

汽車芯片和半導(dǎo)體領(lǐng)域要深度地融合,不僅僅是簡單的供需關(guān)系,應(yīng)該是合作關(guān)系,把汽車芯片導(dǎo)入到整車廠的應(yīng)用。為緩解汽車產(chǎn)業(yè)“缺芯”,國內(nèi)汽車芯片產(chǎn)業(yè)正探索越來越多的方式完善生態(tài)。為了促進汽車半導(dǎo)體產(chǎn)業(yè)的快速發(fā)展,彌補國內(nèi)相關(guān)...

關(guān)鍵字: 智能化 汽車 芯片

汽車“缺芯”之下,國產(chǎn)芯片的未來是一片藍海。在過去很長一段時間內(nèi),“缺芯”“少魂”是我國汽車企業(yè)的短板弱項,車規(guī)級芯片、操作系統(tǒng)的自主可控程度不高。其中,我國車規(guī)級芯片自給率小于5%,且多以低端產(chǎn)品為主,關(guān)鍵芯片均受制于...

關(guān)鍵字: 智能化 汽車 芯片

之前,美國運營商AT&T曾宣布,今年年底推出5G網(wǎng)絡(luò),而隨著時間的推移,2019年會有越來越多的國家和地區(qū)商用5G網(wǎng)絡(luò),在這樣的大環(huán)境下,芯片廠商提前布局也就是情理之中的事情了。

關(guān)鍵字: 運營商 5G網(wǎng)絡(luò) 芯片

日本車用MCU大廠瑞薩電子發(fā)布公告稱,該公司將于8月31日完全關(guān)閉滋賀工廠,并將土地轉(zhuǎn)讓給日本大坂的ARK不動產(chǎn)株式會社。瑞薩電子曾在2018年6月宣布,滋賀工廠將在大約兩到三年內(nèi)關(guān)閉,該工廠的硅生產(chǎn)線已于2021年3月...

關(guān)鍵字: MCU ARK 芯片

目前,各式芯片自去年第4季起開始緊缺,帶動上游晶圓代工產(chǎn)能供不應(yīng)求,聯(lián)電、力積電、世界先進等代工廠早有不同程度的漲價,以聯(lián)電、力積電漲幅最大,再加上疫情影響,產(chǎn)品制造的各個環(huán)節(jié)都面臨著極為緊張的市場需求。推估今年全年漲幅...

關(guān)鍵字: 工廠 芯片 晶圓代工

伴隨新能源汽車、自動駕駛技術(shù)等的迅速發(fā)展,汽車芯片正成為業(yè)內(nèi)熱議的話題之一,要協(xié)調(diào)穩(wěn)定市場、確保芯片供應(yīng)。從供給上來看,要梳理關(guān)鍵領(lǐng)域芯片供需情況,引導(dǎo)國外汽車芯片企業(yè)來華投資,建立芯片及重要原材料應(yīng)急儲備機制。在穩(wěn)定市...

關(guān)鍵字: 新能源 汽車 芯片

通信技術(shù)

120574 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉