處理器與音視頻外設(shè)之間的連接
數(shù)字信號處理器以需要大量I/O負(fù)載的應(yīng)用為目標(biāo),通常為開發(fā)人員提供各種集成接口—某些是標(biāo)準(zhǔn)接口,另外一些則是專用接口。例如,美國模擬器件公司(ADI)的Blackfin系列處理器是會聚處理器,這意味著它們在一個芯片上集成了DSP與MCU功能,這些處理器擁有與音頻應(yīng)用相關(guān)的兩種主要類型的串行接口。該處理器的低比特速率雙線接口(TWI)與串行外設(shè)接口(SPI)模塊是用于音頻器件控制與配置的。這些外設(shè)接口的前向通道通常用于配置或控制音頻轉(zhuǎn)換器,而反向通道則主要負(fù)責(zé)傳輸轉(zhuǎn)換器的反饋信息或狀態(tài)信息。該處理器的高比特速率串行端口外圍電路,通常用于執(zhí)行音頻數(shù)據(jù)傳輸。
Blackfin處理器的雙線接口與恩智浦半導(dǎo)體公司的雙向I2C總線相兼容,并在多個器件之間提供一種非常簡明的交換控制信息與數(shù)據(jù)信息的方式。它支持主從操作,傳輸速率高達(dá)400 kbps。I2C總線的串行數(shù)據(jù)(SDA)與串行時鐘(SCL)線(參見圖1)包含多個主接口,因此它可以連接一個以上可以對數(shù)據(jù)轉(zhuǎn)換進(jìn)行初始化的集成電路。串行數(shù)據(jù)流與串行時鐘數(shù)據(jù)流之間的相位差決定在指定時間點的操作模式是主操作還是從操作。雖然我們不可能在這里列出世界上所有的I2C器件,但卻可以說:使用包含I2C端口的數(shù)據(jù)處理器時,不管結(jié)構(gòu)如何,都可以擁有多種不同的互連方案。
圖1 I2C信號實例
Blackfin處理器全雙工串行外設(shè)接口(SPI),運行速率最高可達(dá)33Mbps(遠(yuǎn)遠(yuǎn)超過絕大多數(shù)A/D與D/A轉(zhuǎn)換器的控制要求), 該接口與摩托羅拉串行外設(shè)接口標(biāo)準(zhǔn)兼容。SPI是摩托羅拉公司發(fā)明的,又稱作Microwire,是美國國家半導(dǎo)體公司的注冊商標(biāo)。SPI的擴展包括排隊串行外設(shè)接口(QSPI)以及Microwire PLUS,二者都已經(jīng)面市。SPI是一個3針數(shù)據(jù)通信接口組成(參見圖2),支持主從環(huán)境以及多主機環(huán)境。SPI接口包括:MOSI(主出從入)接口、MISO (主入從出)接口以及串行時鐘(SCK)接口。Blackfin處理器的1個SPI選擇輸入針腳,允許其他SPI器件選擇Blackfin處理器;Blackfin處理器的7個選擇輸出引腳,允許該處理器選擇其他SPI器件。雖然開發(fā)人員一般使用 SPI作為處理器與周邊電路之間的同步串行通信接口,但SPI也可以用于內(nèi)部處理器通信。至于I2C,由于SPI已經(jīng)在業(yè)界廣泛使用,與SPI兼容的器件隨處可見。
圖2 SPI信號實例
Blackfin處理器的全雙工同步串行端口(SPORT)工作在較高數(shù)據(jù)速率,支持同時發(fā)送與接收。與音頻應(yīng)用相關(guān)的SPORT特性包括:兩套獨立的發(fā)送與接收引腳(原始數(shù)據(jù)、二次數(shù)據(jù)、時鐘與幀同步),8通道I2S立體聲音頻(恩智浦半導(dǎo)體公司數(shù)字音頻“Integrated Interchip Sound”總線協(xié)議),最大字長32比特,分辨率超過絕大多數(shù)高精度音頻應(yīng)用。
I2S是眾所周知的串行總線立體聲音頻傳輸標(biāo)準(zhǔn),廣泛用于系統(tǒng)單元(如模數(shù)轉(zhuǎn)換器以及數(shù)模轉(zhuǎn)換器)之間的互連。I2S接口還用于高端CD與DVD播放器、以及PC聲卡。I2S總線設(shè)計通常包括以下三條串行線路:1條包括兩個時分多址數(shù)據(jù)通道的線路,1條字選擇線路以及1條時鐘線路。在I2S標(biāo)準(zhǔn)(參見圖3)下,任何器件都可以通過提供必要的時鐘信號而成為系統(tǒng)主器件,I2S從器件通常驅(qū)動來自外部時鐘輸入的內(nèi)部時鐘信號。I2S設(shè)計能夠單獨處理來自時鐘信號的音頻數(shù)據(jù),而且通過分離數(shù)據(jù)信號與時鐘信號,可以減輕與時間相關(guān)的誤差(可能引起抖動),而不再需要防抖動器件。
圖3 I2S音頻信號實例
音頻輸入,音頻輸出
為了將音頻源與數(shù)字信號處理器相連,在圖4中,麥克風(fēng)的模擬輸出通過模數(shù)(A/D)轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,在這種情況下,麥克風(fēng)承擔(dān)相當(dāng)直接的接口任務(wù)。從控制的角度看,DSP作為主機工作,它選擇A/D轉(zhuǎn)換器作為SPI從屬外圍電路。接著,利用4個SPORT引腳中的3個引腳,向Blackfin處理器傳輸數(shù)據(jù)。圖5給出相反的例子,處理器與數(shù)模(D/A)轉(zhuǎn)換器的連接,這也同樣容易。在這種情況下,處理器仍將作為SPI接口主機配置與控制轉(zhuǎn)換器,數(shù)據(jù)通過I2S SPORT接口流向數(shù)模轉(zhuǎn)換器。然后,向講話者反饋模擬輸出。
圖4 音頻A/D轉(zhuǎn)換器與嵌入式處理器的連接
圖5 音頻D/A轉(zhuǎn)換器與嵌入式處理器的連接
音頻接口技巧
下面的幾個提示將使已經(jīng)容易的應(yīng)用變得更加容易。在處理器的雙線接口(TWI),一定要記住按照I2C規(guī)范在SCL與SDA上各加上一個上拉電阻,因為這些引腳不能由高電平驅(qū)動(所有的時鐘與同步信號都要使用正確的終止)。在SPI端口,要檢查每個MISO引腳與MISO引腳的連接(因為這兩個信號名稱非常相似,信號的名稱與功能容易混淆)。
簡化開發(fā)的一個好辦法是利用供應(yīng)商提供的器件驅(qū)動程序套件,供應(yīng)商的硬件平臺開發(fā)工具可以用于評估與開發(fā)嵌入式處理方案。例如,ADI公司的Visual DSP++工具套件,包括SPI、SPORT、TWI與其他接口的外圍驅(qū)動程序。用戶可以通過標(biāo)準(zhǔn)應(yīng)用編程接口(API),配置與控制這些接口。Blackfin EZ-KIT評估板與相關(guān)的EZ-Extender擴展卡,這些轉(zhuǎn)換器附帶了大量代碼范例,可以為設(shè)計人員提供有益的框架,使其迅速掌握音頻器件如何同Blackfin處理器進(jìn)行接口。
連接至視頻流
Blackfin處理器與視頻進(jìn)行接口類似于它與音頻的接口,但是比后者更復(fù)雜。
國際電信聯(lián)盟(ITU)的BT.601建議闡明了數(shù)字電視信號編碼。最常用的BT.601色彩空間是YCbCr色彩空間,其中,Y表示亮度分量,Cr與Cb表示色度分量。亮度與色度是根據(jù)RGB值計算出來的,它們相互獨立,比RGB信號更適于進(jìn)行壓縮。通常,在4:4:4 YCbCr格式中,每個像素包括1個亮度值和2個色度值(Cb與Cr)。4:2:2 YCbCr格式則是一種色彩空間壓縮格式,其中,每個像素由1個亮度值和1個色度值(Cb或Cr)組成。
數(shù)字視頻信號利用若干定時信號組成視頻幀。水平同步(HSYNC)信號標(biāo)定了一個視頻幀的每一個掃描行(從左至右)的有效視頻信號起點。垂直同步信號(VSYNC) 從上至下標(biāo)定了一個新的視頻幀起點。在交織視頻中,利用場指示器(FIELD)區(qū)分視頻幀的奇場與偶場。最后,像素時鐘信號對視頻幀中的像素分量同步進(jìn)行補充。
在BT.601標(biāo)準(zhǔn)視頻中,這些同步信號通過物理方式轉(zhuǎn)送到硬件引腳。不過,BT.656建議定義了傳輸4:2:2 YCbCr數(shù)字視頻的并行與串行接口,在數(shù)據(jù)流中嵌入這些同步信號,不再需要額外的硬件信號。這需要在數(shù)據(jù)流(0xFF, 0x00, 0x00, 0xAB—其中,0xAB是控制字節(jié),根據(jù)數(shù)據(jù)流中當(dāng)前像素的位置而不同)中插入前導(dǎo)。圖6給出NTSC與PAL幀結(jié)構(gòu)實例,圖7說明如何在數(shù)據(jù)流中設(shè)置前導(dǎo)。
圖6 BT.656數(shù)字視頻幀結(jié)構(gòu)
圖7 如何在BT.656視頻中使用前導(dǎo)
數(shù)字視頻源(如來自數(shù)字CMOS傳感器的信號)可以直接與Blackfin處理器的并行外設(shè)接口(PPI)連接。然而,模擬攝像機來源則必須首先通過視頻解碼器,經(jīng)過數(shù)字化轉(zhuǎn)換成視頻流后,輸入至處理器。
對于視頻輸出,處理器能夠?qū)τ谝曨l輸出而言,Blackfin處理器能夠自然地向TFT-LCD等顯示器發(fā)送數(shù)字視頻流。該顯示器只接受直接的數(shù)字輸入。另一方面,如果視頻信號欲流向模擬顯示器(如CRT顯示器),它必須首先通過硬件視頻編碼器,將數(shù)字視頻流轉(zhuǎn)換為適當(dāng)?shù)哪M格式。
連接視頻源
圖8給出CMOS圖像傳感器如何同嵌入式處理器連接。這里,雙線接口(TWI)控制通道與Micron公司的CMOS圖像傳感器I2C總線連接,圖像數(shù)據(jù)直接輸入Blackfin處理器的8位并行外設(shè)接口(也可以根據(jù)傳感器的分辨率,實現(xiàn)10位、12位甚或16位連接)。
圖8 COMS圖像傳感器與Blackfin處理器的連接
雖然Blackfin處理器的并行外設(shè)接口往往是包含直接接口的高速并行端口(16條數(shù)據(jù)線,最多3個幀同步信號,1個時鐘信號),但該端口不具備某些圖像友好的特性,因而無法與處理器的DMA引擎聯(lián)合工作。并行外設(shè)接口的詳細(xì)資料太多,本文不再贅述。
本例中的圖像傳感器提供像素時鐘信號以及某種類型的成幀處理——水平同步信號將標(biāo)定有效掃描行區(qū)域。而垂直同步信號則是一個“幀有效”類信號。對于支持ITU-R BT.656標(biāo)準(zhǔn)的許多其他圖像傳感器,則不需要這些同步信號。
如果視頻輸入信號來自模擬源,如便攜式模擬攝像機,那么信號必須首先經(jīng)過視頻解碼器。在圖9所示的例子中,處理器通過I2C與TWI接口配置解碼器,其PPI接口接收來自視頻解碼器的8位數(shù)字?jǐn)?shù)據(jù)流以及行鎖像素時鐘信號。
圖9 處理器與來自模擬源的視頻解碼器的連接
連接視頻顯示器
在大多數(shù)應(yīng)用中,僅保存在處理器內(nèi)存中的視頻幀的利用是有限的。視頻幀必須傳輸至顯示設(shè)備。當(dāng)然,模擬顯示器首先需要視頻編碼,如圖10所示??梢岳肐2C接口,完成通過Blackfin處理器PPI數(shù)據(jù)總線(盡管這些特殊編碼器支持BT.656標(biāo)準(zhǔn),某些編碼器確需要通過PPI幀同步信號傳送顯式幀同步信號)發(fā)送數(shù)據(jù)的配置。類似于TFT LCD面板的數(shù)字顯示器需要某些相同的信號層信號與同步層信號,包括水平同步信號、垂直同步信號以及數(shù)據(jù)取樣時鐘信號。在連接至TFT LCD面板時,一般都會利用整個16位數(shù)據(jù)總線,因為大多數(shù)TFT-LCD面板都支持18位甚至更高數(shù)據(jù)率;而且有選擇地使用脈寬調(diào)制(PWM)定時器模塊,因為許多TFT-LCD面板都不配備定時控制器。圖11給出模擬顯示時處理器與視頻編碼器的典型連接。
圖10 模擬顯示時處理器與視頻解碼器的連接
圖11 處理器與TFT LCD面板相連的實例
視頻連接技巧
我們應(yīng)當(dāng)盡可能采用BT.656標(biāo)準(zhǔn),因為它可以大幅減少視頻接口應(yīng)用中屢見不鮮的定時不協(xié)調(diào)與不一致的問題。同時,還需要密切注意的是,A/D或D/A轉(zhuǎn)換器的默認(rèn)設(shè)置。有時候,這些轉(zhuǎn)換器可以直接應(yīng)用,無需通過I2C或SPI接口進(jìn)行設(shè)置。此外,必須確保盡可能不要影響像素時鐘源,因為根據(jù)應(yīng)用的不同,這些時鐘速率可能高達(dá)數(shù)十MHz,一個完全獨立的時鐘信號有助于提高系統(tǒng)性能和穩(wěn)定性。
當(dāng)Blackfin處理器與典型的RGB666 LCD面板(其紅、綠、藍(lán)分量各占6位,共計18位)連接時,處理器的16位接口實際上是把其當(dāng)作RGB565連接的。不要將紅色與藍(lán)色通道中的最低有效位棄之不顧,因為這種通用做法會影響視頻信號的動態(tài)范圍。相反,在平板顯示器上,可以將紅色和藍(lán)色分量的最低有效位與最高有效位結(jié)合起來,這樣就可以確保三個色彩分量都能提供從最低值到最高值的完整動態(tài)范圍。而綠色通道則連接至6位接口,用于傳輸6位綠色分量信號,因為綠色是這三種色彩分量中對視覺影響最大的顏色。
評論