0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Intel x86平臺(tái)與VxWorks的視頻采集系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2018-12-21 07:24 ? 次閱讀

1 引言

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

我們?cè)O(shè)計(jì)的視頻采集系統(tǒng)是基于Intel x86平臺(tái)和實(shí)時(shí)操作系統(tǒng)VxWorks,由視頻采集卡和驅(qū)動(dòng)程序兩部分組成,如圖1所示。視頻采集卡完成視頻數(shù)據(jù)采集和格式轉(zhuǎn)換,驅(qū)動(dòng)程序在系統(tǒng)啟動(dòng)時(shí)對(duì)硬件進(jìn)行初始化,在系統(tǒng)啟動(dòng)之后實(shí)現(xiàn)硬件和應(yīng)用軟件之間的數(shù)據(jù)交互??紤]到視頻的數(shù)據(jù)量極大,視頻采集卡通過(guò)PCI高速總線與計(jì)算機(jī)相連。

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

2 視頻采集卡的設(shè)計(jì)

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

對(duì)于在PCI總線上進(jìn)行NTSC/PAL/SECAM視頻捕獲的應(yīng)用來(lái)說(shuō),Bt848是一種完整的低價(jià)格解決方案。作為一種總線主控設(shè)備,Bt848不需要任何本地緩存來(lái)存儲(chǔ)視頻像素?cái)?shù)據(jù),這樣就極大地降低了硬件價(jià)格。Bt848能夠充分利用基于PCI總線的系統(tǒng)的高帶寬和固有的多媒體功能,并且能夠與其他多媒體設(shè)備實(shí)現(xiàn)互操作,這樣就能夠以模塊的方式在系統(tǒng)中添加視頻采集和疊加功能,而花費(fèi)甚少。Bt848的使用與PCI系統(tǒng)總線的拓?fù)浣Y(jié)構(gòu)無(wú)關(guān),可以用于各種系統(tǒng)總線的組織結(jié)構(gòu),既可以直接集成在主板上,也可以作成插卡插在PCI總線插槽內(nèi)。

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

Bt848高度集成的結(jié)構(gòu)使其外圍電路極其簡(jiǎn)單,也便于在同一塊插卡上增加更多的功能,例如視頻數(shù)據(jù)加密。視頻采集卡的結(jié)構(gòu)如圖3所示。一塊Bt848最多支持4路模擬視頻輸入,其中3路是復(fù)合視頻信號(hào),1路是S視頻信號(hào)。4路視頻輸入在Bt848內(nèi)部完成復(fù)用。Bt848通過(guò)內(nèi)部的PCI接口直接與PCI總線相連。單片機(jī)通過(guò)FIFO與Bt848的GPIO端口相連,單片機(jī)軟件與主機(jī)上的軟件一起實(shí)現(xiàn)視頻采集系統(tǒng)的加密??刂七壿嬁刂艬t848和FIFO的時(shí)序,同步PCI總線、Bt848與單片機(jī)的操作。

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

3 驅(qū)動(dòng)程序的編寫(xiě)

應(yīng)用程序必須通過(guò)驅(qū)動(dòng)程序才能與硬件進(jìn)行數(shù)據(jù)通信,而驅(qū)動(dòng)程序的編寫(xiě)又是與操作系統(tǒng)密切相關(guān)的。本系統(tǒng)所使用的操作系統(tǒng)是實(shí)時(shí)操作系統(tǒng)VxWorks。

VxWorks是由WRS(Wind River Systems)公司開(kāi)發(fā)的一套具有微內(nèi)核高性能可伸縮的實(shí)時(shí)操作系統(tǒng),支持廣泛的網(wǎng)絡(luò)通信協(xié)議,并能夠根據(jù)用戶(hù)的需求進(jìn)行組合,其開(kāi)放式的結(jié)構(gòu)和對(duì)工業(yè)標(biāo)準(zhǔn)的支持使開(kāi)發(fā)者只需做最少的工作即可設(shè)計(jì)有效的適合于不同用戶(hù)要求的實(shí)時(shí)操作系統(tǒng)。

