电竞比分网-中国电竞赛事及体育赛事平台

分享

GMSL

 攪吧攪吧小閣老 2022-02-25

首先,了解一下什么是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;
TL將串行器/解串器技術稱為FPD Link,現已發(fā)展到第三版本:FPD Link III

這兩家旗下分別有相對應的串行器和解串器產品,一般是為攝像頭供應商服務,集成到攝像頭內部,作為OEM的二級供應商。

今天我們的內容只涉及GMSL

GMSL的通信機理

下圖為GMSL在ADAS攝像頭中的應用,其大體流程如下:
在這里插入圖片描述
具體描述:

  • 圖像傳感器Image Sensor將捕獲的光信號轉為數字信號,經CSI2協議傳輸給串行器(MAX9295A),
    傳輸內容包括:圖像數據信息,像素時鐘,行同步信號,幀同步信號,其中raw12表示攝像頭的傳輸數據格式為原始數據raw格式,每個像素點有12bit數據,30fps表示每秒發(fā)送30張圖像
  • 串行器接收到數據信息后,對信息進行串行化處理,將數據整理成包的形式,然后通過同軸電纜,將包以串行的形式發(fā)送出去,我們注意到在通過同軸電纜時,有兩個方向的數據流傳輸,其中一個是前向通道,用于發(fā)送攝像頭捕捉的圖像數據,其帶寬為6Gbps,還有一個為回饋通道,用以接收應答信息,帶寬為187Mbps,這兩個通道的傳輸速率是不一樣的,可以根據實際需要進行設定,這也是GMSL的一大特色
  • 之后解串器會接收到串行器串行化的數據,對數據再進行解串,使數據回復至原來模樣,然后將原始數據傳給FPGA,這個一個定制電路板,一般圖像處理器ISP模塊會集成到里面,原始數據其實就是發(fā)送給了FPGA里面的ISP模塊,在它里面對數據進行一些算法處理,最終輸出RGB或者YUV格式
  • 圖中是將處理好的數據發(fā)送給了LCD(液晶顯示器),但在自動駕駛中,這個地方就會有些差異,ISP會將處理好的圖像數據發(fā)送給FPGA里的AI芯片,通過卷積神經網絡(CNN)對圖像進行分類,檢測,跟蹤等等,然后根據實際情況,指揮FPGA中的MCU對底盤進行控制,以達到自動駕駛的目的

GMSL數據傳輸

本文以MAX96711產品文檔為例,介紹GMSL數據傳輸的特點:

MAX96711產品描述
  • 該設備可在各種輸入寬度和字數下工作,串行數據速率高達1.74Gbps
  • 高帶寬模式提供116MHz的并行時鐘速率,具有12位視頻數據和2位同步(HS/VS)數據
  • 嵌入式9.6kbps至1Mbps控制通道程序
  • 序列化程序、反序列化程序和任何連接的UART或I2C外圍設備。
  • 為了促進安全應用,該設備具備視頻和控制數據的CRC保護。
  • 控制信道重傳和高抗擾度模式減少位錯誤對通信的影響
串行鏈路信號和數據格式

序列化程序對輸入的并行數據進行加擾,然后將其與前進控制數據相結合。這個數據之后會進行編碼然后以幾倍于輸入字速率的單個序列化比特流進行傳輸(取決于總線寬度)。反序列化程序接收串行數據并恢復時鐘信號。然后,數據將被反序列化、解碼并解擾為并行輸出數據和前向控制數據

工作模式

GMSL設備可配置為以多種模式運行(取決于應用程序)。這些模式可以更有效地利用串行帶寬。其中大部分設置在系統設計期間設置,并使用外部配置引腳或通過寄存器位進行配置。

視頻鏈路和配置鏈路

在正常工作中,序列化程序以視頻鏈路模式運行(serializer SEREN=1)將視頻數據和控制數據通過串行鏈路發(fā)送。在序列化程序中設置SEREN=0關閉序列化。序列化程序以視頻鏈路模式啟動,需要有效的PCLK才能運行。當PCLK不可用時,配置鏈路可用于設置串行器,解串器和外圍設備。在序列化程序中設置SEREN=0和CLINK=1以啟用配置鏈接(SEREN=1強制序列化程序進入視頻鏈接模式)。一旦PCLK被建立,就打開視頻鏈路(SEREN=1)。
默認情況下,視頻鏈路模式需要有效的PCLK才能工作。在序列化程序中設置AUTO_CLINK bit=1和SEREN=1,使設備在視頻鏈路和配置鏈路之間自動切換,當PCLK不存在時。

單/雙模式

單/雙模操作將可用的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的帶寬減少可能不可見
一個額外的32位視頻鏈路CRC可通過設置LINE_CRC_EN=1獲得。啟用時,序列化程序計算視頻鏈路的32位CRC,并在消隱期間發(fā)送此信息。解串器將接收到的CRC與視頻鏈路數據進行比較。當檢測到CRC錯誤時,解串器的LINE_CRC_ERR位鎖存。讀取時,LINE_CRC_ERR清除。

總線帶寬

