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