VxWorks的特點(diǎn)主要有:微內(nèi)核結(jié)構(gòu)(最小結(jié)構(gòu)《8KB),高效的任務(wù)管理,靈活的任務(wù)間通信,微秒級(jí)中斷處理,符合POSIX 1003.1b實(shí)時(shí)擴(kuò)展標(biāo)準(zhǔn),滿(mǎn)足TCP/IP網(wǎng)絡(luò)標(biāo)準(zhǔn),靈活的從ROM、磁盤(pán)或網(wǎng)絡(luò)的引導(dǎo)能力,多處理器支持,快速、靈活的I/O系統(tǒng),MS-DOS和RT-11文件系統(tǒng),完全符合ANSI C標(biāo)準(zhǔn),多于1100種功能例程。除了性能出眾的操作系統(tǒng)之外,WRS公司還提供了優(yōu)秀的實(shí)時(shí)操作系統(tǒng)開(kāi)發(fā)工具Tornado。

Tornado由三個(gè)高度集成的部分組成:Tornado工具,是一整套強(qiáng)有力的交叉開(kāi)發(fā)工具;VxWorks運(yùn)行時(shí)系統(tǒng),是運(yùn)行在目標(biāo)機(jī)上的高性能、可裁剪的實(shí)時(shí)操作系統(tǒng);連接目標(biāo)機(jī)和宿主機(jī)的通信選項(xiàng),如以太網(wǎng)、串行線路、在線仿真或ROM仿真等。Tornado能夠支持幾乎所有的工作平臺(tái)和目標(biāo)處理器,所提供的工具可用于所有目標(biāo)機(jī),并具有兩種調(diào)試模式(系統(tǒng)和任務(wù)模式)。除了基本的功能和開(kāi)發(fā)工具,Tornado還具有先進(jìn)的系列網(wǎng)絡(luò)產(chǎn)品,極大地?cái)U(kuò)展了Tornado的網(wǎng)絡(luò)特性并增強(qiáng)了嵌入式微處理器的網(wǎng)絡(luò)特性。

VxWorks的所有機(jī)制和功能都是基于“C子程序”這種簡(jiǎn)單機(jī)構(gòu),即:VxWorks的所有功能都是由C程序庫(kù)提供的,任何C程序都能夠從Tornado的命令和調(diào)試環(huán)境中交互式地調(diào)用,任何C程序都能夠作為VxWorks的一個(gè)任務(wù)從Tornado主機(jī)工具或者應(yīng)用程序中產(chǎn)生,C程序能夠與中斷、看門(mén)狗定時(shí)器或輔助定時(shí)器相連。VxWorks的這種統(tǒng)一性使Tornado成為一種有效的開(kāi)發(fā)系統(tǒng),因?yàn)橛脩?hù)不必再編寫(xiě)特殊的代碼來(lái)與系統(tǒng)陷阱接口,也不需要進(jìn)行特殊的處理來(lái)建立一個(gè)任務(wù),更不需要編寫(xiě)特殊的用戶(hù)接口程序或交互式的測(cè)試程序來(lái)測(cè)試新代碼,用戶(hù)只要編寫(xiě)子程序就能夠完成所有這些工作。

VxWorks的這些特性為編寫(xiě)應(yīng)用程序和設(shè)備驅(qū)動(dòng)程序提供了極大的便利。在VxWorks下,設(shè)備驅(qū)動(dòng)程序既可以嵌入內(nèi)核隨系統(tǒng)一起啟動(dòng),也可以作為可加載模塊在系統(tǒng)啟動(dòng)之后運(yùn)行。前一種方式需要修改并重新編譯內(nèi)核,這需要熟悉內(nèi)核的結(jié)構(gòu),實(shí)現(xiàn)起來(lái)比較困難。而后一種方式則比較簡(jiǎn)單,與編寫(xiě)一般的應(yīng)用程序類(lèi)似。但是,無(wú)論采用哪種方式編寫(xiě)驅(qū)動(dòng)程序,其基本結(jié)構(gòu)是相同的。

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

