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

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