可重編程的DisplayPort固件
DisplayPort在計(jì)算機(jī)行業(yè)中正在變得日益普及。它是一種免專利費(fèi)的數(shù)字顯示接口標(biāo)準(zhǔn),有替代模擬VGA的可能。隨著越來越多的計(jì)算機(jī)開始支持DisplayPort,顯示器、電視、投影儀和所有其他擁有DVI、HDMI、LVDS或VGA接口的外圍設(shè)備對(duì)DisplayPort接口的需求也在增長(zhǎng)。
大多數(shù)現(xiàn)有的DVI和HDMI接口都是專門設(shè)計(jì)用于雙模式DisplayPort源的電平轉(zhuǎn)換電路。不過,雙通道DVI、LVDS和VGA接口均需要協(xié)議轉(zhuǎn)換。例如,對(duì)于VGA接口,視頻信號(hào)必須從高速數(shù)字信號(hào)轉(zhuǎn)換為低速模擬信號(hào),這使得VGA接口成為一種非常復(fù)雜的設(shè)備。通常,協(xié)議轉(zhuǎn)換DisplayPort接口中的固件引擎掌管著這種轉(zhuǎn)換。
固件在協(xié)議轉(zhuǎn)換型DisplayPort接口中的作用
固件是驅(qū)動(dòng)著協(xié)議轉(zhuǎn)換的芯片中的引擎。幾項(xiàng)重要的任務(wù)取決于由固件所實(shí)現(xiàn)的狀態(tài)機(jī)。當(dāng)電纜接口插入到信號(hào)源時(shí),只有經(jīng)過幾個(gè)重要的步驟之后,視頻才能成功地傳輸?shù)?ldquo;接收端”(或接收機(jī))并正確顯示。固件掌管著以下幾件事情:
通過一種叫做HPD(熱插拔檢測(cè))的信號(hào)和一種叫做AUX CH(備用信道)的邊帶信道,建立起與信號(hào)源的通信;
完成鏈路訓(xùn)練;
在實(shí)際傳輸中,監(jiān)測(cè)主鏈路中的錯(cuò)誤;
從接收端讀取EDID信息,并傳遞給信號(hào)源;
轉(zhuǎn)換HPD信息,并將其返回信號(hào)源;
DisplayPort信號(hào)源內(nèi)部有自己的狀態(tài)機(jī),用于和接收端對(duì)話。電纜接口的固件必須正確地與信號(hào)源交互,以確保正確的操作。圖1所示的狀態(tài)圖用于在DisplayPort 1.1a規(guī)范中所推薦的鏈路訓(xùn)練。注意,規(guī)范中給出的所有固件指南都只是推薦,而并不一定就是實(shí)施或?qū)崿F(xiàn)該功能的唯一途徑。提供圖像源的不同供應(yīng)商會(huì)以自己的方式來實(shí)現(xiàn)這些細(xì)節(jié),這就會(huì)造成互操作性問題。
圖1 DisplayPort 1.1a規(guī)范中推薦的鏈路訓(xùn)練狀態(tài)機(jī)[!--empirenews.page--]當(dāng)前的業(yè)界難題
DisplayPort規(guī)范是相當(dāng)新的,而且正在演化。每種支持DisplayPort的GPU可能都有不同的DisplayPort源實(shí)現(xiàn),這意味著,當(dāng)協(xié)議轉(zhuǎn)換型DisplayPort接口插入到GPU1中時(shí),可能一切正常,但是它或許會(huì)因?yàn)镚PU2的DisplayPort實(shí)現(xiàn)而無法用于GPU2。例如:GPU2訪問接口的內(nèi)部寄存器的次序可能與GPU1不相同;或者在GPU輸出視頻之前,GPU2可能需要某些特定的數(shù)據(jù),而GPU1則不需要。
這種情況說明了規(guī)范符合性與設(shè)備互操作的差別的邊界情況,在新標(biāo)準(zhǔn)被采用的初期非常常見。這種問題會(huì)逐漸減少,因?yàn)樵诨ゲ僮餍詼y(cè)試中所積累的知識(shí)會(huì)幫助標(biāo)準(zhǔn)機(jī)構(gòu)引入新的符合性測(cè)試。
另一項(xiàng)不確定因素是當(dāng)前正在使用的大量不同的舊式顯示器和顯示板的操作存在差異性。因此,與一種顯示器匹配良好的接口可能無法用于另一種顯示器,即使是相同的計(jì)算機(jī)在通過DisplayPort來傳輸數(shù)據(jù)。到目前為止,沒有任何當(dāng)前已生效的確定性測(cè)試或設(shè)計(jì)要求能確保接口的互操作性達(dá)到100%。
讓我們來考慮幾個(gè)因?qū)崿F(xiàn)的不同而出現(xiàn)互操作性問題的案例。
幾個(gè)案例
案例1:圖1顯示了DisplayPort 1.1a規(guī)范所推薦的一種鏈路訓(xùn)練序列。鏈路訓(xùn)練序列由兩個(gè)階段組成:時(shí)鐘恢復(fù)階段和符號(hào)鎖定階段。推薦的訓(xùn)練序列要求在時(shí)鐘恢復(fù)階段成功之后再進(jìn)入符號(hào)鎖定階段。
我們?cè)龅竭^信號(hào)源不采納這種推薦的案例。在該案例中,在成功地完成時(shí)鐘恢復(fù)階段之后,信號(hào)源又發(fā)起另一個(gè)時(shí)鐘恢復(fù)階段。其結(jié)果可能是鏈路訓(xùn)練失敗,因?yàn)榻涌诳赡軙?huì)對(duì)信號(hào)源的工作序列做出不同的假設(shè)。為了克服這種互操作性問題:
1、規(guī)范可以更具體一些,闡明和/或規(guī)定一種特定方式的訓(xùn)練序列,這可能需要在標(biāo)準(zhǔn)機(jī)構(gòu)內(nèi)部針對(duì)規(guī)范進(jìn)行長(zhǎng)達(dá)數(shù)月的協(xié)商才能達(dá)成一致。
2、可以增加一項(xiàng)符合性測(cè)試,其實(shí)現(xiàn)需要幾個(gè)月的時(shí)間。
3、一種實(shí)際而有效的方式是通過接口固件中的小改動(dòng)來克服這種差異。最簡(jiǎn)單的實(shí)用方式是增強(qiáng)接口的固件。
案例2:當(dāng)協(xié)議轉(zhuǎn)換型DisplayPort接口另一端的顯示器連接或斷開連接時(shí),DisplayPort規(guī)范要求,接口應(yīng)當(dāng)向信號(hào)源回送中斷。我們發(fā)現(xiàn),有些DisplayPort源驅(qū)動(dòng)希望接口解除認(rèn)定HPD信號(hào),而不是生成中斷,所以VGA接口用于這種源時(shí),運(yùn)轉(zhuǎn)將不正常。
這一問題的解決方案是,或者升級(jí)信號(hào)源驅(qū)動(dòng),或者更換接口中的固件,以適應(yīng)信號(hào)源的這種行為。在2010年3月,NXP公司公布了針對(duì)市場(chǎng)上大量產(chǎn)品實(shí)現(xiàn)的一份調(diào)查。調(diào)查發(fā)現(xiàn),被測(cè)的4種接口解決方案中的兩種不能正確地處理該接口,而根據(jù)DisplayPort規(guī)范,大多數(shù)DisplayPort信號(hào)源都不能針對(duì)顯示器的斷開/連接過程給出正確的響應(yīng)。
為此,VESA增加了符合性測(cè)試,針對(duì)協(xié)議轉(zhuǎn)換型接口的這種特定的顯示器探測(cè)問題來檢查不符合性。調(diào)節(jié)接口中的固件就是一種實(shí)際的解決方案。
案例3:有些DPCD寄存器預(yù)留供今后使用,而新的DP源/驅(qū)動(dòng)器可能會(huì)在某些時(shí)刻訪問這些寄存器。因此,固件可能需要升級(jí)。例如,下列寄存器預(yù)留用于不同的用途:
00090h- 000FFh, 00109h- 001FFh:預(yù)留
0x247, 00249h – 0025Fh, 00262h – 0026Fh:預(yù)留,用于測(cè)試自動(dòng)化擴(kuò)展
00280h - 002FF:預(yù)留
0x303 0x5FF:預(yù)留,用于源設(shè)備的特定用法
0x403 0x5FF:預(yù)留,用于接收端設(shè)備的特定用法
0x503 0x5FF:預(yù)留,用于分支設(shè)備的供應(yīng)商特有用法
0x601 0x6ff :預(yù)留的寄存器
0x700h 0x67fff:預(yù)留的寄存器
可編程性提供了便捷的解決方案
所有這些問題的一種解決方案是協(xié)議轉(zhuǎn)換型DisplayPort接口內(nèi)部固件的靈活性。
今天,市場(chǎng)上現(xiàn)有的大多數(shù)DisplayPort轉(zhuǎn)VGA的接口解決方案都通過使用ROM或者通過將確定的固件轉(zhuǎn)換成硬件,實(shí)現(xiàn)了某種確定的固件。NXP PTN3392是一個(gè)值得關(guān)注的例外,它的內(nèi)部有一塊集成的閃存,可以使用新的固件聯(lián)機(jī)進(jìn)行重編程。它不需要任何附加硬件,編程是通過DisplayPort的AUX信道完成的(如圖2所示)。上面提到的3種案例分析都可以通過這種設(shè)備來加以解決/支持。這種方法解決了在這個(gè)領(lǐng)域中出現(xiàn)的互操作性問題,簡(jiǎn)化了接口制造商的工作,并為最終客戶提供了無縫式的體驗(yàn)。
圖2 通過AUX端口進(jìn)行Flash編程