一種基于fc-av協(xié)議的幀接收控制電路及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)硬件技術(shù)領(lǐng)域,具體涉及一種基于FC-AV協(xié)議的幀接收控制電路及方法。
【背景技術(shù)】
[0002]FC-AV協(xié)議定義了音視頻數(shù)據(jù)到FC (光纖通道)的映射辦法,但要實(shí)現(xiàn)該協(xié)議,需要解決符合FC-AV協(xié)議的FC幀接收解析及控制輸出的電路及方法。然而國內(nèi)尚未見到基于該協(xié)議的幀接收控制電路相關(guān)技術(shù)資料,國外由于技術(shù)封鎖也沒有詳細(xì)可實(shí)施的資料可以借鑒。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種基于FC-AV協(xié)議的幀接收控制電路及方法,解決了符合FC-AV協(xié)議數(shù)據(jù)幀的接收控制問題。
[0004]本發(fā)明的解決方案是:
[0005]一種基于FC-AV協(xié)議的幀接收控制電路,其特殊之處在于:包括MAC單元、接收邏輯單元、寄存器單元、數(shù)據(jù)緩存單元以及視頻輸出單元;MAC單元的輸出端接入接收邏輯單元的輸入端,寄存器單元與接收邏輯單元相連,寄存器單元的輸出與視頻輸出單元的輸入連接,接收邏輯單元的輸出經(jīng)過數(shù)據(jù)緩存單元連接至視頻輸出單元。
[0006]上述數(shù)據(jù)緩存單元包括第一數(shù)據(jù)緩存單元和第二數(shù)據(jù)緩存單元,接收邏輯單元的輸出接入第一數(shù)據(jù)緩存單元和第二數(shù)據(jù)緩存單元的輸入端,第一數(shù)據(jù)緩存單元和第二數(shù)據(jù)緩存單兀的輸出接入視頻輸出單兀。
[0007]一種基于FC-AV協(xié)議的幀接收控制方法,其特殊之處在于:包括以下步驟:
[0008]I】MAC單元等待一個(gè)FC幀的接收,如果沒有新的FC幀,繼續(xù)等待,否則將接收到的FC幀送接收邏輯單元處理,轉(zhuǎn)到步驟2】;
[0009]2】接收邏輯單元檢測收的FC幀是否AV巾貞,如果非AV巾貞,則丟棄,如果是AV巾貞,則根據(jù)SOF判斷該幀是否為容器頭幀,如果為容器頭幀轉(zhuǎn)步驟3】,否則轉(zhuǎn)步驟4】;
[0010]3】將容器頭幀中的視頻數(shù)據(jù)狀態(tài)信息發(fā)送到寄存器單元進(jìn)行存儲(chǔ),轉(zhuǎn)步驟I】;[0011 ] 4】根據(jù)寄存器單元中的視頻信息,以及FC數(shù)據(jù)幀中編號(hào)計(jì)算數(shù)據(jù)幀SEQ_CNT計(jì)算數(shù)據(jù)幀在數(shù)據(jù)緩存單元中地址,并將數(shù)據(jù)按照計(jì)算好的地址寫入數(shù)據(jù)緩存單元中,根據(jù)視頻幀編號(hào)以及F_CTL狀態(tài)位信息判斷是否為一幅圖像最后一幀,如果是,轉(zhuǎn)步驟5】,否則轉(zhuǎn)步驟I】;
[0012]5】根據(jù)所收到的編號(hào)計(jì)算數(shù)據(jù)幀SEQ_CNT是否連續(xù)判斷整幅視頻幀否完整,如果存在錯(cuò)誤或者序列不完整,轉(zhuǎn)步驟6】;如果完整并且無錯(cuò)誤,則切換寫入的數(shù)據(jù)緩存單元,同時(shí)通知視頻輸出單元開始控制視頻輸出,轉(zhuǎn)步驟I】;
[0013]6】丟棄收到的視頻幀,并轉(zhuǎn)步驟I】。
[0014]本發(fā)明優(yōu)點(diǎn)在于:通過對(duì)接收幀中的容器頭幀進(jìn)行識(shí)別和解析獲得視頻分辨率以及視頻數(shù)據(jù)如何分幀的信息,通過解析接收幀中的SOF,TYPE, SEQ_CNT, F_CTL字段來進(jìn)行接收幀的控制,通過設(shè)置兩個(gè)圖像緩存來存儲(chǔ)圖像信息,并根據(jù)解析得到的視頻信息將視頻數(shù)據(jù)輸出。本發(fā)明可自動(dòng)完成FC-AV數(shù)據(jù)幀的接收,并根據(jù)幀內(nèi)部攜帶的信息自動(dòng)完成多種分辨率圖像數(shù)據(jù)的還原和輸出,可完成FC-AV協(xié)議到視頻數(shù)據(jù)的映射。
【附圖說明】
[0015]圖1為本發(fā)明的幀接收控制電路的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0016]下面結(jié)合附圖1對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步詳細(xì)描述。
[0017]該電路,包括MAC單元1、接收邏輯單元2、寄存器單元3、第一數(shù)據(jù)緩存單元4、第二數(shù)據(jù)緩存單元5、視頻輸出單元6。MAC單元I和接收邏輯單元2相連,寄存器單元3與接收邏輯單元2、視頻輸出單元6相連,第一數(shù)據(jù)緩存單元4和第二數(shù)據(jù)緩存單元5和接收邏輯單元2相連,第一數(shù)據(jù)緩存單元4、第二數(shù)據(jù)緩存單元5和視頻輸出單元6相連。
[0018]MAC單元1,用于接收FC幀。具體為,MAC單元I將FC鏈路上的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)并完成FC-2層協(xié)議解析之后將數(shù)據(jù)按照FC幀提交到接收邏輯單元2。
[0019]接收邏輯單元2,用來完成接收到FC幀的重組以及接收數(shù)據(jù)緩存單元的控制,接收邏輯單元2根據(jù)技術(shù)方案中所述的控制流程,可使用Mealy型有限狀態(tài)機(jī)描述實(shí)現(xiàn)。具體的,根據(jù)接收到的FC幀幀頭Type字段判斷是否為AV巾貞,并根據(jù)SOF判斷是否為容器頭幀,如果為容器頭幀,解析容器頭幀中的容器頭信息并存放到寄存器單元3,如果是數(shù)據(jù)幀,則按照數(shù)據(jù)幀幀頭SEQ_CNT字段的編號(hào)計(jì)算出該數(shù)據(jù)在緩存中的地址,并按照地址將其寫入第一數(shù)據(jù)緩存單元4或者第二數(shù)據(jù)緩存單元5中。
[0020]地址計(jì)算方法如下,其中該地址為字地址(I個(gè)字長度32bit):
[0021 ] 地址=數(shù)據(jù)緩存單元基地址+FC幀頭SEQ_CNT*FC幀數(shù)據(jù)負(fù)載長度;
[0022]其中,F(xiàn)C幀數(shù)據(jù)負(fù)載長度可按照下述公式計(jì)算:
[0023]FC幀長度=視頻列數(shù)*每個(gè)像素所占字節(jié)數(shù)/4/視頻分幀因子(單位為32bit);
[0024]寄存器單元3,主要完成接收FC-AV容器頭幀中視頻信息的獲取。實(shí)際中,這些視頻信息包括容器頭幀中的視頻分辨率信息,包括視頻行數(shù)、視頻列數(shù)、視頻的幀頻率以及每行視頻數(shù)據(jù)的分幀因子。收到第一個(gè)容器頭幀,寄存器單元將上述信息寄存起來,并根據(jù)后續(xù)收到的容器頭幀,更新寄存器單元的值。
[0025]第一數(shù)據(jù)緩存單元4和第二數(shù)據(jù)緩存單元5,每個(gè)緩沖區(qū)用來存放一幅完整視頻圖像數(shù)據(jù),第一數(shù)據(jù)緩存單元4和第二數(shù)據(jù)緩存單元5交替乒乓操作。具體為,通過視頻分辨率信息計(jì)算出視頻最后一行在數(shù)據(jù)緩存單元中的對(duì)應(yīng)地址(地址A),通過目前數(shù)據(jù)的寫入地址和地址A相比較,可以判斷是否已經(jīng)收到一幅完整的視頻信息,如果已經(jīng)收到完整的一幅視頻信息,數(shù)據(jù)緩沖區(qū)的寫指針切換到另一個(gè)數(shù)據(jù)緩存單元區(qū),同時(shí)輸出滿信號(hào)通知視頻輸出單兀6輸出視頻。
[0026]視頻輸出單元6,用于從數(shù)據(jù)緩存單元中讀取視頻數(shù)據(jù),并根據(jù)寄存器單元3中的視頻信息,并完成視頻輸出功能,視頻輸出具體格式可根據(jù)接收到的視頻分辨率,幀頻率等信息依據(jù)VESA標(biāo)準(zhǔn)實(shí)現(xiàn)。具體的,視頻輸出單元6在收到數(shù)據(jù)緩存單元輸出的滿信號(hào)后,開始從對(duì)應(yīng)的緩存中讀出視頻信息并按照VESA格式輸出。在將一個(gè)緩存中的數(shù)據(jù)輸出完成后,首先判斷另一個(gè)緩存滿信號(hào)是否有效,如果有效則切換讀指針到另一個(gè)緩存,否則繼續(xù)輸出此數(shù)據(jù)緩存單元的圖像。這樣可以保證不會(huì)出現(xiàn)一幅不連續(xù)的圖像被輸出。
[0027]本發(fā)明提供一種基于FC-AV協(xié)議的幀接收控制方法,利用上述的控制電路,包括以下步驟:
[0028]首先,MAC單元I完成FC幀的接收,并將接收到的FC幀發(fā)送給接收邏輯單元2處理;接收邏輯單元2檢測收到的FC幀是否AV幀,如果非AV幀,則丟棄,如果是AV幀,則根據(jù)SOF判斷該幀是否為容器頭幀,如果為容器頭幀,將容器頭幀中的視頻數(shù)據(jù)狀態(tài)信息發(fā)送到寄存器單元3進(jìn)行寄存;如果不是容器頭幀,根據(jù)寄存器單元3中的視頻信息,以及FC數(shù)據(jù)幀中編號(hào)計(jì)算數(shù)據(jù)幀SEQ_CNT計(jì)算數(shù)據(jù)幀在數(shù)據(jù)緩存單元中地址,并將數(shù)據(jù)按照計(jì)算好的地址寫入第一數(shù)據(jù)緩存單元4或第二數(shù)據(jù)緩存單元5中。然后,根據(jù)數(shù)據(jù)幀中編號(hào)計(jì)算數(shù)據(jù)幀SEQ_CNT以及F_CTL狀態(tài)位信息判斷是否為一幅圖像最后一幀,如果是最后一幀,根據(jù)所收到的編號(hào)計(jì)算數(shù)據(jù)幀SEQ_CNT是否連續(xù)判斷整幅視頻幀否完整,如果存在錯(cuò)誤或者序列不完整,丟棄收到的視頻幀;如果完整并且無錯(cuò)誤,則切換數(shù)據(jù)緩存單元。同時(shí)通知視頻輸出單兀6開始控制視頻輸出。
[0029]本發(fā)明提供的基于FC-AV協(xié)議的幀接收控制電路及方法,通過對(duì)接收幀中的容器頭幀進(jìn)行識(shí)別和解析獲得視頻分辨率以及分幀信息進(jìn)行解析后的視頻的各種信息,通過接收幀中的SOF,TYPE, SEQ_CNT, F_CTL字段進(jìn)行接收幀的控制,通過設(shè)置兩個(gè)圖像緩存來存儲(chǔ)圖像信息,并根據(jù)解析得到的視頻信息將視頻數(shù)據(jù)輸出。本發(fā)明可自動(dòng)完成FC-AV數(shù)據(jù)幀的接收,并根據(jù)幀內(nèi)部攜帶的信息自動(dòng)完成多種分辨率圖像數(shù)據(jù)的還原和輸出,可完成FC-AV協(xié)議到視頻的映射。
[0030]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)地說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種基于FC-AV協(xié)議的幀接收控制電路,其特征在于:包括MAC單元、接收邏輯單元、寄存器單元、數(shù)據(jù)緩存單元以及視頻輸出單元;MAC單元的輸出端接入接收邏輯單元的輸入端,寄存器單元與接收邏輯單元相連,寄存器單元的輸出與視頻輸出單元的輸入連接,接收邏輯單元的輸出經(jīng)過數(shù)據(jù)緩存單元連接至視頻輸出單元。
2.根據(jù)權(quán)利要求1所述的基于FC-AV協(xié)議的幀接收控制電路,其特征在于:數(shù)據(jù)緩存單元包括第一數(shù)據(jù)緩存單元和第二數(shù)據(jù)緩存單元,接收邏輯單元的輸出接入第一數(shù)據(jù)緩存單元和第二數(shù)據(jù)緩存單元的輸入端,第一數(shù)據(jù)緩存單元和第二數(shù)據(jù)緩存單元的輸出接入視頻輸出單元。
3.一種基于FC-AV協(xié)議的幀接收控制方法,其特征在于:包括以下步驟: IlMAC單元等待一個(gè)FC幀的接收,如果沒有新的FC幀,繼續(xù)等待,否則將接收到的FC幀送接收邏輯單元處理,轉(zhuǎn)到步驟2】; 2】接收邏輯單元檢測收的FC幀是否AV巾貞,如果非AV巾貞,則丟棄,如果是AV巾貞,則根據(jù)SOF判斷該幀是否為容器頭幀,如果為容器頭幀轉(zhuǎn)步驟3】,否則轉(zhuǎn)步驟4】; 3】將容器頭幀中的視頻數(shù)據(jù)狀態(tài)信息發(fā)送到寄存器單元進(jìn)行存儲(chǔ),轉(zhuǎn)步驟I】; 4】根據(jù)寄存器單元中的視頻信息,以及FC數(shù)據(jù)幀中編號(hào)計(jì)算數(shù)據(jù)幀SEQ_CNT計(jì)算數(shù)據(jù)幀在數(shù)據(jù)緩存單元中地址,并將數(shù)據(jù)按照計(jì)算好的地址寫入數(shù)據(jù)緩存單元中,根據(jù)視頻幀編號(hào)以及F_CTL狀態(tài)位信息判斷是否為一幅圖像最后一幀,如果是,轉(zhuǎn)步驟5】,否則轉(zhuǎn)步驟11; 5】根據(jù)所收到的編號(hào)計(jì)算數(shù)據(jù)幀SEQ_CNT是否連續(xù)判斷整幅視頻幀否完整,如果存在錯(cuò)誤或者序列不完整,轉(zhuǎn)步驟6】;如果完整并且無錯(cuò)誤,則切換寫入的數(shù)據(jù)緩存單元,同時(shí)通知視頻輸出單元開始控制視頻輸出,轉(zhuǎn)步驟I】; 6】丟棄收到的視頻幀,并轉(zhuǎn)步驟I】。
【專利摘要】本發(fā)明提供一種基于FC-AV協(xié)議的幀接收控制電路及方法,解決了符合FC-AV協(xié)議數(shù)據(jù)幀的接收控制問題。該電路包括MAC單元、接收邏輯單元、寄存器單元、數(shù)據(jù)緩存單元、視頻輸出單元;MAC單元和接收邏輯單元相連,寄存器單元與接收邏輯單元和視頻輸出單元均相連,接收邏輯單元通過數(shù)據(jù)緩存單元和視頻輸出單元相連。該方法通過對(duì)接收幀中的容器頭幀進(jìn)行識(shí)別和解析獲得視頻分辨率以及視頻數(shù)據(jù)如何分幀的信息,來進(jìn)行接收幀的控制。本發(fā)明可自動(dòng)完成FC-AV數(shù)據(jù)幀的接收,并根據(jù)幀內(nèi)部攜帶的信息自動(dòng)完成多種分辨率圖像數(shù)據(jù)的還原和輸出,可完成FC-AV協(xié)議到視頻數(shù)據(jù)的映射。
【IPC分類】H04N7-22, H04N7-01
【公開號(hào)】CN104702921
【申請?zhí)枴緾N201310664503
【發(fā)明人】田澤, 郭亮, 劉浩, 劉承禹, 蔡葉芳, 牛少平, 李攀, 楊海波, 胡小婷, 曹朋朋
【申請人】中國航空工業(yè)集團(tuán)公司第六三一研究所
【公開日】2015年6月10日
【申請日】2013年12月9日