ADI 的 Gigamulti** 序列鏈路 (GMSL) 方案可實現數字和音訊資料的序列轉換,然後通過一對雙絞線序列傳輸。 此外,整合的雙向控制通道使單個微處理器 (C) 能夠對序列器、解串器和所有連線的外設進行程式設計。 在典型應用中,可以省去遠端微處理器和相關元件,如時鐘源晶體和低壓電源。 該解決方案簡化了遠端設計,降低了系統成本、尺寸和功耗。 但是,考慮到 GMSL 之外的特殊需求,C 仍然駐留在系統中鏈路的兩端。 本應用筆記介紹了如何連線兩個 C 來控制 GMSL。
使用單個C時,如果C在序列器側,則序列器解串器兩端的控制方向選擇引腳(CDS)通常設定為低電平; 如果 c 在解串器側,則將方向控制選擇設定為高電平。 但是,如果序列器的CDS設定為低電平,而解串器的CDS設定為高電平,則每個GMSL晶元可以同時連線到其各自的C(圖1)。
圖1圖中顯示了帶有 CDS 設定的簡單雙 C 應用原理圖。
使用這兩個 C 時,序列器和解串器的 I2C 主機都被禁用,RX SDA 和 TX SDL 由其相應的 C 配置為 UART 介面。 由於每個裝置都作為本地裝置執行,因此它不能進入休眠狀態。 相應的/PWDN引腳用於控制每個器件進入低功耗狀態。 請務必記住,當從斷電狀態喚醒時,所有裝置設定都將重置為其初始上電值。
圖2序列化程式狀態圖 (cds = low)。
圖3解串器狀態圖(cds = 高)。
在圖 1 所示的配置中,每個 C 都可以使用 GMSL UART 協議與MAX9259序列器、MAX9260解串器或其他 C 進行通訊。 GMSL 不提供反衝突措施,使用者需要提供自己的衝突處理措施。
獨立網路
防止衝突的最簡單方法是讓每個 C 都有其附加的序列器解串器 fwdccen 和 revccen 位置 0 (0x04 d[1:0])。 該方案禁用了正向和反向控制通道的接收器和發射器,並有效地將控制網路拆分為兩個獨立的網路(圖4)。 通過序列鏈路進行的任何通訊首先需要每一端的 C 重新啟用相應鏈路端的通訊。 此設定位於"不斷"它在應用中非常有效,其中關鍵鏈路特定暫存器的設定不會從初始狀態改變。
圖4獨立控制網路可以避免衝突的可能性。
軟體衝突處理
在那些兩端序列鏈路之間必須進行通訊的應用中,使用者可以通過更高階別的協議避免衝突(圖 5)。 在下面的示例中,每個 C 都等待 ACK 幀來確定其指令是否成功。 發生衝突時,序列器反串器不會發出 ACK 幀。 C 在收到失敗的 ACK 幀後,會根據其裝置位址等待一段時間,然後再重新傳送指令。 由於微處理器在此設計中具有不同的器件位址,因此在重試通訊時不會發生衝突。
圖5軟體如何處理衝突的示例。
有些應用不需要兩個 C 始終工作。 在工作期間,如果任一端的 CDS 輸入改變狀態,器件將按照 MAX9259 資料手冊中描述的鏈路啟動步驟恢復執行。 根據需要在單 C 和雙 C 操作之間切換,並手動開啟 GMSL 將占用更少的資源。 可以關閉 C 以降低功耗,有助於延長電池壽命。
在以下應用中,鏈路的解串器側是配置為遠端開啟和關閉電源的顯示面板。 電路板關斷輸入和單/雙 C 控制都連線到MAX9260GPIO0的輸出(圖 6)。 上電後,GPIO輸出為高電平,以保持遠端裝置關閉,並且由於額外的逆變器,解串器配置為遠端裝置。 由於 MS 連線到 GPIO,因此MAX9260在睡眠模式下通電,所有其他裝置都處於低功耗狀態。
要開啟遠端控制面板,序列器會喚醒MAX9260並建立序列鏈路。 然後,序列器側的 C 將 GPIO0 設定為低電平,使 MS 設定為低電平,逆變器輸出設定為高電平。 逆變器將MAX9260設定為本地裝置,並喚醒遠端顯示面板中的其餘電路。 必須將 MS 設定為低電平,以保持 MAX9260 UART 介面的基本模式。
為了關閉遠端面板,序列器將 GPIO0 設定為高電平以關閉遠端裝置,並將MAX9260設定為遠端裝置。 然後,在MAX9260內設定 sleep = 1 以將裝置置於睡眠模式。
圖6單顯示、雙顯示和遠端顯示示例。
與上面的示例類似,鏈路的序列器端是乙個攝像頭模組,配置為關閉遠端端的電源。 MAX9259的 INT 輸出控制電路板的關斷輸入和單/雙 C 開關(圖 7)。 在此應用程式中,INT 用作 GPO,通過設定 setint(MAX9259 的 0x0d d7)或反串化程式的 INT 輸入來控制輸出。 上電後,int 輸出為低電平,使遠端裝置保持關閉狀態。 逆變器輸出連線到 CDS,將序列器配置為遠端裝置。 由於/自動電平有效設定為高電平,因此MAX9259在休眠模式下上電。
要開啟遠端面板,解串器通過 GMSL UART 命令喚醒MAX9259。 然後,解串器將MAX9259的int輸出設定為高電平,以啟動所有遠端器件。 逆變器輸出將MAX9259作為本地裝置,可以通過本地 C 接收 UART 指令。
為了關閉遠端面板,解串器將MAX9259的 int 輸出設定為低電平,關閉遠端裝置,並將MAX9259設定為遠端裝置。 然後,解串器在MAX9259內設定 sleep = 1 以使裝置進入睡眠狀態。
圖7單雙c遠端攝像頭示例。
double-C 應用不限於上述示例。 具有實時 CDS 和旁路設定(通過 MS)的對稱雙向控制面板支援啟動多種序列器、解串器和 C 配置。 設計人員需要更多的控制來提高系統功能並最大限度地降低系統功耗,從而最大限度地利用可用資源。
如需購買ADI晶元,申請樣品測試、BOM匹配訂單等需求,**客服微信:13310830171。
#adi#