在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Intel x86平臺與VxWorks的視頻采集系統的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2018-12-21 07:24 ? 次閱讀

1 引言

多媒體通信技術的發展為信息的獲取和傳輸提供了豐富的手段,視頻數據是其中不可缺少的重要組成部分,而視頻數據的獲取離不開視頻采集系統。目前,視頻采集系統的應用極為廣泛,許多產品和設施,例如遠程監控、可視電話、會議電視等等,都需要采集視頻信息。而且,隨著PC機的普及,人們可以直接利用PC機進行視頻采集,采集到的視頻數據經過處理后保存在本地或者發送到遠方。由于視頻的采集、處理和傳輸都在一臺PC機上完成,因此可以大大降低系統的復雜度和價格。

我們設計的視頻采集系統是基于Intel x86平臺和實時操作系統VxWorks,由視頻采集卡和驅動程序兩部分組成,如圖1所示。視頻采集卡完成視頻數據采集和格式轉換,驅動程序在系統啟動時對硬件進行初始化,在系統啟動之后實現硬件和應用軟件之間的數據交互。考慮到視頻的數據量極大,視頻采集卡通過PCI高速總線與計算機相連。

  1 引言    多媒體通信技術的發展為信息的獲取和傳輸提供了豐富的手段,視頻數據是其中不可缺少的重要組成部分,而視頻數據的獲取離不開視頻采集系統。目前,視頻采集系統的應用極為廣泛,許多產品和設施,例如遠程監控、可視電話、會議電視等等,都需要采集視頻信息。而且,隨著PC機的普及,人們可以直接利用PC機進行視頻采集,采集到的視頻數據經過處理后保存在本地或者發送到遠方。由于視頻的采集、處理和傳輸都在一臺PC機上完成,因此可以大大降低系統的復雜度和價格。    我們設計的視頻采集系統是基于Intel x86平臺和實時操作系統VxWorks,由視頻采集卡和驅動程序兩部分組成,如圖1所示。視頻采集卡完成視頻數據采集和格式轉換,驅動程序在系統啟動時對硬件進行初始化,在系統啟動之后實現硬件和應用軟件之間的數據交互??紤]到視頻的數據量極大,視頻采集卡通過PCI高速總線與計算機相連。        2 視頻采集卡的設計    為了將由攝像頭輸入的模擬視頻轉換為計算機能夠接受和處理的數字視頻,需要經過模數轉換、同步提取、亮色分離等多個步驟。而為了將數字視頻傳送到PC機的內存中,還需要一定數量的FIFO、總線接口和相應的控制邏輯。這原本是一個比較復雜的過程,但是隨著半導體技術的發展,各半導體生產廠家通過不斷創新和改進,目前已經能夠在單個芯片上實現所有這些功能。。    對于在PCI總線上進行NTSC/PAL/SECAM視頻捕獲的應用來說,Bt848是一種完整的低價格解決方案。作為一種總線主控設備,Bt848不需要任何本地緩存來存儲視頻像素數據,這樣就極大地降低了硬件價格。Bt848能夠充分利用基于PCI總線的系統的高帶寬和固有的多媒體功能,并且能夠與其他多媒體設備實現互操作,這樣就能夠以模塊的方式在系統中添加視頻采集和疊加功能,而花費甚少。Bt848的使用與PCI系統總線的拓撲結構無關,可以用于各種系統總線的組織結構,既可以直接集成在主板上,也可以作成插卡插在PCI總線插槽內。    Bt848的主要特點是:與PCI 2.1規范全兼容,擁有輔助的GPIO數據端口和視頻數據端口,支持的圖像分辨率高達768×576,支持復雜的裁剪功能,零等待狀態的PCI突發寫操作,支持場/幀屏蔽以減少帶寬,在輸出方面支持多種YCbCr和RGB像素格式,支持NTSC/SECAM/PAL模擬輸入,可以使用垂直/水平方面的插值濾波將圖像尺寸縮小到圖標大小,具有多個復合和S視頻輸入,支持奇偶場不同的目的地址,支持奇偶場不同的顏色空 間/縮放因子,支持225個顏色調色板的視頻映射,具有用于圖文電視的VBI視頻捕獲功能。這些特點使Bt848適用于PC電視、桌面可視電話、運動視頻捕獲、靜止圖像采集和VBI數據服務等應用領域。    Bt848高度集成的結構使其外圍電路極其簡單,也便于在同一塊插卡上增加更多的功能,例如視頻數據加密。視頻采集卡的結構如圖3所示。一塊Bt848最多支持4路模擬視頻輸入,其中3路是復合視頻信號,1路是S視頻信號。4路視頻輸入在Bt848內部完成復用。Bt848通過內部的PCI接口直接與PCI總線相連。單片機通過FIFO與Bt848的GPIO端口相連,單片機軟件與主機上的軟件一起實現視頻采集系統的加密??刂七壿嬁刂艬t848和FIFO的時序,同步PCI總線、Bt848與單片機的操作。        3 驅動程序的編寫    應用程序必須通過驅動程序才能與硬件進行數據通信,而驅動程序的編寫又是與操作系統密切相關的。本系統所使用的操作系統是實時操作系統VxWorks。    VxWorks是由WRS(Wind River Systems)公司開發的一套具有微內核高性能可伸縮的實時操作系統,支持廣泛的網絡通信協議,并能夠根據用戶的需求進行組合,其開放式的結構和對工業標準的支持使開發者只需做最少的工作即可設計有效的適合于不同用戶要求的實時操作系統。    VxWorks的特點主要有:微內核結構(最小結構《8KB),高效的任務管理,靈活的任務間通信,微秒級中斷處理,符合POSIX 1003.1b實時擴展標準,滿足TCP/IP網絡標準,靈活的從ROM、磁盤或網絡的引導能力,多處理器支持,快速、靈活的I/O系統,MS-DOS和RT-11文件系統,完全符合ANSI C標準,多于1100種功能例程。除了性能出眾的操作系統之外,WRS公司還提供了優秀的實時操作系統開發工具Tornado。    Tornado由三個高度集成的部分組成:Tornado工具,是一整套強有力的交叉開發工具;VxWorks運行時系統,是運行在目標機上的高性能、可裁剪的實時操作系統;連接目標機和宿主機的通信選項,如以太網、串行線路、在線仿真或ROM仿真等。Tornado能夠支持幾乎所有的工作平臺和目標處理器,所提供的工具可用于所有目標機,并具有兩種調試模式(系統和任務模式)。除了基本的功能和開發工具,Tornado還具有先進的系列網絡產品,極大地擴展了Tornado的網絡特性并增強了嵌入式微處理器的網絡特性。    VxWorks的所有機制和功能都是基于“C子程序”這種簡單機構,即:VxWorks的所有功能都是由C程序庫提供的,任何C程序都能夠從Tornado的命令和調試環境中交互式地調用,任何C程序都能夠作為VxWorks的一個任務從Tornado主機工具或者應用程序中產生,C程序能夠與中斷、看門狗定時器或輔助定時器相連。VxWorks的這種統一性使Tornado成為一種有效的開發系統,因為用戶不必再編寫特殊的代碼來與系統陷阱接口,也不需要進行特殊的處理來建立一個任務,更不需要編寫特殊的用戶接口程序或交互式的測試程序來測試新代碼,用戶只要編寫子程序就能夠完成所有這些工作。    VxWorks的這些特性為編寫應用程序和設備驅動程序提供了極大的便利。在VxWorks下,設備驅動程序既可以嵌入內核隨系統一起啟動,也可以作為可加載模塊在系統啟動之后運行。前一種方式需要修改并重新編譯內核,這需要熟悉內核的結構,實現起來比較困難。而后一種方式則比較簡單,與編寫一般的應用程序類似。但是,無論采用哪種方式編寫驅動程序,其基本結構是相同的。    PCI總線是一種即插即用的總線,在BIOS和操作系統的支持下,能夠自動地為設備分配合適的內存映射地址、I/O端口和系統中斷控制器的輸入(IRQ)。Bt848支持兩類地址空間:配置地址空間和內存地址空間。配置地址空間包括預定義的PCI配置寄存器,而內存地址空間包括Bt848使用的所有局部寄存器。初始化PCI總線就是設置PCI配置空間所定義的寄存器,實現主機與PCI局部總線之間的接口,其過程是:首先在系統中根據設備標識(Bt848)和供應商標識(Brooktree)找到設備的位置,確定其總線號、設備號和功能號;然后根據總線號、設備號和功能號確定設備的基地址和IRQ,這個基地址就是Bt848局部寄存器的起始地址,而IRQ在連接中斷服務程序時使用;接著將設備的局部寄存器映射到系統內存中,供以后設置局部寄存器使用;最后設置命令寄存器以控制Bt848產生和響應PCI周期的能力,例如使系統能夠響應對內存空間的訪問,使Bt848成為總線操作發起的一方,使系統報告校驗錯等等。    Bt848的中斷屏蔽寄存器INT_MASK中的設置決定了系統能夠響應哪些中斷,中斷服務程序為不同的中斷源提供相應的處理代碼。中斷服務程序的編寫必須遵循一定的規則,最主要的一點就是不能造成系統阻塞而影響系統性能。中斷服務程序應該盡量簡潔短小,使其能夠盡可能快速地返回。在中斷服務程序中不能有運行時間過長的代碼,也不能出現對某些共享資源進行某種訪問(例如試圖獲取信號量)的代碼。編寫完中斷服務程序之后,利用初始化PCI總線時獲得的IRQ和操作系統提供的函數將中斷服務程序與中斷矢量連接起來。    Bt848的局部寄存器駐留在4KB的內存尋址空間中,必須通過PCI總線才能訪問。通過設置相應的寄存器,就能夠控制Bt848的行為。通常,需要設置的內容包括:輸入電視信號制式(PAL或NTSC),輸入信號源(MUX0、MUX1或MUX2),行同步,場同步,輸出格式(CCIR 601、CIF或QCIF),圖像放大或縮小參數,圖像濾波參數,亮度、色度和對比度調節等等。    t848中集成的DMA控制器非常獨特,它實際上是一個小RISC處理器,其運行的指令(即RISC程序)位于主機內存中并由Bt848的設備驅動程序提供。由于這種結構能夠將采集到的視頻數據傳輸到內存中,從而大大地方便了視頻采集系統的實現。在這種結構中,DMA能夠動態地逐行改變目標內存地址,這就使用戶能夠將每一幀視頻數據分成不同的部分放在多個內存區域中。RISC程序的起始地址放在Bt848的RISC程序起始地址寄存器RISC_STRT_ADD中。Bt848提供的RISC指令包括:寫入WRITE、略過SKIP、同步SYNC和跳轉JUMP,利用這些指令就能夠控制數據流,得到所需要的數據。RISC程序的基本流程是:幀同步→寫入奇場→偶場同步→寫入偶場→奇場同步→跳轉至寫入奇場。    系統啟動是通過設置GPIO和DMA控制寄存器中的RISC使能位和FIFO使能位來實現。將RISC使能位置為1使DMA控制器能夠處理RISC指令,將FIFO使能位置為1使數據FIFO有效。在將這兩位置為1后,視頻采集開始進行。    在整個系統中,由于視頻采集的速度通常高于應用軟件取得數據并處理的速度,為了保證視頻數據的連續性,采用了三緩存結構。緩存A是Bt848視頻采集的目標地址,在RISC指令的直接控制下,采集的數據都先存放在這個緩存中。緩存B和C組成“乒乓”式結構,循環往復使用:當某一幀數據采集完畢后產生中斷,在中斷服務程序中將緩存A的數據復制到緩存B(或C)中,然后采集下一幀;當下一幀數據采集完后,再將緩存A中的數據復制到緩存C(或B)中。當應用程序需要數據時,就從緩存B或C中讀取最新的一幀圖像。緩存B和C交替使用,能夠保證應用程序從緩存讀數據的操作和驅動程序向緩存寫數據的操作不會發生沖突,避免了數據的損壞和遲延。    4 結論    利用Bt848,在Intel x86平臺和實時操作系統VxWorks上實現了視頻采集系統。由于Bt848的高度集成特性,其外圍電路極其簡單,設計硬件電路時極其方便,同時性能也能夠得到保證,而且可以靈活地增加其他功能。而VxWorks優異的性能和方便的接口也便于編寫設備驅動程序和應用軟件,其性能完全能夠滿足要求。目前,所實現的視頻采集系統已經在視頻監控和可視電話中獲得應用。

