USB總線在便攜式數控測井系統中的應用
4 軟件設計
4.1 固件程序的設計
固件程序是指被固化到AT89S52中FLASH中的程序,它是設備運行的核心,其主要功能是控制USB接口芯片接收并處理USB驅動程序的請求(如請求設備描述符、請求或設置設備狀態、請求設備設置、請求或設置設備接口等USB標準請求);控制USB接口芯片接收應用程序的控制指令;將存儲在雙口RAM中的數據通過USB控制器實時上傳至PC。
USB控制器的工作原理是:當USB控制器從USB總線檢測到主機啟動的某一傳輸請求時,USB控制器通過中斷方式將此請求通知USB接口系統,接口系統通過訪問USB控制器的狀態寄存器獲得與此傳輸有關的各種參數,并根據具體傳輸參數,對USB控制器的控制寄存器和數據寄存器進行相應的操作,以完成主機的傳輸請求。
4.2 設備驅動程序的設計
USB驅動程序是支持即插即用功能的標準WDM驅動程序,結構如圖3所示。Windows對構成一個USB總線主機的不同軟件部分進行了十分清楚的劃分,其中USB總線客戶軟件包含了用來控制不同USB總線外設的設備驅動程序,它通過Windows所定義的軟件接口與根集線器驅動程序進行通信,而USB根集線器驅動程序則要通過包含在USBD中的USBDI(通用串行總線驅動程序接口)實現與通用串行總線驅動程序(USBD)的通信。然后,USBD會選擇兩種主控制器驅動程序(HCD)之一同其下方的主控制器進行通信。最后,主控制器驅動程序會贏接實現對USB物理總線的訪問(通過PCI枚舉器軟件)。
圖3 USB驅動程序體系結構
開發設備驅動程序需要專門的開發工具,目前常用的開發工具有Windows DI)K和Driver—Studio。NuMega公司開發的DriverStudio是一個強大的開發工具包,它包括VtoolsD、Driver—Works、DriverNetworks和調試工具SoftlCE等等。用DriverWorks開發基于WDM的USB設備驅動程序時,將自動生成WDM的工程文件,通常包括5個*.h和2個*.cpp文件,此外還自動生成*.inf文件,開發者只要根據自己的需要稍做修改即可。
·USBLOG.cpp:包括DriverEntry()、LoadRegisrtyParameters()、AddI)evice()例程,主要實現初始化設備的功能。
·USBLOGDevice.cpp:主要實現電源管理、系統控制、設備的移除、設備的開始等功能。
·USBLOG.inf:設備的安裝文件,說明設備的安裝信息。
4.3 應用程序的設計
應用軟件由兩部分組成:動態鏈接庫和應用程序。動態鏈接庫負責與內核態的USB功能驅
動程序通信并接收應用程序的各種操作請求,而應用程序負責對地面系統采集、處理的各種數據進行實時繪圖顯示、分析、打印和存盤等。軟件設計可以采用Visual C++等。
5 結束語
將USB技術應用到便攜式數控測井系統中,可以使上、下位機之間的數據傳輸速率和誤碼率得到明顯的改善,傳輸速率能達到8Mbps以上,誤碼率能降至10-7以下。應用USB技術,可以大大降低數據的丟失率,使采集的數據得到實時顯示,同時,為便攜式數控測井系統接口的簡便化、高速化和可靠性打下堅實的基礎。
評論