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