2 視頻采集卡的設計

為了將由攝像頭輸入的模擬視頻轉換為計算機能夠接受和處理的數字視頻,需要經過模數轉換、同步提取、亮色分離等多個步驟。而為了將數字視頻傳送到PC機的內存中,還需要一定數量的FIFO、總線接口和相應的控制邏輯。這原本是一個比較復雜的過程,但是隨著半導體技術的發展,各半導體生產廠家通過不斷創新和改進,目前已經能夠在單個芯片上實現所有這些功能。。

對于在PCI總線上進行NTSC/PAL/SECAM視頻捕獲的應用來說,Bt848是一種完整的低價格解決方案。作為一種總線主控設備,Bt848不需要任何本地緩存來存儲視頻像素數據,這樣就極大地降低了硬件價格。Bt848能夠充分利用基于PCI總線的系統的高帶寬和固有的多媒體功能,并且能夠與其他多媒體設備實現互操作,這樣就能夠以模塊的方式在系統中添加視頻采集和疊加功能,而花費甚少。Bt848的使用與PCI系統總線的拓撲結構無關,可以用于各種系統總線的組織結構,既可以直接集成在主板上,也可以作成插卡插在PCI總線插槽內。

Bt848的主要特點是:與PCI 2.1規范全兼容,擁有輔助的GPIO數據端口和視頻數據端口,支持的圖像分辨率高達768×576,支持復雜的裁剪功能,零等待狀態的PCI突發寫操作,支持場/幀屏蔽以減少帶寬,在輸出方面支持多種YCbCr和RGB像素格式,支持NTSC/SECAM/PAL模擬輸入,可以使用垂直/水平方面的插值濾波將圖像尺寸縮小到圖標大小,具有多個復合和S視頻輸入,支持奇偶場不同的目的地址,支持奇偶場不同的顏色空 間/縮放因子,支持225個顏色調色板的視頻映射,具有用于圖文電視的VBI視頻捕獲功能。這些特點使Bt848適用于PC電視、桌面可視電話、運動視頻捕獲、靜止圖像采集和VBI數據服務等應用領域。

