《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 利用USB2.0塊傳輸方式實(shí)現(xiàn)CCD視頻圖像的無損實(shí)時傳輸
利用USB2.0塊傳輸方式實(shí)現(xiàn)CCD視頻圖像的無損實(shí)時傳輸
王佐成1,靳 明2,喬 雙3
1.白城師范學(xué)院 物理系,吉林 白城137000; 2.中國科學(xué)院長春光機(jī)所 圖像處理室,吉林 長春
摘要: 利用USB2.0接口芯片CY7C68013的特點(diǎn),通過塊傳輸方式實(shí)現(xiàn)了視頻圖像的實(shí)時無損傳輸。詳細(xì)介紹了CY7C68013的Slave FIFO工作方式在視頻圖像傳輸中的應(yīng)用以及系統(tǒng)硬件設(shè)計。
Abstract:
Key words :

摘   要: 利用USB2.0接口芯片CY7C68013的特點(diǎn),通過塊傳輸方式實(shí)現(xiàn)了視頻圖像的實(shí)時無損傳輸。詳細(xì)介紹了CY7C68013的Slave FIFO工作方式在視頻圖像傳輸中的應(yīng)用以及系統(tǒng)硬件設(shè)計。
關(guān)鍵詞: USB2.0  塊傳輸  Slave FIFO  視頻圖像

  對于數(shù)據(jù)量很大的實(shí)時數(shù)據(jù)傳輸,USB2.0協(xié)議[1][2][3]有專門的等時傳輸方式來實(shí)現(xiàn),但等時傳輸不但實(shí)現(xiàn)困難,且由于在數(shù)據(jù)包傳輸過程中和主機(jī)不進(jìn)行握手,因此當(dāng)數(shù)據(jù)包出現(xiàn)錯誤時主機(jī)不會要求USB重新發(fā)送數(shù)據(jù),這樣會造成數(shù)據(jù)丟失或錯誤。因此不適用于視頻圖像的精密分析與測量。而USB2.0協(xié)議中的塊傳輸方式在數(shù)據(jù)包傳輸過程中和主機(jī)進(jìn)行握手,當(dāng)數(shù)據(jù)包出現(xiàn)錯誤時會要求USB重新發(fā)送數(shù)據(jù),這就保證了傳輸數(shù)據(jù)的準(zhǔn)確性,而且開發(fā)相對容易。本文利用USB2.0塊傳輸方式實(shí)現(xiàn)了CCD視頻圖像的實(shí)時無損傳輸。
1  USB2.0接口芯片CY7C68013簡介
  (1)內(nèi)置USB2.0收發(fā)器和智能串口引擎(Serial Interface Engine,SIE)。
  (2)增強(qiáng)的8051內(nèi)核,其時鐘頻率可為12MHz、24MHz和48MHz,同時該芯片還帶有2個通用異步收發(fā)器(UART)、3個定時/計數(shù)器和2個數(shù)據(jù)指針,可支持外部中斷。
  (3)可通過USB下載程序,也可從外部擴(kuò)展的E2PROM中下載程序。
  (4)支持批量傳輸、同步傳輸、中斷傳輸和控制傳輸4種傳輸方式。
  (5)具有8位或16位外部數(shù)據(jù)接口。
  (6)具有通用可編程接口GPIF。
  (7)內(nèi)置I2C接口,其工作速率為100kHz或400kHz。
  (8)帶有最大達(dá)8Kb的FIFO,可運(yùn)行于Master或Slave方式(本文采用)。