串行鏈路具有多個總線寬度設置,這些設置決定并行總線寬度和產生的并行字速率。串行鏈路的最大串行比特率為1.74Gbps。BWS位決定每個串行數據包的長度是30位還是40位,當BWS=0或1時,這將轉換為最大串行數據包速率(以及產生的最大并行字速率)分別為58MHz或43.5MHz。編碼將24、27或32并行位轉換為30或40位串行數據包。一位用于奇偶校驗,另一位用于控制通道。在可選的6位CRC期間,使用額外的6位。除此之外,如果使用雙模式,則會將剩余的字大小一分為二。剩余的位可用于視頻位(如果不使用H/V編碼,則減去任何同步位)
以下模式列出了內部總線寬度??捎幂斎牒洼敵鲆_的數量可能會限制可用的實際總線寬度

  • 24位模式
    當BWS=0和HIBW=0時,30位串行包與表示24位(24位模式)的三個8b/10b符號相對應。在奇偶校驗和控制信道之后,如果使用或未使用CRC(單模式下),則留下16/22位視頻數據;如果使用或未使用CRC(雙模式下),則留下8/11位視頻數據。
    在這里插入圖片描述

  • 27位高帶寬模式
    當BWS=0和HIBW=1(高帶寬模式)時,30位串行包與表示27位(27位模式)的三個9b/10b符號相對應。在奇偶校驗和控制信道之后,如果使用或未使用CRC(單模式下),則留下19/25位視頻數據;如果使用或未使用CRC(雙模式下),則留下9/12位視頻數據。
    在這里插入圖片描述

  • 32位模式
    當BWS=1時,40位串行包對應于表示32位(32位模式)的四個8b/10b符號。在奇偶校驗和控制信道之后,如果使用或未使用CRC(單模式下),則留下24/30位視頻數據,如果使用或未使用CRC(雙模式下),則留下12/15位視頻數據。
    在這里插入圖片描述

控制信道和寄存器編程

控制通道通過串行總線發(fā)送信息用于控制串行器、解串器和任何附加的外圍設備。控制信道在串行鏈路上是多路復用的,無論有沒有視頻通道,都是可用的

前向控制信道

從串行器發(fā)送到解串器的控制數據為在前向控制信道上發(fā)送。數據被編碼作為前向高速鏈路中的串行位之一。之后經過解串器,從串行鏈路中提取前向控制通道數據。前向控制信道帶寬超過最大外部控制數據速率,并且前向控制通道上發(fā)送的所有數據均顯示在傳輸延遲幾位后的遠程端。

反向控制通道

從解串器發(fā)送到串行器的控制數據通過反向控制通道發(fā)送。數據被編碼為一系列1μs脈沖,最大原始
數據速率為1Mbps。高抗擾度模式可用于增加反向控制通道的魯棒性,在一個降低后的500kbps原始比特率下。在下表中,設置REV_FAST bit=1將該速率增加回1Mbps。在I2C模式下,如果輸入數據速率(編碼后)超過反向數據速率,則通過時鐘拉伸保持輸入時鐘,以減慢外部時鐘進而滿足內部比特率。
在這里插入圖片描述

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信號的延遲。
定時發(fā)生器使用三種不同的觸發(fā)模式,跟蹤、單觸發(fā)和自動運行。跟蹤模式查看輸入VSYNC,一旦收到三個連續(xù)相同的VSYNC信號就鎖定。跟蹤器之后繼續(xù)輸出相同的信號,擦除任何VSYNC上可能出現的故障。如果三個連續(xù)的輸入波形與鎖定信號不匹配,跟蹤器將嘗試重新鎖定到新信號。單觸發(fā)器為每個輸入VSYNC邊生成一個已經生成的幀。自動運行以確定的速率(這個速率由VSYNC高/低周期決定)生成新幀。如果有新的VSYNC信號在幀(單觸發(fā)或自動運行模式下生成的幀)之前出現,那么新幀立即開始,縮短前一幀。
在這里插入圖片描述

關機和睡眠模式

當不需要完全運行時,可以使用幾種睡眠和關機模式

  • 配置鏈路
    當高速視頻鏈路不需要或不可用時,可以使用配置鏈路代替高速視頻鏈路。在配置鏈路模式下,并行數字輸入/輸出被禁用,鎖定引腳保持低位,串行鏈路內部生成自己的時鐘,以允許控制通道(UART/I2C和GPIO)的完全操作。
  • 串行器禁用
    當串行鏈路不需要時,例如當下游設備斷電時,用戶可以禁用串行器。在此模式下,所有前向通信將關閉。用戶可以通過本地或反向通道重新啟用串行器
  • 睡眠模式
    為了進一步降低功耗,可以將設備置于睡眠模式。在此模式下,所有寄存器保持其編程值,設備中的所有功能均斷電,本地控制接口上的喚醒檢測器和串行鏈路除外。被喚醒檢測器檢測到的任何活動都會臨時打開控制通道接口。在此期間,微控制器可以命令設備退出睡眠模式。
  • 斷電模式
    最低功耗模式為斷電模式。在此模式下,所有功能均斷電,所有寄存器值丟失。
    在這里插入圖片描述

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多