RFID
物聯網必不可少會接觸到RFID,國內比較常見的RFID讀卡驅動芯片有兩款。一款是NXP的RC522這系列的,非常穩定,當然也相對較貴,另一款是復旦微電子的FM1702系列,國產的便宜沒得說,今天調的就是它了。對這個我也沒有深入去學習,畢竟是非常成熟的東西了,直接從網上下個例程驅動修改一下就行(http://www.elecfans.com/soft/6/2015/20150414368305.html),今天主要就記錄一下主要的快速學習過程和調試遇到的一些問題。
首先要了解一樣新鮮事物,那必須得知道它的原理和過程,RFID是射頻識別技術,分為很多種,這里說的是低頻無源非接觸式的,原理就是MCU通過操作FM1702芯片發送一串數據到射頻天線上,天線產生對應的磁場,利用磁生電的原理,使靠近的卡片線圈中產生電流,這就實現了數據傳輸。那么作為金錢保存的卡片,不可能像內存一樣發個地址數據就出來了吧,所以第一步就是學習卡片。卡片有很多種,我使用的是M1卡,主要呢是了解卡片如何實現數據的存儲和讀取。如圖1-1是網上比較通用簡潔的中文翻譯文檔,不過發現了一處錯誤,此處的例子應該是001狀態時的。
圖1-1
當了解了卡片是如何存儲的,這時候就來看網上的這個例程,1千多行代碼,不要被嚇到了,其實封裝得挺好的,主要看main函數,發現主要就在圖1-2這個函數里做處理,基本每個case就處理一個功能。耐心跟幾次就大致了解了尋卡、選擇卡、防沖突這些功能函數,大致了解之后就開始移植驅動了,然后調試驗證尋卡函數,只要能調通這個函數,后面的就水到聚成了。
圖1-2
最后是我遇到的一個大問題,當卡片靠近讀卡器的時候,卡片明顯發熱,而且尋卡時而成功時而失敗,這時候我開始懷疑硬件了,最可能的地方肯定是天線了,模電的東西最難搞。可能是瞎貓撞上死耗子,直接被我鎖定了天線的並聯電容,經過調整電容的大小后,一切正常。最后的最后一定要一一驗證函數功能,懶是一種好事,做底層的,有些再急也是不能省的,否則地基不穩,以后的高樓必然塌。驗證函數功能后,有時間的話最后再瞧一眼,做一些稍微的改進,使以后的調用更方便。
對於天線的問題關系到產品的穩定性,還是值得探討的。深夜了,這個問題過兩天再補上。