DVB-C廣播電視系統(tǒng)視頻傳輸接口ASI的實現(xiàn)
3.2 ASI解碼
在ASI的接收端,輸入的ASI碼流經(jīng)過均衡后,輸入到cyb933芯片。它由內(nèi)部的時鐘鎖相環(huán)首先鎖定ASI碼流時鐘,檢測同步字K28.5;找到后即確定了ASI比特流順序,然后進(jìn)行串/并轉(zhuǎn)換。
由此可知,檢測到K28.5,即字節(jié)對齊是ASI解碼的重要前提,由此cyb933定義了一套檢測字節(jié)同步的方法??紤]到傳輸誤碼等原因可能造成假K28.5,因此cyb933采用雙字節(jié)確認(rèn)方法。即連續(xù)兩個字節(jié)都是K28.5,才確認(rèn)字節(jié)同步了,接著進(jìn)入正常的單字節(jié)解碼狀態(tài)。在解碼狀態(tài),如果在64個解碼字節(jié)中,CPLD計數(shù)到有16個字節(jié)是錯誤的,則CPLD必須向cyb933發(fā)送信息,要求cyb933重新進(jìn)行字節(jié)同步。
字節(jié)同步后,因為K28.5是cyb923插入的同步字節(jié),不能作為有效數(shù)據(jù)輸出,cyb933自動略除這些同步字節(jié)。當(dāng)cyb933檢測到有效數(shù)據(jù)時,cyb933將輸出一位當(dāng)前數(shù)據(jù)有效的指示,如果把這個信號當(dāng)作FIFO的寫有效,則FIFO中的數(shù)據(jù)一定都是有效數(shù)據(jù)了。當(dāng)FIFO半滿時,CPLD接收FIFO的半滿信號后,CPLD讀取FIFO中的數(shù)據(jù),并根據(jù)讀出的字節(jié)是否是047H來確定TS包的同步字節(jié);如果找到TS包同步字,將恢復(fù)對應(yīng)的幀同步信號,此時CPLD計數(shù)188恢復(fù)出完整的TS包,接下來的字節(jié)如果不是047H,說明輸入數(shù)據(jù)有誤,CPLD將丟棄這些數(shù)據(jù)直到找到047H同步字,在此期間CPLD輸出TS空包。重新包同步后,CPLD才又開始計數(shù)輸出正確的188字節(jié)的MPEG-2 TS包,從而恢復(fù)出SPI正確的11位信號。同樣,當(dāng)FIFO數(shù)據(jù)不可讀時,CPLD也輸出TS空包,以維持輸出的MPEG-2碼率恒定。
在SPI轉(zhuǎn)ASI的設(shè)計中,直接對SPI數(shù)據(jù)進(jìn)行ASI編碼,而不考慮誤碼問題。主要考慮SPI數(shù)據(jù)直接從MB390輸出,沒有經(jīng)過遠(yuǎn)距離傳輸,因而降低了ASI編碼邏輯控制的復(fù)雜度。在ASI解碼過程中,ASI數(shù)據(jù)經(jīng)過遠(yuǎn)距離傳輸,要考慮誤碼的因素,所以增加了字節(jié)和包的重同步設(shè)計,以增加抗干擾能力。本方案在實際應(yīng)用中很好地實現(xiàn)了SPI/ASI的相互轉(zhuǎn)換。
評論