Advb接收容錯(cuò)及處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)通信技術(shù),涉及ADVB通信鏈路接收端的容錯(cuò)處理機(jī)制及實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]航空電子數(shù)字視頻總線(ADVB)是為高帶寬、低延遲、非壓縮數(shù)字視頻傳輸開(kāi)發(fā)的一種視頻接口和協(xié)議標(biāo)準(zhǔn)。由于ADVB鏈路采用單向數(shù)據(jù)傳輸,接收端采用按行緩沖、按行顯示策略,當(dāng)鏈路或接收到的數(shù)據(jù)出現(xiàn)錯(cuò)誤的時(shí)候,勢(shì)必會(huì)導(dǎo)致按行輸出視頻圖像顯示紊亂的情況。因此,需提供一種ADVB鏈路接收端的容錯(cuò)處理機(jī)制和實(shí)現(xiàn)方法,以保證鏈路故障或出現(xiàn)錯(cuò)誤情況下不完整的視頻圖像數(shù)據(jù)不會(huì)向上層提交。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是,提供一種ADVB接收容錯(cuò)及處理方法,當(dāng)鏈路故障或出現(xiàn)錯(cuò)誤的情況下能夠確保不完整的視頻圖像數(shù)據(jù)不會(huì)向上層提交。
[0004]本發(fā)明的技術(shù)解決方案是:
[0005]一種ADVB接收容錯(cuò)及處理方法,包括以下步驟:
[0006]1】ADVB接收端口獲取時(shí)鐘同步、bit同步、字同步,使鏈路處于有效狀態(tài);再將獲取到的1B編碼轉(zhuǎn)換為SB數(shù)據(jù),進(jìn)而將32bit字?jǐn)?shù)據(jù)提交給上層處理;
[0007]2】如果在32bit字?jǐn)?shù)據(jù)中包含的內(nèi)容中檢測(cè)到原語(yǔ)SOFil或S0Fi3,則對(duì)當(dāng)前ADVB幀所包含的容器頭中的O類對(duì)象信息進(jìn)行解析,將數(shù)據(jù)幀計(jì)數(shù)器內(nèi)的計(jì)數(shù)清零,進(jìn)入步驟3 ;否則,繼續(xù)檢測(cè);
[0008]3IADVB接收端口接收容器中的ADVB幀包含的視頻行圖像數(shù)據(jù)信息,解析幀頭信息,對(duì)SEQ_ID和SEQ_CNT數(shù)值進(jìn)行判斷,將當(dāng)前數(shù)據(jù)幀計(jì)數(shù)值寫(xiě)入計(jì)數(shù)器內(nèi),同時(shí)將行圖像數(shù)據(jù)信息提交上層處理;
[0009]在數(shù)據(jù)正常接收過(guò)程中:
[0010]如果接收端檢測(cè)到8B/10B編碼錯(cuò)誤,則停止接收鏈路數(shù)據(jù)幀,返回步驟1,等待下一完整數(shù)據(jù)幀的到來(lái);
[0011]如果接收端檢測(cè)到CRC錯(cuò)誤,則丟棄錯(cuò)誤數(shù)據(jù)幀,返回步驟2,等待下一完整數(shù)據(jù)幀的到來(lái);
[0012]如果通信鏈路出現(xiàn)失同步的情況,則返回步驟1,直至重新獲取ADVB鏈路同步;
[0013]如果ADVB通信鏈路出現(xiàn)斷路情況,則返回步驟1,直至重新獲取ADVB鏈路同步;
[0014]如果接收端對(duì)容器中的ADVB幀計(jì)數(shù)未到最大值且檢測(cè)到EOFt,則終止數(shù)據(jù)接收,返回步驟2,等待下一完整數(shù)據(jù)幀的到來(lái);
[0015]如果從ADVB鏈路接收到的數(shù)據(jù)幀所包含的SEQ_CNT數(shù)值未到最大計(jì)數(shù)值且前后兩次數(shù)值不連續(xù),則終止數(shù)據(jù)接收,返回步驟2,等待下一完整數(shù)據(jù)幀的到來(lái);
[0016]如果接收端對(duì)容器中的ADVB幀計(jì)數(shù)未到最大值且前后兩幀的SEQ_ID值不一致,則終止數(shù)據(jù)接收,返回步驟2,等待下一完整數(shù)據(jù)幀的到來(lái);
[0017]如果接收端接收到的ADVB幀中的SOF字段為原語(yǔ)SOFil或S0Fi3,則返回步驟2。
[0018]本發(fā)明的優(yōu)點(diǎn)是:
[0019]1、本發(fā)明提出一種ADVB接收控制核心功能,適用于各種ADVB接口的設(shè)計(jì)當(dāng)中;
[0020]2、本發(fā)明方法提供的狀態(tài)機(jī)控制明確,易于硬件邏輯實(shí)現(xiàn);
[0021]3、本發(fā)明可在鏈路出錯(cuò)實(shí)時(shí)檢測(cè);
[0022]4、本發(fā)明能保證提交上層圖像數(shù)據(jù)的正確與完整性。
【附圖說(shuō)明】
[0023]圖1是ADVB接收端口容錯(cuò)控制狀態(tài)機(jī)示意圖。
【具體實(shí)施方式】
[0024]ADVB接收端口提供鏈路錯(cuò)誤處理機(jī)制,根據(jù)ADVB接收故障特點(diǎn)及模式(包括鏈路失同步、鏈路錯(cuò)誤、8B/10B編碼錯(cuò)誤、CRC錯(cuò)誤、圖像中斷等),設(shè)計(jì)獨(dú)立的容錯(cuò)處理狀態(tài)機(jī)和相應(yīng)的控制邏輯,控制邏輯在狀態(tài)機(jī)的控制下對(duì)接收端各種鏈路錯(cuò)誤進(jìn)行識(shí)別和處理,確保鏈路故障或出現(xiàn)錯(cuò)誤情況下不完整的視頻圖像數(shù)據(jù)不會(huì)向上層提交。
[0025]ADVB接收端口數(shù)據(jù)接收過(guò)程中的鏈路故障與錯(cuò)誤判斷在相應(yīng)容錯(cuò)控制狀態(tài)機(jī)的控制下進(jìn)行。
[0026]狀態(tài)機(jī)如圖1所示,狀態(tài)機(jī)工作流程如下:
[0027]狀態(tài)O:
[0028]該狀態(tài)為狀態(tài)機(jī)的初始狀態(tài),初始化上電或復(fù)位時(shí),狀態(tài)機(jī)進(jìn)入該狀態(tài)。在該狀態(tài)下,ADVB接收端口獲取時(shí)鐘同步、bit同步、字同步,使鏈路處于有效狀態(tài);將獲取到的1B編碼轉(zhuǎn)換為SB數(shù)據(jù),進(jìn)而將32bit字?jǐn)?shù)據(jù)提交給上層處理。如果檢測(cè)到原語(yǔ)SOFil或S0Fi3,則狀態(tài)機(jī)進(jìn)入狀態(tài)I ;否則,停留在狀態(tài)O。
[0029]狀態(tài)1:
[0030]該狀態(tài)為獲取ADVB鏈路同步后的容器初始幀判斷狀態(tài),在該狀態(tài)下,接收端口等待鏈路上檢測(cè)到SOFil或S0Fi3。若檢測(cè)到該原語(yǔ)序列,則對(duì)當(dāng)前ADVB幀所包含的容器頭中的O類對(duì)象信息進(jìn)行解析,將數(shù)據(jù)幀計(jì)數(shù)器內(nèi)的計(jì)數(shù)清零,狀態(tài)機(jī)進(jìn)入狀態(tài)2 ;否則,停留在狀態(tài)I。
[0031]狀態(tài)2:
[0032]該狀態(tài)為ADVB容器中行圖像數(shù)據(jù)正常接收狀態(tài),在該狀態(tài)下,接收端口接收容器中的ADVB幀包含的視頻行圖像數(shù)據(jù)信息,解析幀頭信息,對(duì)SEQ_ID和SEQ_CNT數(shù)值進(jìn)行判斷,將當(dāng)前數(shù)據(jù)幀計(jì)數(shù)值寫(xiě)入計(jì)數(shù)器內(nèi),同時(shí)將行圖像數(shù)據(jù)信息提交上層處理。在數(shù)據(jù)正常接收過(guò)程中,如果接收端檢測(cè)到8B/10B編碼錯(cuò)誤,狀態(tài)機(jī)進(jìn)入狀態(tài)3 ;如果接收端檢測(cè)到CRC錯(cuò)誤,狀態(tài)機(jī)進(jìn)入狀態(tài)4 ;如果通信鏈路出現(xiàn)失同步的情況,狀態(tài)機(jī)進(jìn)入狀態(tài)5 ;如果ADVB通信鏈路出現(xiàn)斷路情況,狀態(tài)機(jī)進(jìn)入狀態(tài)6 ;如果接收端對(duì)容器中的ADVB幀計(jì)數(shù)未到最大值且檢測(cè)到EOFt,則狀態(tài)機(jī)進(jìn)入狀態(tài)7 ;如果從ADVB鏈路接收到的數(shù)據(jù)幀所包含的SEQ_CNT數(shù)值未到最大計(jì)數(shù)值且前后兩次數(shù)值不連續(xù),則狀態(tài)機(jī)進(jìn)入狀態(tài)8 ;如果如果接收端對(duì)容器中的ADVB幀計(jì)數(shù)未到最大值且前后兩幀的SEQ_ID值不一致,則狀態(tài)機(jī)進(jìn)入狀態(tài)9 ;如果接收端接收到的ADVB幀中的SOF字段為SOFil或S0Fi3,則狀態(tài)機(jī)返回狀態(tài)I。
[0033]狀態(tài)3:
[0034]該狀態(tài)為ADVB通信鏈路出現(xiàn)8B/10B編碼錯(cuò)誤時(shí)的狀態(tài)。在該狀態(tài)下,接收端檢測(cè)到8B/10B編碼錯(cuò)誤,停止接收鏈路數(shù)據(jù)幀,狀態(tài)機(jī)返回狀態(tài)1,重新等待下一完整數(shù)據(jù)幀的到來(lái)。
[0035]狀態(tài)4:
[0036]該狀態(tài)為ADVB接收端出現(xiàn)CRC校驗(yàn)錯(cuò)誤時(shí)的狀態(tài)。在該狀態(tài)下,接收端檢測(cè)到CRC校驗(yàn)錯(cuò)誤,丟棄錯(cuò)誤數(shù)據(jù)幀,狀態(tài)機(jī)返回狀態(tài)1,重新等待下一完整數(shù)據(jù)幀的到來(lái)。
[0037]狀態(tài)5:
[0038]該狀態(tài)為ADVB通信鏈路出現(xiàn)失同步時(shí)的狀態(tài)。在該狀態(tài)下,接收端無(wú)法獲取鏈路同步,狀態(tài)機(jī)返回狀態(tài)O,直至重新獲取ADVB鏈路同步。
[0039]狀態(tài)6:
[0040]該狀態(tài)為ADVB鏈路中斷時(shí)的狀態(tài)。在該狀態(tài)下,接收端無(wú)法獲取鏈路同步,狀態(tài)機(jī)返回狀態(tài)0,直至重新獲取ADVB鏈路同步。
[0041]狀態(tài)7:
[0042]該狀態(tài)為接收端對(duì)容器中的ADVB幀計(jì)數(shù)未到最大值且檢測(cè)到EOFt時(shí)的情況。在該狀態(tài)下,接收到的數(shù)據(jù)幀包含的是視頻圖像中間行的數(shù)據(jù),此時(shí)檢測(cè)到EOFt,即收到代表最后一行的數(shù)據(jù),則終止數(shù)據(jù)接收,狀態(tài)機(jī)跳轉(zhuǎn)到狀態(tài)I。
[0043]狀態(tài)8:
[0044]該狀態(tài)為ADVB接收過(guò)程中數(shù)據(jù)不連續(xù)時(shí)的狀態(tài)。在該狀態(tài)下,從ADVB鏈路接收到的SEQ_CNT數(shù)值未到最大計(jì)數(shù)值且前后兩次數(shù)值不連續(xù),則終止數(shù)據(jù)接收,狀態(tài)機(jī)跳轉(zhuǎn)到狀態(tài)I。
[0045]狀態(tài)9:
[0046]該狀態(tài)為接收端對(duì)容器中的ADVB幀計(jì)數(shù)未到最大值且前后兩幀的SEQ_ID值不一致時(shí)的情況。在該狀態(tài)下,ADVB接收過(guò)程中接收到的不是容器內(nèi)的下一幀數(shù)據(jù),則終止數(shù)據(jù)接收,狀態(tài)機(jī)跳轉(zhuǎn)到狀態(tài)I。
【主權(quán)項(xiàng)】
1.一種ADVB接收容錯(cuò)及處理方法,其特征在于:包括以下步驟: I】 ADVB接收端口獲取時(shí)鐘同步、bit同步、字同步,使鏈路處于有效狀態(tài);再將獲取到的1B編碼轉(zhuǎn)換為SB數(shù)據(jù),進(jìn)而將32bit字?jǐn)?shù)據(jù)提交給上層處理; 2】如果在32bit字?jǐn)?shù)據(jù)中包含的內(nèi)容中檢測(cè)到原語(yǔ)SOFil或S0Fi3,則對(duì)當(dāng)前ADVB幀所包含的容器頭中的O類對(duì)象信息進(jìn)行解析,將數(shù)據(jù)幀計(jì)數(shù)器內(nèi)的計(jì)數(shù)清零,進(jìn)入步驟3 ;否則,繼續(xù)檢測(cè); 3】ADVB接收端口接收容器中的ADVB幀包含的視頻行圖像數(shù)據(jù)信息,解析幀頭信息,對(duì)SEQ_ID和SEQ_CNT數(shù)值進(jìn)行判斷,將當(dāng)前數(shù)據(jù)幀計(jì)數(shù)值寫(xiě)入計(jì)數(shù)器內(nèi),同時(shí)將行圖像數(shù)據(jù)信息提交上層處理; 在數(shù)據(jù)正常接收過(guò)程中: 如果接收端檢測(cè)到8B/10B編碼錯(cuò)誤,則停止接收鏈路數(shù)據(jù)幀,返回步驟1,等待下一完整數(shù)據(jù)幀的到來(lái); 如果接收端檢測(cè)到CRC錯(cuò)誤,則丟棄錯(cuò)誤數(shù)據(jù)幀,返回步驟2,等待下一完整數(shù)據(jù)幀的到來(lái); 如果通信鏈路出現(xiàn)失同步的情況,則返回步驟1,直至重新獲取ADVB鏈路同步; 如果ADVB通信鏈路出現(xiàn)斷路情況,則返回步驟1,直至重新獲取ADVB鏈路同步; 如果接收端對(duì)容器中的ADVB幀計(jì)數(shù)未到最大值且檢測(cè)到EOFt,則終止數(shù)據(jù)接收,返回步驟2,等待下一完整數(shù)據(jù)幀的到來(lái); 如果從ADVB鏈路接收到的數(shù)據(jù)幀所包含的SEQ_CNT數(shù)值未到最大計(jì)數(shù)值且前后兩次數(shù)值不連續(xù),則終止數(shù)據(jù)接收,返回步驟2,等待下一完整數(shù)據(jù)幀的到來(lái); 如果接收端對(duì)容器中的ADVB幀計(jì)數(shù)未到最大值且前后兩幀的SEQ_ID值不一致,則終止數(shù)據(jù)接收,返回步驟2,等待下一完整數(shù)據(jù)幀的到來(lái); 如果接收端接收到的ADVB幀中的SOF字段為原語(yǔ)SOFil或S0Fi3,則返回步驟2。
【專利摘要】本發(fā)明屬于計(jì)算機(jī)通信技術(shù),涉及ADVB接收容錯(cuò)及處理方法。本發(fā)明對(duì)ADVB鏈路接收端的容錯(cuò)處理狀態(tài)機(jī)及其實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的定義和說(shuō)明。本發(fā)明提供鏈路錯(cuò)誤處理機(jī)制,根據(jù)ADVB接收故障特點(diǎn)及模式(包括鏈路失同步、鏈路錯(cuò)誤、8B/10B編碼錯(cuò)誤、CRC錯(cuò)誤、圖像中斷等),設(shè)計(jì)獨(dú)立的容錯(cuò)處理狀態(tài)機(jī)和相應(yīng)的控制邏輯,控制邏輯在狀態(tài)機(jī)的控制下對(duì)接收端各種鏈路錯(cuò)誤進(jìn)行識(shí)別和處理。本法發(fā)明控制簡(jiǎn)單,易于硬件邏輯實(shí)現(xiàn),鏈路故障或出現(xiàn)錯(cuò)誤情況下,可以保證提交上層圖像數(shù)據(jù)的正確與完整性。
【IPC分類】H04N21-647
【公開(kāi)號(hào)】CN104735551
【申請(qǐng)?zhí)枴緾N201310737826
【發(fā)明人】朱志強(qiáng), 黃韜, 鄧發(fā)俊
【申請(qǐng)人】中國(guó)航空工業(yè)集團(tuán)公司第六三一研究所
【公開(kāi)日】2015年6月24日
【申請(qǐng)日】2013年12月24日