Bt848高度集成的結構使其外圍電路極其簡單,也便于在同一塊插卡上增加更多的功能,例如視頻數據加密。視頻采集卡的結構如圖3所示。一塊Bt848最多支持4路模擬視頻輸入,其中3路是復合視頻信號,1路是S視頻信號。4路視頻輸入在Bt848內部完成復用。Bt848通過內部的PCI接口直接與PCI總線相連。單片機通過FIFO與Bt848的GPIO端口相連,單片機軟件與主機上的軟件一起實現視頻采集系統的加密。控制邏輯控制Bt848和FIFO的時序,同步PCI總線、Bt848與單片機的操作。

  1 引言    多媒體通信技術的發展為信息的獲取和傳輸提供了豐富的手段,視頻數據是其中不可缺少的重要組成部分,而視頻數據的獲取離不開視頻采集系統。目前,視頻采集系統的應用極為廣泛,許多產品和設施,例如遠程監控、可視電話、會議電視等等,都需要采集視頻信息。而且,隨著PC機的普及,人們可以直接利用PC機進行視頻采集,采集到的視頻數據經過處理后保存在本地或者發送到遠方。由于視頻的采集、處理和傳輸都在一臺PC機上完成,因此可以大大降低系統的復雜度和價格。    我們設計的視頻采集系統是基于Intel x86平臺和實時操作系統VxWorks,由視頻采集卡和驅動程序兩部分組成,如圖1所示。視頻采集卡完成視頻數據采集和格式轉換,驅動程序在系統啟動時對硬件進行初始化,在系統啟動之后實現硬件和應用軟件之間的數據交互。考慮到視頻的數據量極大,視頻采集卡通過PCI高速總線與計算機相連。        2 視頻采集卡的設計    為了將由攝像頭輸入的模擬視頻轉換為計算機能夠接受和處理的數字視頻,需要經過模數轉換、同步提取、亮色分離等多個步驟。而為了將數字視頻傳送到PC機的內存中,還需要一定數量的FIFO、總線接口和相應的控制邏輯。這原本是一個比較復雜的過程,但是隨著半導體技術的發展,各半導體生產廠家通過不斷創新和改進,目前已經能夠在單個芯片上實現所有這些功能。。    對于在PCI總線上進行NTSC/PAL/SECAM視頻捕獲的應用來說,Bt848是一種完整的低價格解決方案。作為一種總線主控設備,Bt848不需要任何本地緩存來存儲視頻像素數據,這樣就極大地降低了硬件價格。Bt848能夠充分利用基于PCI總線的系統的高帶寬和固有的多媒體功能,并且能夠與其他多媒體設備實現互操作,這樣就能夠以模塊的方式在系統中添加視頻采集和疊加功能,而花費甚少。Bt848的使用與PCI系統總線的拓撲結構無關,可以用于各種系統總線的組織結構,既可以直接集成在主板上,也可以作成插卡插在PCI總線插槽內。    Bt848的主要特點是:與PCI 2.1規范全兼容,擁有輔助的GPIO數據端口和視頻數據端口,支持的圖像分辨率高達768×576,支持復雜的裁剪功能,零等待狀態的PCI突發寫操作,支持場/幀屏蔽以減少帶寬,在輸出方面支持多種YCbCr和RGB像素格式,支持NTSC/SECAM/PAL模擬輸入,可以使用垂直/水平方面的插值濾波將圖像尺寸縮小到圖標大小,具有多個復合和S視頻輸入,支持奇偶場不同的目的地址,支持奇偶場不同的顏色空 間/縮放因子,支持225個顏色調色板的視頻映射,具有用于圖文電視的VBI視頻捕獲功能。這些特點使Bt848適用于PC電視、桌面可視電話、運動視頻捕獲、靜止圖像采集和VBI數據服務等應用領域。    Bt848高度集成的結構使其外圍電路極其簡單,也便于在同一塊插卡上增加更多的功能,例如視頻數據加密。視頻采集卡的結構如圖3所示。一塊Bt848最多支持4路模擬視頻輸入,其中3路是復合視頻信號,1路是S視頻信號。4路視頻輸入在Bt848內部完成復用。Bt848通過內部的PCI接口直接與PCI總線相連。單片機通過FIFO與Bt848的GPIO端口相連,單片機軟件與主機上的軟件一起實現視頻采集系統的加密。控制邏輯控制Bt848和FIFO的時序,同步PCI總線、Bt848與單片機的操作。        3 驅動程序的編寫    應用程序必須通過驅動程序才能與硬件進行數據通信,而驅動程序的編寫又是與操作系統密切相關的。本系統所使用的操作系統是實時操作系統VxWorks。    VxWorks是由WRS(Wind River Systems)公司開發的一套具有微內核高性能可伸縮的實時操作系統,支持廣泛的網絡通信協議,并能夠根據用戶的需求進行組合,其開放式的結構和對工業標準的支持使開發者只需做最少的工作即可設計有效的適合于不同用戶要求的實時操作系統。    VxWorks的特點主要有:微內核結構(最小結構《8KB),高效的任務管理,靈活的任務間通信,微秒級中斷處理,符合POSIX 1003.1b實時擴展標準,滿足TCP/IP網絡標準,靈活的從ROM、磁盤或網絡的引導能力,多處理器支持,快速、靈活的I/O系統,MS-DOS和RT-11文件系統,完全符合ANSI C標準,多于1100種功能例程。除了性能出眾的操作系統之外,WRS公司還提供了優秀的實時操作系統開發工具Tornado。    Tornado由三個高度集成的部分組成:Tornado工具,是一整套強有力的交叉開發工具;VxWorks運行時系統,是運行在目標機上的高性能、可裁剪的實時操作系統;連接目標機和宿主機的通信選項,如以太網、串行線路、在線仿真或ROM仿真等。Tornado能夠支持幾乎所有的工作平臺和目標處理器,所提供的工具可用于所有目標機,并具有兩種調試模式(系統和任務模式)。除了基本的功能和開發工具,Tornado還具有先進的系列網絡產品,極大地擴展了Tornado的網絡特性并增強了嵌入式微處理器的網絡特性。    VxWorks的所有機制和功能都是基于“C子程序”這種簡單機構,即:VxWorks的所有功能都是由C程序庫提供的,任何C程序都能夠從Tornado的命令和調試環境中交互式地調用,任何C程序都能夠作為VxWorks的一個任務從Tornado主機工具或者應用程序中產生,C程序能夠與中斷、看門狗定時器或輔助定時器相連。VxWorks的這種統一性使Tornado成為一種有效的開發系統,因為用戶不必再編寫特殊的代碼來與系統陷阱接口,也不需要進行特殊的處理來建立一個任務,更不需要編寫特殊的用戶接口程序或交互式的測試程序來測試新代碼,用戶只要編寫子程序就能夠完成所有這些工作。    VxWorks的這些特性為編寫應用程序和設備驅動程序提供了極大的便利。在VxWorks下,設備驅動程序既可以嵌入內核隨系統一起啟動,也可以作為可加載模塊在系統啟動之后運行。前一種方式需要修改并重新編譯內核,這需要熟悉內核的結構,實現起來比較困難。而后一種方式則比較簡單,與編寫一般的應用程序類似。但是,無論采用哪種方式編寫驅動程序,其基本結構是相同的。    PCI總線是一種即插即用的總線,在BIOS和操作系統的支持下,能夠自動地為設備分配合適的內存映射地址、I/O端口和系統中斷控制器的輸入(IRQ)。Bt848支持兩類地址空間:配置地址空間和內存地址空間。配置地址空間包括預定義的PCI配置寄存器,而內存地址空間包括Bt848使用的所有局部寄存器。初始化PCI總線就是設置PCI配置空間所定義的寄存器,實現主機與PCI局部總線之間的接口,其過程是:首先在系統中根據設備標識(Bt848)和供應商標識(Brooktree)找到設備的位置,確定其總線號、設備號和功能號;然后根據總線號、設備號和功能號確定設備的基地址和IRQ,這個基地址就是Bt848局部寄存器的起始地址,而IRQ在連接中斷服務程序時使用;接著將設備的局部寄存器映射到系統內存中,供以后設置局部寄存器使用;最后設置命令寄存器以控制Bt848產生和響應PCI周期的能力,例如使系統能夠響應對內存空間的訪問,使Bt848成為總線操作發起的一方,使系統報告校驗錯等等。    Bt848的中斷屏蔽寄存器INT_MASK中的設置決定了系統能夠響應哪些中斷,中斷服務程序為不同的中斷源提供相應的處理代碼。中斷服務程序的編寫必須遵循一定的規則,最主要的一點就是不能造成系統阻塞而影響系統性能。中斷服務程序應該盡量簡潔短小,使其能夠盡可能快速地返回。在中斷服務程序中不能有運行時間過長的代碼,也不能出現對某些共享資源進行某種訪問(例如試圖獲取信號量)的代碼。編寫完中斷服務程序之后,利用初始化PCI總線時獲得的IRQ和操作系統提供的函數將中斷服務程序與中斷矢量連接起來。    Bt848的局部寄存器駐留在4KB的內存尋址空間中,必須通過PCI總線才能訪問。通過設置相應的寄存器,就能夠控制Bt848的行為。通常,需要設置的內容包括:輸入電視信號制式(PAL或NTSC),輸入信號源(MUX0、MUX1或MUX2),行同步,場同步,輸出格式(CCIR 601、CIF或QCIF),圖像放大或縮小參數,圖像濾波參數,亮度、色度和對比度調節等等。    t848中集成的DMA控制器非常獨特,它實際上是一個小RISC處理器,其運行的指令(即RISC程序)位于主機內存中并由Bt848的設備驅動程序提供。由于這種結構能夠將采集到的視頻數據傳輸到內存中,從而大大地方便了視頻采集系統的實現。在這種結構中,DMA能夠動態地逐行改變目標內存地址,這就使用戶能夠將每一幀視頻數據分成不同的部分放在多個內存區域中。RISC程序的起始地址放在Bt848的RISC程序起始地址寄存器RISC_STRT_ADD中。Bt848提供的RISC指令包括:寫入WRITE、略過SKIP、同步SYNC和跳轉JUMP,利用這些指令就能夠控制數據流,得到所需要的數據。RISC程序的基本流程是:幀同步→寫入奇場→偶場同步→寫入偶場→奇場同步→跳轉至寫入奇場。    系統啟動是通過設置GPIO和DMA控制寄存器中的RISC使能位和FIFO使能位來實現。將RISC使能位置為1使DMA控制器能夠處理RISC指令,將FIFO使能位置為1使數據FIFO有效。在將這兩位置為1后,視頻采集開始進行。    在整個系統中,由于視頻采集的速度通常高于應用軟件取得數據并處理的速度,為了保證視頻數據的連續性,采用了三緩存結構。緩存A是Bt848視頻采集的目標地址,在RISC指令的直接控制下,采集的數據都先存放在這個緩存中。緩存B和C組成“乒乓”式結構,循環往復使用:當某一幀數據采集完畢后產生中斷,在中斷服務程序中將緩存A的數據復制到緩存B(或C)中,然后采集下一幀;當下一幀數據采集完后,再將緩存A中的數據復制到緩存C(或B)中。當應用程序需要數據時,就從緩存B或C中讀取最新的一幀圖像。緩存B和C交替使用,能夠保證應用程序從緩存讀數據的操作和驅動程序向緩存寫數據的操作不會發生沖突,避免了數據的損壞和遲延。    4 結論    利用Bt848,在Intel x86平臺和實時操作系統VxWorks上實現了視頻采集系統。由于Bt848的高度集成特性,其外圍電路極其簡單,設計硬件電路時極其方便,同時性能也能夠得到保證,而且可以靈活地增加其他功能。而VxWorks優異的性能和方便的接口也便于編寫設備驅動程序和應用軟件,其性能完全能夠滿足要求。目前,所實現的視頻采集系統已經在視頻監控和可視電話中獲得應用。

