趙 婷 ,荊 濤 ,余慶龍
(1.中國科學院國家空間科學中心北京100190;2.中國科學院大學北京100049)
地球輻射帶(又稱范艾侖輻射帶)分布的大量高能帶電粒子會經由“劑量效應”,“單粒子作用”,“充放電事件”等,造成衛(wèi)星與飛船的故障,同時,高能粒子的輻射會損害人體基因,對航天員健康造成危害[1]。對輻射帶的探測有助于對輻射帶的理論研究,具有現(xiàn)實的工程意義[2]。
目前的空間高能粒子探測主要采用應用衛(wèi)星如中國FY系列氣候衛(wèi)星的搭載載荷。電子科技的發(fā)展使得衛(wèi)星載荷的開發(fā)周期短,載荷體積小,功能全面。
高能電子探測器采用半導體傳感器作為能量測量設備,電子學讀出系統(tǒng)采用集成度高、功耗小的ASIC芯片做前端電子學電路,最后將處理信號通過FPGA傳輸?shù)街鳈C進行數(shù)據(jù)顯示和保存。高能電子探測器采用FPGA和USB 2.0作為數(shù)據(jù)傳輸?shù)氖侄巍?/p>
文中將介紹整個高能電子探測器的物理結構設計,詳細介紹探測器的數(shù)據(jù)傳輸系統(tǒng)的軟硬件設計。
高能電子探測器物理總體結構設計為準直結構,半導體探測器測量系統(tǒng)和電子學系統(tǒng)。如圖1所示。
圖1 高能電子探測器
準直結構可以形成合適的探測視場,也可以提供一定的屏蔽條件,降低斜入射粒子對探測系統(tǒng)的影響[3]。準直系統(tǒng)主要包括探頭外部結構,反散射結構和擋光層,外部結構設計為杯狀結構,并在探頭外部增加了額外的銅屏蔽;反散射結構目的是防止電子散射對測量的干擾[4];擋光層的材料為15 um的鋁膜,能夠阻擋1 Mev以下的質子和30 KeV以下的電子。
半導體探測器測量系統(tǒng)采用六塊厚度均為1mm離子注入型硅半導體傳感器組成望遠鏡結構。半導體探測器收集帶電粒子入射后由電離效應等產生的能量損失,并將能量值轉換為脈沖信號提供給電子學系統(tǒng)。
電子學系統(tǒng)對傳感器的信號進行采集,通過信號放大、濾波成型、數(shù)模轉換等輸出為數(shù)字信號,并通過FPGA傳輸?shù)缴衔粰C進行數(shù)據(jù)顯示和存儲。
半導體探測器輸出的是一個電荷脈沖,對這個信號進行采集和分析,就是探測器的前端電子學電路。主要指在ADC之前的模擬電路,包括信號的前置放大電路、濾波成形電路、數(shù)模轉換等電路[5]。采用分立元件的前端電路已經很難達到現(xiàn)在的需求,所以采用集成度高,功耗小的ASIC芯片。
本題采用的是英國盧瑟福.阿普爾頓實驗室RAL(Rutherford Appleton Laboratory)為歐空局的SIXS(The Solar Intensity X-ray and particle Spectrometer)項目研制的一款芯片。芯片采用0.35μm CMOS工藝,內部集成了8個相互獨立的傳感器信號處理通道,其中6個為硅(Si)半導體傳感器信號處理通道,2個碘化銫(CsI)閃爍體探測器信號處理通道,高能電子探測器只需要用到6個硅(Si)半導體傳感器信號處理通道。每個通道都含有電荷靈敏前置放大器,CR-RC濾波成型電路,峰值保持電路,閾值設置電路和閾值比較電路[6]。同時芯片配置了串行配置接口,方便外部設置內部工作電壓、比較閾值及ADC等參數(shù)。圖2為芯片的結構圖。
圖2 ASIC(SIXS)芯片內部原理圖
ASIC芯片輸出信號與輸入信號均為差分信號,所以需要添加差分驅動電路芯片對信號轉換與FPGA進行通信。差分電路選用了應用廣泛的DS26LV31T,DS26LV32T增強型CMOS四路差分線路驅動器。
這部分主要是通過FPGA作為主控模塊,將數(shù)據(jù)傳輸?shù)絇C,同時接收用戶配置的芯片信息。
硬件設計主要是FPGA和USB芯片組成的電路。FPGA芯片采用Xilinx公司Spartan-6系列XC6SLX45,配置芯片為2CSG324C。該芯片采用45mm技術構建,功耗低、容量大,是一款新價比很高的芯片,可提供各種業(yè)界領先的連接特性,如高邏輯引腳比、小型封裝以及各種多樣化支持性I/O協(xié)議等[7]。芯片外接50 MHz有源晶振電路,晶振輸出連接到FPGA全局時鐘,可以通過調用FPGA IP核來實現(xiàn)時鐘的轉換。電路通過+5 V供電,通過三路DC/DC電源芯片MP1482轉成+3.3 V,+1.2 V,+1.5 V。
數(shù)據(jù)傳輸采用的是Cypress公司生產的EZUSB FX2LP系列的CY7C68013A,該芯片將USB2.0收發(fā)器、串行接口引擎(SIE)、增強的8051單片機及各種外圍接口集成于一體[8]。CY7C68013A芯片內部集成四個大小共為4K字節(jié)的FIFO,,可以設置其工作方式為Master或Slave模式。CY7C68013A外接EEPROM,用于固件程序下載,在芯片上電時可以自動讀取到內部RAM運行。其FPGA與CY7C68013A主要連接如圖3所示。
圖3 FPGA和CY7C68013A連接圖
軟件部分的設計主要分為FPGA部分和USB相關部分,其中USB部分程序又可分為固件設計、USB驅動程序、USB主機程序。
在USB協(xié)議中,按照傳輸數(shù)據(jù)量的大小、傳輸速率的高低和對時間的要求,分為四種數(shù)據(jù)傳輸類型:控制傳輸、中斷傳輸、同步傳輸、塊傳輸[9]。其中塊傳輸?shù)臋z測錯誤機制和重試機制能夠保證傳輸時數(shù)據(jù)的準確性,同時滿足大數(shù)據(jù)傳輸?shù)男枨蟆?/p>
傳輸系統(tǒng)的FPGA部分程序設計只承擔和上位機通訊的功能,暫時沒有用到ASIC部分采集的數(shù)據(jù)。在FPGA中,首先會循環(huán)查詢CY7C68013A的端口是否有數(shù)據(jù),如果查詢到數(shù)據(jù)將數(shù)據(jù)發(fā)送到CY7C68013A的輸出端口的FIFO中。
USB固件程序是指在設備的微控制器中的可執(zhí)行程序,它一方面用來初始化和配置設備,另一方面用來完成外部硬件與主機之間的數(shù)據(jù)通信[10]。在USB固件程序開發(fā)中,最常使用的是Keil uVision系列軟件,Cypress公司為應用最為廣泛的EZ-USB芯片提供了一個開發(fā)包CY3684_EZ-USB_FX2LP_Development_Kit,其中包括了典型的固件代碼,方便用戶進行開發(fā)和調試。
一般的USB固件架構包括3個文件,一個是PERIPH.C(任務調度函數(shù))、DECR.A51(描述符表)與FW.C(框架源文件)。其中FW.C是固件的原始程序代碼,主要實現(xiàn)上電枚舉,重枚舉,喚醒以及調用用戶自己的程序和控制命令[11]。在開發(fā)時可以根據(jù)需求變更文件PERIPH.C文件中的TD_Init()函數(shù),和 TD_Poll()函數(shù)即可。TD_Init()是初始化函數(shù),TD_Poll()為調度函數(shù),一般是 TD_Init()初始化之后,循環(huán)執(zhí)行TD_Poll()函數(shù)。
傳輸系統(tǒng)采用Slave FIFO模式,啟用EP2、EP4為Bulk輸出端口,EP6、EP8為Bulk輸入端口,緩沖區(qū)設為512字節(jié),緩沖深度為2級,數(shù)據(jù)總線寬度為16位。
TD_Poll()函數(shù)功能在FPGA程序中實現(xiàn),所以只需注釋掉函數(shù)即可。在程序中還引用了一些頭文件,fx2reg s.h 與 fx2.h,庫文件 EZUSB.LIB[12]。在設計時需要將fx2.H放在fx2reg s.h之前。固件程序編譯生成.Hex文件,存儲到片外的EEPROM芯片上,上電后自動將固件加載到內部RAM中運行[13]。
在Windows操作環(huán)境下,一般需要通過USB驅動程序作為USB主機程序和USB固件程序之間的開發(fā)橋梁。目前主要有3種方法開發(fā)USB驅動程序,分別為微軟公司的DDK(Driver Develop Kit,驅動開發(fā)工具包)工具、Compuware公司的DriverStudio工具和KRFTECH公司的WinDriver工具[14]。USB驅動程序最重要的文件,其中(*INF)文件表示設備的信息,(*sys)文件為程序文件。Cypress提供USB驅動程序包SuiteUSB 3.4,由CYUSBPRE.INF文件指定VID(04B4),PID(1004)。
在USB設備程序開發(fā)中,可以選用不同的開發(fā)平臺,如Visual C++,Visual C#與Labview等,基于本課題設計并開發(fā)了基于Microsoft Visual C++6.0的上位機程序[15]。Cypress公司提供了全面的CY3684開發(fā)包,包括CYIOCTL控制函數(shù)類和CyAPI控制函數(shù)類對USB設備進行讀寫。將CYAPI.h、CYIOCTL.h和CyAPI.lib添加到工程項目中,同時需要安裝Windows Device Develepment Kit,添加 Windows DDK的頭文件到項目中即可。如圖4所示。
圖4 DDK包含目錄
Visual C++提 供 MFC(Microsoft foundation classes)框架,把數(shù)據(jù)顯示和數(shù)據(jù)處理程序分開,方便開發(fā)應用程序[16]。軟件傳輸系統(tǒng)的上位機程序就是應用MFC框架,建立基于CDialog的應用程序。
在開發(fā)時Visual C++首先需獲得要USB設備的控制句柄,調用IsOpen函數(shù)檢測USB設備,并獲取設備信息。設備連接成功后,在配置窗口進行芯片配置,生成96位配置信息流,“重新配置”清除配置信息,顯示框實時顯示配置的信息和位數(shù)?!癝tart”開啟數(shù)據(jù)傳輸,“清除輸出窗口”清除顯示框文本,“保存數(shù)據(jù)”將保存為TXT文件,“退出”按鈕可以退出程序。圖5顯示配置窗口配置的96位數(shù)據(jù)信息流發(fā)送到FPGA,接收窗口接收到配置信息,并顯示為8位數(shù)據(jù)串。
圖5 上位機程序
基于FPGA與USB2.0的數(shù)據(jù)傳輸系統(tǒng),選取塊傳輸模式,采用Visual C++編寫,具有界面友好,數(shù)據(jù)傳輸快速準確的特點,可以在傳輸任務完成時,靈活的進行數(shù)據(jù)處理。實驗結果表明,數(shù)據(jù)傳輸系統(tǒng)的雙向數(shù)據(jù)傳輸準確,達到探測器數(shù)據(jù)傳輸?shù)男枨蟆?/p>
參考文獻:
[1]周大莊,王世金,張斌全,等.近地空間輻射和航天員輻射風險[J].載人航天,2013(4):81-89.
[2]楊曉超,朱光武,符養(yǎng),等.中地球軌道高能電子輻射環(huán)境特性分析[J].空間科學學報,2015(5):581-587.
[3]張忠兵,張顯鵬,陳亮,等.脈沖中子測量中的準直器設計[J].核電子學與探測技術,2014(7):820-824.
[4]張煥新.中能電子探測器的設計與研制[D].北京:中國科學院研究生院,2013.
[5]夏文明,龔軍軍,張磊,等.用于個人劑量測量的硅探測器信號處理電路的設計[J].核電子學與探測技術,2014(12):1478-1481.
[6]徐英姿,余慶龍,梁金寶,等.基于SIXS-ASIC的半導體傳感器信號讀出電子學系統(tǒng)的研制[J].電子設計工程,2014(11):54-56,60.
[7]石梅林,趙月琴.Spartan-6系列FPGA的配置方法研究[J].電子科學技術,2016(5):553-558.
[8]吳磊,郭超平,申世濤.基于CY7C68013與FPGA的便攜式數(shù)據(jù)采集系統(tǒng)[J].計算機應用,2012,32(S1):164-166.
[9]張超,李洪文,朱丹丹,等.基于USB的高速數(shù)據(jù)傳輸系統(tǒng)設計[J].計算機應用,2013(S2):54-56.
[10]李咪咪,韋飛,梁金寶,等.一種應用于CCD讀出系統(tǒng)的數(shù)據(jù)傳輸系統(tǒng)設計[J].電子設計工程,2016(14):70-73.
[11]王孝娟.基于MOEMS掃描光柵微鏡的微型近紅外光譜儀的控制與信號獲取系統(tǒng)[D].重慶:重慶大學,2014.
[12]王東,李公平,潘小東,等.基于EZ-USB FX2的數(shù)據(jù)采集系統(tǒng)USB接口設計[J].現(xiàn)代電子技術,2015(4):73-76.
[13]劉志華,郭付才,彭新偉,等.基于CY7C68013A的FPGA配置和通信接口設計[J].電子技術應用,2013(2):18-21.
[14]楊新友,鄒嵐,鐘建軍.基于WinDriver的USB驅動程序開發(fā)[J].電腦知識與技術,2015(11):231-232.
[15]段曉敏,郭濤.基于USB 2.0的光散射系統(tǒng)上位機軟件設計與實現(xiàn)[J].計算機測量與控制,2015(6):2200-2202.
[16]張弦弦,朱全松.基于MFC軟件界面設計的視覺優(yōu)化[J].兵工自化,2016(12):38-40,48.