新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > USB總線在便攜式數(shù)控測井系統(tǒng)中的應用

USB總線在便攜式數(shù)控測井系統(tǒng)中的應用

作者: 時間:2016-12-20 來源:網(wǎng)絡 收藏

4 軟件設計

4.1 固件程序的設計

固件程序是指被固化到AT89S52中FLASH中的程序,它是設備運行的核心,其主要功能是控制USB接口芯片接收并處理USB驅(qū)動程序的請求(如請求設備描述符、請求或設置設備狀態(tài)、請求設備設置、請求或設置設備接口等USB標準請求);控制USB接口芯片接收應用程序的控制指令;將存儲在雙口RAM中的數(shù)據(jù)通過USB控制器實時上傳至PC。

USB控制器的工作原理是:當USB控制器從USB總線檢測到主機啟動的某一傳輸請求時,USB控制器通過中斷方式將此請求通知USB接口系統(tǒng),接口系統(tǒng)通過訪問USB控制器的狀態(tài)寄存器獲得與此傳輸有關的各種參數(shù),并根據(jù)具體傳輸參數(shù),對USB控制器的控制寄存器和數(shù)據(jù)寄存器進行相應的操作,以完成主機的傳輸請求。

4.2 設備驅(qū)動程序的設計

USB驅(qū)動程序是支持即插即用功能的標準WDM驅(qū)動程序,結(jié)構(gòu)如圖3所示。Windows對構(gòu)成一個USB總線主機的不同軟件部分進行了十分清楚的劃分,其中USB總線客戶軟件包含了用來控制不同USB總線外設的設備驅(qū)動程序,它通過Windows所定義的軟件接口與根集線器驅(qū)動程序進行通信,而USB根集線器驅(qū)動程序則要通過包含在USBD中的USBDI(通用串行總線驅(qū)動程序接口)實現(xiàn)與通用串行總線驅(qū)動程序(USBD)的通信。然后,USBD會選擇兩種主控制器驅(qū)動程序(HCD)之一同其下方的主控制器進行通信。最后,主控制器驅(qū)動程序會贏接實現(xiàn)對USB物理總線的訪問(通過PCI枚舉器軟件)。

USB驅(qū)動程序體系結(jié)構(gòu)
圖3 USB驅(qū)動程序體系結(jié)構(gòu)

開發(fā)設備驅(qū)動程序需要專門的開發(fā)工具,目前常用的開發(fā)工具有Windows DI)K和Driver—Studio。NuMega公司開發(fā)的DriverStudio是一個強大的開發(fā)工具包,它包括VtoolsD、Driver—Works、DriverNetworks和調(diào)試工具SoftlCE等等。用DriverWorks開發(fā)基于WDM的USB設備驅(qū)動程序時,將自動生成WDM的工程文件,通常包括5個*.h和2個*.cpp文件,此外還自動生成*.inf文件,開發(fā)者只要根據(jù)自己的需要稍做修改即可。

·USBLOG.cpp:包括DriverEntry()、LoadRegisrtyParameters()、AddI)evice()例程,主要實現(xiàn)初始化設備的功能。

·USBLOGDevice.cpp:主要實現(xiàn)電源管理、系統(tǒng)控制、設備的移除、設備的開始等功能。

·USBLOG.inf:設備的安裝文件,說明設備的安裝信息。

4.3 應用程序的設計

應用軟件由兩部分組成:動態(tài)鏈接庫和應用程序。動態(tài)鏈接庫負責與內(nèi)核態(tài)的USB功能驅(qū)

動程序通信并接收應用程序的各種操作請求,而應用程序負責對地面系統(tǒng)采集、處理的各種數(shù)據(jù)進行實時繪圖顯示、分析、打印和存盤等。軟件設計可以采用Visual C++等。

5 結(jié)束語

將USB技術應用到便攜式數(shù)控測井系統(tǒng)中,可以使上、下位機之間的數(shù)據(jù)傳輸速率和誤碼率得到明顯的改善,傳輸速率能達到8Mbps以上,誤碼率能降至10-7以下。應用USB技術,可以大大降低數(shù)據(jù)的丟失率,使采集的數(shù)據(jù)得到實時顯示,同時,為便攜式數(shù)控測井系統(tǒng)接口的簡便化、高速化和可靠性打下堅實的基礎。


上一頁 1 2 下一頁

評論


技術專區(qū)

關閉