Bt848的中斷屏蔽寄存器INT_MASK中的設(shè)置決定了系統(tǒng)能夠響應(yīng)哪些中斷,中斷服務(wù)程序?yàn)椴煌闹袛嘣刺峁┫鄳?yīng)的處理代碼。中斷服務(wù)程序的編寫(xiě)必須遵循一定的規(guī)則,最主要的一點(diǎn)就是不能造成系統(tǒng)阻塞而影響系統(tǒng)性能。中斷服務(wù)程序應(yīng)該盡量簡(jiǎn)潔短小,使其能夠盡可能快速地返回。在中斷服務(wù)程序中不能有運(yùn)行時(shí)間過(guò)長(zhǎng)的代碼,也不能出現(xiàn)對(duì)某些共享資源進(jìn)行某種訪問(wèn)(例如試圖獲取信號(hào)量)的代碼。編寫(xiě)完中斷服務(wù)程序之后,利用初始化PCI總線時(shí)獲得的IRQ和操作系統(tǒng)提供的函數(shù)將中斷服務(wù)程序與中斷矢量連接起來(lái)。

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

t848中集成的DMA控制器非常獨(dú)特,它實(shí)際上是一個(gè)小RISC處理器,其運(yùn)行的指令(即RISC程序)位于主機(jī)內(nèi)存中并由Bt848的設(shè)備驅(qū)動(dòng)程序提供。由于這種結(jié)構(gòu)能夠?qū)⒉杉降囊曨l數(shù)據(jù)傳輸?shù)絻?nèi)存中,從而大大地方便了視頻采集系統(tǒng)的實(shí)現(xiàn)。在這種結(jié)構(gòu)中,DMA能夠動(dòng)態(tài)地逐行改變目標(biāo)內(nèi)存地址,這就使用戶(hù)能夠?qū)⒚恳粠曨l數(shù)據(jù)分成不同的部分放在多個(gè)內(nèi)存區(qū)域中。RISC程序的起始地址放在Bt848的RISC程序起始地址寄存器RISC_STRT_ADD中。Bt848提供的RISC指令包括:寫(xiě)入WRITE、略過(guò)SKIP、同步SYNC和跳轉(zhuǎn)JUMP,利用這些指令就能夠控制數(shù)據(jù)流,得到所需要的數(shù)據(jù)。RISC程序的基本流程是:幀同步→寫(xiě)入奇場(chǎng)→偶場(chǎng)同步→寫(xiě)入偶場(chǎng)→奇場(chǎng)同步→跳轉(zhuǎn)至寫(xiě)入奇場(chǎng)。

系統(tǒng)啟動(dòng)是通過(guò)設(shè)置GPIO和DMA控制寄存器中的RISC使能位和FIFO使能位來(lái)實(shí)現(xiàn)。將RISC使能位置為1使DMA控制器能夠處理RISC指令,將FIFO使能位置為1使數(shù)據(jù)FIFO有效。在將這兩位置為1后,視頻采集開(kāi)始進(jìn)行。

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

4 結(jié)論

