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