3 驅動程序的編寫

應用程序必須通過驅動程序才能與硬件進行數據通信,而驅動程序的編寫又是與操作系統密切相關的。本系統所使用的操作系統是實時操作系統VxWorks。

VxWorks是由WRS(Wind River Systems)公司開發的一套具有微內核高性能可伸縮的實時操作系統,支持廣泛的網絡通信協議,并能夠根據用戶的需求進行組合,其開放式的結構和對工業標準的支持使開發者只需做最少的工作即可設計有效的適合于不同用戶要求的實時操作系統。

VxWorks的特點主要有:微內核結構(最小結構《8KB),高效的任務管理,靈活的任務間通信,微秒級中斷處理,符合POSIX 1003.1b實時擴展標準,滿足TCP/IP網絡標準,靈活的從ROM、磁盤或網絡的引導能力,多處理器支持,快速、靈活的I/O系統,MS-DOS和RT-11文件系統,完全符合ANSI C標準,多于1100種功能例程。除了性能出眾的操作系統之外,WRS公司還提供了優秀的實時操作系統開發工具Tornado。

Tornado由三個高度集成的部分組成:Tornado工具,是一整套強有力的交叉開發工具;VxWorks運行時系統,是運行在目標機上的高性能、可裁剪的實時操作系統;連接目標機和宿主機的通信選項,如以太網、串行線路、在線仿真或ROM仿真等。Tornado能夠支持幾乎所有的工作平臺和目標處理器,所提供的工具可用于所有目標機,并具有兩種調試模式(系統和任務模式)。除了基本的功能和開發工具,Tornado還具有先進的系列網絡產品,極大地擴展了Tornado的網絡特性并增強了嵌入式微處理器的網絡特性。

