基于Linux的RFID信息采集與處理系統
圖4 中, 36 表示S1510 使用MAIL 方式處理命令幀和應答幀, 而4、5 表示S1510命令幀的類(lèi)型(MAIL_SEND或MAIL_RECEIVE); Status 表示該命令的執行狀態(tài)( 成功或失敗) ; MAIL_SEND命令幀中的Data 域表示用戶(hù)要進(jìn)行的操作及參數, 如使Data=WRITE: 參數: 數據, 即表示用戶(hù)要將數據寫(xiě)入電子標簽卡;MAIL_RECEIVE 的應答幀中的Data 域為用戶(hù)所要求得到的數據。
當使用MAIL 命令方式讀寫(xiě)標簽卡時(shí), 用戶(hù)只需要按幀的格式填充各域, 然后利用ConfiTalk 協(xié)議提供的API 函數發(fā)送到S1510即可。命令清晰明了, 大大方便了用戶(hù)的開(kāi)發(fā)。
1 .3 OLED 顯示模塊
系統采用萊寶科技有限公司的OLED 顯示模塊RGS24128064YW001。有機發(fā)光顯示器OLED ( Organic Light Emitting Display) 被譽(yù)為“夢(mèng)幻顯示器”。與液晶屏相比, OLED 顯示屏更輕更薄、可視角度更大, 能夠顯著(zhù)節省電能, 并且在-40℃的低溫下仍可以正常工作。
RGS24128064YW00 1 具有串行和8 位并行數據接口。系統采用8 位并行接口與微處理器通信。
1 .4 SDRAM 和Flash 及自定義鍵盤(pán)
系統采用32 位的同步動(dòng)態(tài)隨機存儲器(SDRAM)作為系統內存, 16 位的Flash 作為不可丟失數據存儲器。用戶(hù)可以通過(guò)8鍵的鍵盤(pán)進(jìn)行各種操作, 如讀卡、寫(xiě)卡等。
2 系統軟件設計
系統軟件是整個(gè)系統的靈魂, 其設計的好壞直接影響系統的穩定性和可擴展性等性能。系統設計將軟件分為兩層結構, 如圖5所示。最下面一層為操作系統層, 主要實(shí)現對Linux 操作系統的移植和各種設備驅動(dòng)程序的編寫(xiě), 包括OLED 模塊、USB? Device、紅外、鍵盤(pán)等設備驅動(dòng)程序。上一層為應用程序層, 主要實(shí)現卡信息顯示、鍵盤(pán)掃描、電子標簽卡讀寫(xiě)、文件傳輸、時(shí)鐘以及電池電量檢測等功能。
2 .1 嵌入式Linux
Linux 是一種公開(kāi)源碼的多任務(wù)操作系統, 具有開(kāi)放度高、安全性好、穩定性強、可移植性好等特點(diǎn), 在嵌入式操作系統中被大量采用。
本設計采用的Linux 內核是在A(yíng)RM- Linux 的基礎上, 編寫(xiě)了OLED 顯示模塊、USB設備、紅外收發(fā)器及鍵盤(pán)的設備驅動(dòng)程序。在Linux 系統中, 設備驅動(dòng)程序占有很重要的位置, 它提供了在用戶(hù)空間操作硬件設備的接口。Linux系統將設備分為字符設備、塊設備及網(wǎng)絡(luò )設備三種, 并給出針對不同設備的數據結構及注冊函數。
當用戶(hù)開(kāi)發(fā)設備驅動(dòng)程序時(shí), 只需按硬件操作的方法填充設備數據結構, 并將它注冊到內核中即可。
為了方便用戶(hù)應用程序的編寫(xiě), 把USB 設備實(shí)現為CDC( Communication Device Class ) 類(lèi)設備,其驅動(dòng)程序分為兩層, 最底層操作AT91RM9200 上的USB 設備控制器, 如處理硬件中斷、讀寫(xiě)寄存器及操作I/O 口來(lái)檢測設備的插拔;上層實(shí)現了底層與TCP/IP 協(xié)議層的連接,主要是模擬物理網(wǎng)卡, 并注冊到內核。這樣, 在應用程序的USB 設備就是一個(gè)標準的網(wǎng)絡(luò )設備,用戶(hù)不需要了解驅動(dòng)程序的接口, 而直接使用Linux 提供的套接字進(jìn)行網(wǎng)絡(luò )通信程序的開(kāi)發(fā)。當用戶(hù)進(jìn)行二次開(kāi)發(fā)時(shí),可以不加修改地將上位機開(kāi)發(fā)好的網(wǎng)絡(luò )通信程序直接移植到本系統中, 而且可以通過(guò)上位機的Telnet 等五金|工具|工具對嵌入式系統進(jìn)行一定的操作。
其他驅動(dòng)程序( 如OLED 顯示模塊、鍵盤(pán)、紅外收發(fā)器)都作為L(cháng)inux 下的標準字符設備編寫(xiě), 使用register_chrdev( )函數進(jìn)行注冊, 提供了讀、寫(xiě)和控制操作。在Linux 系統中, 應用程序對字符設備的操作與文件的操作相同。
Linux 中設備驅動(dòng)程序可以通過(guò)模塊方式動(dòng)態(tài)地加載和卸載, 也可以直接編譯到內核中。前者使用靈活, 可以減小內核,但因嵌入式系統要求所有設備在初始化后全部就緒, 不能在使用時(shí)加載設備的驅動(dòng)模塊。所以, 本系統中所有的設備驅動(dòng)程序都直接編譯進(jìn)內核。
每個(gè)設備驅動(dòng)程序在用戶(hù)空間對應一個(gè)設備文件,由文件系統管理。本系統使用ext2 作為根文件系統。為了開(kāi)發(fā)和升級方便,首先將根文件系統做成RAMDISK 格式, 所謂RAMDISK 就是系統啟動(dòng)后將壓縮的文件解壓到內存, 形成一個(gè)虛擬硬盤(pán); 然后,將引導程序、內核映像及根文件系統燒寫(xiě)到Flash 中。
系統加電后, 引導程序將內核映像從Flash 中調入內存, 然后從核入口開(kāi)始執行: 首先初始化CPU, 然后加載各個(gè)設備驅動(dòng)程序,最后掛載文件系統, 執行應用程序。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)linux相關(guān)文章:linux教程
評論