基于嵌入式Linux操作系統(tǒng)的可視化安全倒車系統(tǒng)
2.5 語(yǔ)音報(bào)警模塊與LCD顯示模塊
語(yǔ)音報(bào)警模塊采用的是安徽中科大訊飛信息科技有限公司生產(chǎn)的XF-S3011中文語(yǔ)音合成芯片。它是一款針對(duì)嵌入式應(yīng)用領(lǐng)域而設(shè)計(jì)的單芯片處理器,具有合成任意中文文本的能力。XF-S3011通過串口(UART)接收上位機(jī)發(fā)送的命令和數(shù)據(jù),命令和數(shù)據(jù)是以幀的方式進(jìn)行封裝與發(fā)送,允許發(fā)送的數(shù)據(jù)最大長(zhǎng)度為200個(gè)字節(jié)。其驅(qū)動(dòng)電路是用三極管驅(qū)動(dòng)方式設(shè)計(jì)的。當(dāng)超聲波測(cè)得的距離小于所設(shè)置的閾值時(shí),由S3C2 440發(fā)送控制命令給XF-S3011,啟動(dòng)語(yǔ)音報(bào)警提醒駕駛員注意。顯示模塊使用的是東華3.5寸TFT LCD(分辨率是320×240),采用嵌入式Linux下的Frame. Buffer設(shè)備來(lái)驅(qū)動(dòng)LCD。
3 系統(tǒng)軟件設(shè)計(jì)
本文選擇嵌入式Linux操作系統(tǒng)。它具有可裁剪、內(nèi)核穩(wěn)定、功能強(qiáng)大、支持多種硬件平臺(tái)等特點(diǎn)。首先,在一臺(tái)裝有Linux操作系統(tǒng)的PC機(jī)(宿主機(jī))上建立一個(gè)交叉編譯開發(fā)環(huán)境,把S3C2440控制模塊作為目標(biāo)板。然后,采用移植性較好的C語(yǔ)言在PC機(jī)上編寫本設(shè)計(jì)所需的底層驅(qū)動(dòng)程序及頂層的應(yīng)用程序,再利用交叉編譯調(diào)試工具編譯、鏈接生成可執(zhí)行代碼,最后向目標(biāo)板移植。
3.1 視頻圖像采集及LCD顯示程序的設(shè)計(jì)
第l步,采用動(dòng)態(tài)加載ZC0301組芯片的USB攝像頭驅(qū)動(dòng)程序spca5xx。此驅(qū)動(dòng)程序源代碼由4個(gè)部分組成:設(shè)備模塊的初始化模塊、卸載模塊、上層軟件接口模塊和數(shù)據(jù)傳輸模塊。把它放在kernel/driver/usb下解壓,打補(bǔ)丁。在編譯系統(tǒng)內(nèi)核時(shí),在arm Linux的kernel目錄下進(jìn)行make menueonfig;在*>下選擇MulTImedia device下的Video for linux,加載Vide04linux模塊,為視頻采集設(shè)備提供編程接口函數(shù)和相關(guān)數(shù)據(jù)結(jié)構(gòu);(M)選中SPCA5XX這一項(xiàng)。
第2步,使用Linux的Video4linux來(lái)訪問USB攝像頭設(shè)備,進(jìn)行視頻圖像采集,捕獲實(shí)時(shí)的數(shù)據(jù)流。程序流程如圖5所示。
為程序定義數(shù)據(jù)結(jié)構(gòu):
評(píng)論