VxWorks的所有機制和功能都是基于“C子程序”這種簡單機構,即:VxWorks的所有功能都是由C程序庫提供的,任何C程序都能夠從Tornado的命令和調試環境中交互式地調用,任何C程序都能夠作為VxWorks的一個任務從Tornado主機工具或者應用程序中產生,C程序能夠與中斷、看門狗定時器或輔助定時器相連。VxWorks的這種統一性使Tornado成為一種有效的開發系統,因為用戶不必再編寫特殊的代碼來與系統陷阱接口,也不需要進行特殊的處理來建立一個任務,更不需要編寫特殊的用戶接口程序或交互式的測試程序來測試新代碼,用戶只要編寫子程序就能夠完成所有這些工作。

VxWorks的這些特性為編寫應用程序和設備驅動程序提供了極大的便利。在VxWorks下,設備驅動程序既可以嵌入內核隨系統一起啟動,也可以作為可加載模塊在系統啟動之后運行。前一種方式需要修改并重新編譯內核,這需要熟悉內核的結構,實現起來比較困難。而后一種方式則比較簡單,與編寫一般的應用程序類似。但是,無論采用哪種方式編寫驅動程序,其基本結構是相同的。

PCI總線是一種即插即用的總線,在BIOS和操作系統的支持下,能夠自動地為設備分配合適的內存映射地址、I/O端口和系統中斷控制器的輸入(IRQ)。Bt848支持兩類地址空間:配置地址空間和內存地址空間。配置地址空間包括預定義的PCI配置寄存器,而內存地址空間包括Bt848使用的所有局部寄存器。初始化PCI總線就是設置PCI配置空間所定義的寄存器,實現主機與PCI局部總線之間的接口,其過程是:首先在系統中根據設備標識(Bt848)和供應商標識(Brooktree)找到設備的位置,確定其總線號、設備號和功能號;然后根據總線號、設備號和功能號確定設備的基地址和IRQ,這個基地址就是Bt848局部寄存器的起始地址,而IRQ在連接中斷服務程序時使用;接著將設備的局部寄存器映射到系統內存中,供以后設置局部寄存器使用;最后設置命令寄存器以控制Bt848產生和響應PCI周期的能力,例如使系統能夠響應對內存空間的訪問,使Bt848成為總線操作發起的一方,使系統報告校驗錯等等。