2  USB2.0的4種傳輸方式及其比較
  (1)控制傳輸:主機(jī)發(fā)送一些控制命令字給USB設(shè)備。
  (2)中斷傳輸:主機(jī)發(fā)送中斷指令給USB設(shè)備。
  (3)等時傳輸(Isochronous Transfer):用于視頻或音頻等數(shù)據(jù)流的傳輸,傳輸時維持一定的速度,高速時會有一定的錯誤發(fā)生。其傳輸結(jié)構(gòu)如圖1所示。

  (4)塊傳輸(Bulk Transfer):傳輸?shù)臄?shù)據(jù)量大,準(zhǔn)確性高(若出現(xiàn)錯誤而發(fā)生傳送失敗,會重新傳一次),且無速度上的限制(即沒有固定傳輸速率)。其傳輸結(jié)構(gòu)如圖2所示。

  通過比較塊傳輸和等時傳輸?shù)慕Y(jié)構(gòu)可以發(fā)現(xiàn):等時傳輸是以數(shù)據(jù)流的方式不斷傳輸數(shù)據(jù),可以充分保證實(shí)時數(shù)據(jù)的傳送。而塊傳輸比等時傳輸多了握手的部分(ACK/NAK/STALL/NYET),實(shí)時數(shù)據(jù)必須分包傳輸,而且每個包最大為1 024b。這樣塊傳輸?shù)乃俣葧艿揭欢ǖ挠绊?。從理論上看,在USB2.0協(xié)議中等時傳輸最高支持480Mbps,而塊傳輸最高支持416Mbps。
  對于實(shí)時視頻圖像傳輸,采集到的視頻信號為PAL制式隔行掃描黑白全電視視頻信號。該信號每幀信號由奇場和偶場信號構(gòu)成,每場重復(fù)周期為20ms,場消隱脈沖寬度為1 612μs,在場消隱期間無有效數(shù)據(jù),每行重復(fù)周期為64μs,行消隱脈沖寬度為12μs。對于分辨率為800×600的實(shí)時圖像而言,其要求的最低傳輸速度約為800×8÷64=100Mbps。因此可以看出,用Bulk方式傳輸此分辨率的實(shí)時視頻圖像在理論上是可行的。這樣每次連續(xù)采集一場的數(shù)據(jù),如果可以在場消隱的時間內(nèi)完成一場數(shù)據(jù)的處理和顯示,那么在下一場數(shù)據(jù)到來時就不會耽誤數(shù)據(jù)的繼續(xù)采集,從而可以實(shí)現(xiàn)圖像的實(shí)時傳輸。實(shí)驗(yàn)證明,CY7C68013的塊傳輸中Slave FIFO工作方式完全可以滿足上面的要求。
