1 引言
隨著測(cè)井技術(shù)的飛速發(fā)展,各種測(cè)井?dāng)?shù)據(jù)的實(shí)時(shí)采集和處理在現(xiàn)代測(cè)井系統(tǒng)中已必不可少。傳統(tǒng)的地面數(shù)據(jù)采集系統(tǒng)與主機(jī)之間的通信模式是采用PCI總線或RS-232串行總線。PCI總線雖然有很高的傳輸率,且支持“即插即用”,但是它的擴(kuò)展槽相當(dāng)有限,且插拔不方便,不適合便攜式系統(tǒng)的要求;RS-232串行總線雖然連接方便,但是帶寬非常有限,傳輸速率較低。為了克服以上通信方式的缺點(diǎn),要求尋找一種新的通信方式進(jìn)行數(shù)據(jù)傳輸,而通用串行總線USB的出現(xiàn)很好地解決了這些問(wèn)題,很容易就能實(shí)現(xiàn)低成本、高可靠性、高速率的數(shù)據(jù)通信。
2 USB總線簡(jiǎn)介
USB的優(yōu)點(diǎn):
①速度快。USB接口的最高傳輸率可達(dá)12 Mb/s;提供低速方式,速率為1.5 Mb/s。扣除用于總線狀態(tài)控制和錯(cuò)誤檢測(cè)等數(shù)據(jù)傳輸,最大理論速度也能達(dá)到1.2 Mb/s和9.6 Mb/s。
②設(shè)備安裝和配置容易。安裝USB設(shè)備不必再打開機(jī)箱,加減已安裝過(guò)的設(shè)備完全不用關(guān)閉計(jì)算機(jī)。所有USB設(shè)備支持熱拔插,系統(tǒng)對(duì)其進(jìn)行自動(dòng)配置,徹底拋棄了過(guò)去的跳線和撥碼開關(guān)設(shè)置。
③易于擴(kuò)展。通過(guò)使用Hub擴(kuò)展可連接多達(dá)127個(gè)外設(shè)。標(biāo)準(zhǔn)的USB電纜長(zhǎng)度為3m(低速為5m),通過(guò)Hub或者中繼器可使外設(shè)距離達(dá)到30m。可以使用多種連接方式進(jìn)行擴(kuò)展。
④采用總線供電。USB總線可為連接在其上的設(shè)備提供5V電壓/lOOmA電流的供電。USB設(shè)備也可采用自供電方式,或者兩者結(jié)合的方式。
⑤使用靈活。USB共有4種傳輸模式:控制傳輸、同步傳輸、中斷傳輸、批量傳輸,以適應(yīng)不同設(shè)備的需要。
3 硬件電路設(shè)計(jì)
由測(cè)井儀器送至地面的信號(hào)有三類:模擬信號(hào)、脈沖信號(hào)以及編碼信號(hào),所以地面數(shù)據(jù)采集系統(tǒng)首先對(duì)這三種不同的信號(hào)進(jìn)行預(yù)處理,然后送至各自的通道進(jìn)行數(shù)據(jù)采集再通過(guò)USB總線將數(shù)據(jù)傳送至上位機(jī)進(jìn)行實(shí)時(shí)的處理。系統(tǒng)硬件框圖如圖1所示。
圖1系統(tǒng)硬件框圖
由井下傳送至地面的模擬信號(hào)、脈沖信號(hào)、編碼信號(hào)分別經(jīng)過(guò)相應(yīng)接口面板的凋理后,進(jìn)入A/D轉(zhuǎn)換器(MAXl97)、脈沖計(jì)數(shù)器(82C54)、解調(diào)器,在CPU的控制下,實(shí)現(xiàn)控制算法,進(jìn)行相應(yīng)的數(shù)據(jù)采集、解碼,并將采集到的數(shù)據(jù)存放在相應(yīng)的RAM中。另一方面,CPU還要完成USB協(xié)議處理、響應(yīng)USB接口芯片的中斷處理、完成數(shù)據(jù)交換,同時(shí)還有一些附加功能(如驅(qū)動(dòng)數(shù)控面板的LCD顯示等),由于單片機(jī)自身資源的有限,僅僅使用一片單片機(jī)難以勝任,為此我們擴(kuò)展了一片單片機(jī)(兩片單片機(jī)均為AT89S52),采用多單片機(jī)分配任務(wù)、協(xié)同工作,讓一片單片機(jī)實(shí)現(xiàn)采集控制,另外一片實(shí)現(xiàn)USB協(xié)議下的實(shí)時(shí)數(shù)據(jù)通信。
使用多單片機(jī)固然能按要求實(shí)現(xiàn)任務(wù),但兩片單片機(jī)之間的數(shù)據(jù)通信問(wèn)題也隨之而來(lái)。傳統(tǒng)的多單片機(jī)之間的通信是通過(guò)串口來(lái)實(shí)現(xiàn)的。但在設(shè)計(jì)中,由于采集單片機(jī)的數(shù)據(jù)量非常大,若使用串口進(jìn)行通信,由于單片機(jī)的串行寄存器SBUF只能保留一個(gè)字節(jié)的數(shù)據(jù),必然造成采集數(shù)據(jù)的嚴(yán)重丟失或錯(cuò)誤。針對(duì)這樣問(wèn)題,在設(shè)計(jì)中采用了采集單片機(jī)與通信單片機(jī)之間通過(guò)雙端口RAM(ID’F7132)共享數(shù)據(jù)的方案,它一方面可以存儲(chǔ)采集單片機(jī)采集到的數(shù)據(jù),另一方面可以實(shí)現(xiàn)兩單片機(jī)之間的高速、實(shí)時(shí)數(shù)據(jù)通信。
USB接口芯片采用Philips公司的PDIUS—BDl2(簡(jiǎn)稱D12),可以實(shí)現(xiàn)4種不同的模式:非同步模式、同步輸出模式、同步輸入模式以及同步輸入/輸出模式。D12與通信CPU的電路連接如圖2所示。
圖2 AT89S52與PDIUSBDl2的接口電路圖
這里D12使用的是多路地址/數(shù)據(jù)總線配置方式,單片機(jī)的INT—N應(yīng)配置為電平觸發(fā)中斷。D12在ALE下降沿的時(shí)候?qū)纹瑱C(jī)的輸出地址進(jìn)行鎖存。這種方式下,單片機(jī)也是使用指令MOVX對(duì)D12進(jìn)行操作,倘若輸出的地址為奇數(shù)表示對(duì)D12發(fā)送指令,輸出的地址為偶數(shù)時(shí),則表示對(duì)D12進(jìn)行數(shù)據(jù)傳輸。D12的地址由片選信號(hào)(P2的任一口線)決定。USB設(shè)備采用自供電方式,將EOT引腳需要通過(guò)串聯(lián)電阻連接到Vbus上,使用EOT來(lái)檢測(cè)USB總線是否連接上,只有連接上USB總線,單片機(jī)發(fā)送的命令才有效。
4 軟件設(shè)計(jì)
4.1 固件程序的設(shè)計(jì)
固件程序是指被固化到AT89S52中FLASH中的程序,它是設(shè)備運(yùn)行的核心,其主要功能是控制USB接口芯片接收并處理USB驅(qū)動(dòng)程序的請(qǐng)求(如請(qǐng)求設(shè)備描述符、請(qǐng)求或設(shè)置設(shè)備狀態(tài)、請(qǐng)求設(shè)備設(shè)置、請(qǐng)求或設(shè)置設(shè)備接口等USB標(biāo)準(zhǔn)請(qǐng)求);控制USB接口芯片接收應(yīng)用程序的控制指令;將存儲(chǔ)在雙口RAM中的數(shù)據(jù)通過(guò)USB控制器實(shí)時(shí)上傳至PC。
USB控制器的工作原理是:當(dāng)USB控制器從USB總線檢測(cè)到主機(jī)啟動(dòng)的某一傳輸請(qǐng)求時(shí),USB控制器通過(guò)中斷方式將此請(qǐng)求通知USB接口系統(tǒng),接口系統(tǒng)通過(guò)訪問(wèn)USB控制器的狀態(tài)寄存器獲得與此傳輸有關(guān)的各種參數(shù),并根據(jù)具體傳輸參數(shù),對(duì)USB控制器的控制寄存器和數(shù)據(jù)寄存器進(jìn)行相應(yīng)的操作,以完成主機(jī)的傳輸請(qǐng)求。
4.2 設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
USB驅(qū)動(dòng)程序是支持即插即用功能的標(biāo)準(zhǔn)WDM驅(qū)動(dòng)程序,結(jié)構(gòu)如圖3所示。Windows對(duì)構(gòu)成一個(gè)USB總線主機(jī)的不同軟件部分進(jìn)行了十分清楚的劃分,其中USB總線客戶軟件包含了用來(lái)控制不同USB總線外設(shè)的設(shè)備驅(qū)動(dòng)程序,它通過(guò)Windows所定義的軟件接口與根集線器驅(qū)動(dòng)程序進(jìn)行通信,而USB根集線器驅(qū)動(dòng)程序則要通過(guò)包含在USBD中的USBDI(通用串行總線驅(qū)動(dòng)程序接口)實(shí)現(xiàn)與通用串行總線驅(qū)動(dòng)程序(USBD)的通信。然后,USBD會(huì)選擇兩種主控制器驅(qū)動(dòng)程序(HCD)之一同其下方的主控制器進(jìn)行通信。最后,主控制器驅(qū)動(dòng)程序會(huì)贏接實(shí)現(xiàn)對(duì)USB物理總線的訪問(wèn)(通過(guò)PCI枚舉器軟件)。
圖3 USB驅(qū)動(dòng)程序體系結(jié)構(gòu)
開發(fā)設(shè)備驅(qū)動(dòng)程序需要專門的開發(fā)工具,目前常用的開發(fā)工具有Windows DI)K和Driver—Studio。NuMega公司開發(fā)的DriverStudio是一個(gè)強(qiáng)大的開發(fā)工具包,它包括VtoolsD、Driver—Works、DriverNetworks和調(diào)試工具SoftlCE等等。用DriverWorks開發(fā)基于WDM的USB設(shè)備驅(qū)動(dòng)程序時(shí),將自動(dòng)生成WDM的工程文件,通常包括5個(gè)*.h和2個(gè)*.cpp文件,此外還自動(dòng)生成*.inf文件,開發(fā)者只要根據(jù)自己的需要稍做修改即可。
·USBLOG.cpp:包括DriverEntry()、LOAdRegisrtyParameters()、AddI)evice()例程,主要實(shí)現(xiàn)初始化設(shè)備的功能。
·USBLOGDevice.cpp:主要實(shí)現(xiàn)電源管理、系統(tǒng)控制、設(shè)備的移除、設(shè)備的開始等功能。
·USBLOG.inf:設(shè)備的安裝文件,說(shuō)明設(shè)備的安裝信息。
4.3 應(yīng)用程序的設(shè)計(jì)
應(yīng)用軟件由兩部分組成:動(dòng)態(tài)鏈接庫(kù)和應(yīng)用程序。動(dòng)態(tài)鏈接庫(kù)負(fù)責(zé)與內(nèi)核態(tài)的USB功能驅(qū)
動(dòng)程序通信并接收應(yīng)用程序的各種操作請(qǐng)求,而應(yīng)用程序負(fù)責(zé)對(duì)地面系統(tǒng)采集、處理的各種數(shù)據(jù)進(jìn)行實(shí)時(shí)繪圖顯示、分析、打印和存盤等。軟件設(shè)計(jì)可以采用Visual C++等。
5 結(jié)束語(yǔ)
將USB技術(shù)應(yīng)用到便攜式數(shù)控測(cè)井系統(tǒng)中,可以使上、下位機(jī)之間的數(shù)據(jù)傳輸速率和誤碼率得到明顯的改善,傳輸速率能達(dá)到8Mbps以上,誤碼率能降至10-7以下。應(yīng)用USB技術(shù),可以大大降低數(shù)據(jù)的丟失率,使采集的數(shù)據(jù)得到實(shí)時(shí)顯示,同時(shí),為便攜式數(shù)控測(cè)井系統(tǒng)接口的簡(jiǎn)便化、高速化和可靠性打下堅(jiān)實(shí)的基礎(chǔ)。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.guhuozai8.cn/
本文標(biāo)題:USB總線在便攜式數(shù)控測(cè)井系統(tǒng)中的應(yīng)用
本文網(wǎng)址:http://www.guhuozai8.cn/html/support/11121510841.html