Bt848的中斷屏蔽寄存器INT_MASK中的設置決定了系統能夠響應哪些中斷,中斷服務程序為不同的中斷源提供相應的處理代碼。中斷服務程序的編寫必須遵循一定的規則,最主要的一點就是不能造成系統阻塞而影響系統性能。中斷服務程序應該盡量簡潔短小,使其能夠盡可能快速地返回。在中斷服務程序中不能有運行時間過長的代碼,也不能出現對某些共享資源進行某種訪問(例如試圖獲取信號量)的代碼。編寫完中斷服務程序之后,利用初始化PCI總線時獲得的IRQ和操作系統提供的函數將中斷服務程序與中斷矢量連接起來。

Bt848的局部寄存器駐留在4KB的內存尋址空間中,必須通過PCI總線才能訪問。通過設置相應的寄存器,就能夠控制Bt848的行為。通常,需要設置的內容包括:輸入電視信號制式(PAL或NTSC),輸入信號源(MUX0、MUX1或MUX2),行同步,場同步,輸出格式(CCIR 601、CIF或QCIF),圖像放大或縮小參數,圖像濾波參數,亮度、色度和對比度調節等等。

t848中集成的DMA控制器非常獨特,它實際上是一個小RISC處理器,其運行的指令(即RISC程序)位于主機內存中并由Bt848的設備驅動程序提供。由于這種結構能夠將采集到的視頻數據傳輸到內存中,從而大大地方便了視頻采集系統的實現。在這種結構中,DMA能夠動態地逐行改變目標內存地址,這就使用戶能夠將每一幀視頻數據分成不同的部分放在多個內存區域中。RISC程序的起始地址放在Bt848的RISC程序起始地址寄存器RISC_STRT_ADD中。Bt848提供的RISC指令包括:寫入WRITE、略過SKIP、同步SYNC和跳轉JUMP,利用這些指令就能夠控制數據流,得到所需要的數據。RISC程序的基本流程是:幀同步→寫入奇場→偶場同步→寫入偶場→奇場同步→跳轉至寫入奇場。

