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