李咪咪,韋 飛,梁金寶,劉正發(fā),冷 雙
(1.中國科學(xué)院國家空間科學(xué)中心 北京 100190;2.中國科學(xué)院大學(xué) 北京 100049)
一種應(yīng)用于CCD讀出系統(tǒng)的數(shù)據(jù)傳輸系統(tǒng)設(shè)計
李咪咪1,2,韋 飛1,梁金寶1,劉正發(fā)1,2,冷 雙1
(1.中國科學(xué)院國家空間科學(xué)中心 北京100190;2.中國科學(xué)院大學(xué) 北京100049)
在高分辨率太陽軟X射線CCD讀出系統(tǒng)設(shè)計中,為了實現(xiàn)對CCD采集的數(shù)據(jù)傳輸?shù)男枨螅岢隽艘环N基于USB 2.0協(xié)議的8位數(shù)據(jù)傳輸系統(tǒng)的設(shè)計方案,并完成了該系統(tǒng)的軟硬件設(shè)計。設(shè)計以Xilinx公司的XC3S500E系列的FPGA為主控制器,以支持USB 2.0協(xié)議的EZ-USB FX2LP系列的CY7C68013A為接口芯片,采用塊傳輸方式,并最終通過C++編寫的程序在上位機上進行數(shù)據(jù)和圖像的顯示。文中詳細闡述了基于端口模式的CY7C68013A和FPGA之間數(shù)據(jù)傳輸?shù)能浻布O(shè)計。實驗結(jié)果表明,該系統(tǒng)傳輸數(shù)據(jù)準確,達到了設(shè)計要求。。
CCD讀出系統(tǒng);USB 2.0;數(shù)據(jù)傳輸;端口模式
空間軟X射線觀測是獲得高溫等離子體溫度、密度、運動速度等重要參數(shù)的有效途徑,對研究太陽耀斑爆發(fā)及演化過程的加熱機制及其動力學(xué)行為具有極其重要的研究價值[1]??茖W(xué)級CCD由于其體積小、重量輕、噪聲低、分辨率高等優(yōu)點,近年來在越來越多的空間X射線觀測任務(wù)中得到應(yīng)用。
在高分辨率太陽軟X射線CCD讀出系統(tǒng)中,選用的科學(xué)級CCD是英國 E2V公司生產(chǎn)的全幀面陣CCD——CCD42-10。此款CCD采用背照式結(jié)構(gòu),適用于空間X射線觀測,顯著提高了其量子效率[2]。高級反轉(zhuǎn)模式(AIMO)能夠極大地減少暗電流的產(chǎn)生率,從來源上減小暗電流噪聲,使對CCD的制冷要求降低到一定水平,用半導(dǎo)體制冷的方法就能夠達到制冷要求[3]。CCD像素規(guī)格為512×2048,讀出信號經(jīng)放大后由16位ADC轉(zhuǎn)換為數(shù)字信號進入FPGA,經(jīng)由數(shù)據(jù)傳輸系統(tǒng)到達上位機進行數(shù)據(jù)和圖像的顯示,便于后續(xù)分析。在數(shù)據(jù)的采集和處理系統(tǒng)中,傳統(tǒng)的RS-232等接口已不能滿足系統(tǒng)對傳輸速率越來越高的要求,這就使USB在數(shù)據(jù)采集中得到了越來越多的應(yīng)用[4]。目前USB2.0標準的傳輸速率最高已達480 Mbps,能夠滿足大多數(shù)數(shù)據(jù)傳輸系統(tǒng)的需求。同時,USB還具有使用方便、傳輸速率高、連接靈活、獨立供電、易于擴展、支持多媒體以及即插即用等優(yōu)點[5]。Cypress公司的EZ-USB FX2是一款集成USB 2.0的微處理器,它集成了USB 2.0收發(fā)器、SIE(串行接口引擎)、增強的8051微控制器和可編程的外圍接口。每條指令占4個時鐘周期,在48M晶振下工作時 (12 MHz工作時鐘,設(shè)置內(nèi)部4倍頻模式,實際工作時鐘為48 MHz),單指令周期為83.3 ns,執(zhí)行速度遠快于標準的8051單片機[6]??紤]到一幀CCD數(shù)據(jù)量很大,在保證基本精度的前提下傳輸過程選用高8位數(shù)據(jù),以降低對SRAM容量大小的要求并提高傳輸速率。因此,本文介紹的數(shù)據(jù)傳輸系統(tǒng)選用 EZ-USB FX2系列芯片CY7C68013A,基于端口模式,在FPGA控制下實現(xiàn)對8位數(shù)據(jù)的采集傳輸,同時在上位機上進行顯示、保存。下面就詳細介紹系統(tǒng)的軟硬件設(shè)計。
該系統(tǒng)的總體結(jié)構(gòu)框圖如圖1所示,首先FPGA發(fā)送來的8位數(shù)據(jù)傳輸?shù)紺Y7C68013A的PD端口,然后由EP6IN端點發(fā)送至上位機,在上位機上顯示數(shù)據(jù)和圖像。FPGA發(fā)送數(shù)據(jù)的頻率選為1 MHz,USB向上位機傳輸數(shù)據(jù)的速率大概能達到40Mb/s。將EP6端點設(shè)置成雙倍緩沖區(qū),采用乒乓操作實現(xiàn)數(shù)據(jù)接收和發(fā)送同時進行,這樣既可以利用USB 2.0的快速傳輸?shù)膬?yōu)點又能保證傳輸?shù)目煽啃浴W詈笊衔粰C界面程序采用VC++6.0編寫,具有界面友好、操作簡單的特點。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
系統(tǒng)的硬件電路主要包括FPGA接口電路和USB芯片電路。FPGA接口電路相對簡單,在此不詳細介紹,主要介紹USB芯片電路設(shè)計。該設(shè)計包括電源電路、晶振電路、復(fù)位電路、EEPROM電路和部分信號引腳設(shè)計。
各部分電路實現(xiàn)的功能:
電源電路:由于CY7C68013A的工作電壓是+3.3 V,而VBUS提供+5 V的電壓,因此電源電路采用LM1084-3.3 V來實現(xiàn)電壓轉(zhuǎn)換,輸出固定電壓;
晶振電路:采用24 MHz的晶振頻率;
復(fù)位電路:采用積分型復(fù)位電路,芯片的復(fù)位引腳RESET低電平有效;
EEPROM電路:原理如圖2所示,采用的是“C0”EEPROM引導(dǎo)加載方式,僅用來加載常規(guī)的VID、PID和DID。該設(shè)計使用24LC00 EEPROM芯片,采用單字節(jié)地址,對應(yīng)的地址輸入引腳A2、A1、A0均接低電平,連接器P1用于選擇WP(寫保護)引腳的連接方式,與Vss相連表示使能寫操作,與Vcc相連表示禁止寫操作,讀操作不受影響。
圖2 EEPROM電路原理圖
部分引腳信號設(shè)計:I2C總線上的時鐘線SCL和數(shù)據(jù)線SDA必須通過 2.2 kΩ 的電阻連接到 Vcc;保留引腳RESERVED通過10 kΩ電阻連接到地,防止芯片進入測試狀態(tài);喚醒引腳WAKEUP不能懸空,需要使用掛起模式時引腳接地,系統(tǒng)中不使用此引腳,則通過100 kΩ電阻連接到Vcc;芯片的I/O引腳、中斷引腳、串口引腳、數(shù)據(jù)存儲器相關(guān)引腳都以接插件的形式向外引出,方便后續(xù)開發(fā)使用。
3.1FPGA程序設(shè)計
在本系統(tǒng)中,由于僅僅介紹數(shù)據(jù)傳輸系統(tǒng)的設(shè)計和工作,因此沒有用到CCD采集的數(shù)據(jù)。在FPGA中,利用代碼產(chǎn)生特定的數(shù)據(jù)“0xAA”直接賦值給USB端口,通過上位機檢驗數(shù)據(jù)傳輸系統(tǒng)的工作準確性。同時,F(xiàn)PGA要判斷何時發(fā)送數(shù)據(jù)。簡單來說,就是FPGA與USB之間需要有握手信號,當FPGA這邊的數(shù)據(jù)準備好了,就向USB發(fā)送一個信號,通知USB端數(shù)據(jù)已經(jīng)準備就緒,如果此時USB的EP6端點恰好不滿,就開始讀數(shù)據(jù),當USB將FPGA發(fā)送來的數(shù)據(jù)讀取完成后,還需要給FPGA反饋一個信號,通知FPGA該數(shù)據(jù)已經(jīng)讀取完成,可以進行下一個數(shù)據(jù)的發(fā)送了,避免了重復(fù)讀取同一個數(shù)據(jù)。這段功能的主要實現(xiàn)代碼如下:
3.2USB固件程序設(shè)計
USB固件程序是指在設(shè)備的微控制器中的可執(zhí)行程序,它一方面用來初始化和配置設(shè)備,另一方面用來完成外部硬件與主機之間的數(shù)據(jù)通信。Cypress公司為簡化程序的編寫并縮短開發(fā)周期,為開發(fā)者提供了固件程序開發(fā)框架,用戶只需在這些框架文件的函數(shù)里添加自己的程序代碼,就可以實現(xiàn)所需的特定功能[7]。典型的固件框架流程圖如圖3所示。在固件程序中,最重要的兩個函數(shù)是TD_Init()和TD_Poll()。TD_Init()在設(shè)備重枚舉和任務(wù)分配前被調(diào)用,該函數(shù)在程序運行期間只被調(diào)用一次,在該函數(shù)中,用戶可以根據(jù)自己的需求設(shè)置狀態(tài)變量的初值、端點資源的使用及I/O端口的狀態(tài)來實現(xiàn)特定的功能。TD_Poll()處在任務(wù)調(diào)度循環(huán)之內(nèi),在程序運行期間重復(fù)被調(diào)用,在該函數(shù)中,用戶可以添加自己的程序代碼,來完成特定的任務(wù)。
圖3 固件框架流程圖
常用的的固件開發(fā)軟件是Keil uVision系列軟件,Keil uVision4開發(fā)環(huán)境不僅擁有豐富的函數(shù)庫和編譯器,且采用Windows可視化界面,得到廣泛使用。因此本系統(tǒng)采用Keil uVision4來提供固件編程的開發(fā)環(huán)境。同時Cypress公司提供的開發(fā)包CY3684 EZ-USB FX2LP Development Kit中包含了典型的固件程序代碼,在安裝開發(fā)包之后表1所列出的框架庫源文件都包含在安裝目錄下,使用者只需進行簡單的修改就能開發(fā)自己的應(yīng)用程序。
表1 固件庫源文件
主要程序代碼如下:
3.3USB驅(qū)動程序設(shè)計
在Windows開發(fā)環(huán)境下主要的USB驅(qū)動開發(fā)方式有Microsoft公司的DDK(Driver Develop Kit)工具、KRFTech公司的WinDriver工具和Compuware公司的DriverStudio工具。其中,DriverStudio工具是常用的開發(fā)方式。但是,大多USB芯片公司都提供了通用的USB驅(qū)動程序,開發(fā)者只需要進行簡單的修改和安裝,就可以實現(xiàn)對固件程序的開發(fā),適合于初學(xué)者。在本系統(tǒng)的USB驅(qū)動開發(fā)中就使用了Cypress公司提供的通用USB驅(qū)動,加速驅(qū)動開發(fā)過程。
Cypress的通用驅(qū)動程序包括CyLoad.sys和CyUSB.sys,分別用于固件程序下載和固件程序與主機之間的通信,而每個驅(qū)動程序的安裝都需要由相應(yīng)的INF(設(shè)備信息文件)引導(dǎo)。當首次插入USB設(shè)備后,主機會提示選擇INF文件,根據(jù)VID和 PID (CY7C68013A芯片的 VID為 0x04B4,PID為0x1004),CY7C68013A找到INF文件中對應(yīng)的固件下載驅(qū)動程序。當固件成功下載到主機后,設(shè)備進入重列舉,然后USB設(shè)備運行下載固件程序。最后,主機會根據(jù)固件程序提供的設(shè)備VID和PID查找匹配的通用驅(qū)動程序,最終完成設(shè)備的配置。
3.4上位機應(yīng)用程序設(shè)計
應(yīng)用程序是系統(tǒng)與用戶的接口,其通過通用驅(qū)動程序來完成對外設(shè)的控制和通信[8]。對于上位機開發(fā)程序,根據(jù)開發(fā)平臺的不同,可以選擇不同的開發(fā)環(huán)境,本設(shè)計中采用Visual C++開發(fā)環(huán)境。本系統(tǒng)中主要使用Cypress公司針對EZ-USB系列芯片提供的CY3684開發(fā)包中的CYIOCTL和CyAPI控制函數(shù)類實現(xiàn)對USB設(shè)備的訪問。使用時先將cyapi.lib加載到項目工程中,然后只需要在Visual C++程序中加入對應(yīng)的頭文件cyioctl.h和cyapi.h即可。在本次設(shè)計中主要應(yīng)用的函數(shù)如表2所示,對應(yīng)函數(shù)的具體定義在對應(yīng)的頭文件中都可以找到,這些函數(shù)在使用時,必須首先獲得USB設(shè)備的句柄。
表2 主要應(yīng)用的USB類庫函數(shù)
Visual C++提供的MFC(Microsoft Foundation Class,微軟基礎(chǔ)類庫)是C++類的集合,是面向?qū)ο蟮暮瘮?shù)庫,利用這些類庫,可以方便的進行應(yīng)用程序的開發(fā)。本次設(shè)計的應(yīng)用程序就是在MFC框架函數(shù)的基礎(chǔ)上進行設(shè)計的,在進行數(shù)據(jù)采集之前,首先點擊“連接開發(fā)板”按鈕,當提示設(shè)備連接成功后,才能進行下一步的操作;點擊“設(shè)備描述符”可以獲得USB設(shè)備的描述符信息,點擊“清除文本框”可以清除所有文本;點擊“結(jié)束程序”可以從當前界面退出;“采集驗證”是對數(shù)據(jù)進行采集;“圖像采集”和“保存圖像”可以進行圖像的采集和保存。實驗中,為了清晰比較實驗結(jié)果,利用FPGA向USB發(fā)送同一個字符0xAA,得到的采集界面如圖4所示。
圖4 測試界面圖
該數(shù)據(jù)傳輸系統(tǒng)以FPGA、USB芯片和PC機為硬件平臺,數(shù)據(jù)的傳輸采用了端口模式和塊傳輸方式,上位機界面程序采用VC++6.0編寫,具有操作簡單、界面友好的特點,可以應(yīng)用于大部分的數(shù)據(jù)傳輸操作。實際應(yīng)用表明,該系統(tǒng)傳輸數(shù)據(jù)準確,達到了設(shè)計要求。
[1]Takako Kato,Tomoko Fujiwara,Yoichiro Hanaoka.X-Ray spectral analysis of yohkoh bragg crystal spectrometer data on a 1992 september 6 flare:the blueshift component and ion abundances[J].ApJ,1998,492(2):822-832.
[2]Janesick J R.Scientific charge-coupled devices[M].Bellingham:SPIE press,2001.
[3]J.Janesick.Muti-pinned-phase charge-coupled device[J]. NASA Tech Briefs,1990,14(8):22.
[4]徐磊,路宇英,陳建華,等.基于USB塊傳輸方式的實時數(shù)據(jù)采集[J].測控技術(shù),2005,24(2):12-14.
[5]張超,李洪文,朱丹丹,等.基于USB的高速數(shù)據(jù)傳輸系統(tǒng)設(shè)計[J].計算機應(yīng)用,2013,33(S2):54-56.
[6]劉吉名,裴東興.基于CY7C68013的USB2.0數(shù)據(jù)傳輸模塊設(shè)計[J].電子測量技術(shù),2008,31(3):94-96.
[7]吳磊,郭超平,申世濤.基于CY7C68013與FPGA的便攜式數(shù)據(jù)采集系統(tǒng)[J].計算機應(yīng)用,2012,32(S1):164-166.
[8]袁衛(wèi),張建奇.基于USB2.0和FPGA的多路數(shù)據(jù)傳輸系統(tǒng)設(shè)計[J].微計算機信息(嵌入式與SOC),2006,22(12-2): 144-145,299.
A design of data transmission system applied to the CCD readout system
LI Mi-mi1,2,WEI Fei1,LIANG Jin-bao1,LIU Zheng-fa1,2,LENG Shuang1
(1.National Space Science Center,Chinese Academy of Sciences,Beijing 100190,China;2.University of Chinese Academy of Sciences,Beijing 100049,China)
In order to realize data transmission in the CCD readout system of high resolution solar soft X-ray spectrometer,a design of 8-bit data transmission system based on USB 2.0 is designed in this paper,and its hardware and software design has been completed.This design with bulk transmission mode takes the FPGA from XC3S500E serial as the master controller,and the CY7C68013A chip from EZ-USB FX2LP serial,supporting the USB 2.0 protocol,as the interface chip.Finally it realized data and image display on the host computer using C++programs.The hardware and software design method of data transmission with port mode between CY7C68013A and FPGA are further elaborated in this paper.The experiment shows that this system can transmit data accurately,so it achieved the design requirement.
CCD readout system;USB 2.0;data transmission;port mode
TN919.3
A
1674-6236(2016)14-0070-04
2015-08-11稿件編號:201508047
中國科學(xué)院戰(zhàn)略性先導(dǎo)科技專項(XDA04070000)。
李咪咪(1991—),女,山東威海人,碩士。研究方向:高分辨率低噪聲CCD傳感器讀出系統(tǒng)開發(fā)。