3  Slave FIFO簡介及其在視頻圖像傳輸中的應(yīng)用
  Slave FIFO 作為USB2.0接口芯片CY7C68013的一種工作方式[4][5],其自身的特點(diǎn)如下:(1)采用外部Master的控制方式,減少了直接應(yīng)用內(nèi)部Master的繁雜。(2)直接利用芯片內(nèi)部集成的FIFO進(jìn)行工作,有效地將外部數(shù)據(jù)經(jīng)CY7C68013進(jìn)行傳遞。(3)同步和異步2種工作模式適應(yīng)多種數(shù)據(jù)傳輸要求。
  采用Slave FIFO方式傳輸視頻圖像數(shù)據(jù)的原理框圖如圖3所示。其中IFCLK的設(shè)置決定了Slave FIFO工作在同步還是異步模式下。同步模式下,SLWR寫信號受IFCLK上升沿控制,在異步模式下,SLWR寫信號受讀信號SLOE控制。所以,采用異步工作模式,用視頻圖像的采集時鐘作為SLOE的觸發(fā)信號。這樣可以使SLWR信號和SLOE信號保持同步,經(jīng)FIFO直接將采集數(shù)據(jù)寫入主機(jī)。其寄存器配置為:IFCONFIG=0xCB。為了充分利用CY7C68013的內(nèi)部FIFO進(jìn)行數(shù)據(jù)的緩沖,可以采用4倍Buffer的方式,可以用端點(diǎn)6對數(shù)據(jù)進(jìn)行讀入(IN)操作(由于只是將采集的圖像數(shù)據(jù)送入主機(jī),所以此時不用考慮端點(diǎn)2和端點(diǎn)4這2個OUT端點(diǎn)。這樣就只需要對IN端點(diǎn)6進(jìn)行配置),這樣按照其工作方式,可以應(yīng)用全部8KB緩沖。其寄存器配置為:EP6CFG=0xE0;PKTEND直接決定FIFO中數(shù)據(jù)的傳輸方向及方式。應(yīng)用CY7C68013芯片自身的AUTOIN方式,完全可以保證數(shù)據(jù)及時無誤地從采集設(shè)備到主機(jī)的傳輸,其配置為:EP6FIFOCFG=0x0C;端點(diǎn)(ENDPOINT)6的選擇可以通過對FIFOADR的寄存器進(jìn)行設(shè)置來確定。這樣,就可以用最短的時間將從采集到的芯片通過CY7C68013送到主機(jī)進(jìn)行處理。

  在場消隱期間的處理工作是利用Slave FIFO方式傳遞實(shí)時視頻圖像的一個關(guān)鍵。當(dāng)USB傳完一場信息后,可以在IBN(IN Bulk NAK)中斷中應(yīng)用判斷標(biāo)志來實(shí)現(xiàn)。可以在固件中自定義一個函數(shù)proc(void),在USB Interrupt Handlers中利用該函數(shù)調(diào)用IBN中斷,proc(void)定義如下:
  void proc(void)
  {
    {
    PE0=0x00;
    }
    IBNIRQ=bmEP6IBN;//clear the IBN IRQ
    IBNIE|=bmEP6IBN;
  }
  在IBN中斷定義中,部分程序如下:
  void ISR_Ibn(void) interrupt 0
  {
    EZUSB_IRQ_CLEAR( );
    IBNIRQ=bmEP6IBN;
    NAKIRQ|=bmBIT0;
    PE0=0x01;
  }
  PE0為一個外部輸出腳,利用PE0輸出的高電平控制外圍采集邏輯采集數(shù)據(jù)的時間。每次調(diào)用IBN中斷前都設(shè)置PE0=0x00,一旦調(diào)用IBN中斷后,PE0=0x01,輸出為高電平。可以利用該高電平控制CPLD的場同步信號,利用CPLD把每場頭信號A0找出來。這樣利用PE0和A0做“與”運(yùn)算,就可以從每場開始時就采集數(shù)據(jù),不會造成數(shù)據(jù)的丟失。隨后AD按照采樣時鐘進(jìn)行采集,通過設(shè)置所要求的分辨率和采集時鐘的大小,可以得到每場需要采集的數(shù)據(jù)點(diǎn)數(shù),當(dāng)數(shù)據(jù)采集完畢后,通過CPLD產(chǎn)生中斷請求送給INT。這時固件程序進(jìn)入中斷服務(wù),同時又將PE0設(shè)置為0x01,重復(fù)IBN中斷的工作過程。由于在場消隱期間沒有場頭信號,PE0始終為高,AD不會采集數(shù)據(jù),因此可以利用場消隱的這段時間對數(shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)和主機(jī)的數(shù)據(jù)傳輸。在主機(jī)端的上位機(jī)處理程序中,初始時通過在驅(qū)動中定義MaximumTransferSize的大小可以使其足夠大于一場數(shù)據(jù)(800×600)。這樣當(dāng)USB通過線程中的DeviceIoControl將全部一場的數(shù)據(jù)送到主機(jī)的內(nèi)存后,就可以通過IBN中斷利用場消隱期間將采集的一場數(shù)據(jù)在主機(jī)中顯示出來。實(shí)驗(yàn)證明,主機(jī)將存儲于內(nèi)存中的一場圖像數(shù)據(jù)顯示出來大約用300~500μs,大大小于場消隱的1 612μs,所以此方法是完全可行的。當(dāng)場消隱結(jié)束后,IBN中斷自動解除,又可以重新采集圖像數(shù)據(jù),實(shí)現(xiàn)每場圖像數(shù)據(jù)和主機(jī)中的傳輸和顯示,達(dá)到實(shí)時處理的效果。
