基于W7100的以太網讀卡器的設計與實現
4 軟件設計
4.1 讀卡器與服務器通信
讀卡器與服務器的通信主要是讀卡器向服務器發送卡號信息和服務器向讀卡器發送寫卡信息。服務器與讀卡器之間采用面向連接的TCP /IP協議作為通信的底層協議,讀卡器作為客戶端。服務器負責監聽讀卡器的連接請求。服務器端采用Socket套接字接口編寫應用程序。
讀卡器端將通過TCP/IP協議接收的數據保存到事先開辟的內存接收緩沖區,發送時將將要發送的數據存儲在數據發送緩沖區,然后執行發送。由于W7100已經有硬核的套接字,所以可以直接使用。讀卡器端的端口狀態轉化如圖7所示:本文引用地址:http://www.104case.com/article/202423.htm
剛復位時讀卡器處于SOCK_CLOSED狀態。如果此時服務器端在監聽,則經過執行OPEN和CONNECT操作后進入SOCK_ESTABLISHED狀態。這時候讀卡器就可以與服務器通過SEND和RECV操作傳輸信息。讀卡器主動執行DICON操作或者接收到服務器端的CLOSE命令后就再次進入SOCK_CLO-SED狀態,等待下次連接。為了實現讀卡器始終自動連接和斷線重連,方案采用了一個循環的switch語句,關鍵示例代碼如下:
讀卡器執行設備監控的流程就寫在示例的數據處理代碼部分。讀卡器內部含有dataflash,用來保存IP地址、服務器地址和MAC地址等信息。在復位時讀取配置信息、調用初始化函數初始化以太網接口。
4.2 W7100讀寫IC卡
W7100在復位之后,首先要初始化微處理器和MFRC500,然后依次循環執行配置命令、請求命令、防碰撞命令、選擇命令、證實命令、裝載密鑰命令、讀卡命令、卡號發送服務器、(等待接收反饋數據)、(寫卡命令)、閃爍LED、蜂鳴器蜂鳴。這樣循環執行就可以完成刷卡功能。各個命令和功能分別采用一個函數來實現,具體的操作可以參考芯片使用手冊,在這里就不再贅述。下面把主函數主要結構列舉如下:
5 結束語
本文詳細闡述了一種基于W7100的且支持以太網傳輸的讀卡器方案,給出了硬件和軟件設計的參考。該方案已經成功應用在某大型事業單位實驗室管理系統中。經過實際運行結果表明該方案能夠滿足刷卡管理的可靠性及實時性要求。較之以前的方案,該方案成本更低、更容易開發。
評論