系統啟動是通過設置GPIO和DMA控制寄存器中的RISC使能位和FIFO使能位來實現。將RISC使能位置為1使DMA控制器能夠處理RISC指令,將FIFO使能位置為1使數據FIFO有效。在將這兩位置為1后,視頻采集開始進行。

在整個系統中,由于視頻采集的速度通常高于應用軟件取得數據并處理的速度,為了保證視頻數據的連續性,采用了三緩存結構。緩存A是Bt848視頻采集的目標地址,在RISC指令的直接控制下,采集的數據都先存放在這個緩存中。緩存B和C組成“乒乓”式結構,循環往復使用:當某一幀數據采集完畢后產生中斷,在中斷服務程序中將緩存A的數據復制到緩存B(或C)中,然后采集下一幀;當下一幀數據采集完后,再將緩存A中的數據復制到緩存C(或B)中。當應用程序需要數據時,就從緩存B或C中讀取最新的一幀圖像。緩存B和C交替使用,能夠保證應用程序從緩存讀數據的操作和驅動程序向緩存寫數據的操作不會發生沖突,避免了數據的損壞和遲延。

4 結論

利用Bt848,在Intel x86平臺和實時操作系統VxWorks上實現了視頻采集系統。由于Bt848的高度集成特性,其外圍電路極其簡單,設計硬件電路時極其方便,同時性能也能夠得到保證,而且可以靈活地增加其他功能。而VxWorks優異的性能和方便的接口也便于編寫設備驅動程序和應用軟件,其性能完全能夠滿足要求。目前,所實現的視頻采集系統已經在視頻監控和可視電話中獲得應用。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PC
    PC
    +關注

    關注

    9

    文章

    2082

    瀏覽量

    154218
  • 操作系統
    +關注

    關注

    37

    文章

    6825

    瀏覽量

    123333
  • 采集系統
    +關注

    關注

    0

    文章

    169

    瀏覽量

    20623
