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