USB便攜式設計分析論文

時間:2022-06-26 03:55:00

導語:USB便攜式設計分析論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

USB便攜式設計分析論文

摘要:討論了串行總線(usb)技術應用于便攜式多道γ能譜儀的可行性,并詳細介紹了系統的硬件、固件、設備驅動程序以及應用程序的設計方法,最后給出了其性能測試結果。

關鍵詞:USBγ能譜數據采集WDM

野外地面γ能譜測量技術主要研究地殼巖石土壤中產生的能量范圍約為30keV~3000keV的γ射線,這里面包含著軸、鉀等天然放射性核元素信息、核工程活動產生的大量人工放射性核元素信息以及γ射線與地殼相互作用產生的相關信息。而用于獲取和處理γ能譜數據的多道γ能譜儀是重要的研究課題,其功能是把從γ射線探測器得到的脈沖信號轉換為X-Y軸的能譜形式并顯示出來(X軸代表能量,Y軸代表脈沖計數)。

傳統的多道γ能譜儀一般采用NIM(NuclearInstrumentModule)插件的標準模式。但其存在體積龐大、抗干擾能力差等缺點,不適合于野外現場測量。為適應多道γ能譜儀智能化、微機化、便攜化的實際需要,本設計采用筆記本電腦作為γ能譜儀的上位機。常用接口方式主要有RS-232C串口、紅外線端口、EPP并口、USB、1394、Ethernet等。這幾種接口方式的特點比較如表1所示。

表1接口方式特點比較

方式長度(m)速度(b/s)主要優點主要缺點

串口1520k應用廣泛,研發簡單速度慢,逐漸被淘汰

并口108M速度較快,研發簡單逐漸被淘汰

紅外線2115k無線傳輸距離短,可靠性差,耗電大

USB1.1512M傳輸穩定,速度快,使用方便,具有彈性,代表接口發展方向協議復雜,研發難度較大

13941.5400M傳輸速度快,具有彈性特定用途(視頻),研發難度大

Ethernet50010M傳輸可靠,使用方便,資源共享特定用途(LAN),研發難度大

經過比較輪證發現,USB作為近年出現的一種代表微機接口發展方向的新型總線規范,其便捷易用、速度快、可靠性高等特點,使之非常適合作為便攜式多道γ能譜儀的接口方式。目前大多數筆記本電腦一般都有兩個以下的USB端口,USB規范規定每個端口提供5V、500mA的電量,而筆記本電腦在實際應用時,通常是通過自帶鋰電池供電的,無法提供足夠的電量給外設,這時就會造成外設工作不正常,甚至使系統崩潰。考慮到本系統下位機部分功耗較大,因此供電方式使用外置電源。

筆者在吸收借鑒γ能譜測量技術最新研究成果的基礎上,進行了USB便攜式多道γ能譜儀的設計。本設計主要完成硬件、固件、設備驅動程序以及應用程序等的設計工作。

圖2

1硬件設計

1.1系統總線結構

圖1所示為USB便攜式多道γ能譜儀的總體結構框圖。下位機硬件部分主要由γ射線探測系統(探頭)、脈沖信號調理電路、數字電位器、多道脈沖幅度分析器、USB接口電路以及電源電路等構成,其中探頭部分包括閃爍探測器、前置電路和高壓電路等,多道脈沖幅度分析器主要包括峰值別電路、控制電路、A/D轉換電路以及微控制器系統等。上位機由筆記本電腦系統構成。

軟件部分由固件、設備驅動和應用程序組成。

1.2USB接口電路

由于USB本身的控制協議較為復雜,需要使用相應的USB接口芯片。本設計采用了Philips公司的USB接口芯片PDIUSBD12(簡稱D12),其優點是可以選擇合適的微控制器及其開發系統進行外設開發。

D12內部集成了串行輸入引擎(SIE)、320字節的多結構FIFO存儲器、收發器以及電壓調整器,支持DMA方式,采用雙緩沖區技術,遵從USB1.1標準。芯片中串行輸入引擎(SIE)模塊起著至關重要的作用,完成所有USB協議層功能,如同步模式識別、并/串轉換、位填充/解填充、CRC檢驗/產生、包PID產生/確認、地址識別、握手信號包響應產生等。另外,D12還集成了SoftConnect、GoodLink、可編程時鐘輸出、低頻晶振和終端電阻等特性,提高了系統的性價比。

圖4

微控制器采用HYUNDAI公司的GMS90L32,它是一種兼容Intel8032微控制器的產品,其主要特點是工作電壓范圍寬(2.7V~5.5V)、功耗低、性價比高。D12與GMS90L32的連接如圖2所示。本設計使用了多路地址/數據總線復用方式。

此外,本系統選用了美國ST公司的PSD913F2,它是用于8位微控制器的具有大容量FLASH存儲器、在系統編程(ISP)能夠和可編程邏輯的器件。它將地址鎖存器、FLASH、SRAM、PLD等集成在一個芯片內,成功地實現了微控制器系統的“MCU+PSD”兩芯片解決方案。這種方案既可簡化電路設計,節省PCB印制板空間,縮短產品開發周期,又可增加系統可靠性,降低產品功耗。

2系統軟件設計

2.1微控制器固件程序

所謂固件程序就是固化在程序存儲器中的程序代碼。本系統的固件存儲在PSD913F2的Flash存儲器中,固件開發使用的是KeilC51語言,開發平臺為μVision2集成開發環境。

