<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Cortex-M0+的RFID讀卡器模塊設計

          Cortex-M0+的RFID讀卡器模塊設計

          作者: 時間:2014-11-08 來源:網絡 收藏

            3.2 檢測 15693

          本文引用地址:http://www.ex-cimer.com/article/265052.htm

            檢測15693協(xié)議主要包含軟復位、初始化15693協(xié)議層、應用15693協(xié)議設置、獲取15693卡系統(tǒng)信息。SLRC61O軟復位就是將內部E2PROM 中保存的寄存器的默認值重新加載到寄存器中。一般初始化的時候會用到,當然切換協(xié)議的時候也會用到。初始化15693協(xié)議層主要完成參數結構體長度檢查和私有變量初始化。應用15693協(xié)議設置是根據參數中設置的卡的類(PHHAL_Hw_CARDTYPE_ISO15693)來加載該協(xié)議下的寄存器的默認配置,包括調制深度、調制方式、超時時間等。檢測15693流程圖如圖5所示。

            

           

            圖5 檢測15693流程圖

            3.3 Get System lnfo命令

            Get System Info是ISI15693的可選命令,主要用來檢索卡片的基本信息。請求和應答幀都是有幀頭和幀尾的,如下所示。

            

           

            去掉幀頭幀尾 一共有4個字段,其中一個字段(8字節(jié)的UID)是可選的。它的響應信息格式如下所示,其中斜體部分的字段表示,只有在響應信息中有該標志,才有這個字段的信息。

            

           

            由于它發(fā)送的字節(jié)少(在不加UID的情況,加 上CRC才4字節(jié)),而且只要卡在場中就能使用,比較方便用示波器抓波形以分析收發(fā)的數據是否正常。

            獲取15693卡系統(tǒng)信息的寫法有兩種:第一種是用phpalSlil5693_Sw_Exchange和卡片交換信息的時傳兩字節(jié)數據“0x02 0x2B”,并設發(fā)送長度為兩字節(jié);第二種是用phpalSlil5693_Sw_Exchange和卡片交換信息的時傳兩字節(jié)數據“0x2B”,并設發(fā)送長度為一字節(jié)。從本質上來講,這兩種做法的最終結果都是發(fā)了同樣的數據,不同之處在于它們的發(fā)送方式。phpalSli15693_Sw_Exchange的第二個參數有一個是寫選項,對于第一種,要將其設為PH_EXCHANGE_LEAVE_BUFFER_BIT,第二種設為PH_EXCHANGE_DEFAULT,還得將0x02設置到第一個參數的bFlags上。另外在使用phpalSli15693_Exchange時要特別注意,在該函數前面用phpalSli15693_SetConfig函數設置超時。假如沒有設置該函數,那么每次只能收到卡片返回的前5位正確數據。獲取15693卡系統(tǒng)信息流程圖如圖6所示。

            

           

            圖6 獲取15693卡系統(tǒng)信息流程圖

            3.4 SPI通信

            采用宏定義加數組的方式來配置I/O引腳,這種方法比較靈活,可移植性很強,又方便代碼維護。LPC800系列加了一個開關矩陣,將可轉移功能通過開關矩陣分配給引腳PIO0_0~PIO0_17,使用起來很方便。使用的時候需要先查可轉移功能所對應的SWM 引腳分配寄存器。找到后先將原來的數據清除,再寫上新分配的引腳。操作過程中要謹慎,絕不能修改不該動的位。

            這里初始化調用的庫函數,將SP10設置為主機模式,為確保通信可靠在SSEL置位和數據幀起點之間、制數據幀末尾和SSEL解除置位之間、相鄰數據幀之間插入2個SPI時鐘周期,兩次傳輸之間SSEL解除置位的最短時間為3個SPI時鐘周期。

            4 模塊調試和測試

            4.1 調試方法

            由于15693的編碼方式是SOF信號后每一定長度代表一定量的信息,所以可以先取信號的開始時間,然后計算下一個的時間,去看示波器每一個時間段的波形,記錄下來然后去整體解析。

            抓到數據后開始解析數據,比如獲取卡片信息的命令(0x02 0x2B 0x26 0xA3),它總共有4個字節(jié),最后兩個字節(jié)是CRC校驗。通過調程序可以看到VCD發(fā)的實際命令(0x02 0x2B),而CRC則是硬件算好直接發(fā)的,所以通過調程序無法看到它。

            4.2 測試

            模塊的實際大小為45 mm×45 mill,模塊中芯片、元器件都集中在模塊中間,線圈以蝕刻的方式在靠近的邊緣的PCB中間層。筆者手上有TI、、ST公司的15693卡共4種型號,做了讀卡距離測試。測試方法是將卡放于模塊天線正對面,通過觀察模塊上LED燈是否亮就能知道是否讀卡成功,將卡放到能讀到的高度,再用直尺去量高度。

            結語

            本模塊設計中采用的是較新的主控和射頻芯片,價格較低,性能又強,而且在很長一段時間內不會有供貨、價格等方面的問題。LPC800系列既增加了開關矩陣等實用的功能,方便用戶電路設計,也集成了老一代單片機的ISP升級功能。本文詳細描述了這兩顆芯片的使用方法以及對模塊的調試方法與步驟等。該模塊采用貼面封裝的元件,具有低成本、低功耗、小尺寸、讀寫卡距離遠等特點,使用起來很方便,具有較高的應用價值。

          低通濾波器相關文章:低通濾波器原理



          上一頁 1 2 下一頁

          關鍵詞: NXP LPC812 SLRC610

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();