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