專利名稱:基于RapidIO協議網絡的視頻采集傳輸裝置及方法
技術領域:
本發明涉及嵌入式計算機通信技術領域,特別涉及嵌入式系統視頻采集技術領域,具體是指一種基于Rapid IO協議網絡的視頻采集傳輸裝置及方法。
背景技術:
目前,在嵌入式計算機領域,由單處理器架構已經發展成云計算、多處理器集群架構,Rapid IO網絡已成為新型多計算機、多處理器、多DSP的互聯的首要選擇。在現有技術中,諸多視頻輸入控制器接到同一個處理器,再由該處理器將視頻信息與其他處理器分享。 這樣一來,視頻控制器的驅動程序及有些任務必須運行于該處理器之上,這樣該處理器就存在特殊性,不利于驅動程序和任務的遷移。另外,視頻數據首先存入處理器內存,然后經該處理器進行協議打包、二次傳輸后才能到達其他處理器,增加了視頻數據的延時,不利于快速的將視頻數據傳遞到各個處理器。若該處理器任務繁重,就極有可能出現視頻抖動的問題。發明內容
本發明的目的是克服了上述現有技術中的缺點,提供一種將視頻數據緩沖后直接發往各個處理器,而無需將其存放到外部內存當中,不需要由處理器來實現視頻數據的轉發,從而實現一種快速,高效,且節約邏輯資源,結構簡單,實現方法簡便,成本低廉,應用范圍廣泛的基于Rapid IO協議網絡的視頻采集傳輸裝置及方法。
為了實現上述的目的,本發明的基于Rapid IO協議網絡的視頻采集傳輸裝置具有如下構成
該裝置包括視頻傳感器、視頻控制器和RapidIO交換機。其中,視頻傳感器用以獲取視頻數據流;視頻控制器用以從所述的視頻傳感器獲取視頻數據流,并將數據視頻數據流直接變為相應的Rapid IO寫事務包;而Rapid IO交換機則用以將所述的Rapid IO寫事務 包依次寫入多個相應RapidIO處理器中。
該基于Rapid IO協議網絡的視頻采集傳輸裝置中,所述的視頻控制器包括視頻輸入控制器、視頻異步先進先出FIFO隊列、視頻存儲先進先出FIFO隊列、視頻傳輸控制器、 IIC總線主控制器、IIC總線主異步先進先出FIFO隊列、IIC總線從異步先進先出FIFO隊列、寄存器堆、錯誤檢測模塊、Rapid IO控制器、Rapid IO主請求總線、Rapid IO從應答總線、RapidIO從請求總線和Rapid IO從應答總線,其中,
所述的Rapid IO控制器通過所述的Rapid IO交換機連接多個Rapid IO處理器;
所述的視頻輸入控制器與所述的視頻異步先進先出FIFO隊列和所述的視頻傳感器相連接;
所述的視頻傳輸控制器與所述的視頻異步先進先出FIFO隊列、視頻存儲先進先出FIFO隊列和寄存器堆相連接,并通過所述的Rapid 10主請求總線連接所述的Rapid 10 控制器;
所述的IIC總線主控制器與所述的視頻傳感器、IIC總線主異步先進先出FIFO隊列和IIC總線從異步先進先出FIFO隊列相連接;
所述的寄存器堆連接所述的IIC總線主異步先進先出FIFO隊列和所述的IIC總線從異步先進先出FIFO隊列,該寄存器堆還分別通過所述的Rapid IO從請求總線和所述的Rapid IO從應答總線連接所述的Rapid IO控制器;
所述的錯誤檢測模塊連接所述的寄存器堆,該錯誤檢測模塊還通過所述的Rapid IO從應答總線連接所述的Rapid IO控制器。
該基于Rapid IO協議網絡的視頻采集傳輸裝置中,所述的寄存器堆包括多個節點寄存器組,每個所述的節點寄存器組均包括占用寄存器、圖像傳輸使能寄存器、兩個遠端內存基地址寄存器、視頻數據目標ID、中斷使能寄存器和Doorbell目標ID。其中,
占用寄存器用以在當處理器讀取該寄存器后,自動設為占用狀態,不能被其他處理器使用;
圖像傳輸使能寄存器用以開啟視頻傳輸寄存器;
兩個遠端內存基地址寄存器分別用以存放遠端Rapid 10處理器用于乒乓操作的內存地址信息,所述的兩個內存基地址寄存器交替使用;
視頻數據目標ID用以存儲視頻數據需要發送到遠端Rapid 10處理器的設備ID ;
中斷使能寄存器包括行中斷與場中斷寄存器,用以在遠端Rapid 10處理器使能該中斷使能寄存器后,當控制器發送完一幀或一行,則向遠端Rapid 10處理器發送Doorbell 事務包;
Doorbell目標ID用以在開啟中斷后,存儲遠端接收Doorbell事務包的Rapid 10 處理 器的設備ID。
本發明還提供一種利用所述的裝置實現基于Rapid 10協議網絡的視頻采集傳輸控制方法,該方法包括以下步驟
(A)所述的視頻傳感器獲取視頻數據流;
(B)所述的視頻控制器從所述的視頻傳感器獲取所述的視頻數據流,并將數據視頻數據流直接變為相應的Rapid 10寫事務包;
(C)所述的Rapid 10交換機將所述的Rapid 10寫事務包依次寫入多個相應Rapid 10處理器中。
該實現基于Rapid 10協議網絡的視頻采集傳輸控制方法中,所述的視頻控制器包括視頻輸入控制器、視頻異步先進先出FIFO隊列、視頻存儲先進先出FIFO隊列、視頻傳輸控制器、IIC總線主控制器、IIC總線主異步先進先出FIFO隊列、IIC總線從異步先進先出 FIFO隊列、寄存器堆、錯誤檢測模塊、Rapid 10控制器、Rapid 10主請求總線、Rapid 10從應答總線、Rapid 10從請求總線和Rapid 10從應答總線,所述的步驟(B)具體包括以下步驟
(I)需要視頻數據的多個Rapid 10處理器將視頻控制器配置信息寫入各自內存后,通過Rapid 10 Nwrite事務配置寄存器堆;
(2)所述的Rapid 10控制器將配置信息寫入寄存器堆,并將寫入地址提供給所述的視頻傳輸控制器;
( 3 )所述的視頻輸入控制器等待場同步信號,并在接收到場同步信號后,將視頻數據修改為64位,將其與場同步信號一起存入所述的視頻異步先進先出FIFO隊列;
(4)所述的視頻傳輸控制器檢測所述的視頻異步先進先出FIFO隊列中的數據大小,當大于256B后,進入步驟(5);
(5)所述的視頻傳輸控制器狀態機在獲取狀態獲取寄存器堆目標ID和目標地址, 并根據目標ID和目標地址將視頻數據寫入所述的視頻存儲先進先出FIFO隊列中;
(6)所述的視頻傳輸控制器視頻數據發送完畢后,再次獲取寄存器堆目標ID和目標地址若還存在,則進入步驟(7),若不存在,則進入步驟(9);
(7)所述的視頻傳輸控制器判斷所述的寄存器堆目標ID是否為發送DOORBELL目標ID,若是,則進入所述的步驟(C),若否,則返回步驟(5);
所述的步驟(C)具體包括以下步驟
(8)所述的視頻傳輸控制器的狀態機發送相應DOORBELL事物包;
(9)所述的Rapid 10控制器通過Rapid 10主請求總線收到NWRITE-R的事務,將其發送到所述的Rapid 10交換機;
(10)相應的Rapid 10處理器收到所述的NWRITE-R事務包,由硬件內存控制器更新內存空間數據,并返回應答Response返回包;
(11)所述的應答Response返回包經Rapid 10交換機、Rapid 10控制器、Rapid 10主應答總線發送到所述的錯誤檢測模塊;
(12)錯誤檢測模塊根據所述的應答Response返回包更新寄存器堆中寄存器值;
(13)相應的Rapid 10處理器接收到所述的DOORBELL事務包,由中斷控制器產生中斷,執行中斷服務程序,中斷服務程序釋放視頻完成信號量;
( 14)視頻處理任務獲得視頻完成信號量,處理視頻程序,處理完成后,再次獲取視頻信號量。
該實現基于Rapid 10協議網絡的視頻采集傳輸控制方法中,所述的寄存器堆包括多個節點寄存器組,每個所述的節點寄存器組均包括占用寄存器、圖像傳輸使能寄存器、 兩個遠端內存基地址寄存器、視頻數據目標ID、中斷使能寄存器和Doorbell目標ID,所述的步驟(2)具體包括以下步驟
(21)所述的Rapid 10控制器依次讀取節點寄存器組占用寄存器,直到找到空節點寄存器組;
(22)所述的Rapid 10控制器使用Rapid 10協議的NWRITE-R事務將配置信息寫入該空節點寄存器組;
(23)所述的Rapid 10控制器從被寫入的節點寄存器組選出第一個發送節點信息提供給所述的視頻傳輸控制器。
該實現基于Rapid 10協議網絡的視頻采集傳輸控制方法中,所述的步驟(5)具體包括以下步驟
(51)所述的視頻傳輸控制器狀態機在獲取狀態獲取寄存器堆目標ID和目標地址,若所述的先進先出FIFO隊列選擇寄存器為0,則進入步驟(52),若所述的先進先出FIFO 隊列選擇寄存器為1,則進入步驟(53);
(52)所述的視頻傳輸控制器根據所述的視頻異步先進先出FIFO隊列提供的數據,通過Rapid 10主請求總線發送NWRITE-R事務給Rapid 10控制器,并將視頻數據寫入視頻存儲先進先出FIFO隊列中,將所述的先進先出FIFO隊列選擇寄存器置為I ;
(53)所述的視頻傳輸控制器根據所述的視頻異步先進先出FIFO隊列提供的數據,通過Rapid IO主請求總線發送NWRITE-R事務給Rapid IO控制器,并將視頻數據寫入視頻存儲先進先出FIFO隊列中,將所述的先進先出FIFO隊列選擇寄存器置為O。
該實現基于RapidIO協議網絡的視頻采集傳輸控制方法中,所述的步驟(12)具體為
所述的錯誤檢測模塊若發現所述的應答Response返回包發生錯誤或未收到應答 Response返回包,則認為相應的節點遺失,并不再向該節點發送NRITE-R事務包,不向其提供視頻數據。
該實現基于Rapid 10協議網絡的視頻采集傳輸控制方法中,所述的方法在步驟(I)之前還包括以下步驟
(0)所述的裝置進行視頻控制器配置操作和視頻 傳感器配置操作。
該實現基于RapidIO協議網絡的視頻采集傳輸控制方法中,所述的視頻傳感器配置操作具體包括以下步驟
(Ml)所述的Rapid 10處理器向視頻控制器發送NWRITE事務包,地址為所述的IIC 異步先進先出FIFO隊列地址;
(M2)所述的NWRITE事務包經過所述的Rapid 10交換機、Rapid 10控制器、Rapid 10從請求總線,到達所述的寄存器堆;
(M3)所述的寄存器堆根據所述的IIC異步先進先出FIFO隊列地址,將數據寫入 IIC主異步先進先出FIFO隊列,并通過Rapid 10從應答總線、Rapid 10控制器、Rapid 10 交換機向所述的返回Rapid 10處理器返回應答Response返回包;
(M4)所述的IIC主控制器發現主異步先進先出FIFO隊列非空后,讀取IIC指令數據,并發起IIC讀寫的主操作;
(M5)若所述的主操作為IIC讀操作,則所述的視頻傳感器返回的數據被IIC主控制器讀取,并寫入所述的IIC從異步先進先出FIFO隊列;
(M6)所述的Rapid 10處理器向視頻控制器發送NREAD事務包,地址為IIC異步先進先出FIFO隊列地址;
(M7)所述的NREAD事務包經過所述的Rapid 10交換機、Rapid 10控制器、Rapid 10從請求總線,到達所述的寄存器堆;
(M8)所述的寄存器堆根據所述的IIC異步先進先出FIFO隊列地址,讀取IIC從異步先進先出FIFO隊列的數據,并通過Rapid 10從應答總線、Rapid 10控制器、Rapid 10 交換機,向所述的Rapid 10處理器返回應答Response返回包;
(M9)所述的Rapid 10處理器獲得數據。
該實現基于Rapid 10協議網絡的視頻采集傳輸控制方法中,所述的視頻控制器配置操作具體包括以下步驟
(NI)所述的Rapid 10處理器向所述的視頻控制器讀取O號占用寄存器的值,并發送NREAD事務包到視頻控制器;
(N2)所述的NREAD事務包經過所述的Rapid 10交換機、Rapid 10控制器和Rapid 10從請求總線到達寄存器堆;
(N3)所述的寄存器堆根據所述的NREAD事務為讀取所述的O號占用寄存器,則將所述的O號占用寄存器的值通過所述的Rapid IO從應答主線、Rapid IO控制器和Rapid IO交換機向所述的Rapid IO處理器返回應答Response返回包,若O號占用寄存器未被占用,則將其值修改為占用,并賦值視頻數據目標ID ;
(N4)所述的Rapid IO處理器得到的占用狀態若為被占用,則向視頻控制器讀取I 號占用寄存器的值,發送所述的NREAD事務包到視頻控制器,并依次類推,直到遍歷完所有占用寄存器;
(N5)所述的Rapid IO處理器得到的占用狀態若為未被占用,則將需要配置的中斷使能寄存器、兩個遠端內存基地址寄存器、視頻數據目標ID、中斷使能寄存器和Doorbell 目標ID寄存器的數據寫入一段內存地址;
(N6)所述的Rapid IO處理器啟動NWRITE事務包,將內存地址數據發送到視頻控制器;
(N7)所述的NWRITE事務包通過所述的Rapid IO交換機、Rapid IO控制器和Rapid IO從請求總線到達所述的寄存器堆;
(NS)所述的寄存器堆配置所述的中斷使能寄存器、兩個遠端內存基地址寄存器、 視頻數據目標ID、中斷使能寄存器和Doorbell目標ID寄存器。
采用了該發明的基于Rapid 10協議網絡的視頻采集傳輸裝置及方法,其裝置視頻傳感器、視頻控制器和RapidIO交換機,該方法中,利用視頻控制器從視頻傳感器獲取視頻數據流,并將數據視頻數據流直接變為相應的Rapid 10寫事務包;進而由Rapid 10交換機將Rapid 10寫事務包依次寫入多個相應Rapid 10處理器中。從而能夠在將視頻數據緩沖后直接發往各個Rapid 10處理器,而無需將其存放到外部內存當中,也不需要由處理器來實現視頻數據的轉發,實現一種快速,高效,且節約邏輯資源,結構簡單,實現方法簡便,成本低廉,應用范圍廣泛的基于Rapid 10協議網絡的視頻采集傳輸裝置及方法。
圖I為本發明的基于Rapid 10協議網絡的視頻采集傳輸裝置的結構示意圖。、
圖2為本發明的基于Rapid 10協議網絡的視頻采集傳輸裝置中的寄存器堆示意圖。
圖3為本發明的基于Rapid 10協議網絡的視頻采集傳輸裝置的狀態流程圖。
具體實施方式
為了能夠更清楚地理解本發明的技術內容,特舉以下實施例詳細說明。
請參閱圖I所示,為本發明的基于RapidIO協議網絡的視頻采集傳輸裝置的結構示意圖。
在一種實施方式中,該裝置包括視頻傳感器201、視頻控制器200和Rapid 10交換機220
利用該實施方式所述的裝置實現基于Rapid 10協議網絡的視頻采集傳輸控制方法包括以下步驟
(A)所述的視頻傳感器201獲取視頻數據流;
(B)所述的視頻控制器200從所述的視頻傳感器201獲取所述的視頻數據流,并將數據視頻數據流直接變為相應的Rapid IO寫事務包;
(C)所述的Rapid IO交換機220將所述的Rapid IO寫事務包依次寫入多個相應 Rapid IO 處理器 216、217、218、219 中。
在一種較優選的實施方式中,所述的視頻控制器200包括視頻輸入控制器202、視頻異步先進先出FIFO隊列204、視頻存儲先進先出FIFO隊列205、視頻傳輸控制器206、 IIC總線主控制器203、IIC總線主異步先進先出FIFO隊列207、IIC總線從異步先進先出 FIFO隊列208、寄存器堆209、錯誤檢測模塊210、Rapid IO控制器215、Rapid IO主請求總線211、Rapid IO從應答總線212、Rapid IO從請求總線213和Rapid IO從應答總線214, 其中,
所述的Rapid IO控制器通過所述的Rapid IO交換機連接多個Rapid IO處理器;
所述的視頻輸入控制器與所述的視頻異步先進先出FIFO隊列和所述的視頻傳感器相連接;
所述的視頻傳輸控制器與所述的視頻異步先進先出FIFO隊列、視頻存儲先進先出FIFO隊列和寄存器堆相連接,并通過所述的Rapid 10主請求總線連接所述的Rapid 10 控制器;
所述的IIC總線主控制器與所述的視頻傳感器、IIC總線主異步先進先出FIFO隊列和IIC總線從異步先進先出FIFO隊列相連接;
所述的寄存器堆連接所述的IIC總線主異步先進先出FIFO隊列和所述的IIC總線從異步先進先出FIFO隊列,該寄存器堆還分別通過所述的Rapid 10從請求總線和所述的Rapid 10從應答總線連接所述的Rapid 10控制器;
所述的錯誤檢測模塊連接所述的寄存器堆,該錯誤檢測模塊還通過所述的Rapid 10從應答總線連接所述 的Rapid 10控制器。
利用該較優選的實施方式所述的裝置實現基于Rapid 10協議網絡的視頻采集傳輸控制方法中,所述的步驟(B)具體包括以下步驟
(I)需要視頻數據的多個Rapid 10處理器將視頻控制器配置信息寫入各自內存后,通過Rapid 10 Nwrite事務配置寄存器堆;
(2)所述的Rapid 10控制器將配置信息寫入寄存器堆,并將寫入地址提供給所述的視頻傳輸控制器;
( 3 )所述的視頻輸入控制器等待場同步信號,并在接收到場同步信號后,將視頻數據修改為64位,將其與場同步信號一起存入所述的視頻異步先進先出FIFO隊列;
(4)所述的視頻傳輸控制器檢測所述的視頻異步先進先出FIFO隊列中的數據大小,當大于256B后,進入步驟(5);
(5)所述的視頻傳輸控制器狀態機在獲取狀態獲取寄存器堆目標ID和目標地址, 并根據目標ID和目標地址將視頻數據寫入所述的視頻存儲先進先出FIFO隊列中;
(6)所述的視頻傳輸控制器視頻數據發送完畢后,再次獲取寄存器堆目標ID和目標地址若還存在,則進入步驟(7),若不存在,則進入步驟(9);
(7)所述的視頻傳輸控制器判斷所述的寄存器堆目標ID是否為發送DOORBELL目標ID,若是,則進入所述的步驟(C),若否,則返回步驟(5);
所述的步驟(C)具體包括以下步驟
(8)所述的視頻傳輸控制器的狀態機發送相應DOORBELL事物包;
(9)所述的Rapid IO控制器通過Rapid IO主請求總線收到NWRITE-R的事務,將其發送到所述的Rapid IO交換機;
(10)相應的Rapid IO處理器收到所述的NWRITE-R事務包,由硬件內存控制器更新內存空間數據,并返回應答Response返回包;
(11)所述的應答Response返回包經Rapid IO交換機、Rapid IO控制器、Rapid IO主應答總線發送到所述的錯誤檢測模塊;
(12)錯誤檢測模塊根據所述的應答Response返回包更新寄存器堆中寄存器值;
(13)相應的Rapid 10處理器接收到所述的DOORBELL事務包,由中斷控制器產生中斷,執行中斷服務程序,中斷服務程序釋放視頻完成信號量;
( 14)視頻處理任務獲得視頻完成信號量,處理視頻程序,處理完成后,再次獲取視頻信號量。
在一種進一步優選的實施方式中,如圖2所示,所述的寄存器堆包括多個節點寄存器組,每個所述的節點寄存器組均包括占用寄存器101、108、圖像傳輸使能寄存器102、 109、兩個遠端內存基地址寄存器103、104、110、111、視頻數據目標ID 105、11 2、中斷使能寄存器 106、113 和 Doorbell 目標 ID 107、114。其中,
占用寄存器用以在當處理器讀取該寄存器后,自動設為占用狀態,不能被其他處理器使用;
圖像傳輸使能寄存器用以開啟視頻傳輸寄存器;
兩個遠端內存基地址寄存器分別用以存放遠端Rapid 10處理器用于乒乓操作的內存地址信息,所述的兩個內存基地址寄存器交替使用;
視頻數據目標ID用以存儲視頻數據需要發送到遠端Rapid 10處理器的設備ID ;
中斷使能寄存器包括行中斷與場中斷寄存器,用以在遠端Rapid 10處理器使能該中斷使能寄存器后,當控制器發送完一幀或一行,則向遠端Rapid 10處理器發送Doorbell 事務包;
Doorbell目標ID用以在開啟中斷后,存儲遠端接收Doorbell事務包的Rapid 10 處理器的設備ID。
利用該進一步優選的實施方式所述的裝置實現基于Rapid 10協議網絡的視頻采集傳輸控制方法中,所述的步驟(2)具體包括以下步驟
(21)所述的RapidIO控制器依次讀取節點寄存器組占用寄存器,直到找到空節點寄存器組;
(22)所述的Rapid 10控制器使用Rapid 10協議的NWRITE-R事務將配置信息寫入該空節點寄存器組;
(23)所述的Rapid 10控制器從被寫入的節點寄存器組選出第一個發送節點信息提供給所述的視頻傳輸控制器。
所述的步驟(5)具體包括以下步驟
(51)所述的視頻傳輸控制器狀態機在獲取狀態獲取寄存器堆目標ID和目標地址,若所述的先進先出FIFO隊列選擇寄存器為0,則進入步驟(52),若所述的先進先出FIFO隊列選擇寄存器為1,則進入步驟(53);
(52)所述的視頻傳輸控制器根據所述的視頻異步先進先出FIFO隊列提供的數據,通過Rapid IO主請求總線發送NWRITE-R事務給Rapid IO控制器,并將視頻數據寫入視頻存儲先進先出FIFO隊列中,將所述的先進先出FIFO隊列選擇寄存器置為I ;
(53)所述的視頻傳輸控制器根據所述的視頻異步先進先出FIFO隊列提供的數據,通過Rapid IO主請求總線發送NWRITE-R事務給Rapid IO控制器,并將視頻數據寫入視頻存儲先進先出FIFO隊列中,將所述的先進先出FIFO隊列選擇寄存器置為O。
且所述的步驟(12)具體為所述的錯誤檢測模塊若發現所述的應答Response返回包發生錯誤或未收到應答Response返回包,則認為相應的節點遺失,并不再向該節點發送NRITE-R事務包,不向其提供視頻數據。
在一種更優選的實施方式中,所述的方法在步驟(I)之前還包括以下步驟
(0)所述的裝置進行視頻控制器配置操作和視頻傳感器配置操作。
其中,所述的視頻傳感器配置操作具體包括以下步驟
(Ml)所述的Rapid 10處理器向視頻控制器發送NWRITE事務包,地址為所述的IIC 異步先進先出FIFO隊列地址;
(M2)所述的NWRITE事務包經過所述的Rapid 10交換機、Rapid 10控制器、Rapid 10從請求總線,到達所述的寄存器堆;
(M3)所述的寄存器堆根據所述的IIC異步先進先出FIFO隊列地址,將數據寫入 IIC主異步先進先出FIFO隊列,并通過Rapid 10從應答總線、Rapid 10控制器、Rapid 10 交換機向所述的返回Rapid 10處理器返回應答Response返回包;
(M4)所述的IIC主控制器發現主異步先進先出FIFO隊列非空后,讀取IIC指令數據,并發起IIC讀寫的主操作;
(M5)若所述的主操作為IIC讀操作,則所述的視頻傳感器返回的數據被IIC主控制器 讀取,并寫入所述的IIC從異步先進先出FIFO隊列;
(M6)所述的Rapid 10處理器向視頻控制器發送NREAD事務包,地址為IIC異步先進先出FIFO隊列地址;
(M7)所述的NREAD事務包經過所述的Rapid 10交換機、Rapid 10控制器、Rapid 10從請求總線,到達所述的寄存器堆;
(M8)所述的寄存器堆根據所述的IIC異步先進先出FIFO隊列地址,讀取IIC從異步先進先出FIFO隊列的數據,并通過Rapid 10從應答總線、Rapid 10控制器、Rapid 10 交換機,向所述的Rapid 10處理器返回應答Response返回包;
(M9)所述的Rapid 10處理器獲得數據。
而所述的視頻控制器配置操作則具體包括以下步驟
(NI)所述的Rapid 10處理器向所述的視頻控制器讀取O號占用寄存器的值,并發送NREAD事務包到視頻控制器;
(N2)所述的NREAD事務包經過所述的Rapid 10交換機、Rapid 10控制器和Rapid 10從請求總線到達寄存器堆;
(N3)所述的寄存器堆根據所述的NREAD事務為讀取所述的O號占用寄存器,則將所述的O號占用寄存器的值通過所述的Rapid 10從應答主線、Rapid 10控制器和RapidIO交換機向所述的Rapid IO處理器返回應答Response返回包,若O號占用寄存器未被占用,則將其值修改為占用,并賦值視頻數據目標ID ;
(N4)所述的Rapid IO處理器得到的占用狀態若為被占用,則向視頻控制器讀取I 號占用寄存器的值,發送所述的NREAD事務包到視頻控制器,并依次類推,直到遍歷完所有占用寄存器;
(N5)所述的Rapid IO處理器得到的占用狀態若為未被占用,則將需要配置的中斷使能寄存器、兩個遠端內存基地址寄存器、視頻數據目標ID、中斷使能寄存器和Doorbell 目標ID寄存器的數據寫入一段內存地址;
(N6)所述的Rapid IO處理器啟動NWRITE事務包,將內存地址數據發送到視頻控制器;
(N7)所述的NWRITE事務包通過所述的Rapid IO交換機、Rapid IO控制器和Rapid IO從請求總線到達所述的寄存器堆;
(NS)所述的寄存器堆配置所述的中斷使能寄存器、兩個遠端內存基地址寄存器、 視頻數據目標ID、中斷使能寄存器和Doorbell目標ID寄存器。
在本發明的實際應用中,視頻采集傳輸多個Rapid 10處理器,相應原理與流程如下
I.需要視頻數據的Rapid 10處理器216、217、219將對視頻控制器配置信息寫入各自內存;
2.處理器依次讀取節點寄存器組占用寄存器101,直到找到空節點寄存器組為止,若未找到,說明視頻控制器傳輸通道全部被占用,那么將不能接收視頻數據;
3.處理器發現空節點寄存器組后,使用Rapid 10 NWRITE-R事務將準備好的配置信息寫入節點寄存器組;
4.寄存器組209選出第一個發送節點信息提供給視頻傳輸控制器206 ;
5.視頻控制器開始工作,等待場同步信號;
6.當視頻輸入控制器202收到場同步信號后,將視頻數據變為64位,并與場同步信號一起存入視頻異步FIFO 205 ;
7.視頻傳輸控制器206發現視頻異步FIFO 204中的數據大于256B后,跳到如圖 3所示的獲取狀態302 ;
8.視頻傳輸控制器206狀態機在獲取狀態302獲取寄存器組209目標ID和目標地址,并轉入發送狀態303;
9.視頻傳輸控制器206發現FIFO選擇寄存器為0,則根據視頻異步FIFO 204提供的數據,通過Rapid 10主請求總線211發送NWRITE-R事務給Rapid 10控制器215,并將視頻數據寫入視頻存儲FIFO 205中,置FIFO選擇寄存器為I ;
10.視頻傳輸控制器206發送完畢,轉到獲取狀態302,再次獲取目標ID和目標地址;
11.若還存在,視頻傳輸控制器206狀態機將轉入發送狀態;
12.視頻傳輸控制器206發現FIFO選擇寄存器為1,則根據視頻存儲異步FIFO 205提供的數據,通過Rapid 10主請求總線211發送NWRITE-R事務給Rapid 10控制器 215,并將視頻數據寫入視頻存儲FIFO 205中;
13.視頻傳輸控制器206發送完畢,轉到獲取狀態302,再次獲取目標ID和目標地址;
14.若存在,并且為發送DOORBELL標示,視頻傳輸控制器206狀態機進入302,發送相應DOORBELL ;
15.若不存在,視頻傳輸控制器206狀態機將轉入初始狀態301 ;
16. Rapid IO控制器215收到Rapid IO主請求總線通過211發送NWRITE-R的事務,將其發送到Rapid IO交換機;
17.相應處理器216收到NWRITE-R事務包,由硬件內存控制器更新內存空間數據, 并返回Response包;
18. Response 包經 Rapid 10 交換機 220、Rapid 10 控制器 215、Rapid 10 主應答總線214,到達錯誤檢測210模塊;
19.錯誤檢測210模塊根據返回包情況更新寄存器堆中寄存器值,例如若發生錯誤或未收到Response包,則認為該節點遺失,下次將不再向該節點發送NRITE-R事務包,提供視頻數據;
20.相應處理器216收到DOORBELL事務包,由中斷控制器產生中斷,執行中斷服務程序;
21.中斷服務程序釋放視頻完成信號量;
22.視頻處理任務獲得視頻完成信號量,處理視頻程序,處理完成后,再次獲取視頻信號量。
視頻傳感器的配置的原理與流程如下I. Rapid 10處理器216向視頻控制器200發送NWRITE事務包,地址為IIC異步 FIFO 地址 114 ;
2. NWRITE 事務包經過 Rapid 10 交換機 220、Rapid 10 控制器 215、Rapid 10 從請求總線213,到達寄存器堆209模塊;
3.寄存器堆209發現地址為IIC異步FIFO地址114,將數據寫入IIC主異步FIFO 207,并通過Rapid 10從應答總線返回Response包;
4. Response 包經 Rapid 10 控制器 215、Rapid 10 交換機 220 返回 Rapid 10 處理器 216 ;
5. IIC主控制器203發現主異步FIFO非空后讀取IIC指令數據,并發起IIC讀寫的主操作;
6.若為IIC讀操作,視頻傳感器返回數據被IIC主控制器203讀取,并邪王IIIC 從異步FIF0208 ;
7. Rapid 10處理器向視頻控制器200發送NREAD事務包,地址為IIC異步FIFO地址 114 ;
8. NREAD 事務包經過 Rapid 10 交換機 220、Rapid 10 控制器 215、Rapid 10 從請求總線213,到達寄存器堆209模塊;
9.寄存器堆209模塊發現地址為IIC異步FIFO地址116,則讀取IIC從異步FIFO 208數據,通過Rapid 10從應答總線212返回Response包;
10. Response 包經 Rapid 10 控制器 215、Rapid 10 交換機 220 返回 Rapid 10 處理器216 ;
11. Rapid IO處理器216獲得數據。
視頻控制器的配置的原理與流程如下
I. RapidIO處理器216向視頻控制器200讀取O號占用寄存器101值發送NREAD 事務包到視頻控制器200 ;
2. NREAD 事務包經過 Rapid IO 交換機 220、Rapid IO 控制器 215、Rapid IO 從請求總線213,到達寄存器堆209模塊;
3.寄存器堆209模塊發現該事務是讀取O號占用寄存器101,將O號占用寄存器 101值經Rapid IO從應答212返回Response包,若O號占用寄存器101未被占用,則值為占用,并賦值視頻數據目標ID 105 ;
4. Response 包經 Rapid IO 控制器 215、Rapid IO 交換機 220 返回 Rapid IO 處理器 216 ;
5. Rapid IO處理器216得到占用狀態,若被占用,則向視頻控制器200讀取I號占用寄存器101值發送NREAD事務包到視頻控制器200,依次類推,直到遍歷完所有占用寄存器101 ;
6. RapidIO處理器216得到占用狀態,若未被占用;
7. Rapid IO處理器216將需要配置的中斷使能寄存器106、兩個遠端內存基地址寄存器103、104、視頻數據目標ID 105、中斷使能寄存器106、DOOrbell目標ID 107數據寫入一段內存地址;
8. Rapid IO處理器216啟動NWRITE事務包,將上述內存地址數據發送到視頻控制器 200 ;
9. NWRITE 事務包經過 Rapid IO 交換機 220、Rapid IO 控制器 215、Rapid IO 從請求總線21 3,到達寄存器堆209模塊;
10.寄存器堆209模塊配置中斷使能寄存器106、兩個遠端內存基地址寄存器103、 104、視頻數據目標ID 105、中斷使能寄存器106、Doorbell目標ID 107寄存器。
采用了該發明的基于Rapid IO協議網絡的視頻采集傳輸裝置及方法,其裝置視頻傳感器、視頻控制器和Rapid IO交換機,該方法中,利用視頻控制器從視頻傳感器獲取視頻數據流,并將數據視頻數據流直接變為相應的Rapid IO寫事務包;進而由Rapid IO交換機將Rapid IO寫事務包依次寫入多個相應Rapid IO處理器中。從而能夠在將視頻數據緩沖后直接發往各個Rapid IO處理器,而無需將其存放到外部內存當中,也不需要由處理器來實現視頻數據的轉發,實現一種快速,高效,且節約邏輯資源,結構簡單,實現方法簡便,成本低廉,應用范圍廣泛的基于Rapid IO協議網絡的視頻采集傳輸裝置及方法。
在此說明書中,本發明已參照其特定的實施例作了描述。但是,很顯然仍可以作出各種修改和變換而不背離本發明的精神和范圍。因此,說明書和附圖應被認為是說明性的而非限制性的。
權利要求
1.一種基于Rapid IO協議網絡的視頻采集傳輸裝置,其特征在于,所述的裝置包括 視頻傳感器,用以獲取視頻數據流; 視頻控制器,用以從所述的視頻傳感器獲取視頻數據流,并將數據視頻數據流直接變為相應的Rapid IO寫事務包;以及 Rapid IO交換機,用以將所述的Rapid IO寫事務包依次寫入多個相應Rapid IO處理器中。
2.根據權利要求I所述的基于RapidIO協議網絡的視頻采集傳輸裝置,其特征在于,所述的視頻控制器包括視頻輸入控制器、視頻異步先進先出FIFO隊列、視頻存儲先進先出FIFO隊列、視頻傳輸控制器、IIC總線主控制器、IIC總線主異步先進先出FIFO隊列、IIC總線從異步先進先出FIFO隊列、寄存器堆、錯誤檢測模塊、Rapid IO控制器、Rapid IO主請求總線、Rapid IO從應答總線、Rapid IO從請求總線和Rapid IO從應答總線,其中, 所述的Rapid IO控制器通過所述的Rapid IO交換機連接多個Rapid IO處理器; 所述的視頻輸入控制器與所述的視頻異步先進先出FIFO隊列和所述的視頻傳感器相連接; 所述的視頻傳輸控制器與所述的視頻異步先進先出FIFO隊列、視頻存儲先進先出FIFO隊列和寄存器堆相連接,并通過所述的Rapid 10主請求總線連接所述的Rapid 10控制器; 所述的IIC總線主控制器與所述的視頻傳感器、IIC總線主異步先進先出FIFO隊列和IIC總線從異步先進先出FIFO隊列相連接; 所述的寄存器堆連接所述的IIC總線主異步先進先出FIFO隊列和所述的IIC總線從異步先進先出FIFO隊列,該寄存器堆還分別通過所述的Rapid 10從請求總線和所述的Rapid 10從應答總線連接所述的Rapid 10控制器; 所述的錯誤檢測模塊連接所述的寄存器堆,該錯誤檢測模塊還通過所述的Rapid 10從應答總線連接所述的Rapid 10控制器。
3.根據權利要求2所述的基于Rapid10協議網絡的視頻采集傳輸裝置,其特征在于,所述的寄存器堆包括多個節點寄存器組,每個所述的節點寄存器組均包括 占用寄存器,用以在當處理器讀取該寄存器后,自動設為占用狀態,不能被其他處理器使用; 圖像傳輸使能寄存器,用以開啟視頻傳輸寄存器; 兩個遠端內存基地址寄存器,分別用以存放遠端Rapid 10處理器用于乒乓操作的內存地址信息,所述的兩個內存基地址寄存器交替使用; 視頻數據目標ID,用以存儲視頻數據需要發送到遠端Rapid 10處理器的設備ID ;中斷使能寄存器,包括行中斷與場中斷寄存器,用以在遠端Rapid 10處理器使能該中斷使能寄存器后,當控制器發送完一幀或一行,則向遠端Rapid 10處理器發送Doorbell事務包; Doorbell目標ID,用以在開啟中斷后,存儲遠端接收Doorbell事務包的Rapid 10處理器的設備ID。
4.一種利用權利要求I所述的裝置實現基于Rapid 10協議網絡的視頻采集傳輸控制方法,其特征在于,所述的方法包括以下步驟(A)所述的視頻傳感器獲取視頻數據流; (B)所述的視頻控制器從所述的視頻傳感器獲取所述的視頻數據流,并將數據視頻數據流直接變為相應的Rapid IO寫事務包; (C)所述的RapidIO交換機將所述的Rapid IO寫事務包依次寫入多個相應Rapid IO處理器中。
5.根據權利要求4所述的實現基于RapidIO協議網絡的視頻采集傳輸控制方法,其特征在于,所述的視頻控制器包括視頻輸入控制器、視頻異步先進先出FIFO隊列、視頻存儲先進先出FIFO隊列、視頻傳輸控制器、IIC總線主控制器、IIC總線主異步先進先出FIFO隊列、IIC總線從異步先進先出FIFO隊列、寄存器堆、錯誤檢測模塊、Rapid IO控制器、RapidIO主請求總線、Rapid IO從應答總線、Rapid IO從請求總線和Rapid IO從應答總線,所述的步驟(B)具體包括以下步驟 (O需要視頻數據的多個Rapid IO處理器將視頻控制器配置信息寫入各自內存后,通過Rapid IO Nwrite事務配置寄存器堆; (2)所述的RapidIO控制器將配置信息寫入寄存器堆,并將寫入地址提供給所述的視頻傳輸控制器; (3)所述的視頻輸入控制器等待場同步信號,并在接收到場同步信號后,將視頻數據修改為64位,將其與場同步信號一起存入所述的視頻異步先進先出FIFO隊列; (4)所述的視頻傳輸控制器檢測所述的視頻異步先進先出FIFO隊列中的數據大小,當大于256B后,進入步驟(5); (5)所述的視頻傳輸控制器狀態機在獲取狀態獲取寄存器堆目標ID和目標地址,并根據目標ID和目標地址將視頻數據寫入所述的視頻存儲先進先出FIFO隊列中; (6)所述的視頻傳輸控制器視頻數據發送完畢后,再次獲取寄存器堆目標ID和目標地址若還存在,則進入步驟(7),若不存在,則進入步驟(9); (7)所述的視頻傳輸控制器判斷所述的寄存器堆目標ID是否為發送DOORBELL目標ID,若是,則進入所述的步驟(C),若否,則返回步驟(5); 所述的步驟(C)具體包括以下步驟 (8)所述的視頻傳輸控制器的狀態機發送相應DOORBELL事物包; (9)所述的Rapid10控制器通過Rapid 10主請求總線收到NWRITE-R的事務,將其發送到所述的Rapid 10交換機; (10)相應的Rapid10處理器收到所述的NWRITE-R事務包,由硬件內存控制器更新內存空間數據,并返回應答Response返回包; (11)所述的應答Response返回包經Rapid10交換機、Rapid 10控制器、Rapid 10主應答總線發送到所述的錯誤檢測模塊; (12)錯誤檢測模塊根據所述的應答Response返回包更新寄存器堆中寄存器值; (13)相應的Rapid10處理器接收到所述的DOORBELL事務包,由中斷控制器產生中斷,執行中斷服務程序,中斷服務程序釋放視頻完成信號量; (14)視頻處理任務獲得視頻完成信號量,處理視頻程序,處理完成后,再次獲取視頻信號量。
6.根據權利要求5所述的實現基于Rapid10協議網絡的視頻采集傳輸控制方法,其特征在于,所述的寄存器堆包括多個節點寄存器組,每個所述的節點寄存器組均包括占用寄存器、圖像傳輸使能寄存器、兩個遠端內存基地址寄存器、視頻數據目標ID、中斷使能寄存器和Doorbell目標ID,所述的步驟(2)具體包括以下步驟 (21)所述的RapidIO控制器依次讀取節點寄存器組占用寄存器,直到找到空節點寄存器組; (22)所述的RapidIO控制器使用Rapid IO協議的NWRITE-R事務將配置信息寫入該空節點寄存器組; (23)所述的RapidIO控制器從被寫入的節點寄存器組選出第一個發送節點信息提供給所述的視頻傳輸控制器。
7.根據權利要求6所述的實現基于RapidIO協議網絡的視頻采集傳輸控制方法,其特征在于,所述的步驟(5)具體包括以下步驟 (51)所述的視頻傳輸控制器狀態機在獲取狀態獲取寄存器堆目標ID和目標地址,若所述的先進先出FIFO隊列選擇寄存器為0,則進入步驟(52),若所述的先進先出FIFO隊列選擇寄存器為1,則進入步驟(53); (52)所述的視頻傳輸控制器根據所述的視頻異步先進先出FIFO隊列提供的數據,通過Rapid 10主請求總線發送NWRITE-R事務給Rapid 10控制器,并將視頻數據寫入視頻存儲先進先出FIFO隊列中,將所述的先進先出FIFO隊列選擇寄存器置為I ; (53)所述的視頻傳輸控制器根據所述的視頻異步先進先出FIFO隊列提供的數據,通過Rapid 10主請求總線發送NWRITE-R事務給Rapid 10控制器,并將視頻數據寫入視頻存儲先進先出FIFO隊列中,將所述的先進先出FIFO隊列選擇寄存器置為O。
8.根據權利要求7所述的實現基于Rapid10協議網絡的視頻采集傳輸控制方法,其特征在于,所述的步驟(12)具體為 所述的錯誤檢測模塊若發現所述的應答Response返回包發生錯誤或未收到應答Response返回包,則認為相應的節點遺失,并不再向該節點發送NRITE-R事務包,不向其提供視頻數據。
9.根據權利要求5至8中任一項所述的實現基于Rapid10協議網絡的視頻采集傳輸控制方法,其特征在于,所述的方法在步驟(I)之前還包括以下步驟 (O )所述的裝置進行視頻控制器配置操作和視頻傳感器配置操作。
10.根據權利要求9所述的實現基于Rapid10協議網絡的視頻采集傳輸控制方法,其特征在于,所述的視頻傳感器配置操作具體包括以下步驟 (Ml)所述的Rapid 10處理器向視頻控制器發送NWRITE事務包,地址為所述的IIC異步先進先出FIFO隊列地址; (M2)所述的NWRITE事務包經過所述的Rapid 10交換機、Rapid 10控制器、Rapid 10從請求總線,到達所述的寄存器堆; (M3)所述的寄存器堆根據所述的IIC異步先進先出FIFO隊列地址,將數據寫入IIC主異步先進先出FIFO隊列,并通過Rapid 10從應答總線、Rapid 10控制器、Rapid 10交換機向所述的返回Rapid 10處理器返回應答Response返回包; (M4)所述的IIC主控制器發現主異步先進先出FIFO隊列非空后,讀取IIC指令數據,并發起IIC讀寫的主操作;(M5)若所述的主操作為IIC讀操作,則所述的視頻傳感器返回的數據被IIC主控制器讀取,并寫入所述的IIC從異步先進先出FIFO隊列; (M6)所述的Rapid IO處理器向視頻控制器發送NREAD事務包,地址為IIC異步先進先出FIFO隊列地址; (M7)所述的NREAD事務包經過所述的Rapid IO交換機、Rapid IO控制器、Rapid IO從請求總線,到達所述的寄存器堆; (M8)所述的寄存器堆根據所述的IIC異步先進先出FIFO隊列地址,讀取IIC從異步先進先出FIFO隊列的數據,并通過Rapid IO從應答總線、Rapid IO控制器、Rapid IO交換機,向所述的Rapid IO處理器返回應答Response返回包; (M9)所述的Rapid 10處理器獲得數據。
11.根據權利要求9所述的實現基于Rapid 10協議網絡的視頻采集傳輸控制方法,其特征在于,所述的視頻控制器配置操作具體包括以下步驟 (NI)所述的Rapid 10處理器向所述的視頻控制器讀取O號占用寄存器的值,并發送NREAD事務包到視頻控制器; (N2)所述的NREAD事務包經過所述的Rapid 10交換機、Rapid 10控制器和Rapid 10從請求總線到達寄存器堆; (N3)所述的寄存器堆根據所述的NREAD事務為讀取所述的O號占用寄存器,則將所述的O號占用寄存器的值通過所述的Rapid 10從應答主線、Rapid 10控制器和Rapid 10交換機向所述的Rapid 10處理器返回應答Response返回包,若O號占用寄存器未被占用,貝Ij將其值修改為占用,并賦值視頻數據目標ID ; (N4)所述的Rapid 10處理器得到的占用狀態若為被占用,則向視頻控制器讀取I號占用寄存器的值,發送所述的NREAD事務包到視頻控制器,并依次類推,直到遍歷完所有占用寄存器; (N5)所述的Rapid 10處理器得到的占用狀態若為未被占用,則將需要配置的中斷使能寄存器、兩個遠端內存基地址寄存器、視頻數據目標ID、中斷使能寄存器和Doorbell目標ID寄存器的數據寫入一段內存地址; (N6)所述的Rapid 10處理器啟動NWRITE事務包,將內存地址數據發送到視頻控制器;(N7)所述的NWRITE事務包通過所述的Rapid 10交換機、Rapid 10控制器和Rapid 10從請求總線到達所述的寄存器堆; (NS)所述的寄存器堆配置所述的中斷使能寄存器、兩個遠端內存基地址寄存器、視頻數據目標ID、中斷使能寄存器和Doorbell目標ID寄存器。
全文摘要
本發明涉及一種基于Rapid IO協議網絡的視頻采集傳輸裝置及方法,其裝置視頻傳感器、視頻控制器和RapidIO網絡,該方法中,利用視頻控制器從視頻傳感器獲取視頻數據流,并將數據視頻數據流直接變為相應的Rapid IO寫事務包;進而由Rapid IO交換機將Rapid IO寫事務包依次寫入多個相應Rapid IO處理器中。從而能夠在將視頻數據簡單緩沖后直接發往各個Rapid IO處理器,而無需將其存放到外部內存當中,也不需要由處理器來實現視頻數據的轉發,實現一種快速,高效,且節約邏輯資源,結構簡單,實現方法簡便,成本低廉,應用范圍廣泛的基于Rapid IO協議網絡的視頻采集傳輸裝置及方法。
文檔編號H04N21/643GK102984599SQ20121056076
公開日2013年3月20日 申請日期2012年12月21日 優先權日2012年12月21日
發明者馬克杰 申請人:中國電子科技集團公司第三十二研究所