• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于USB和Camera Link的數(shù)據(jù)傳輸系統(tǒng)設計

      2012-06-25 07:02:48王曉東曲洪豐薛盼盼
      電視技術 2012年7期
      關鍵詞:固件狀態(tài)機端點

      張 鑫,王曉東,曲洪豐,薛盼盼

      (1.中國科學院長春光學精密機械與物理研究所,吉林 長春 130033;2.中國科學院研究生院,北京 100039)

      CCD是Charge Coupled Device(電荷耦合器件)的簡稱。被廣泛應用于工業(yè)檢測、醫(yī)療儀器、天文觀測、航天遙感等成像領域[1]。CCD相機的數(shù)據(jù)傳輸電路主要采用USB或Camera Link接口進行設計。USB是Universal Serial BUS(通用串行總線)的縮寫,具有連接簡單,易于擴展,支持熱插拔和標準統(tǒng)一等優(yōu)點[2],是目前使用最廣泛的計算機外設接口。Camera Link接口以Channel Link芯片組為硬件基礎,定義了基于圖像采集系統(tǒng)的信號和接口形式,具有傳輸距離遠(使用光纖傳輸時可達幾千米),速率高(最高達650 Mbit/s)等優(yōu)點,被廣泛應用于圖像數(shù)據(jù)采集[3]。然而使用USB作為數(shù)據(jù)傳輸接口時,傳輸速率受上位機的硬件配置,軟件的運行速度以及傳輸距離等因素制約,實際應用時的傳輸速率遠低于理論速度(480 Mbit/s),不能滿足高速數(shù)據(jù)傳輸?shù)囊?。使用Camera Link接口進行數(shù)據(jù)傳輸時,上位機需要配置專用的圖像采集卡,成本高,且使用不方便,不具備通用性。

      與目前的CCD相機數(shù)據(jù)傳輸時,只單獨采用USB和Camera Link接口不同,設計中將兩種接口相結合,使上位機可以方便地通過USB接口發(fā)送命令,對CCD相機進行控制和配置。而且可以根據(jù)不同的應用要求,在傳輸速率較低時,選擇USB接口進行輸出;在USB接口不能滿足傳輸要求的高速數(shù)據(jù)采集時,使用Camera Link接口。設計的系統(tǒng)結合了兩種接口的優(yōu)點,使CCD相機的數(shù)據(jù)傳輸變得簡單,方便,靈活,可靠。

      1 硬件電路設計

      1.1 芯片選擇

      FPGA采用Xilinx公司的XC3S400-PQ208。它的系統(tǒng)門數(shù)為40萬,提供288 kbyte的內部RAM和141個用戶I/O引腳。FPGA的資源能夠滿足硬件設計和接口芯片管腳連接的要求,以及復雜邏輯電路的設計要求。

      USB的接口芯片采用的是Cypress公司EZ-USB FX2系列的CY7C68013A。芯片內部集成有1個增強型的8051核、1個智能USB串行接口引擎(SIE)、1個USB收發(fā)器、16 kbyte RAM和4 kbyte FIFO等。芯片支持USB2.0協(xié)議,支持控制傳輸、中斷傳輸、批量傳輸和同步傳輸模式等,且可以通過固件程序,按照使用要求對CY7C68013A進行配置。將CY7C68013A配置成Slave FIFO模式時,控制電路可以像使用普通FIFO一樣對CY7C68013A端點的數(shù)據(jù)緩存進行讀寫操作。

      Camera Link接口芯片采用的是DS90CR287。DS90 CR287最高的像素時鐘為85 MHz,可以將并行的28 bit數(shù)據(jù)以及時鐘信號轉化為4路串行LVDS信號和1路同步LVDS時鐘信號進行發(fā)送,而且能夠根據(jù)數(shù)據(jù)引腳連接的不同,將Camera Link接口配置成不同的傳輸模式。

      1.2 電路結構

      數(shù)據(jù)傳輸系統(tǒng)硬件結構如圖1所示。

      圖1 硬件電路結構

      使用FPGA作為控制芯片,接收CCD相機發(fā)送的數(shù)據(jù),進行緩存,然后控制接口芯片向上位機進行發(fā)送。由于數(shù)據(jù)傳輸系統(tǒng)對CCD相機輸入的圖像數(shù)據(jù)是實時發(fā)送的,緩存的作用為匹配數(shù)據(jù)輸入和輸出之間速率的不同。因此設計中沒有使用外部緩存,而是將FPGA提供的內部RAM配置成雙端口FIFO,實現(xiàn)數(shù)據(jù)的緩存,降低了設計難度。使用USB接口進行數(shù)據(jù)傳輸時,F(xiàn)PGA通過標志信號(FLAGA,F(xiàn)LAGC),端點選擇信號(FIFOADDR),讀控制信號(SLRD),和寫控制信號(SLWR)實現(xiàn)和CY7C68013A的通信控制,進行16 bit數(shù)據(jù)的傳輸。同步時鐘由FPGA根據(jù)傳輸速率,輸出不同頻率的時鐘信號。使用Camera Link接口進行數(shù)據(jù)傳輸時,F(xiàn)PGA輸出DVAL(數(shù)據(jù)有效)信號、FVAL(幀有效)信號和(LVAL)行有效信號,作為數(shù)據(jù)傳輸?shù)耐娇刂疲?]。FPGA根據(jù)不同的數(shù)據(jù)傳輸要求,輸出不同頻率的同步時鐘,實現(xiàn)向DS90CR287發(fā)送數(shù)據(jù)。

      2 邏輯電路設計

      設計中使用VHDL硬件描述語言實現(xiàn)邏輯電路的功能。邏輯電路分為數(shù)據(jù)接收模塊和數(shù)據(jù)發(fā)送模塊,分別完成對命令數(shù)據(jù)的接收和成像系統(tǒng)圖像數(shù)據(jù)的輸出。

      2.1 數(shù)據(jù)接收模塊

      數(shù)據(jù)接收模塊的作用為控制USB接口,接收上位機發(fā)送的命令數(shù)據(jù),并輸出相應的控制信號。通過固件將CY7C68013A的端點2配置成數(shù)據(jù)接收端點。使用VHDL語言設計狀態(tài)機來實現(xiàn)邏輯電路功能。數(shù)據(jù)接收模塊狀態(tài)轉換如圖2所示。

      圖2 狀態(tài)轉換示意圖

      上位機發(fā)送的命令由4個16 bit數(shù)據(jù)構成:同步頭(FDFDH),命令,參數(shù),同步尾(FBFBH)。工作時,狀態(tài)機首先處于IDLE,當CY7C68013A的標志信號FLAGA為高電平時,表示端點2已經接收到上位機發(fā)送的數(shù)據(jù),并存儲在內部FIFO中;READ狀態(tài)時,使FIFOADDR輸出“00”(選擇端點2),并使SLRD信號輸出低電平,在SLRD有效的期間,讀取數(shù)據(jù)。當FLAGA為低電平時,表示端點2的數(shù)據(jù)已經被完全讀出;CONTROL狀態(tài)時判斷數(shù)據(jù)內容,如果數(shù)據(jù)為FDFDH,則之后兩個16 bit數(shù)據(jù)為有效命令參數(shù);CMD狀態(tài)時,讀取第二個命令字,根據(jù)相應的命令給出控制信號;VALUE狀態(tài)時,讀取第三個命令字,對成像系統(tǒng)進行參數(shù)配置,完成后進入IDLE狀態(tài),等待進行下一次命令數(shù)據(jù)的接收。

      2.2 數(shù)據(jù)發(fā)送模塊

      數(shù)據(jù)發(fā)送模塊的作用是對CCD相機輸入的圖像數(shù)據(jù)通過FIFO進行緩存,并將數(shù)據(jù)通過USB接口或Camera Link輸出。使用狀態(tài)機來實現(xiàn)邏輯電路的功能。數(shù)據(jù)輸出模塊結構如圖3所示。

      圖3 數(shù)據(jù)輸出模塊結構

      將FPGA內部的RAM配置成雙端口FIFO,數(shù)據(jù)讀出模塊通過Prog_full,Empty,En_rd信號對FIFO進行讀出控制。Prog_full有效時表示FIFO內已經存入2000個16 bit數(shù)據(jù)(由配置FIFO時設置);Empty信號有效時表示FIFO中數(shù)據(jù)被完全讀出;En_rd為讀FIFO使能信號。為了在對數(shù)據(jù)的處理時能夠正確的識別和顯示每一幅圖像,在每一行的圖像數(shù)據(jù)中分別添加了標識:同步頭(FDFDH),幀號,行號,同步尾(FBFBH)。數(shù)據(jù)讀出模塊中,當狀態(tài)機處于IDLE時,如果Prog_full有效,狀態(tài)機跳轉到READ狀態(tài);在READ狀態(tài)時,使En_rd信號有效,讀出FIFO中的圖像數(shù)據(jù),并傳輸給接口控制模塊進行輸出;當Empty信號有效時,狀態(tài)機跳轉到IDLE狀態(tài),等待下一次數(shù)據(jù)的讀出。通過狀態(tài)機的循環(huán)控制,將每一幀圖像數(shù)據(jù)完整地傳輸?shù)紺amera Link或USB接口控制模塊。

      選擇Camera Link接口進行傳輸時,控制信號為DVAL、FVAL、LVAL,高電平有效。設計中使 DVAL 和FVAL在每一幀數(shù)據(jù)傳輸時有效,在一幀的時間內保持高電平;LVAL信號則是在讀出FIFO數(shù)據(jù)時有效,當數(shù)據(jù)為同步頭(FDFDH)時,LVAL開始輸出高電平,當數(shù)據(jù)為同步尾(FBFBH)時,表示一行數(shù)據(jù)結束,LVAL輸出低電平。使DVAL和FVAL信號對一幀圖像數(shù)據(jù)進行同步,LVAL對一行圖像數(shù)據(jù)進行同步。

      選擇USB接口進行傳輸時,F(xiàn)PGA選擇CY7C68013A的端點6進行數(shù)據(jù)輸出。通過狀態(tài)機對數(shù)據(jù)輸出進行控制:處于IDLE狀態(tài)時,如果FLAGC信號為高電平,則表明上位機發(fā)出讀數(shù)請求,端點6的FIFO未滿,可以向CY7C68013A發(fā)送數(shù)據(jù),使FIFOADDR輸出“10”(選擇端點6),跳轉入SEND狀態(tài)。SEND狀態(tài)時,使SLWR信號輸出高電平,將FIFO1中的數(shù)據(jù)輸出。如果FLAGC為低,表明端點6中FIFO已滿,停止數(shù)據(jù)傳輸,并跳轉到IDLE狀態(tài),等待重新開始數(shù)據(jù)傳輸[7-8]。

      3 軟件設計

      軟件設計主要包括兩個部分:USB固件程序設計和應用程序設計。

      3.1 固件程序

      固件程序是指運行在CY7C68013A中8051核的程序,負責初始化,設置工作模式等。使用Keil軟件,對Cypress公司提供的固件程序框架進行修改,下載到芯片中,進行重新配置,實現(xiàn)USB設備的重枚舉。設計時,調用用戶函數(shù)TD_Poll(),對重要寄存器進行賦值:IFCONFIG=0x03,選擇數(shù)據(jù)傳輸?shù)耐綍r鐘由FPGA提供;EP2CFG=0xA0,將2端點配置為數(shù)據(jù)輸出端點,設置4倍緩存;EP6CFG=0xE0,將6端點配置為數(shù)據(jù)輸入端點,設置4倍緩存[9]。固件程序通過上位機進行配置,打開應用程序時,自動讀取指定路徑的固件程序bit文件,完成對固件程序的加載。

      3.2 應用程序

      Camera Link使用接口發(fā)送數(shù)據(jù)時,使用的是數(shù)據(jù)采集卡,配有專用的軟件,應用程序主要完成的是控制USB接口進行數(shù)據(jù)接收和發(fā)送,以及圖像數(shù)據(jù)的存儲和顯示。使用VC++6.0進行設計,應用程序的流程如圖4所示。

      圖4 應用程序流程圖

      使用Windows提供的CreateFile函數(shù)來完成對USB設備的操作,該函數(shù)返回設備對象的句柄,設備的句柄是Windows指定給每個設備唯一的標示符。應用程序得到設備的句柄后,就可以使用各個Win32函數(shù)訪問,如ReadFile、WriteFile、DeviceIoControl和 CloseHandle 等。通過這些函數(shù)完成啟動USB線程,打開USB設備,自動加載指定路徑的固件程序,以及數(shù)據(jù)接收和數(shù)據(jù)發(fā)送。

      發(fā)送數(shù)據(jù)時,應用程序向CY7C68013A寫入512個16 bit數(shù)據(jù),前4個16 bit數(shù)據(jù)為有效的命令數(shù)據(jù),包括同步頭(FDFDH)、命令、參數(shù)、同步尾(FBFBH)。數(shù)據(jù)接收時,在上位機內存中開辟緩存,然后將數(shù)據(jù)以TXT文本的形式存入硬盤。圖像顯示時,通過判斷同步頭,幀號,行號,同步尾,將一幀圖像的每一行識別出來,將同步頭FDFDH和同步尾FBFBH之間的有效數(shù)據(jù),按照像素順序,進行顯示。通過不斷的識別每行數(shù)據(jù)的幀號、行號,將一幀圖像完整的顯示出來[9]。

      4 實驗驗證

      采用以背照式CCD47-10為傳感器設計的相機對數(shù)據(jù)傳輸系統(tǒng)進行驗證。該相機用于對微弱目標的探測,CCD的像元數(shù)為1072×1027,雙通道輸出。相機工作時,上位機通過USB接口發(fā)出命令,設置CCD的像素讀出速率為5 MHz,設置積分時間為100 ms,配置視頻處理器中的增益和偏置等參數(shù),控制相機開始或停止工作。成像系統(tǒng)輸出的數(shù)據(jù)速率為160 Mbit/s,采用Camera Link接口向上位機進行數(shù)據(jù)發(fā)送。如圖5所示,是CCD47-10相機對光柵所成的圖像。實驗結果表明,數(shù)據(jù)傳輸系統(tǒng)能夠將圖像數(shù)據(jù)完整、準確、實時地傳輸?shù)缴衔粰C,并正確的顯示。

      5 結論

      圖5 光柵成像圖(載圖)

      采用USB和Camera Link接口設計的數(shù)據(jù)傳輸系統(tǒng),結構簡單,性能穩(wěn)定,使用靈活方便,結合了 USB和Camera Link接口的優(yōu)點。數(shù)據(jù)傳輸系統(tǒng)使CCD相機和上位機之間可以進行控制命令和高速率、大容量圖像數(shù)據(jù)的傳輸。能夠適用于不同數(shù)據(jù)傳輸要求的CCD成像系統(tǒng)中,有很好的通用性和使用價值。

      [1]王慶有.CCD應用技術[M].天津:天津大學出版社,2002.

      [2]戴進,徐志祥.基于USB2.0的紅外圖像采集系統(tǒng)的設計與實現(xiàn)[J].激光與紅外,2005,35(1):22-25.

      [3]徐志躍,張?zhí)锾?基于Camera Link的串行圖像采集系統(tǒng)設計[J].計算機應用,2010,30(6):1071-1073.

      [4]CCD47-10 AIMO back illuminated compact pack high performance CCD sensor[EB/OL].[2011-06-15].http://www.ccd.com/pdf/ccd_47.pdf.

      [5]周彬,??“?,魏嬌.基于USB2.0低功耗實時數(shù)據(jù)采集系統(tǒng)的設計[J].儀表技術與傳感器,2009(4):33-35.

      [6]李寧,王俊發(fā).基于Camera Link的高速數(shù)據(jù)采集系統(tǒng)[J].紅外,2005(7):31-37.

      [7]戴小俊,楊緒光,丁鐵夫,等.基于USB2.0的高速數(shù)據(jù)通信接口設計[J].電子器件,2006,29(4):1320-1324.

      [8]李文宮,武傳華.采用CY7C68013A的USB系統(tǒng)固件程序設計[J].電子工程,2007(4):33-35.

      [9]Huanor,USB2.0+FPGA 開發(fā)文檔[EB/OL].[2011-06-12].http://www.huanor.com.

      猜你喜歡
      固件狀態(tài)機端點
      非特征端點條件下PM函數(shù)的迭代根
      基于有限狀態(tài)機的交會對接飛行任務規(guī)劃方法
      不等式求解過程中端點的確定
      參數(shù)型Marcinkiewicz積分算子及其交換子的加權端點估計
      基于固件的遠程身份認證
      基丁能雖匹配延拓法LMD端點效應處理
      提取ROM固件中的APP
      電腦愛好者(2015年7期)2015-04-09 08:54:02
      一種通過USB接口的可靠固件升級技術
      奧林巴斯XZ—2新固件升級
      中國攝影(2014年1期)2014-02-24 01:50:23
      FPGA設計中狀態(tài)機安全性研究
      黑龍江科學(2011年2期)2011-03-14 00:39:36
      邢台县| 衡东县| 麦盖提县| 巴马| 利辛县| 吉林省| 巴里| 黄梅县| 社旗县| 瑞金市| 拜泉县| 抚顺市| 高邑县| 岐山县| 临夏市| 石门县| 达日县| 衡阳县| 辉县市| 徐闻县| 枝江市| 雅安市| 荣成市| 宜阳县| 广南县| 财经| 宣汉县| 吴忠市| 盐亭县| 钟山县| 鄄城县| 都江堰市| 莱西市| 藁城市| 佛学| 余庆县| 民乐县| 云南省| 常宁市| 惠州市| 乌拉特前旗|