基于ARM9的交通違章抓拍系統的開發
3.1.3 Bootloader 代碼。
Bootloader 主要負責加載內核, 盡管它在系統啟動期間執行的時間很短, 但是非常重要的系統組件, 對嵌入式系統來說是一件特別的工作。Bootloader 是嚴重依賴于硬件而實現的, 目前以ARM為基礎的系統還沒有標準的Bootloader, 針對本系統的硬件特性, 在ppcboot 的基礎上加以修改, 生成適合本系統的啟動代碼。
3.2 應用程序的開發
程序主要實現以下功能: 現場紅燈和線圈信號的采集; 控制相機拍照、保存參數、傳輸照片和刪除照片; 處理按鍵信息并送數碼管顯示; 通過以太網遠程下載照片, 也可以用U 盤本地下載照片。應用程序的總體結構如圖7 所示。
系統軟件的設計主要是控制相機的USB 通訊模塊的編寫、網絡傳輸模塊的編寫、信號采集模塊的編寫和串口通訊模塊的編寫。其中USB 通訊模塊是關鍵, 需要嚴格遵守數碼相機的通訊協議; 網絡傳輸采用客戶機服務器方式, 本機作為客戶機, 工控中心設置為服務器。檢測信號模塊主要是讀取并口信息, 并口的操作使用端口I/O, 簡單、操作性強, 并且可以清楚說明編寫設備驅動程序開發所必需的底層硬件控制過程。在Linux 中有一個用于輸入的命令inb( address) 和一個用于輸出的命令outb( value, address) .C 語言的宏擴展實現了這兩個函數, 而且不涉及任何函數庫, 但使用這兩個函數需要一些額外的函數, 函數ioperm( ) 從內核中申請和釋放端口訪問權。在Linux 下, 串口一般作為一個終端接口, 即tty 接口, POSIX.1 定義了一個查詢和操作終端的標準接口, 該接口被稱作termios,在系統的頭文件termios.h>中定義。termios 是一個數據結構和一系列操作這些數據結構的函數, 這些函數一起構成了通用的終端界面, 提供對終端的有效控制操作, 使得系統具有復雜的異步串口設備處理能力。
程序處理流程如圖8 所示。
4 結束語
該數碼電子警察系統采用高分辨率的數碼相機, 清晰度高, 在運行的過程中, 抓拍成功率達到98%, 照片合格率達到95%, 誤拍率低, 適用于各種惡劣的環境條件。采用實時性高的Linux2.6.12 的內核, 提供對S3C2410 的專門的支持。該系統穩定、可靠、實時性強, 且完全自主開發, 可有效控制成本, 有很強的市場競爭力。結合圖像處理技術, 構建數碼視頻電子警察系統有更廣闊的前景, 這將是下一步開發的重點。
評論