收藏 人收藏

    評論

    相關推薦

    X86硬件設計系列知識分享

    論壇有很多嵌入式的技術資料,卻幾乎沒有X86硬件(PC,Server 等等)設計技術資料。本人從事X86硬件及系統設計多年,總結了系列X86平臺
    發表于 10-17 12:18

    求助,x86框架下進行VxWorks5.5開發,支持的低功耗CPU有哪些?

    如題。求助,x86框架下進行VxWorks5.5開發,支持的低功耗CPU有哪些?
    發表于 08-29 16:28

    基于Windows平臺VxWorks交叉編譯工具該怎么設計?

    交叉編譯技術,就是一種在一個異構平臺上編譯出目標平臺程序的技術。比如在PC平臺(X86 CPU)上編譯出能運行在以VxWorks為內核的CP
    發表于 11-01 06:20

    VxWorks for x86系統中實時時鐘的應用是什么

    VxWorks for x86系統中的系統時間VxWorks for x86
    發表于 04-27 06:19

    x86平臺架構如何為用戶帶來豐富的交互式駕駛體驗?

    本文主要講述了x86平臺架構如何為用戶帶來豐富的交互式駕駛體驗,而這是非PC兼容型平臺難以實現的。
    發表于 05-14 06:45

    如何利用Bt848在Intelx86平臺和實時操作系統VxWorks上實現視頻采集系統

    如何利用Bt848,在Intel x86平臺和實時操作系統VxWorks上實現了視頻
    發表于 06-04 06:45

    基于VxWorks視頻采集系統的設計與實現

    基于VxWorks視頻采集系統的設計與實現
    發表于 03-29 12:29 ?16次下載

    基于VxWorks視頻監視系統設計

    視頻監視系統在數據傳輸的實時性、高速性和中斷響應上有著較高的要求。為此設計了一種在x86平臺下利用實時操作系統
    發表于 08-31 10:09 ?14次下載

    基于VxWorks的音頻系統的設計與實現

    摘要:利用CS428l在Intel x86平臺和實時操作系統VxWorks上實現音頻系統。由于C
    發表于 07-25 21:24 ?26次下載

    英特爾雙核處理器 進軍x86平臺市場

        英特爾(Intel)于15日宣布Core Duo處理器(Yonah雙核心處理器)進軍x86嵌入式平臺市場,
    發表于 03-13 13:00 ?593次閱讀

    X86平臺嵌入式軟件應用

    X86平臺嵌入式軟件應用
    發表于 01-14 02:36 ?0次下載

    VxWorks for x86系統中實時時鐘的應用解析

    的應用,尤其是在國防和軍事上的一些高精尖技術及實時性要求極高的領域中,就更體現出了其優越的性能。 X86或80X86Intel公司開發的微處理器體系結構的泛稱。采用X86架構的
    發表于 11-01 10:19 ?1次下載
    <b class='flag-5'>VxWorks</b> for <b class='flag-5'>x86</b><b class='flag-5'>系統</b>中實時時鐘的應用解析

    蘋果發布新Mac系列,正式揮別Intel X86平臺

    蘋果今(11)天發表3款新Mac,以及首款為Mac而設的Apple Silicon處理器「M1」,正式揮別Intel X86平臺。除此之外,蘋果也公布最新操作系統「macOS Big
    的頭像 發表于 11-11 17:52 ?2325次閱讀

    基于X86平臺的ARM指令集模擬器設計

    電子發燒友網站提供《基于X86平臺的ARM指令集模擬器設計.pdf》資料免費下載
    發表于 10-11 15:03 ?0次下載
    基于<b class='flag-5'>X86</b><b class='flag-5'>平臺</b>的ARM指令集模擬器設計

    基于X86平臺的ARM指令集模擬器的設計方案

    電子發燒友網站提供《基于X86平臺的ARM指令集模擬器的設計方案.pdf》資料免費下載
    發表于 11-06 11:54 ?0次下載
    基于<b class='flag-5'>X86</b><b class='flag-5'>平臺</b>的ARM指令集模擬器的設計方案
    主站蜘蛛池模板: www.人人干| 亚洲区一二三四区2021| 国产欧美另类第一页| 日韩毛片免费视频一级特黄| 成人免费精品视频| 1024国产基地永久免费| 亚洲综合色就色手机在线观看| 青草悠悠视频在线观看| 午夜香蕉网| 亚洲区| 欧美日韩一区二区三区视频在线观看| 亚洲理论片在线观看| 夜色成人网| 欧美爽爽网| 欧美黄色免费网站| 在线播放你懂得| 国产一区二区播放| 午夜网站视频| 日韩精品你懂的在线播放| 午夜免费啪| 久久精品第一页| 精品在线视频一区| 99热色| 色多多免费观看在线| 天天久久| 直接看的黄色网址| www.4虎| 亚洲网站免费看| 久精品视频村上里沙| 成人午夜免费剧场| 三级理论在线播放大全| 天天操网| 亚洲国产成人精彩精品| 在线aa| 国产高清在线精品一区| 丁香婷婷色| 日本口工全彩无遮拦漫画大| 国内精品视频在线| 555成人免费影院| 久久国产高清视频| 免费高清在线视频色yeye|