以Linux為系統(tǒng)基于DSP的視頻檢測方案
DSP是實時信號處理的核心。本系統(tǒng)采用TI公司DSP芯片――TMS320C6211。該芯片屬C6000的定點系列,C6211在這個系列 中是性價比最高的一種。C6211處理器由3個主要部分組成:CPU內核、存儲器和外設。集成外設包括EDMA控制器、外存儲器接口(EMIF)、主機口 (HPI)、多通道緩沖接口(McBSP)、定時器、中斷選擇子、JTAG接口、PowerDown邏輯連同PLL時鐘發(fā)生器。通過EMIF接口擴充 SDRAM,而PCI總線控制芯片的擴展通過HPI接口。
PCI總線的接口芯片PCI9050,主要包括PCI總線信號接口和本地總線(LOCAL BUS)信號。在硬件設計時,只需將本地總線信號的接口通過電平轉換連接到DSP的HPI接口,同時擴展PCI接口就能夠完成其硬件電路設計。
2 通信研發(fā)平臺的嵌入式系統(tǒng)設計
通信研發(fā)平臺以x86為核心器件,擴充PCI總線,通過Modem撥號,實現(xiàn)x86和Internet的連接。
2.1 PCI總線設備驅動
PCI設備有3種物理空間:配置空間、存儲器空間和I/O空間。配置空間是長度為256字節(jié)的一段連接空間,空間的定義如圖3所示。在配置空間 中只讀空間有設備標識、供給商代碼、修改版本、分類代碼連同頭標類型。其中供給商代碼用來標識設備供給商的代碼;設備標識用來標識某一特別的設備;修改版 本標識設備的版本號;分類代碼用來標識設備的種類;頭標類型用來標識頭類型連同是否為多功能設備。除供給商代碼之外,其他字段的值由供給商分配。
命令字段寄存器用來提供設備響應的控制命令字;狀態(tài)字段用來記錄PCI總線相關事件。
基地址寄存器最重要的功能是分配PCI設備的系統(tǒng)地址空間。在基地址寄存器中,bit0用來標識是存儲器空間還是I/O地址空間?;刂芳拇嫫?映射到存儲器空間時bit0為“0”,映射到I/O地址空間時bit0為“1”?;刂房臻g中其他一些內容用來表示PCI設備地址空間映射到系統(tǒng)空間的起 始物理地址。地址空間大小通過向基地址寄存器寫全“1”,然后讀取其基地址的值來得到。
PCI設備的驅動過程主要包括下面幾個步驟。
首先,PCI設備的查找。在嵌入式操作系統(tǒng)中一般提供相應的API函數(shù),在Linux操作系統(tǒng)中通過函數(shù) pcibios_find_device(PCI_VENDOR_ID,PCI_DEVICE,index,bus,devfn)能 夠找到供給商代碼為PCI-ID,設備標識為PCI-DEVICE的第n(index+1)個設備,并且返回總線號和功能號,分別保存于bus和 devfn中。
第2步,PCI設備的配置。通過操作系統(tǒng)提供的API函數(shù)訪問PCI設備的配置空間,配置PCI設備基址寄存器的配置、中斷配置、ROM基地址 寄存器的配置等,這樣可以得到PCI的存儲器空間和I/O地址空閑映射,設備的中斷號等。在Linux操作系統(tǒng)中,訪問PCI設備配置空間的API函數(shù)有 pcibios_write_config_byte、pcibios_read_config_byte等,它們分別完成對PCI設備配置空間的讀寫操作。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論