新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Linux的RFID信息采集與處理系統(tǒng)

基于Linux的RFID信息采集與處理系統(tǒng)

作者: 時(shí)間:2012-11-13 來源:網(wǎng)絡(luò) 收藏

  2 .2 應(yīng)用程序設(shè)計(jì)

   是多任務(wù)系統(tǒng), 支持多線程及多進(jìn)程。多線程的優(yōu)點(diǎn)是線程比進(jìn)程小, 可以使應(yīng)用更輕便, 線程間通信方便;缺點(diǎn)是所有線程使用同一個(gè)地址空間, 如果一個(gè)線程出現(xiàn)問題, 整個(gè)系統(tǒng)將受影響; 而進(jìn)程各自占有一份內(nèi)存空間, 可以增強(qiáng)系統(tǒng)的穩(wěn)定性, 但是多進(jìn)程增加了系統(tǒng)開銷, 進(jìn)程間通信復(fù)雜。為此,根據(jù)實(shí)際情況,考慮到系統(tǒng)穩(wěn)定性, 本系統(tǒng)采取兩者相結(jié)合的方式分別完成數(shù)據(jù)采集處理及文件傳輸功能。

  2 .2 .1 數(shù)據(jù)采集處理

  數(shù)據(jù)采集處理是一個(gè)進(jìn)程, 它包括主線程和輔線程。主線程完成電子標(biāo)簽卡信息的讀取、寫入、實(shí)時(shí)顯示及查詢;輔線程實(shí)現(xiàn)一個(gè)時(shí)鐘以提供用戶當(dāng)前時(shí)間, 并定時(shí)對(duì)電池的電量進(jìn)行檢測(cè)和動(dòng)態(tài)顯示, 在電量過低時(shí)發(fā)出警告。

  應(yīng)用程序用MAIL 命令方式完成電子標(biāo)簽卡的讀寫。該進(jìn)程首先初始化屏幕, 然后等待按鍵中斷, 當(dāng)有鍵按下時(shí), 根據(jù)鍵值執(zhí)行相應(yīng)的工作;

  當(dāng)指定時(shí)間內(nèi)沒有鍵按下, 系統(tǒng)則進(jìn)入休眠狀態(tài), 從而達(dá)到省電的目的。程序流程圖如圖6。

  當(dāng)成功采集到標(biāo)簽卡信息后, 應(yīng)用程序?qū)⒖ㄐ畔?包括卡號(hào)、卡狀態(tài)、用戶數(shù)據(jù)及當(dāng)前時(shí)間)通過OLED 顯示屏提供給用戶,并寫入一個(gè)文件進(jìn)行記錄。由于文件傳輸進(jìn)程會(huì)將該文件傳輸?shù)缴衔粰C(jī), 所以當(dāng)讀寫文件時(shí)要將文件上鎖。 提供了文件鎖以防止不同進(jìn)程同時(shí)訪問同一個(gè)文 件。本文使用flock ( )函數(shù)對(duì)文件上鎖和解鎖。

  由于OLED 是圖形點(diǎn)陣式顯示屏, 而且Flash 容量有限,所以不可能直接使用漢字字庫(kù)。系統(tǒng)預(yù)先提取所有用到的漢字、數(shù)字及字母的點(diǎn)陣數(shù)據(jù), 然后建立自己的字庫(kù)文件,從而使應(yīng)用程序可以對(duì)漢字、數(shù)字及字母進(jìn)行顯示。

  2 .2 .2 文件傳輸

  文件傳輸是一個(gè)進(jìn)程, 完成卡信息的上傳及其他數(shù)據(jù)的下載。與上位機(jī)通信采用Clinet/Server 模型。該進(jìn)程實(shí)質(zhì)上是一個(gè)服務(wù)器端(本系統(tǒng)) 的應(yīng)用程序, 它循環(huán)等待客戶端( 上位機(jī)) 的連接請(qǐng)求。當(dāng)請(qǐng)求到達(dá)時(shí), 首先判斷請(qǐng)求來自哪個(gè)接口(USB 或者紅外接口),然后根據(jù)請(qǐng)求的類型執(zhí)行相應(yīng)的上傳或下載。考慮到實(shí)際應(yīng)用中可能會(huì)使用多臺(tái)手持式閱讀器, 為了方便上位機(jī)對(duì)信息的管理,規(guī)定文件名由手持式閱讀器編號(hào)和文件上傳序號(hào)組成, 程序在上傳文件時(shí)自動(dòng)將其編號(hào)及上傳序號(hào)加入文件名。該進(jìn)程的流程 如圖7。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

linux相關(guān)文章:linux教程




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