隨著計算機視覺技術(shù)以及圖像處理技術(shù)的不斷發(fā)展,計算機視覺和視頻檢測技術(shù)已經(jīng)廣泛應(yīng)用于工業(yè)控制,、智能交通,、設(shè)備制造等很多領(lǐng)域。傳統(tǒng)的視頻檢測往往采用工控機作為其視頻處理器來實現(xiàn)其功能,。這種方法往往由于工控機處理速度的問題,,無法實現(xiàn)對各個不同方向同時進行視頻檢測,而且由于視頻檢測處理過程需要占用大量的處理時間,,因而無法實現(xiàn)實時的遠程控制功能,。
目前在遠程控制和通信方面,基于DOS和Windows操作系統(tǒng)的通信平臺得到普遍的引用,,但是DOS操作系統(tǒng)作為單任務(wù)操作系統(tǒng),,無法實現(xiàn)多任務(wù)功能和實時處理的要求;而Windows操作系統(tǒng)作為視窗操作系統(tǒng),,其系統(tǒng)的穩(wěn)定性和實時性也無法與實時多任務(wù)嵌入式操作相比擬,。 本文提出一種以DSP作為視頻檢測處理芯片,以Linux為操作系統(tǒng)的嵌入式系統(tǒng)設(shè)計方法,。
1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)的開發(fā)主要包括視頻檢測卡和x86通信平臺的設(shè)計2個部分,。視頻檢測卡主要包括模擬圖像采集、轉(zhuǎn)換,、DSP視頻檢測3個部分,,每塊交換參數(shù)檢測卡擴充PCI總線接口,插在通信開發(fā)平臺的PCI總線插口上,,通過PCI總線同通信平臺交換數(shù)據(jù),。通信平臺處理多塊交通參數(shù)檢測卡的通信問題,將視頻檢測卡通過PCI總線傳送過來的視頻檢測數(shù)據(jù)實時通過網(wǎng)絡(luò)傳送給控制中心,。系統(tǒng)的功能方框圖如圖1所示,。
根據(jù)系統(tǒng)設(shè)計要求,視頻檢測卡功能主要分為:模擬圖像采集,、模擬圖像A/D轉(zhuǎn)換,、數(shù)據(jù)緩存以及DSP視頻檢測5個部分。視頻檢測卡流程如圖2所示,。
本系統(tǒng)采用PhilIPs公司的SAA7111A來實現(xiàn)模擬圖像A/D轉(zhuǎn)換,。該芯片可實現(xiàn)多路選通、鎖相與時序,、時鐘產(chǎn)生與測試,、ADC,、亮色分離等功能。其輸出可以具有如下格式:YUV 4:1:1(12bit),、YUV 4:2:2(16bit),、YUV 4:2:2(CCIR-656)(8bit)等。由于DSP處理芯片和SA7111A的時序不同,,可以通過CPLD進行邏輯控制FIFO來完成數(shù)據(jù)緩存的功能,。
DSP是實時信號處理的核心。本系統(tǒng)采用TI公司DSP芯片——TMS320C6211,。該芯片屬C6000的定點系列,,C6211在這個系列中是性價比最高的一種。C6211處理器由3個主要部分組成:CPU內(nèi)核,、存儲器和外設(shè),。集成外設(shè)包括EDMA控制器、外存儲器接口(EMIF),、主機口(HPI),、多通道緩沖接口(McBSP)、定時器,、中斷選擇子,、JTAG接口、PowerDown邏輯以及PLL時鐘發(fā)生器,。通過EMIF接口擴充 SDRAM,,而PCI總線控制芯片的擴展通過HPI接口。
PCI總線的接口芯片PCI9050,,主要包括PCI總線信號接口和本地總線(LOCAL BUS)信號,。在硬件設(shè)計時,只需將本地總線信號的接口通過電平轉(zhuǎn)換連接到DSP的HPI接口,,同時擴展PCI接口就可以完成其硬件電路設(shè)計,。
2 通信開發(fā)平臺的嵌入式系統(tǒng)設(shè)計
通信開發(fā)平臺以x86為核心器件,擴充PCI總線,,通過Modem撥號,,實現(xiàn)x86與Internet的連接。
2.1 PCI總線設(shè)備驅(qū)動
PCI設(shè)備有3種物理空間:配置空間,、存儲器空間和I/O空間,。配置空間是長度為256字節(jié)的一段連接空間,空間的定義如圖3所示,。在配置空間中只讀空間有設(shè)備標識,、供應(yīng)商代碼、修改版本,、分類代碼以及頭標類型,。其中供應(yīng)商代碼用來標識設(shè)備供應(yīng)商的代碼;設(shè)備標識用來標識某一特殊的設(shè)備,;修改版本標識設(shè)備的版本號,;分類代碼用來標識設(shè)備的種類;頭標類型用來標識頭類型以及是否為多功能設(shè)備,。除供應(yīng)商代碼之外,,其它字段的值由供應(yīng)商分配。
命令字段寄存器用來提供設(shè)備響應(yīng)的控制命令字,;狀態(tài)字段用來記錄PCI總線相關(guān)事件(詳細的命令控制和狀態(tài)讀取方法見參考文獻4),。
基地址寄存器最重要的功能是分配PCI設(shè)備的系統(tǒng)地址空間。在基地址寄存器中,,bit0用來標識是存儲器空間還是I/O地址空間,。基地址寄存器映射到存儲器空間時bit0為“0”,,映射到I/O地址空間時bit0為“1”,。基地址空間中其它一些內(nèi)容用來表示PCI設(shè)備地址空間映射到系統(tǒng)空間的起始物理地址,。地址空間大小通過向基地址寄存器寫全“1”,,然后讀取其基地址的值來得到。
PCI設(shè)備的驅(qū)動過程主要包括下面幾個步驟,。
首先,,PCI設(shè)備的查找。在嵌入式操作系統(tǒng)中一般提供相應(yīng)的API函數(shù),,在Linux操作系統(tǒng)中通過函數(shù) pcibios_find_device(PCI_VENDOR_ID,PCI_DEVICE,index,&bus,&devfn)可以找到供應(yīng)商代碼為PCI-ID,,設(shè)備標識為PCI-DEVICE的第n(index+1)個設(shè)備,并且返回總線號和功能號,,分別保存于bus和 devfn中,。
第2步,PCI設(shè)備的配置,。通過操作系統(tǒng)提供的API函數(shù)訪問PCI設(shè)備的配置空間,,配置PCI設(shè)備基址寄存器的配置、中斷配置,、ROM基地址寄存器的配置等,,這樣可以得到PCI的存儲器空間和I/O地址空閑映射,設(shè)備的中斷號等,。在Linux操作系統(tǒng)中,,訪問PCI設(shè)備配置空間的API函數(shù)有 pcibios_write_config_byte、pcibios_read_config_byte等,它們分別完成對PCI設(shè)備配置空間的讀寫操作,。
第3步,,根據(jù)PCI設(shè)備的配置參數(shù),對不同的設(shè)備編寫初始化程序,、中斷服務(wù)程序以及對PCI設(shè)備存儲空間的訪問程序,。
2.2 遠程控制與通信鏈路的建立
與Internet連接的數(shù)據(jù)鏈路方式主要有Ethernet方式和串行通信方式。Ethernet連接方式是一種局域網(wǎng)的連接方式,,廣泛應(yīng)用于本地計算機的連接,。通過Modem進行撥號連接的串行通信方式,可以實現(xiàn)遠距離的數(shù)據(jù)通信,,下面詳細介紹串行通信接口協(xié)議方式,。
串行通信協(xié)議有SLIP、CSLIP以及PPP通信協(xié)議,。SLIP和CSLIP提供一種簡單的通過串行通信實現(xiàn)IP數(shù)據(jù)報封裝方式,,通過RS232串行接口和調(diào)試解調(diào)器接入Internet。但是這種簡單的連接方式有很多缺陷,,如每一端無法知道對方IP地址,;數(shù)據(jù)幀中沒有類型字段,也就是1條串行線路用于SLIP就不能同時使用其它協(xié)議,;SLIP沒有在數(shù)據(jù)幀中加上檢驗和,,當SLIP傳輸?shù)膱笪谋痪€路噪聲影響發(fā)生錯誤時,無法在數(shù)據(jù)鏈路層檢測出來,,只能通過上層協(xié)議發(fā)現(xiàn),。
PPP(Point to Point Protocal,點對點協(xié)議)修改了SLIP協(xié)議中的缺陷,。PPP中包含3個部分:在串行鏈路上封裝IP數(shù)據(jù)報的方法,;建立、配置及測試數(shù)據(jù)鏈路的鏈路控制協(xié)議(LCP),;不同網(wǎng)絡(luò)層協(xié)議的網(wǎng)絡(luò)控制協(xié)議(NCP),。PPP相對于SLIP來說具有很多優(yōu)勢;支持循環(huán)冗余檢測,、支持通信雙方進行IP地址動態(tài)協(xié)商,、對TCP和IP報文進行壓縮、認證協(xié)議支持(CHAP和PAP)等,。圖4為PPP數(shù)據(jù)幀的格式,。
PPP的實現(xiàn)可以通過2個后臺任務(wù)來完成。協(xié)議控制任務(wù)和寫任務(wù),。協(xié)議控制任務(wù)控制各種PPP的控制協(xié)議,,包括LCP,、NCP、CHAP和PAP,。它用來處理連接的建立,、連接方式的協(xié)商、連接用戶的認證以及連接中止,。寫任務(wù)用來控制PPP設(shè)備的數(shù)據(jù)發(fā)送,。數(shù)據(jù)報的發(fā)送過程,就是通過寫任務(wù)往串行接口設(shè)備寫數(shù)據(jù)的過程,,當有數(shù)據(jù)報準備就緒,PPP驅(qū)動通過信號燈激活寫任務(wù),,使之完成對串行接口設(shè)備的數(shù)據(jù)發(fā)送過程,。PPP接收端程序通過在串行通信設(shè)備驅(qū)動中加入“hook”程序來實現(xiàn)。在串行通信設(shè)備接收到1個數(shù)據(jù)之后,,中行設(shè)備的中斷服務(wù)程序(ISR)調(diào)用PPP的ISR,。當1個正確的PPP數(shù)據(jù)幀接收之后,PPP的ISR通過調(diào)度程序調(diào)用PPP輸入程序,,然后PPP輸入程序從串行設(shè)備的數(shù)據(jù)緩存中將整個PPP數(shù)據(jù)幀讀出,,根據(jù)PPP的數(shù)據(jù)幀規(guī)則進行處理,也就是分別放入IP輸入隊列或者協(xié)議控制任務(wù)的輸入隊列,。
PPP現(xiàn)在已經(jīng)廣泛為各種ISP(Internet Sever Provider)接受,,而Linux操作系統(tǒng)下完全支持PPP協(xié)議。在Linux 下網(wǎng)絡(luò)配置過程中,,通過1個Modem建立與ISP的物理上的連接,,然后tion。在接口(Interface)里面加入PPP設(shè)備,,填入ISP電話號碼,、用戶以及密碼,同時將本地IP和遠端IP設(shè)置為0.0.0.0,,修改/ETC/PPP/OPTION,,加上DEFAULTROUE,由ISP提供缺省路由,,這樣就完成了設(shè)備的PPP數(shù)據(jù)鏈路設(shè)置過程,,可以通過Internet實現(xiàn)遠程控制。
結(jié)束語
該設(shè)計方法已成功應(yīng)用于智能交換系統(tǒng)的交通參數(shù)檢測系統(tǒng)中,。在該系統(tǒng)中,,采用4塊DSP視頻檢測卡實現(xiàn)4個不同路面區(qū)域的交通參數(shù)檢測,同時采用Linux作為通信平臺的操作系統(tǒng),;通過PPP協(xié)議建立與監(jiān)控中心的連接,,實現(xiàn)監(jiān)控中心對各個視頻檢測卡的遠程控制,。
本文提出的視頻檢測和遠程控制的嵌入式系統(tǒng);通過PPP協(xié)議建立與監(jiān)測中心的連接,,實現(xiàn)監(jiān)控中心對各個視頻檢測卡的遠程控制,。
本文提出的視頻檢測和遠程控制的嵌入式系統(tǒng)設(shè)計方案,充分利用了DSP的高性能的數(shù)據(jù)處理功能和嵌入系統(tǒng)操作系統(tǒng)的實時穩(wěn)定的特點,,采用PPP協(xié)議建立與Internet的連接,,實現(xiàn)視頻檢測的遠程控制。這種DSP信號處理與嵌入式系統(tǒng)相結(jié)合的模式,,可以廣泛應(yīng)用于工業(yè)控制,、產(chǎn)品制造、智能交通等的視頻檢測領(lǐng)域,,具有廣泛的應(yīng)用前景,。