DVB-C廣播電視系統視頻傳輸接口ASI的實現
3.2 ASI解碼
在ASI的接收端,輸入的ASI碼流經過均衡后,輸入到cyb933芯片。它由內部的時鐘鎖相環首先鎖定ASI碼流時鐘,檢測同步字K28.5;找到后即確定了ASI比特流順序,然后進行串/并轉換。
由此可知,檢測到K28.5,即字節對齊是ASI解碼的重要前提,由此cyb933定義了一套檢測字節同步的方法。考慮到傳輸誤碼等原因可能造成假K28.5,因此cyb933采用雙字節確認方法。即連續兩個字節都是K28.5,才確認字節同步了,接著進入正常的單字節解碼狀態。在解碼狀態,如果在64個解碼字節中,CPLD計數到有16個字節是錯誤的,則CPLD必須向cyb933發送信息,要求cyb933重新進行字節同步。

字節同步后,因為K28.5是cyb923插入的同步字節,不能作為有效數據輸出,cyb933自動略除這些同步字節。當cyb933檢測到有效數據時,cyb933將輸出一位當前數據有效的指示,如果把這個信號當作FIFO的寫有效,則FIFO中的數據一定都是有效數據了。當FIFO半滿時,CPLD接收FIFO的半滿信號后,CPLD讀取FIFO中的數據,并根據讀出的字節是否是047H來確定TS包的同步字節;如果找到TS包同步字,將恢復對應的幀同步信號,此時CPLD計數188恢復出完整的TS包,接下來的字節如果不是047H,說明輸入數據有誤,CPLD將丟棄這些數據直到找到047H同步字,在此期間CPLD輸出TS空包。重新包同步后,CPLD才又開始計數輸出正確的188字節的MPEG-2 TS包,從而恢復出SPI正確的11位信號。同樣,當FIFO數據不可讀時,CPLD也輸出TS空包,以維持輸出的MPEG-2碼率恒定。
在SPI轉ASI的設計中,直接對SPI數據進行ASI編碼,而不考慮誤碼問題。主要考慮SPI數據直接從MB390輸出,沒有經過遠距離傳輸,因而降低了ASI編碼邏輯控制的復雜度。在ASI解碼過程中,ASI數據經過遠距離傳輸,要考慮誤碼的因素,所以增加了字節和包的重同步設計,以增加抗干擾能力。本方案在實際應用中很好地實現了SPI/ASI的相互轉換。
評論