利用Bt848,在Intel x86平臺(tái)和實(shí)時(shí)操作系統(tǒng)VxWorks上實(shí)現(xiàn)了視頻采集系統(tǒng)。由于Bt848的高度集成特性,其外圍電路極其簡(jiǎn)單,設(shè)計(jì)硬件電路時(shí)極其方便,同時(shí)性能也能夠得到保證,而且可以靈活地增加其他功能。而VxWorks優(yōu)異的性能和方便的接口也便于編寫(xiě)設(shè)備驅(qū)動(dòng)程序和應(yīng)用軟件,其性能完全能夠滿(mǎn)足要求。目前,所實(shí)現(xiàn)的視頻采集系統(tǒng)已經(jīng)在視頻監(jiān)控和可視電話中獲得應(yīng)用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PC
    PC
    +關(guān)注

    關(guān)注

    9

    文章

    2049

    瀏覽量

    153808
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6603

    瀏覽量

    123020
  • 采集系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    167

    瀏覽量

    20580
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    X86硬件設(shè)計(jì)系列知識(shí)分享

    論壇有很多嵌入式的技術(shù)資料,卻幾乎沒(méi)有X86硬件(PC,Server 等等)設(shè)計(jì)技術(shù)資料。本人從事X86硬件及系統(tǒng)設(shè)計(jì)多年,總結(jié)了系列X86平臺(tái)
    發(fā)表于 10-17 12:18

    求助,x86框架下進(jìn)行VxWorks5.5開(kāi)發(fā),支持的低功耗CPU有哪些?

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

    基于Windows平臺(tái)VxWorks交叉編譯工具該怎么設(shè)計(jì)?

    交叉編譯技術(shù),就是一種在一個(gè)異構(gòu)平臺(tái)上編譯出目標(biāo)平臺(tái)程序的技術(shù)。比如在PC平臺(tái)(X86 CPU)上編譯出能運(yùn)行在以VxWorks為內(nèi)核的CP
    發(fā)表于 11-01 06:20

    VxWorks for x86系統(tǒng)中實(shí)時(shí)時(shí)鐘的應(yīng)用是什么

    VxWorks for x86系統(tǒng)中的系統(tǒng)時(shí)間VxWorks for x86
    發(fā)表于 04-27 06:19

    x86平臺(tái)架構(gòu)如何為用戶(hù)帶來(lái)豐富的交互式駕駛體驗(yàn)?

    本文主要講述了x86平臺(tái)架構(gòu)如何為用戶(hù)帶來(lái)豐富的交互式駕駛體驗(yàn),而這是非PC兼容型平臺(tái)難以實(shí)現(xiàn)的。
    發(fā)表于 05-14 06:45

    如何利用Bt848在Intelx86平臺(tái)和實(shí)時(shí)操作系統(tǒng)VxWorks上實(shí)現(xiàn)視頻采集系統(tǒng)?

    如何利用Bt848,在Intel x86平臺(tái)和實(shí)時(shí)操作系統(tǒng)VxWorks上實(shí)現(xiàn)了視頻
    發(fā)表于 06-04 06:45

    基于VxWorks視頻采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    基于VxWorks視頻采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
    發(fā)表于 03-29 12:29 ?16次下載

    基于VxWorks視頻監(jiān)視系統(tǒng)設(shè)計(jì)

    視頻監(jiān)視系統(tǒng)在數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性、高速性和中斷響應(yīng)上有著較高的要求。為此設(shè)計(jì)了一種在x86平臺(tái)下利用實(shí)時(shí)操作系統(tǒng)
    發(fā)表于 08-31 10:09 ?14次下載

    基于VxWorks的音頻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    摘要:利用CS428l在Intel x86平臺(tái)和實(shí)時(shí)操作系統(tǒng)VxWorks上實(shí)現(xiàn)音頻系統(tǒng)。由于C
    發(fā)表于 07-25 21:24 ?26次下載

    英特爾雙核處理器 進(jìn)軍x86平臺(tái)市場(chǎng)

        英特爾(Intel)于15日宣布Core Duo處理器(Yonah雙核心處理器)進(jìn)軍x86嵌入式平臺(tái)市場(chǎng),臺(tái)
    發(fā)表于 03-13 13:00 ?574次閱讀

    X86平臺(tái)嵌入式軟件應(yīng)用

    X86平臺(tái)嵌入式軟件應(yīng)用
    發(fā)表于 01-14 02:36 ?0次下載

    VxWorks for x86系統(tǒng)中實(shí)時(shí)時(shí)鐘的應(yīng)用解析

    的應(yīng)用,尤其是在國(guó)防和軍事上的一些高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,就更體現(xiàn)出了其優(yōu)越的性能。 X86或80X86Intel公司開(kāi)發(fā)的微處理器體系結(jié)構(gòu)的泛稱(chēng)。采用X86架構(gòu)的
    發(fā)表于 11-01 10:19 ?1次下載
    <b class='flag-5'>VxWorks</b> for <b class='flag-5'>x86</b><b class='flag-5'>系統(tǒng)</b>中實(shí)時(shí)時(shí)鐘的應(yīng)用解析

    蘋(píng)果發(fā)布新Mac系列,正式揮別Intel X86平臺(tái)

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

    基于X86平臺(tái)的ARM指令集模擬器設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于X86平臺(tái)的ARM指令集模擬器設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-11 15:03 ?0次下載
    基于<b class='flag-5'>X86</b><b class='flag-5'>平臺(tái)</b>的ARM指令集模擬器設(shè)計(jì)

    基于X86平臺(tái)的ARM指令集模擬器的設(shè)計(jì)方案

    電子發(fā)燒友網(wǎng)站提供《基于X86平臺(tái)的ARM指令集模擬器的設(shè)計(jì)方案.pdf》資料免費(fèi)下載
    發(fā)表于 11-06 11:54 ?0次下載
    基于<b class='flag-5'>X86</b><b class='flag-5'>平臺(tái)</b>的ARM指令集模擬器的設(shè)計(jì)方案