Cortex-M0+的RFID讀卡器模塊設計
1 主控和射頻芯片簡介
本文引用地址:http://www.ex-cimer.com/article/265052.htmLPCS00系列是基于ARM Cortex-M0+的低成本32位MCU系列產品,工作時CPU 頻率最高可達30 MHz。它支持最高16 KB的閃存和4 KB的SRAM。
1.2 射頻芯片SLRC610
SLRC610是NXP公司新一代多協(xié)議無線近場芯片中的一員,它是用于13.56 MHz的非接觸式通信的高度集成的收發(fā)器芯片,支持并遵守IS0/IEC15693、EPC UID和ISO/IEC18000-3 mode 3/EPC Class-1 HF協(xié)議的卡片。它與主機的通信接口有SPI、UART、I2C總線(包括I2C和I2CL模式)三種。另外,它的安全性比上一代更高,支持安全訪問模塊(SAM)的連接。
數據手冊的第一個正式版(SLRC610 v.3.1)在2012年9月6日發(fā)布,從目前最新的數據手冊(SLRC6l0 v.3.4)來看,新版主要是修正發(fā)現的描述錯誤和數據值的更新。
2 模塊硬件設計
模塊主要由通信升級接口、調試接口、提示信號、LPC812、SLRC610、模塊內置天線等組成。模塊框圖如圖1所示。
圖1 模塊框圖
2.1 主控芯片電路設計
LPC812是LPC800 系列配置最高的型號,它有TSSOP16、SO2O、TSSOP20三種封裝,因為設計的是小模塊,所以選用了sO2O塑料小型封裝。由于LPC812支持通過開關矩陣將特殊功能分配到某個I/O引腳,所以在設計原理圖的時候可以充分考慮將某個功能分配到哪個引腳上既方便布線、性能又好。另外,本次設計中LPC812內置的1%精度的12 MHz內部RC振蕩器作系統(tǒng)時鐘。主控芯片電路如圖2所示。
圖2 主控芯片電路圖
2.1.1 通信、升級接口設計
LPC812繼承NXP以往單片機的在系統(tǒng)編程(ISP)升級功能。由于在ISP模式下占用了USARTO,而本次設計模塊的通信接口也是串口,故將通信和升級合并為一個接口。要模塊正常工作則將IsPEN懸空(推薦接VCC);要升級固件,則將ISPEN接GND,然后給LPC812上電,再通過工具軟件Flash Magic燒寫新固件。這部分對應圖2中的J1接口。
2.1.2 調試接口設計
LPC812支持SWD調試、JTAG 邊界掃描、微跟蹤緩沖區(qū)(MTB)三種方式。其中,SWD使用較為方便,僅僅需要串行線調試數據輸入/輸出(SWDIO)、串行線時鐘(SWCLK)、復位(nRST)這i根線。本設計中為了調試方便又加了VCC和GND這兩根線,也就是說可以在只插這個調試接口的情況下對模塊進行調試。在默認情況下它的VCC是從外界取電的,所以要外部給板子供電才能調試。打開JTAG的外殼,將內部的跳線帽插到靠近VCC的兩針上,那么JTAG工具的VCC就對外供電了,對板子調試可以不用再外部供電。這部分對應圖2中J2接口。
2.2 射頻芯片電路設計
SLRC610只有一種小型的HVQFN32封裝,特別要注意它的第33引腳,也就是芯片朝PCB面正中間一個正方形的面,這個面必須良好接地,否則會出現些奇怪的現象。SLRC610支持SPI、I2C 總線、I2CI 和UART 四種接口,它會在掉電復位后通過IFSEL0和IFSEL1電平組合來判斷當前主機接口類型。本次設計是采用了硬編碼的SPI接口,在硬件電路上需IFSEL0接地、IFSEL1接VCC.射頻芯片電路如圖3所示。其巾,引在SLRC610芯片中33引腳VSS的作用是接地和散熱,所以此引腳必須良好接地。
圖3 射頻芯片電路圖
天線的匹配電路包含一個EMC低通濾波器(L1、L2、C5、C6),一個匹配電路(C3、C4、C7~ C1O),一個接收電路(R2、R3、C15)和天線本身。接收電路的元件值需被特別設計并根據板子實際情況調整。本次設計模塊的尺寸有限,接收電路采用了元器件較少的單端模式,且天線線圈是內置在PCB中間層,以方便應用,減小體積。
3 模塊軟件設計
主程序包含系統(tǒng)初始化、LED測試、串口測試、SLRC610測試這4部分。系統(tǒng)初始化部分主要有系統(tǒng)內核時鐘更新、GPIO初始化、systick配置功能。LED測試部分主要包含LED端口初始化、更新為滅狀態(tài)、更新為亮狀態(tài)、翻轉亮滅狀態(tài)功能測試。當然這之后LED已經配置好,可以隨意使用三個更新狀態(tài)函數。串口測試主要包括對串口功能引腳分配(LPC812的開關矩陣,這部分放在SPI配置部分詳細敘述)、串口初始化、發(fā)送字符串等功能測試。這之后,就可以通過串口打印調試信息。
3.1 SLR0610測試部分
SLRC610測試部分包含設置接口連接、SLRC610復位、NXP lib初始化、等待SLRC610復位就緒進人空閑狀態(tài)、檢測15693卡、LED燈提示等。設置 接口連接部分主要是通過軟件來設置IFSEL0和IFSEL1的電平,告訴SLRC610采用哪種接口,因為本設計中這兩個引腳是通過硬件方式設置的,所以這里沒有執(zhí)行實際操作,僅打印了當前使用了SPI接口的提示信息。
SLRC610復位是通過將SLRC610的PDOwN 引腳加載超過10μs的持續(xù)高電平來啟動內部復位程序的,它包含復位電源和啟動時間兩個階段。由于它的復位方式和老一代的方式不同,所以升級射頻芯片的時候要格外注意。筆者調試的時候就遇到過因復位導致的問題,當循環(huán)跑SLRC610測試時,會偶爾成功。追蹤發(fā)現讀寫寄存器不是每次都成功,后來調了較長一段時間才發(fā)現是復位的問題。在本次設計中為確保復位成功,后面又加了“等待SLRC610復位就緒進入空閑狀態(tài)”這一步驟。
SLRC610測試流程圖如圖4所示。
圖4 SLRC610測試流程圖
低通濾波器相關文章:低通濾波器原理
評論