固件的開發是移植與開發相結合。本設計參考了Philips公司提供的D12固件程序范例,對于USB協議操作的相關代碼可以直接移植使用,而數據采集、傳輸、存儲等部分則是全新的開發工作。

固件程序結構如圖3所示。硬件抽象層對D12的數據讀、寫以及各種指令的寫入進行函數封裝;D12命令接口層對D12的所有控制指令的函數進行封裝;USB向量請求模塊完成USB上電配置、向量請求等各類事件的響應處理;USB協議層包括對USB協議操作的封裝以及對USB標準請求的響應;中斷服務進程包括USB中斷、ADC中斷以及定時器0中斷(記錄測量時間)等。

主程序及ADC中斷服務程序流程圖如圖4所示。主程序首先完成各種初始化,然后進入主循環,等待中斷的發生,并根據標志變量執行相應的函數。當打開控制電路時,脈沖峰值別電路自動啟動A/D轉換,轉換結束信號會觸發微控制器外部中斷1,進入ADC中斷服務程序,讀取A/D轉換結果并存入緩存中,然后中斷返回。

當D12有事件需要處理時,將觸發微控制器外部中斷0,微控制器讀取D12的中斷狀態寄存器,判斷中斷的來源并作出相應的處理。若由數據端點觸發,則相應地讀取或寫入數據;若由控制端點0觸發,則判斷請求的類型。標準請求由USB協議處理模塊處理,用戶自定義向量請求由USB向量請求模塊處理。

2.2USB設備驅動程序的設計

在Windows環境下,USB設備驅動程序遵循WDM(Win32DriverMode)方式。為了簡化設計,并兼顧驅動程序的運行效率,筆者選用了DriverStudio2.7工具軟件中的DriverWorks組件進行USB設備驅動程序的開發。DriverWorks為WDM設備驅動程序的開發提供了完善的支持。其中包含一個非常完善的源代碼生成工具DriverWizard以及相應的類庫和驅動程序范例,它還支持在C++下進行設備驅動程序的開發。通過DriverWizard生成的代碼只需要進行少量的修改可以使用,這使得驅動程序開發者可以將精力集中在驅動功能的實現上,而不必理會太多的WDM開發細節。

本設計在DriverWizard的最后自定義了三個IOCTL接口對USB設備進行控制,如表2所示。然后在自動生成的驅動程序代碼中向相應的IOCTL函數添加代碼,用函數BuildVerdorRequest構建USB協議的自定義向量請求(VendorRequest)。由編譯修改后的源代碼即可得到驅動程序文件McaD12.SYS。

表2自定義IOCTL接口

自定義IOCTL接口功能說明

Mca_IOCTL_START啟動多道采集數據

Mca_IOCTL_READ開始讀取數據

Mca_IOCTL_START停止多道數據

2.3USB應用程序的設計

應用程序的設計在VisualC++6.0開發環境下進行。根據實際要求,本設計需要在軟件中對采集的數據進行整理、分析并顯示。其功能模塊主要有數據采集、譜數據顯示、ROI操作、系統刻度、譜分析等,其結構框圖如圖5所示。

在Win32系統中,USB設備被抽象為一個文件,應用程序只需要通過幾個API函數就可以實現與驅動程序中USB設備的通信。API函數如表3所示。

表3設備文件操作API函數

API函數功能說明

CreateFile打開設備

ReadFile從設讀取數據

WriteFile向設備發送數據

CloseHandle關閉設備

DeviceIoControlI/O控制操作

本程序設計使用MFC多線程技術。單擊開始按鈕,程序就創建一個用戶接口線程,并且通過IOCTL啟動USB設備,然后在此線程每隔一定時間(10~20ms)從USB總線上讀取一次數據;而程序自身的主線程則不斷地依據讀取的數據刷新屏幕,顯示多道能譜。當單擊停止按鈕或是設定采集時間到時,程序則通過IOCTL停止USB設備的數據采集,終止用戶接口線程,并且停止屏幕譜線的更新。

當創建用戶接口線程時,首先從CwinThread類派生一個CioThread類,然后調用AfxBeginThread()函數創建CioThread類的對象進行初始化,啟動線程運行。根據需要可將初始化和結束代碼分別放在類的InitInstance()和ExitInstance()函數中。其中,InitInstance()函數是從USB采集數據的線程的主要函數。從中實現對IOCTL的調用、對USB設備數據的讀取等功能。其流程如圖6所示。

3測試與結論

實測Cs放射源γ能譜如圖7所示。根據能量為0.6641MeV的譜峰,系統可以自動計算能量分辨率,實測能量分辨率小于10%。

經過嚴格測試,該系統其它主要技術指標為:γ射線能量分析范圍為20keV~3.0MeV;γ能譜分析道數為1024道;放射源能量非線性系數小于5%;使用NaI(T1)探測器時,整機功耗小于960mW;實測USB最大數據傳輸速率約為1Mbps;連續測量數據符合放射性統計漲落規律;設備驅動及應用程序兼容Win98/2000/XP。

上述結果表明,本系統的技術路線和軟硬件設計先進,方案合理,并具有一定的創新性和實用價值。對本系統編譯稍加修改便可應用于其它基于微機的數據采集、自動化測控系統中。