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