Mifare系列射頻卡讀寫器的研制
4.3 串行存儲器
我們用AT24C256作數據存儲器。AT24C256是串行E2PROM存儲器,支持I2C總線數據傳輸協議,32KB存儲器容量,用兩根線與CPU構成串行接口。SDA是雙向數據線,接CPU的P2.1;SCL是時鐘線,接CPU的P2.0;這兩根線必須接上拉電阻。WP是寫保護線,一般接地,表示允許讀寫操作。A0、A1是地址線,通過這二根地址線CPU最多可尋址4個AT24C256器件,4個芯片都有固定的地址,分別對應A0、A1為00到11,在此二根地址線上可擴充1~3片AT24C256串行E2PROM存儲器。串行E2PROM讀寫格式和操作時序如圖4所示。本文引用地址:http://www.104case.com/article/157991.htm
圖4 串行E2PROM讀寫格式和操作時序
寫數據到AT24C256有字節寫和頁面寫兩種方式。在字節寫模式下,主器件(單片機) 發送起始信號和從器件(AT24C256)地址信息,在從器件送回應答信號后,主器件發送兩個8位地址字節給AT24C256,主器件在收到從器件的應答信號后,再發送數據到被尋址的存儲單元。AT24C256再次應答,并在主器件產生停止信號后開始內部數據的擦寫周期,在內部擦寫過程中AT24C256 不再應答主器件的任何請求。頁寫模式下一次最多可以寫入64個字節數據。從AT24C256中讀數據有三種方式,即當前地址讀、隨機讀和連續讀。如隨機讀,允許主器件對E2PROM的任意地址進行讀操作。分兩步進行,首先主器件發起始信號、器件地址和兩字節的存儲器地址執行一個偽寫操作,在 AT24C256應答之后,主器件再發起始信號和器件地址,AT24C256響應并發應答信號,然后輸出8位數據,主器件收到數據后發停止信號結束本次操作。連續讀可用隨機讀開始,在收到AT24C256發來的8位數據后,主器件不發停止信號,而發應答信號, AT24C256收到主器件的應答信號后,又傳下一個地址的數據,一直進行下去,直到主器件發停止信號為止。
5 程序設計
5.1 單片機主程序流程圖
單片機的程序包括:IC卡讀/寫/密碼驗證/擦除操作程序,與RC500通信中斷處理程序,鍵盤中斷處理程序,與PC機通信中斷處理程序,顯示程序及存儲器讀寫程序等。讀卡器的主程序流程圖如圖5所示:
圖5 讀卡器的主程序流程圖
5.2 讀/寫卡程序設計
讀寫卡過程是一個很復雜的程序執行過程,要執行一系列的操作指令,調用多個C51函數。包括裝載密碼,詢卡,防沖突,選卡,驗證密碼,讀寫卡,停卡。這一系列的操作必須按固定的順序進行。在沒有Mifare卡進入射頻天線有效范圍時,在低5位顯示當前時鐘,當有Mifare卡進入到射頻天線的有效范圍,讀卡程序驗證卡及密碼成功后,將卡號和讀卡時間及相關數據作為一條記錄存入E2PROM存儲器中,并在LED顯示器高5位上顯示卡號。
程序設計采用單片機匯編語言和KeilC51混合編程。看門狗定時器中斷服務程序采用匯編語言編寫,其它程序采用C語言編寫。程序的每一部分按模塊化設計成一個文件,單獨調試通過后,再在KeilC51環境下加入到工程文件中匯編生成HEX文件,用仿真器進行仿真通過后,寫入P89C58BP芯片中脫離仿真器運行。
6 結束語
本文設計的Mifare系列射頻卡讀寫器能夠讀寫多種 Mifare系列射頻卡,如Mifare 1 S50、Mifare Light和Mifare Pro等,讀寫距離在10cm范圍內。該讀寫器操作方便靈活,只要通過計算機串口按規定協議發送命令給它即可完成讀卡、寫卡、取消和更改密碼等操作;也可設置為脫離計算機獨立工作方式,必要時再將所存儲的記錄數據上傳到上位機供其處理。本讀寫器已經實際應用在長沙某非接觸式IC卡預付費電度表的售電系統中,系統運行良好、可靠性高。實際應用中證明:此射頻卡讀寫器系統讀寫非接觸式IC卡片迅速、方便、可靠、安全、穩定,深受用戶歡迎。有足夠的優勢取代目前仍使用磁卡和接觸式IC卡讀寫器的應用,具有巨大的市場競爭力和廣闊的發展前景。
電度表相關文章:電度表原理
評論