4  系統(tǒng)硬件設(shè)計
  結(jié)合CCD視頻圖像采集和Slave FIFO的外圍Master的控制及設(shè)計,確定了無損視頻圖像采集系統(tǒng)的硬件設(shè)計方案,系統(tǒng)硬件結(jié)構(gòu)如圖4所示。系統(tǒng)由A/D轉(zhuǎn)換器、同步分離電路、鎖相環(huán)電路、CPLD及USB2.0傳輸模塊(CY7C68013)構(gòu)成。系統(tǒng)中A/D轉(zhuǎn)換器采用視頻采集芯片TDA8709,具有8位數(shù)據(jù)寬度,最高數(shù)據(jù)采樣率可達(dá)32MHz,內(nèi)置視頻放大及鉗位電路,可外加增益控制。同步分離芯片采用LM1881,可以方便地從0.5~2V標(biāo)準(zhǔn)負(fù)極性NTSC、PAL或SECAM制式視頻信號中提取行、場同步信息。鎖相環(huán)芯片采用高速鎖相環(huán)NE564,最高工作頻率可達(dá)到50MHz。CPLD采用ALTERA公司的EPM7128,可用門單元為2 500個,管腳間最大延遲5ns。系統(tǒng)中的邏輯控制功能由CPLD和USB2.0傳輸模塊配合完成,比外加其他處理器速度快。

  標(biāo)準(zhǔn)視頻輸入由同步分離電路分離出標(biāo)準(zhǔn)行同步信號HSYN和場同步信號VSYN,場同步信號送至CPLD,行同步信號經(jīng)鎖相環(huán)電路鎖相,產(chǎn)生每行N個點(diǎn)的鎖相脈沖VCOOUT輸入到CPLD。一個工作周期開始時,主機(jī)首先發(fā)出塊請求命令,USB2.0傳輸模塊響應(yīng)并設(shè)置位信號線PE0,指示CPLD開始采集。CPLD檢測到場同步信號有效后,則將鎖相脈沖CLK加至A/D的轉(zhuǎn)換脈沖輸入端及USB2.0模塊的寫脈沖輸入端。每次A/D轉(zhuǎn)換完畢,D[7..0]有效,并在CLK作用下將采集到的圖像數(shù)據(jù)寫入USB2.0傳輸模塊并傳回主機(jī)。CPLD內(nèi)置一計數(shù)器,對鎖相脈沖進(jìn)行計數(shù),并由場同步信號復(fù)位,計數(shù)滿一場后置位信號線INT,輸入到USB2.0傳輸模塊的中斷端,USB2.0傳輸模塊響應(yīng)中斷并撤銷信號PE0,此時主機(jī)也已接收滿一場圖像,一個工作周期結(jié)束。下一個工作周期仍然由主機(jī)發(fā)出塊傳輸請求開始?,F(xiàn)場采集的視頻圖像中的一幀如圖5所示,完全可以滿足精密分析和測量的需要。

5  結(jié)束語
  綜上所述,根據(jù)CY7C68013的結(jié)構(gòu)特點(diǎn),使其工作在Slave FIFO模式下,應(yīng)用USB的Bulk傳輸方式實(shí)現(xiàn)了CCD視頻圖像的實(shí)時無損傳輸和顯示,不存在傳輸圖像失真或數(shù)據(jù)丟失的現(xiàn)象。目前這一系統(tǒng)已成功運(yùn)用于液體中化工試劑、油珠、微細(xì)顆粒的粒徑測量和統(tǒng)計上。
參考文獻(xiàn)
1   Compaq Hewlett-Packard Interetc.Universal Serial Bus Specification  Revision 2.0.2000
2   Anderson D,Dzatko D.Universal Serial Bus Susterm  Architecture(Second Edition).MindShare INC,2001
3   周振宇,谷海穎.基于USB總線的實(shí)時數(shù)據(jù)采集系統(tǒng)設(shè)計.   電子技術(shù)應(yīng)用,2002;28(2)
4   Cypress Semiconductor.EZ-USB FX2 Technical Reference  Manual.2001
5   許永和.EZ-USB FX系列單片機(jī)USB外圍設(shè)備設(shè)計與應(yīng)用.北京:北京航空航天大學(xué)出版社,2002

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。