首先,,了解一下什么是GMSLGMSL(Gigabit Multimedia Serial Links),中文名稱為千兆多媒體串行鏈路,是Maxim公司推出的一種高速串行接口,,適用于音頻,視頻和控制信號(hào)的傳輸,。 通信介質(zhì)支持同軸電纜以及屏蔽雙絞線,,使用50Ω同軸電纜或者100Ω屏蔽雙絞線(STP)時(shí),長度可達(dá)15m甚至更長 其核心技術(shù)為串行器/解串器技術(shù),,簡稱SerDes.首先通過串行器將并行數(shù)據(jù)流轉(zhuǎn)為串行數(shù)據(jù)流,,然后通過更高的頻率進(jìn)行傳輸,之后通過解串器將接收到的串行數(shù)據(jù)流轉(zhuǎn)換為并行數(shù)據(jù)流,。 GMSL誕生的意義GMSL的意義在于解決了音頻,,視頻和控制信號(hào)的高速傳輸問題。 在GMSL誕生之前,,面對大量的數(shù)據(jù)傳輸一般采用的方法是通過并行總線增加帶寬,,一根線傳輸不夠,我10根線總夠了吧,10根還不夠,,我繼續(xù)往上加,。這種方式面臨一個(gè)問題,就是線束會(huì)特別多,,在工業(yè)生產(chǎn)中,,大量的線束意味著增加成本和重量,,同時(shí)也會(huì)增加EMI電磁干擾。因此線束的數(shù)量一般不能太多,,但面對大量的數(shù)據(jù),,我又該怎么傳輸呢?還有一個(gè)辦法就是增加頻率,,我之前一秒發(fā)10組數(shù)據(jù),,我現(xiàn)在改成一秒發(fā)100組,這種方式在數(shù)據(jù)量不算太大時(shí),,是可以實(shí)施的,。但當(dāng)數(shù)據(jù)量達(dá)到一定量級(jí)后,高頻率的發(fā)送數(shù)據(jù)會(huì)使并行總線的劣勢顯示出來了,。 并行總線傳輸數(shù)據(jù)的前提是使用同一時(shí)序(同時(shí)發(fā)送,,同時(shí)接收)。當(dāng)頻率過高時(shí),,數(shù)據(jù)傳送難以和時(shí)鐘同步,,同時(shí)布線的長度稍有差異,也會(huì)導(dǎo)致同步困難,,另外,,提升時(shí)鐘頻率還容易引起信號(hào)線間的相互干擾??傊?,一系列的問題表明高速的數(shù)據(jù)傳輸并行總線是無法勝任的,這也是目前并行總線的技術(shù)瓶頸所在,。 并行總線無法勝任高數(shù)據(jù)流傳輸,,于是人們又把目光集中到串行總線上。想了想,,串行總線就一根,,不存在信號(hào)線之間的干擾,而且也沒有同一時(shí)序問題,,只需提高頻率,,就能進(jìn)行高數(shù)據(jù)流傳輸,而且工業(yè)上,,串行總線一般使用差分信號(hào)進(jìn)行傳輸,,這更加保證了信號(hào)的準(zhǔn)確性??梢哉f,,目前面對高數(shù)據(jù)流的傳輸,大家一般都會(huì)采用串行總線,,差分信號(hào)傳輸,。 以ADAS攝像頭為例,,這也是GMSL應(yīng)用的主要領(lǐng)域。一般來講,,攝像頭除了對外發(fā)送捕獲到的圖像數(shù)據(jù)外,,還會(huì)發(fā)送幀同步信號(hào),行同步信號(hào),,像素時(shí)鐘等信息,,此外還有電源供給等等,它是由許多信號(hào)線組成的一個(gè)并行總線,,之前我們說過,,并行總線在高速的數(shù)據(jù)傳輸過程中,是不占據(jù)優(yōu)勢的,,因此我們需要將這些并行的信號(hào)合并為串行信號(hào),,再通過更高頻率進(jìn)行傳輸。 辦法可能看起來很簡單,,但其中涉及的技術(shù)卻是很復(fù)雜的,,需要考慮數(shù)據(jù)流的合并,、回原,、帶寬以及穩(wěn)定性等等問題,目前掌握這項(xiàng)技術(shù)的只有Maxim和TL兩家,。 Maxim將這種串行器/解串器技術(shù)稱為GMSL; 這兩家旗下分別有相對應(yīng)的串行器和解串器產(chǎn)品,,一般是為攝像頭供應(yīng)商服務(wù),集成到攝像頭內(nèi)部,,作為OEM的二級(jí)供應(yīng)商,。 今天我們的內(nèi)容只涉及GMSL GMSL的通信機(jī)理下圖為GMSL在ADAS攝像頭中的應(yīng)用,其大體流程如下:
GMSL數(shù)據(jù)傳輸本文以MAX96711產(chǎn)品文檔為例,,介紹GMSL數(shù)據(jù)傳輸?shù)奶攸c(diǎn): MAX96711產(chǎn)品描述
串行鏈路信號(hào)和數(shù)據(jù)格式序列化程序?qū)斎氲牟⑿袛?shù)據(jù)進(jìn)行加擾,然后將其與前進(jìn)控制數(shù)據(jù)相結(jié)合,。這個(gè)數(shù)據(jù)之后會(huì)進(jìn)行編碼然后以幾倍于輸入字速率的單個(gè)序列化比特流進(jìn)行傳輸(取決于總線寬度),。反序列化程序接收串行數(shù)據(jù)并恢復(fù)時(shí)鐘信號(hào)。然后,,數(shù)據(jù)將被反序列化,、解碼并解擾為并行輸出數(shù)據(jù)和前向控制數(shù)據(jù) 工作模式GMSL設(shè)備可配置為以多種模式運(yùn)行(取決于應(yīng)用程序)。這些模式可以更有效地利用串行帶寬,。其中大部分設(shè)置在系統(tǒng)設(shè)計(jì)期間設(shè)置,,并使用外部配置引腳或通過寄存器位進(jìn)行配置。 視頻鏈路和配置鏈路在正常工作中,,序列化程序以視頻鏈路模式運(yùn)行(serializer SEREN=1)將視頻數(shù)據(jù)和控制數(shù)據(jù)通過串行鏈路發(fā)送,。在序列化程序中設(shè)置SEREN=0關(guān)閉序列化。序列化程序以視頻鏈路模式啟動(dòng),需要有效的PCLK才能運(yùn)行,。當(dāng)PCLK不可用時(shí),,配置鏈路可用于設(shè)置串行器,解串器和外圍設(shè)備,。在序列化程序中設(shè)置SEREN=0和CLINK=1以啟用配置鏈接(SEREN=1強(qiáng)制序列化程序進(jìn)入視頻鏈接模式),。一旦PCLK被建立,就打開視頻鏈路(SEREN=1),。 單/雙模式單/雙模操作將可用的1.74Gbps帶寬配置為各種寬度和字速率,。單模操作與所有GMSL設(shè)備和串行器兼容,,每個(gè)串行字產(chǎn)生一個(gè)并行字。雙模式為每個(gè)串行字序列化兩個(gè)半寬并行字,,從而使并行字速率范圍增加2倍(與單模式相比),。對于單模式操作,設(shè)置DBL=0,;對于雙模式操作,,設(shè)置DBL=1。 HS/VS編碼默認(rèn)情況下,,GMSL為HSYNC,、VSYNC和DE(如果使用)分配一個(gè)視頻位插槽。使用HS/VS編碼,,該設(shè)備將對特殊數(shù)據(jù)包進(jìn)行編碼,以同步信號(hào),,從而釋放額外的視頻比特槽,。當(dāng)設(shè)備處于高帶寬模式(HIBW=1)時(shí),默認(rèn)情況下HS/VS編碼打開,。DE僅在HIBW=1且DE_EN=1時(shí)編碼,。當(dāng)HIBW=0時(shí),設(shè)置HVEN=1以啟用HS/VS編碼(DE,,如果啟用,,則使用一個(gè)視頻位)。HS/VS編碼要求HSYNC,、VSYNC和DE(如果使用)在活動(dòng)視頻期間保持高電平,,在消隱期間保持低電平。使用反極性同步信號(hào)時(shí),,使用HS/VS反轉(zhuǎn),。 錯(cuò)誤監(jiān)測串行鏈路的8b/10b編碼/解碼和1位奇偶校驗(yàn)檢測串行鏈路上發(fā)生的位錯(cuò)誤,。可選的6位CRC檢查是以犧牲6個(gè)視頻位為代價(jià)的(當(dāng)HIBW=0時(shí)),。要激活6位CRC模式,,首先在遠(yuǎn)程側(cè)設(shè)備中設(shè)置PXL_CRC=1,然后在本地側(cè)設(shè)備中設(shè)置,。當(dāng)使用6位CRC模式時(shí),,可用的內(nèi)部總線寬度在單輸入模式(DBL=0)下減少6位,在雙輸入模式(DBL=1)下減少3位,。注意,,由于串行器或解串器的引腳可用性,輸入總線寬度可能已經(jīng)減??;因此,CRC的帶寬減少可能不可見 總線帶寬串行鏈路具有多個(gè)總線寬度設(shè)置,,這些設(shè)置決定并行總線寬度和產(chǎn)生的并行字速率,。串行鏈路的最大串行比特率為1.74Gbps。BWS位決定每個(gè)串行數(shù)據(jù)包的長度是30位還是40位,,當(dāng)BWS=0或1時(shí),,這將轉(zhuǎn)換為最大串行數(shù)據(jù)包速率(以及產(chǎn)生的最大并行字速率)分別為58MHz或43.5MHz。編碼將24,、27或32并行位轉(zhuǎn)換為30或40位串行數(shù)據(jù)包,。一位用于奇偶校驗(yàn),另一位用于控制通道,。在可選的6位CRC期間,,使用額外的6位。除此之外,,如果使用雙模式,,則會(huì)將剩余的字大小一分為二。剩余的位可用于視頻位(如果不使用H/V編碼,則減去任何同步位)
控制信道和寄存器編程控制通道通過串行總線發(fā)送信息用于控制串行器、解串器和任何附加的外圍設(shè)備,??刂菩诺涝诖墟溌飞鲜嵌嗦窂?fù)用的,無論有沒有視頻通道,,都是可用的 前向控制信道從串行器發(fā)送到解串器的控制數(shù)據(jù)為在前向控制信道上發(fā)送,。數(shù)據(jù)被編碼作為前向高速鏈路中的串行位之一。之后經(jīng)過解串器,,從串行鏈路中提取前向控制通道數(shù)據(jù)。前向控制信道帶寬超過最大外部控制數(shù)據(jù)速率,,并且前向控制通道上發(fā)送的所有數(shù)據(jù)均顯示在傳輸延遲幾位后的遠(yuǎn)程端,。 反向控制通道從解串器發(fā)送到串行器的控制數(shù)據(jù)通過反向控制通道發(fā)送。數(shù)據(jù)被編碼為一系列1μs脈沖,,最大原始 UART接口UART接口與所有GMSL設(shè)備兼容,,通過多個(gè)UART數(shù)據(jù)包在設(shè)備之間發(fā)送命令,。有兩種模式可用:基本模式和旁路模式?;灸J接糜诖衅?、解串器和使用UART-to-I2C轉(zhuǎn)換的I2C外圍設(shè)備之間的通信。旁路模式允許使用任何UART協(xié)議與外圍設(shè)備進(jìn)行全雙工UART通信 I2C接口串行鏈路通過控制通道將串行器和解串器I2C接口連接在一起,。當(dāng)I2C主機(jī)向鏈路一側(cè)(本地側(cè))發(fā)送命令時(shí),,控制通道將該信息轉(zhuǎn)發(fā)至鏈路另一側(cè)(遠(yuǎn)程側(cè)),并從鏈路另一側(cè)(遠(yuǎn)程側(cè))發(fā)送該信息,,從而允許單個(gè)微控制器配置串行器,,解串器和外圍設(shè)備。微控制器可以位于串行器端(顯示應(yīng)用程序)和解串器端(相機(jī)應(yīng)用程序),。只要使用軟件仲裁方法,,就支持雙微控制器操作。串行鏈路認(rèn)為在任何給定時(shí)間只有一個(gè)微控制器在通話,。 遠(yuǎn)程操作當(dāng)I2C主設(shè)備在本地從設(shè)備(直接連接到主設(shè)備的串行器/解串器)上啟動(dòng)通信時(shí),,遠(yuǎn)程側(cè)設(shè)備充當(dāng)主設(shè)備,發(fā)送從本地端設(shè)備轉(zhuǎn)發(fā)的數(shù)據(jù),,并轉(zhuǎn)發(fā)從連接到遠(yuǎn)程設(shè)備的外圍設(shè)備接收的任何數(shù)據(jù),。該遠(yuǎn)程側(cè)主設(shè)備根據(jù)I2C主設(shè)置寄存器中的定時(shí)設(shè)置進(jìn)行工作。設(shè)置主設(shè)置項(xiàng)來滿足被外部微控制器所使用的定時(shí)設(shè)置,。 時(shí)鐘拉伸定時(shí)I2C接口使用時(shí)鐘拉伸來允許數(shù)據(jù)通過串行鏈路轉(zhuǎn)發(fā),。主微控制器以及任何連接的外圍設(shè)備必須接受GMSL設(shè)備的時(shí)鐘拉伸。 基于數(shù)據(jù)包的I2C基于數(shù)據(jù)包的控制信道可用于增強(qiáng)控制信道的錯(cuò)誤處理,。這種控制信道方法處理同時(shí)發(fā)生的GPI/GPO和I2C傳輸,,以及錯(cuò)誤檢測和重傳。 數(shù)據(jù)包協(xié)議摘要基于數(shù)據(jù)包的控制信道使用一個(gè)同步的基于符號(hào)的系統(tǒng)通過控制信道進(jìn)行發(fā)送數(shù)據(jù),,通過控制信道發(fā)送的數(shù)據(jù)被分割成符號(hào)并存儲(chǔ)在傳輸隊(duì)列中,,然后通過鏈路發(fā)送。如果需要同時(shí)發(fā)送GPI和I2C數(shù)據(jù)(例如,,在I2C傳輸期間GPI進(jìn)行轉(zhuǎn)換),,則來自這兩個(gè)命令的符號(hào)被組合在隊(duì)列中,。如果傳輸隊(duì)列為空,則通過鏈路發(fā)送空閑數(shù)據(jù)包,,以保持控制信道鎖定,。接收到的I2C數(shù)據(jù)包由微控制器SCL速率(本地設(shè)備)或編程主比特率(遠(yuǎn)程設(shè)備)確定輸出。設(shè)備保持SCL低電平(時(shí)鐘拉伸),,直到從遠(yuǎn)端設(shè)備接收到數(shù)據(jù) 控制信道錯(cuò)誤檢測和數(shù)據(jù)包重傳當(dāng)使用基于數(shù)據(jù)包的控制信道時(shí),,所有數(shù)據(jù)包的錯(cuò)誤都會(huì)通過CRC檢查。CRC使用1,、5或8位檢測數(shù)據(jù)包中的1,、3或4個(gè)隨機(jī)位錯(cuò)誤。每當(dāng)檢測到錯(cuò)誤時(shí),,發(fā)送器會(huì)重新傳輸數(shù)據(jù)包,。如果重試次數(shù)超過8次,發(fā)送器將設(shè)置一個(gè)標(biāo)志,。接收器過濾掉有錯(cuò)誤的數(shù)據(jù)包,。 GPO/GPI控制串行器上的GPO遵循解串器上的GPI轉(zhuǎn)換。此GPO/GPI功能可用于傳輸信號(hào),,如環(huán)繞視攝像頭系統(tǒng)中的幀同步,。可選的,,GPO可以通過寄存器位直接設(shè)置,。 擴(kuò)頻串行器包含一個(gè)可編程的擴(kuò)頻輸出,通過將時(shí)鐘頻率峰值分散到整個(gè)頻譜來降低發(fā)射電平,。此外,,串行器和解串器可以跟蹤擴(kuò)展輸入時(shí)鐘,消除對多個(gè)擴(kuò)展時(shí)鐘的需要 電纜類型配置驅(qū)動(dòng)器輸出可編程為兩種類型電纜,,100Ω雙絞線和50Ω同軸電纜,。同軸模式下,將OUT+連接到解串器的IN+,。將未使用的IN-引腳保持未連接狀態(tài),,或?qū)⑵渫ㄟ^50Ω接地和一個(gè)電容器增加電源拒絕。通過50Ω電阻器將OUT-連接至VDD 交叉開關(guān)交叉開關(guān)在并行輸入/輸出和SerDes之間按路徑發(fā)送數(shù)據(jù),。無障礙的路徑確保了視頻源和目標(biāo)之間的映射,。由于每個(gè)交叉開關(guān)矩陣輸出 (XBO_)一個(gè)通過crossbar_寄存器位從可用的交叉矩陣輸入 (XBI_)中進(jìn)行選擇的一個(gè)多路復(fù)用輸入,因此多個(gè)交叉開關(guān)輸出可以使用相同的交叉開關(guān)輸入,。默認(rèn)情況下,,同步信號(hào)共享相同的輸入作為視頻數(shù)據(jù)的MSB(最高有效位) 視頻定時(shí)生成器串行器包括可編程視頻定時(shí)生成器用于生成/重定時(shí)輸入同步信號(hào)。這個(gè)定時(shí)生成器可用于修改相機(jī)的輸入定時(shí),,過濾掉同步信號(hào)中的小故障,,或減少所需的輸入同步信號(hào)數(shù)。每個(gè)同步信號(hào)可以單獨(dú)重定時(shí)或不修改,。幾個(gè)寄存器決定定時(shí)參數(shù)的長度(PCLK循環(huán))如下圖所示,。定時(shí)參數(shù)包括高/低周期長度、行計(jì)數(shù)和輸入VS信號(hào)的延遲,。 關(guān)機(jī)和睡眠模式當(dāng)不需要完全運(yùn)行時(shí),,可以使用幾種睡眠和關(guān)機(jī)模式
|
|