專利名稱:多路usb采集ccd相機數(shù)據(jù)的設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)采集設(shè)備,具體涉及一種多路USB采集CCD相機數(shù)據(jù)的的設(shè)備裝置,用于對天文觀測儀器科學級CCD相機,采用多個USB對CCD的圖像數(shù)據(jù)進行采集。
背景技術(shù):
天文觀測的對象是非常暗弱的天體,對所用CCD要求比較高,天文觀測上使用的 CCD探測器代表了 CCD應(yīng)用領(lǐng)域的最高水平(高靈敏度和大視場)。對于高速科學CCD系統(tǒng)而言,最重要的是CCD信號的高速讀出、存儲及處理。近年來,隨著大規(guī)模、超大規(guī)模集成電路工藝的發(fā)展,CCD研制水平和CCD芯片的成品率不斷提高,CCD相機正向大靶面、高幀頻方向發(fā)展。CCD相機的接口技術(shù)正在從通用接口向?qū)I(yè)接口,低速接口向高速接口超高速接口方向發(fā)展。面陣CXD的像元數(shù)最高已達 ΙΟΚχΙΟΚ,像元尺寸己做到7um以下,為了獲得更大靶面,C⑶的拼接技術(shù)也被采用。在天文觀測、空間目標識別上,特別是對于快速運動的目標,需要對其連續(xù)曝光,這時CCD相機的傳輸速度顯得格外重要。分析現(xiàn)有技術(shù)的CCD 相機發(fā)現(xiàn),目前的C⑶數(shù)據(jù)采集系統(tǒng)與計算機通訊接口一般是基于PCI總線,Camera link, USB2. 0總線,IEEE1394b或者RS232串行總線。其中USB2. 0總線使用最廣泛,許多科學級 CXD制造商都采用USB2. 0通訊協(xié)議,且都是單通道的傳輸數(shù)據(jù)。如Apogee公司Alta U6和 Andor NewtonEMCXD,這些相機的傳輸速率大都在20MB/s,相機的通訊距離大約10米。 對于天文或者航天相機的超大靶面或者是拼接的CCD來說,傳輸速度顯得低,圖像傳輸時間長,不能滿足尖端的科學級相機實時性的需要。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的上述不足,本發(fā)明的目的是提供一種多路USB采集CCD相機數(shù)據(jù)的設(shè)備。本發(fā)明通過多路USB采集科學級CCD相機圖像的設(shè)備和方法,可有效解決超大靶面、拼接CCD相機的超大數(shù)據(jù)量,數(shù)據(jù)快速傳輸?shù)膯栴},對于小靶面的科學級相機來說其實時性也會有很大提高。能夠滿足天文或者航天相機的實時性需要。完成上述發(fā)明任務(wù)的方案是一種多路USB采集CXD相機數(shù)據(jù)的設(shè)備,所述的CXD 相機采用四路USB CXD相機,該相機內(nèi)部電路板上設(shè)有四個USB2. O通訊芯片,及四個獨立的USB接口,其特征在于,本設(shè)備中設(shè)有控制四路USB相機的PC機,該臺PC機設(shè)有四個獨立的USB接口 ;所述C⑶相機的四個獨立的USB接口與所述PC機的四個USB 口通過USB線一對一的連接。換言之,所述用四路USB CXD相機的電路板上設(shè)有USB控制器、A/D轉(zhuǎn)換器,CPLD, 鎖存器,以及C⑶芯片,四路USB采集的相機有四個KAF4320CXD芯片,這四個KAF4320芯片是被安裝在了一個相機里面。每個KAF4320CXD芯片對應(yīng)一路USB進行數(shù)據(jù)傳輸,而 KAF4320CXD芯片其本身有為四通道讀出,所以可以理解為四路USB KAF4320的CXD相機為 16通道讀出。從最后給出的fits圖中看出其有16個方格,即為16個通道讀出的不同的數(shù)據(jù)。
上述設(shè)備的使用方法是多路USB采集CCD相機數(shù)據(jù)的方法,其步驟如下
(1).在與CCD相機連接的計算機操作系統(tǒng)上用記事本軟件編寫安裝USB設(shè)備所需的設(shè)備信息文件(INF);包括四個USB2. 0控制器的設(shè)備號,四個USB2. 0控制器設(shè)備的設(shè)備名稱,使得計算機操作系統(tǒng)能識別到USB上的設(shè)備;
(2).Cypress為CY68013A USB通訊芯片提供了一個軟件開發(fā)包ez_usb_fx21p_ development,方便起見可以將開發(fā)包提供的inf文件中的[Cypress]選項VID和PID做相應(yīng)的修改;
(3).安裝驅(qū)動程序在CCD相機USB的各個設(shè)備上安裝步驟⑴所編寫的inf文件,將驅(qū)動指定到自己編寫的inf文件中;
(4).對USB2.0控制器進行編程,生成IIC文件(可被燒寫到外部EEPROM元件中去),使其能夠接收從計算機發(fā)來的命令,并按照要求向計算機返回數(shù)據(jù),以及計算機接收到數(shù)據(jù)后對數(shù)據(jù)的處理;
(5).編寫PC機與CCD相機連接的計算機的四路CCD圖像采集程序;
(6).數(shù)據(jù)處理PC機與CCD相機連接的計算機將四路CCD數(shù)字量進行排序,將四路CCD 數(shù)字量分成四個象限,再由四個象限組合成一副完整的圖像進行顯示或者保存等操作。控制一臺四路USB相機主需要一臺PC機,只要這臺PC機有四個獨立的USB接口。四路USB CXD相機是一個相機,其內(nèi)部電路板上有四個USB2. 0通訊芯片,四個獨立的USB接口,四個接口與PC機的四個USB 口通過USB線一對一的連接。電路板上除了 USB控制器,A/D轉(zhuǎn)換,CPLD,鎖存器等元件外還有C⑶芯片,四路USB采集的相機有四個 KAF4320CXD芯片,這四個KAF4320芯片是被安裝在了一個相機里面。每個KAF4320CXD芯片對應(yīng)一路USB進行數(shù)據(jù)傳輸,而KAF4320C⑶芯片其本身有為四通道讀出,所以可以理解為四路USB KAF4320的CXD相機為16通道讀出。從最后給出的fits圖中看出其有16個方格,即為16個通道讀出的不同的數(shù)據(jù)。為了提高USB2.0科學級C⑶的傳輸速度,本發(fā)明采用四路USB同時傳輸這一方法,給每一個USB設(shè)備定義一個專門的設(shè)備號,編寫設(shè)備的驅(qū)動和相應(yīng)的采集程序,使其四路USB可以同時采集。采用四路USB同時傳輸?shù)南鄼C傳輸速度比單路的相機成倍的提高,并且完全支持 USB2. 0協(xié)議,安裝十分方便,滿足科學級CCD相機實時性的要求。目前國內(nèi)外還沒有出現(xiàn)采用多路USB通訊的CXD相機,此項技術(shù)尚屬首創(chuàng)。USB2. 0通訊芯片采用CY7C68013A芯片,它帶有51核,既負責接收高速CXD相機傳來的圖像數(shù)據(jù),又和上位機通訊,接收上位機發(fā)來的指令,控制相機在不同模式下的運行動作。CY7C68013A的GPIF引擎具有自動傳輸數(shù)據(jù)結(jié)構(gòu)的特性,這種特性使的外圍設(shè)備和主機通過CY7C68013A可以無縫的高速數(shù)據(jù)傳輸。拼接4個CCD芯片就需要有4個CY7C68013A, 他們各自有自己的地址和一整套命令系統(tǒng),這是整個系統(tǒng)的關(guān)鍵,主機對4個CXD芯片中的一個進行采集時先要發(fā)出要采集相機的地址,計算機的USB 口檢測到相應(yīng)的地址后,啟動對應(yīng)的CY7C68013A傳輸程序向主機傳輸,4個CY7C68013A可以同時傳輸數(shù)據(jù),提高傳輸速度。開發(fā)編程時可以用eZ_uSb_fX21p_development開發(fā)包,里面的軟件可以進行方便的測試,編程,加快開發(fā)的進度。四路USB的數(shù)據(jù)采集具體的實現(xiàn)方法是1. 1編寫四個USB2. 0控制器的設(shè)備號,其驅(qū)動程序,使得計算機操作系統(tǒng)能識別到USB 上不同的設(shè)備。編寫inf驅(qū)動程序。每一個CY7C68013A都有固定的vendor ID和product ID, VID是識別設(shè)備的廠家型號,PID是用戶自己定義的產(chǎn)品型號可供用戶修改。編寫INF 文件,將開發(fā)包提供的inf文件中的[Cypress]選項VID和PID做相應(yīng)的修改。例如改為 %VID_0405&PID_1012. DeviceDesc%=CyUsb, USB\VID_0405&PID_1012。這樣 VID 為 0405, PID為1012。.并在[Mrings]識別字符里定義驅(qū)動的名稱。如規(guī)定為VID_0405&PID_1012. DeviceDesc=^Cypress EZ-USB Example 4320 Device_l〃,如果PC機發(fā)現(xiàn)此設(shè)備,會將其命名為 Cypress EZ-USB Example 4320 Device-1。安裝驅(qū)動程序。給第1個CY7C68013A芯片加電,PC會提示發(fā)現(xiàn)新的硬件。將驅(qū)動指定到自己編寫的inf文件中,下一步直到安裝完成。安裝完成后,用eZ_uSb_fX21p_development開發(fā)包所帶的Console軟件查看,發(fā)現(xiàn)Device Name % EZ-USB, Name in Windows Device Mgr(from, inf)為 Cypress EZ-USB Example 4320 Devive-1。下面的 VendorID 為 0x0405,ProductID 為 0x1012。說明安裝正確。1. 2對USB2. 0控制器進行編程,使其能夠接收從計算機發(fā)來的命令,并按照要求向計算機返回數(shù)據(jù),以及計算機接收到數(shù)據(jù)后對數(shù)據(jù)的處理。編寫傳輸控制程序。在KEIL下編寫控制和傳輸程序,采用GPIF波形編程,BULK傳輸方式傳輸數(shù)據(jù)。在開發(fā)包所給的例子程序中有進行Bulk傳輸?shù)某绦蚩晒﹨⒖?。在開發(fā)包 dscr. a51 文件 DeviceDscr 下設(shè)置設(shè)備的 VID (dw 00504H)和 PID (dw 1210H), VID 和PID必須和inf中設(shè)置的VID和PID —致。在程序編寫完成后生成HEX文件。生成IIC文件。在KEIL軟件下編譯生成HEX文件,然后通過Hex2bix _i -f 0xC2 -ο usb_mcu. iic usb_mcu. hex將keil所生成的hex文件轉(zhuǎn)換為可燒寫到EEPROM里去的 IIC文件。下載IIC文件。用開發(fā)包的Console軟件,選擇EZ-USB hterface下的Lg EEPROM 下載生成的IIC文件。第1個CY7C68013A的驅(qū)動及程序即下載完成。其他3路CY7C68013A的驅(qū)動和程序下載過程與第1路類似,但是其VID和PID必須設(shè)置成不同。例如配置成
第 2 個 CY7C68013A :VID (0x0405) PID (0x1013)。第3 個 CY7C68013A =VID (0x0405) PID (0x1014)。第4 個 CY7C68013A :VID (0x0405) PID (0x1015)。四個驅(qū)動和程序下載好后就可以編寫采集軟件,對這四路USB進行同時采集了。1. 3編寫PC機的四路CXD圖像采集程序
在Visual C++2008軟件下編寫USB圖像采集程序。采用MFC應(yīng)用程序創(chuàng)建單文檔窗口。在單文檔窗口中調(diào)用edit,botton, radio, picture control等控件實現(xiàn)采集CCD圖像的功能。具體方法是用edit設(shè)置曝光時間,用botton開始采集CXD圖像,用Radio選擇采集模式(分為正常曝光,采集Bias,采集暗流三種)和采集速度(分為500K采樣速度,IM采樣速度,2M采樣速度,4M采樣速度四種)用picture control控件顯示C⑶圖像,及用Slider Control實現(xiàn)圖像的灰度和亮度調(diào)節(jié)等等功能。程序啟動時先加載系統(tǒng)頭文件,庫文件。程序啟動后相機是在默認的系統(tǒng)的待機狀態(tài)下。當用戶選擇“采集圖像”按鈕后程序會調(diào)用CYAPI. h文件中的CCyUSBDevice類,檢測當前的正在工作的USB 口的PID VID, 如果PID VID和燒寫到CY68013A中的PID VID—致,說明P C機已經(jīng)發(fā)現(xiàn)了用戶定義的 USB2. 0設(shè)備,反之則說明用戶定義的USB2. 0設(shè)備沒有被PC機識別到。當識別到四個不同的VID PID后P C機執(zhí)行用戶設(shè)置的一些C⑶的參數(shù)。執(zhí)行這些參數(shù)是通過PC機向 CY68013發(fā)送命令的形式實現(xiàn)的。在KEIL下編寫CY69013的程序時規(guī)定了相機的15種命令。(見圖2)
CCD相機的采集模式有正常曝光,采集Bias,采集暗流三種。正常曝光采集時先打開快門再延遲用戶所設(shè)置的積分時間,入射光在設(shè)置的時間內(nèi)通過光路照射CXD芯片產(chǎn)生感應(yīng)電荷,再關(guān)閉快門,然后再發(fā)出采集圖像數(shù)據(jù)的命令接收數(shù)據(jù)。采集bias是零積分的操作,即不用打開和關(guān)閉快門,直接發(fā)出采集圖像數(shù)據(jù)的命令接收數(shù)據(jù),bias采集的是CCD相機的本底,是CCD的固有屬性,與溫度和時間無關(guān)。暗流(dark)是有延遲積分時間,但是沒有快門的動作,反映的是相機的熱噪聲,它隨溫度的升高而加劇,也和積分時間有關(guān)。三種采樣模式的流程圖見圖3
確定了采集模式后接下來就是向CY68013發(fā)送命令,并接收其上傳的CCD圖像數(shù)據(jù), 三種采集模式的采集命令是相同的,發(fā)送采集命令流程圖見圖4
接收數(shù)據(jù)調(diào)用了 Cyapi文件CCyUSBEndPoint類中XferData函數(shù),同步讀取數(shù)據(jù), XferData (rxbuf+k, len_read) ; len_read為每次傳送的數(shù)據(jù)個數(shù),k為整個一幀圖像的數(shù)據(jù)個數(shù),設(shè)定K之后采用循環(huán)多次執(zhí)行,直到K達到預(yù)置的值,一幀數(shù)據(jù)傳送完畢。以上講的是單路USB數(shù)據(jù)的接收方法,對于多通道USB數(shù)據(jù)的發(fā)送和接收則需要多線程的操作。四路US B數(shù)據(jù)的采集時采用了四個線程的方法,四路USB采集時同時開放四個采集進程,每個進程對應(yīng)一路USB,而在每一個進程中又判斷CY7C68013的VID和PID,對其發(fā)送了 0XB2(復(fù)位外部),0XB7 (開始采集),0XB3 (收數(shù)使能),0XB5 (停止采集),0XB4 ( 停止收數(shù))等一系列的命令。四路USB多線程采集程序流程圖見圖5
當四路USB的圖像都接收完之后還需要做進一步的數(shù)據(jù)處理,將所受到的一維數(shù)據(jù)排序成可供顯示和保存的二維數(shù)據(jù)。(二維數(shù)據(jù)其中一維表示行,另一維表示列)如 KAF4320CCD的圖片,行為1046,列為1050。保存圖片獲得二維數(shù)據(jù)后可以將其保存成天文上專用的fits格式的文件,調(diào)用通用的fitsio.h文件編寫
四路KAF4320的數(shù)據(jù)量是USB的數(shù)據(jù)量是單路的4倍,保存的參數(shù)為file_SaVe_ short (const char 氺filename, unsigned short data[4184] [4200]),其中 filename表Tj^ 文件名,data為處理過的二維數(shù)組。程序處理完這一系列的數(shù)據(jù)后得到一幅16通道的二維圖像。見圖6
本發(fā)明采用四路USB傳輸?shù)南鄼C傳輸速度明顯得到了提升。采用單路USB傳輸時如果采集的圖像大小為32MB,大約要6秒鐘的時間,而采用四路USB傳輸?shù)南鄼C只需要2秒鐘時間,相機的實時性有了很大的提高。
圖1為68013與CY7C4285V結(jié)構(gòu)連接圖; 圖2為命令格式對照表;
圖3為三種采樣模式流程圖; 圖4為發(fā)送采集命令流程圖; 圖5為四路USB多線程采集程序流程圖; 圖6為四路USB采集的16通道的圖像。
具體實施例方式實施例1,多路USB采集CXD相機數(shù)據(jù)的方法及其設(shè)備,參照圖廣圖3 :
本發(fā)明所采用的CXD芯片是KAF4320,它是四通道的單色高靈敏度芯片。在USB通訊上采用上述所說的CY7C68013進行四路USB采集,每一路采集一個KAF4320CXD芯片的圖像,實際上一幅完整的圖像就是4x4為16個象限的圖像。Cypress公司USB控制器FX2系列的CY7C68013與外設(shè)有兩種接口方式可編程接口 GPIF和Slave FIFOs。本發(fā)明所用的是主機方式即可編程控制接口(GPIF)。C⑶產(chǎn)生的圖像信號經(jīng)過外置放大器放大后交給AD98M,AD9824的數(shù)據(jù)經(jīng)過數(shù)據(jù)緩存器74LCX574 后進FIF0(CY7C4285V)(由CPLD控制其時序)。68013做為主機,通過編程GPIF波形讀寫外部FIFO的數(shù)據(jù)。68013的GPIF功能可以與FIFO無縫連接,采用這種方案不僅傳輸速度快,而且易于編程。68013與CY7C4285V結(jié)構(gòu)連接關(guān)系如圖1。GPIF是端點FIFO的內(nèi)部控制器。在這種方式下,接口內(nèi)核可產(chǎn)生6個控制輸出端(CTL0 CTL5)同時可以接收6個外部輸入(RDY0 RDTO),可以很方便的進行編程。CY7C68013開發(fā)工具中帶有一個GPIFDesigner,編輯自己需要waveform后,選擇 Tools->Export to GPIF. c File來輸出GPIF. c文件,然后將該文件加入keil c工程和其他文件一起進行編譯。CY7C68013除了負責高速CXD圖像數(shù)據(jù)的采集,同時也負責和上位機之間的命令通訊。主機可以通過CY7C68013向C⑶發(fā)出工作狀態(tài)切換、溫度采集、快門動作等等一系列的指令。首先,CY7C68013要先接收到主機從USB 口發(fā)出來的命令代碼,然后根據(jù)命令代碼的不同來分別定義相機的動作,必須是一一對應(yīng)的關(guān)系,保證相機穩(wěn)定可靠的運行。例如以下的命令格式(見圖2)。
權(quán)利要求
1.一種多路USB采集CCD相機數(shù)據(jù)的設(shè)備所述的CCD相機采用四路USB CCD相機, 該相機內(nèi)部電路板上設(shè)有四個USB2.0通訊芯片,及四個獨立的USB接口,其特征在于,本設(shè)備中設(shè)有控制四路USB相機的PC機,該臺PC機設(shè)有四個獨立的USB接口 ;所述CCD相機的四個獨立的USB接口與所述PC機的四個USB 口通過USB線一對一的連接。
2.根據(jù)權(quán)利要求1所述的多路USB采集CCD相機數(shù)據(jù)的設(shè)備,其特征在于,所述的 USB2. 0通訊芯片采用CY7C68013A芯片,所述的4個CY7C68013A各自設(shè)有自己的地址和一整套命令系統(tǒng)。
3.根據(jù)權(quán)利要求1或2所述的多路USB采集CCD相機數(shù)據(jù)的設(shè)備,其特征在于,所述的 CXD芯片采用4個KAF4320芯片。
全文摘要
四路USB采集CCD相機數(shù)據(jù)的設(shè)備采用四路USBCCD相機,相機設(shè)有四個USB2.0通訊芯片及四個獨立的USB接口,特征是,設(shè)有控制四路USB相機的PC機,PC機設(shè)有四個獨立的USB接口;CCD相機的四個獨立的USB接口與PC機的四個USB口通過USB線一對一連接。CCD芯片上的景物通過USB接口輸入到計算機進行儲存。通過重復(fù)掃描和軟件將四片CCD的圖像合并成一幅圖像計算機將四路CCD數(shù)字量進行排序,將四路CCD數(shù)字量分成四個象限,每個象限顯示四個通道,再由四個象限組合成一副完整的圖像進行顯示或者保存。本發(fā)明傳輸速度明顯提升圖像為32MB時只需2秒,實時性大大提高。
文檔編號H04N5/335GK102231794SQ20111016067
公開日2011年11月2日 申請日期2011年6月15日 優(yōu)先權(quán)日2011年6月15日
發(fā)明者劉偉, 姚大志, 張仁健 申請人:中國科學院紫金山天文臺