




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、河南工學(xué)院畢業(yè)設(shè)計(jì)論文論文題目:基于USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) 系 部 專 業(yè) 班 級(jí) 學(xué)生姓名 學(xué) 號(hào) 指導(dǎo)教師 2015年 5 月 8 日 28河南機(jī)電高等??茖W(xué)校畢業(yè)設(shè)計(jì)/論文摘 要USB數(shù)據(jù)采集系統(tǒng)實(shí)現(xiàn)了對(duì)于電機(jī)扭矩的測(cè)量、以及數(shù)據(jù)的處理、傳輸、顯示和儲(chǔ)存。USB數(shù)據(jù)采集系統(tǒng)主要包括扭矩傳感器、A/D轉(zhuǎn)換器、USB2.0控制器和PC機(jī)終端等四部分。上位機(jī)軟件設(shè)計(jì)主要包括USB驅(qū)動(dòng)程序的編寫和上位機(jī)應(yīng)用界面程序的編寫。軟件的編寫在Visual C+ 6.0的開(kāi)發(fā)環(huán)境中完成,利用Driver Works,結(jié)合DDK和Visual C+ 6.0完成USB驅(qū)動(dòng)程序的編寫。 本設(shè)計(jì)方案實(shí)現(xiàn)了對(duì)于電
2、機(jī)扭矩的USB數(shù)據(jù)采集,以及對(duì)數(shù)據(jù)儲(chǔ)存、處理、顯示和相應(yīng)的曲線繪制:USB接口做到了高速、穩(wěn)定、可靠、準(zhǔn)確;完成了上位機(jī)對(duì)USB數(shù)據(jù)采集所得數(shù)據(jù)的接收、處理和儲(chǔ)存,并在界面中顯示出接收到的數(shù)據(jù)(每次接收采集1 K Byte的數(shù)據(jù));繪制USB數(shù)據(jù)采集所得數(shù)據(jù)相應(yīng)的曲線,直觀地反映數(shù)據(jù)的變化情況,并增加了曲線的實(shí)時(shí)縮放功能,便于觀察和分析。關(guān)鍵詞 USB,數(shù)據(jù)采集,Visual C+ ABSTRACTThis is a USB data acquisition system for the realization of the motor torque measurement and data
3、processing, transmission, storage and display. This USB data acquisition system mainly includes four parts: the torque sensor, A / D converter, USB2.0 controller and PC terminal. Computer software design includes USB drivers and the Application procedures for the Application interface. Software is f
4、inished in the development environment of Visual C + + 6.0. Using Driver Works, cooperating with DDK and Visual C + + 6.0, USB driver is completed. The designing plan for the realization of USB data acquisition for the motor torque, storing, processing, display of the data and drawing the correspond
5、ing curve: USB high-speed, stable, reliable and accurate interface; completion on PC of reception, processing, storing and displaying of data from the USB data acquisition (collects 1 K Byte data each time); drawing corresponding curve for the data from the USB data acquisition, which reflects the d
6、ata changes intuitively; real-time changing of the scale of the curve for better observation and analysis.Key words USB,Data Acquisition,Visual C+河南機(jī)電高等??茖W(xué)校畢業(yè)設(shè)計(jì)/論文目 錄摘 要IABSTRACTII緒 論1第一章 概 述21.1 USB數(shù)據(jù)采集系統(tǒng)概述21.2 本設(shè)計(jì)方案思路41.3 研發(fā)方向和技術(shù)關(guān)鍵41.4 主要技術(shù)指標(biāo)4第二章 總體設(shè)計(jì)52.1 扭矩傳感器52.2 A/D轉(zhuǎn)換器62.3 USB2.0控制器62.4 PC機(jī)終端82
7、.5 其他說(shuō)明9第三章 軟件設(shè)計(jì)103.1 USB 驅(qū)動(dòng)程序設(shè)計(jì)103.2 上位機(jī)界面程序設(shè)計(jì)13第四章 調(diào)試和測(cè)試214.1 調(diào)試程序中的問(wèn)題214.3測(cè)試結(jié)果22 結(jié) 論24致 謝25參考文獻(xiàn)26附錄27 緒 論數(shù)據(jù)采集系統(tǒng)是基于計(jì)算機(jī)的、實(shí)現(xiàn)靈活并由用戶自定義的測(cè)量系統(tǒng),它主要完成數(shù)據(jù)信息的采集、A/D轉(zhuǎn)換、壓縮處理,然后通過(guò)PC接口總線將處理后的數(shù)據(jù)送入計(jì)算機(jī)作進(jìn)一步處理。隨著計(jì)算機(jī)技術(shù)的飛快發(fā)展和普及,以數(shù)據(jù)采集系統(tǒng)為核心的設(shè)備也迅速在國(guó)內(nèi)外得到了廣泛的應(yīng)用,現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對(duì)數(shù)據(jù)采集的要求越來(lái)越高,如在工業(yè)控制中現(xiàn)場(chǎng)數(shù)據(jù)的采集,溫度、壓力等數(shù)據(jù)的采集,在比較重要場(chǎng)所安裝的監(jiān)控
8、設(shè)備,還有視頻會(huì)議、可視電話等場(chǎng)合中,都需要進(jìn)行高速數(shù)據(jù)采集。現(xiàn)在常用的采集方式是數(shù)據(jù)采集板卡,常用的有A/D卡以及422、485等總線板卡,采用板卡不僅安裝麻煩,價(jià)格昂貴,容易受到機(jī)箱內(nèi)環(huán)境的干擾,通訊過(guò)程中極易產(chǎn)生錯(cuò)誤,而且由于計(jì)算機(jī)插槽數(shù)量和地址、中斷資源的限制,不可能掛接很多設(shè)備,在一些電磁干擾性強(qiáng)的測(cè)試場(chǎng)所,可能無(wú)法專門對(duì)其作電磁屏蔽,從而導(dǎo)致采集的數(shù)據(jù)失真,針對(duì)上述問(wèn)題,急需采用新的技術(shù)解決。從20世紀(jì)90年代以來(lái)有很多串行總線問(wèn)世,其中最成功的便是以Intel為首的七家公司于1994年推出的 USB(Universal Serial Bus)通用串行總線協(xié)議,以及美國(guó)電氣和電子工
9、程師協(xié)會(huì)推出的IEEE1394總線協(xié)議。IEEE1394主要的特點(diǎn)是高速,但它的成本很高。所以目前IEEE1394只用于一些專用系統(tǒng)和打印機(jī)掃描儀等數(shù)據(jù)傳輸速度要求較高的設(shè)備,而不能普遍用于諸如鼠標(biāo)鍵盤等價(jià)格較低、速度要求也不高的設(shè)備,所以確切地說(shuō) IEEE1394只適于高速的計(jì)算機(jī)外部設(shè)備。USB具有速度高、成本低、功耗低、支持即插即用 (Plug & Play)和使用維護(hù)方便等優(yōu)點(diǎn)。USB總線從誕生之日起便引發(fā)了一場(chǎng)產(chǎn)業(yè)革命。它以靈活、方便、應(yīng)用范圍廣、通信穩(wěn)定、成本低廉等優(yōu)點(diǎn),使得PC接口紛紛從串行口和并行口轉(zhuǎn)到USB總線上來(lái)。隨著USB2.0版本的發(fā)布,USB越來(lái)越流行,它已經(jīng)
10、成為一個(gè)標(biāo)準(zhǔn)接口。目前市場(chǎng)上出售的所有PC機(jī)都支持USB,而且很多外設(shè)只推出了USB版本,如移動(dòng)硬盤和U盤等??梢?jiàn),USB能夠很好的解決以上問(wèn)題,適合于應(yīng)用在數(shù)據(jù)采集系統(tǒng)中。第一章 概 述1.1 USB數(shù)據(jù)采集系統(tǒng)概述數(shù)據(jù)采集技術(shù)是以傳感器技術(shù)、測(cè)試技術(shù)、電子技術(shù)和計(jì)算機(jī)技術(shù)等技術(shù)為基礎(chǔ)的一門綜合應(yīng)用技術(shù),這些技術(shù)水平的進(jìn)步尤其是計(jì)算機(jī)技術(shù)的普及和發(fā)展提升了數(shù)據(jù)采集的技術(shù)水平。在生產(chǎn)過(guò)程中,應(yīng)用數(shù)據(jù)采集系統(tǒng)可對(duì)生產(chǎn)現(xiàn)場(chǎng)的工藝參數(shù)進(jìn)行采集、監(jiān)視和記錄,為提高產(chǎn)品質(zhì)量、降低成本提供信息和手段。在科學(xué)研究中,應(yīng)用數(shù)據(jù)采集系統(tǒng)可獲得大量的動(dòng)態(tài)信息,是研究瞬間物理過(guò)程的有力工具??傊?,不論在哪個(gè)應(yīng)用領(lǐng)域
11、中,數(shù)據(jù)的采集與處理越及時(shí),工作效率就越高,取得的經(jīng)濟(jì)效益就越大。與其他接口相比,USB接口具有以下優(yōu)勢(shì):(1)速度快。有高速和低速兩種方式,主模式為高速模式,速率為12Mbps,USB2.0版規(guī)范允許480Mbps的速率傳輸數(shù)據(jù)。另外為了適應(yīng)一些不需要很大吞吐量和很高實(shí)時(shí)性的設(shè)備,如鼠標(biāo)等,還提供低速方式。相比之下,串口數(shù)據(jù)傳輸率是115kbps-230kbps,標(biāo)準(zhǔn)并口的數(shù)據(jù)傳輸率為1MBps,這些都遠(yuǎn)低于USB的傳輸速率。(2)設(shè)備安裝和配置容易。設(shè)備支持即插即用,安裝設(shè)備不必再打開(kāi)機(jī)箱,加減已安裝過(guò)的設(shè)備完全不用關(guān)閉計(jì)算機(jī)。所有設(shè)備支持熱插拔,系統(tǒng)對(duì)其進(jìn)行自動(dòng)配置,不再占用中斷資源或者
12、資源,徹底拋棄了過(guò)去的跳線和撥碼開(kāi)關(guān)設(shè)置。為接纜和連接頭提供了單一模型,解決了外設(shè)越來(lái)越多所造成的插槽緊張問(wèn)題。(3)易于擴(kuò)展。通過(guò)使用擴(kuò)展,可接多達(dá)127個(gè)外設(shè)。標(biāo)準(zhǔn)電纜長(zhǎng)度為3m(低速5m),通過(guò)或中繼器可以使外設(shè)距離達(dá)到30m。(4)使用靈活。共有4種傳輸模式:控制傳輸、同步傳輸、中斷傳輸、批量傳輸,以適應(yīng)不同設(shè)備的需要。(5)能夠采用總線供電??偩€提供最大達(dá),電流,對(duì)于功耗較小的設(shè)備來(lái)說(shuō)這是非常有效的。(6)節(jié)省系統(tǒng)資源。在USB系統(tǒng)中,只有USB主控制器需要使用一根IRQ線和一些I/O地址空間。對(duì)USB外設(shè)來(lái)說(shuō),它需要的僅僅是USB系統(tǒng)為其分配一個(gè)唯一地址,而這個(gè)地址只有USB子系統(tǒng)
13、知道。(7)可靠性。USB系統(tǒng)通過(guò)硬件設(shè)計(jì)和數(shù)據(jù)傳輸協(xié)議兩方面來(lái)保證其傳輸?shù)目煽啃浴SB發(fā)送器、接收器和電纜的硬件規(guī)范消除了大多數(shù)可能引起數(shù)據(jù)錯(cuò)誤的噪聲。在USB協(xié)議中包含了數(shù)據(jù)錯(cuò)誤和檢測(cè)機(jī)制,用來(lái)確保數(shù)據(jù)準(zhǔn)確無(wú)誤地發(fā)送和接收。當(dāng)然,USB也有著自身的局限性,如距離的限制,協(xié)議比較復(fù)雜使得開(kāi)發(fā)難度較大等。但綜合考慮,USB數(shù)據(jù)采集系統(tǒng)的優(yōu)勢(shì)還是較為明顯的,尤其高速、大容量的應(yīng)用場(chǎng)合?;赨SB的數(shù)據(jù)采集系統(tǒng)的研究與發(fā)展動(dòng)態(tài):USB設(shè)備的應(yīng)用目前在國(guó)外處于高速發(fā)展階段,國(guó)外有些企業(yè)也已經(jīng)推出了很多能適應(yīng)不同條件、不同精度要求的USB數(shù)據(jù)采集系列產(chǎn)品。典型的是美國(guó)國(guó)家儀器有限公司 (Nation
14、al Instruments,NI)公司研制的一系列USB數(shù)據(jù)采集卡,NI于2005年8月推出了八款最新USB 2.0高速數(shù)據(jù)采集設(shè)備,從而擴(kuò)展了其業(yè)界領(lǐng)先的高性能USB數(shù)據(jù)采集設(shè)備USB-9000系列產(chǎn)品,實(shí)現(xiàn)了高達(dá)800ks/s的采樣率。但是Nl公司的USB數(shù)據(jù)采集卡系列產(chǎn)品的價(jià)格都比較昂貴。USB設(shè)備在國(guó)內(nèi)的應(yīng)用己經(jīng)起步,發(fā)展速度較快,水平不斷提高。隨著USB體系結(jié)構(gòu)的逐步完善,USB被越來(lái)越多的廠商所支持和推崇,也將應(yīng)用到更廣的領(lǐng)域,市場(chǎng)上國(guó)內(nèi)的主要產(chǎn)品有北京優(yōu)采公司uA30o系列、四川拓普公司的UDAQ、UBOX、UCARD等系列??偠灾?,目前國(guó)內(nèi)對(duì)USB數(shù)據(jù)采集設(shè)備的研制己經(jīng)取得
15、了可喜的發(fā)展,但是與國(guó)外相比,在開(kāi)發(fā)和應(yīng)用的深度和廣度而言,還有一段距離,現(xiàn)場(chǎng)數(shù)據(jù)采集要求比較高的場(chǎng)合多是采用的國(guó)外產(chǎn)品。因此,隨著計(jì)算機(jī)對(duì)USB接口的普及和實(shí)際應(yīng)用中對(duì)數(shù)據(jù)采集卡要求的提高,利用USB2.0協(xié)議規(guī)范開(kāi)發(fā)符合多種場(chǎng)合的數(shù)據(jù)采集系統(tǒng),以及此領(lǐng)域內(nèi)先進(jìn)產(chǎn)品的國(guó)產(chǎn)化等都成了有待解決的現(xiàn)實(shí)問(wèn)題。本USB數(shù)據(jù)采集系統(tǒng)主要針對(duì)于電機(jī)扭矩的測(cè)量和采集,性價(jià)比較高,適當(dāng)加以改造就可以應(yīng)用于許多其他數(shù)據(jù)采集場(chǎng)合,具有較強(qiáng)的可移植性。1.2 本設(shè)計(jì)方案思路本設(shè)計(jì)以實(shí)現(xiàn)電機(jī)扭矩的測(cè)量、顯示和數(shù)據(jù)儲(chǔ)存為主要目的;以模擬信號(hào)采集、處理與傳輸,USB驅(qū)動(dòng)程序編寫和PC上位機(jī)界面編寫為主要設(shè)計(jì)內(nèi)容。USB驅(qū)
16、動(dòng)程序的編寫:在理解USB 2.0 協(xié)議的基礎(chǔ)上,利用Driver Works,結(jié)合DDK和Visual C+6.0完成;PC上位機(jī)界面的編寫:在熟悉Visual C+6.0編程環(huán)境的基礎(chǔ)上,完成完善、友好的上位機(jī)界面的編寫。1.3 研發(fā)方向和技術(shù)關(guān)鍵(1)重點(diǎn)理解 USB 2.0協(xié)議,并加以靈活運(yùn)用,編寫USB驅(qū)動(dòng)程序,確保數(shù)據(jù)傳輸?shù)母咚?、穩(wěn)定、可靠、準(zhǔn)確;(2)掌握 VC+ 編程技術(shù),為采集系統(tǒng)編寫友好、實(shí)用的PC機(jī)界面,不僅顯示出接收到的數(shù)據(jù),還能夠直觀的以曲線形式反映數(shù)據(jù)的變化;(3)通過(guò)USB驅(qū)動(dòng)程序和上位機(jī)界面的編寫實(shí)現(xiàn)較大容量數(shù)據(jù)的緩沖、處理、存儲(chǔ)和顯示。1.4 主要技術(shù)指標(biāo)(1
17、)能夠?qū)崿F(xiàn)對(duì)EZ-USB設(shè)備的啟動(dòng)和檢測(cè)(2)每次接收1 K Byte的數(shù)據(jù),并及時(shí)的進(jìn)行處理和保存(3)及時(shí)顯示USB數(shù)據(jù)采集的數(shù)據(jù),并繪制相應(yīng)的曲線(4)使功能和界面更加人性化,比如增加曲線實(shí)時(shí)縮放的功能第二章 總體設(shè)計(jì)本USB數(shù)據(jù)采集系統(tǒng)實(shí)現(xiàn)了對(duì)于電機(jī)扭矩的測(cè)量、以及數(shù)據(jù)的處理、傳輸、顯示和儲(chǔ)存。USB數(shù)據(jù)采集系統(tǒng)的組成框圖如圖2-1所示。該系統(tǒng)包括扭矩傳感器、A/D轉(zhuǎn)換器、USB2.0控制器和PC機(jī)終端等四部分。圖2-1 系統(tǒng)總體結(jié)構(gòu)框圖2.1 扭矩傳感器扭矩傳感器主要完成電機(jī)扭矩?cái)?shù)據(jù)的采集。扭矩測(cè)試比較成熟的檢測(cè)手段為應(yīng)變電測(cè)技術(shù)。它具有精度高,頻響快,可靠性好,壽命長(zhǎng)等優(yōu)點(diǎn)。 將專
18、用的測(cè)扭應(yīng)變片用應(yīng)變膠粘貼在被測(cè)彈性軸上,并組成應(yīng)變橋,若向應(yīng)變橋提供工作電即源可測(cè)試該彈性軸受扭的電信號(hào)。這就是基本的扭矩傳感器模式。但是在旋轉(zhuǎn)動(dòng)力傳遞系統(tǒng)中,最棘手的問(wèn)題是旋轉(zhuǎn)體上的應(yīng)變橋的橋壓輸入及檢測(cè)到的應(yīng)變信號(hào)輸出如何可靠地在旋轉(zhuǎn)部分與靜止部分之間傳遞。通常有采用導(dǎo)電滑環(huán)或無(wú)線電遙測(cè)的方法來(lái)實(shí)現(xiàn),它們各有優(yōu)缺點(diǎn)。無(wú)線數(shù)字式扭矩傳感器主要原理是:將專用的測(cè)扭應(yīng)變片用應(yīng)變膠粘貼在被測(cè)彈性軸上并組成應(yīng)變橋 ,向應(yīng)變橋提供電源即可測(cè)得該彈性軸受扭的電信號(hào)。將該應(yīng)變信號(hào)放大后,經(jīng)過(guò)壓/頻轉(zhuǎn)換,變成與扭應(yīng)變成正比的頻率信號(hào)。系統(tǒng)的能源輸入及信號(hào)輸出是由兩組帶間隙的特殊環(huán)型變壓器承擔(dān)的,因此實(shí)現(xiàn)了
19、無(wú)接觸的能源及信號(hào)傳遞功能。 2.2 A/D轉(zhuǎn)換器A/D 轉(zhuǎn)換完成扭矩傳感器的模擬電信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換,它的關(guān)鍵性指標(biāo)就是能實(shí)現(xiàn)對(duì)模擬信號(hào)的高精度和高速的采集,以滿足后續(xù)電路各種功能實(shí)現(xiàn)。本次設(shè)計(jì)ADC選用TLC5510,精度為8位,轉(zhuǎn)換速率20MSPS,完全滿足了系統(tǒng)的設(shè)計(jì)指標(biāo)。 2.3 USB2.0控制器 采用EZ-USB CY7C68013,它是Cypress公司推出的USB2.0控制器,該芯片包括1個(gè)8051處理器、1個(gè)串行接口引擎(SIE)、1個(gè)USB收發(fā)器、8.5KB片上RAM、4KB FIFO存儲(chǔ)器以及1個(gè)通用可編程接口(GPIF),如圖2-2所示。圖2-2 CY7C68013
20、結(jié)構(gòu)框圖EZ-USB CY7C68013擁有1個(gè)獨(dú)特的架構(gòu),其中包括1個(gè)智能串行接口引擎(SIE)。它執(zhí)行所有基本的USB功能,將嵌入式MCU解放出來(lái)以用于實(shí)現(xiàn)專用的功能,并保證其持續(xù)的高性能的傳輸速率。FX2還包括2個(gè)通用可編程接口(GPIF),允許它“無(wú)膠粘接”,即可與任何ASIC或DSP進(jìn)行連接,并且它還支持所有通用總線標(biāo)準(zhǔn),包括ATA、UTOPIA、EPP和PCMCIA。EZ-USB FX2完全適用于USB2.0,并向下兼容USB1.1。EZ-USB CY7C68013的另一獨(dú)持架構(gòu)使USB接口和應(yīng)用環(huán)境直接共享FIFO,而微控制器可不參與數(shù)據(jù)傳輸?shù)试S以FIFO或RAM的方式訪問(wèn)這些
21、共享FIFO,如圖23所示。這種被稱之為 “量子FIFO”的處理架構(gòu),較好地解決了USB高速模式的帶寬問(wèn)題。具體來(lái)說(shuō),如圖24所示,USB執(zhí)行OUT傳輸,將EP2端點(diǎn)設(shè)成512字節(jié)重FIFO。在USB端和外部接口端都并不知道有四重FIFO。看來(lái),USB端只要有1個(gè)FIFO為“半滿”,就可以繼續(xù)發(fā)送數(shù)據(jù)。當(dāng)膠操作的FIFO寫“滿”時(shí),F(xiàn)X2自動(dòng)將其轉(zhuǎn)換到外部接口端,排除等候讀取;并將USB接口隊(duì)列中下一個(gè)為“空”的FIFO轉(zhuǎn)移到USB接口上,供其繼續(xù)寫數(shù)據(jù)。外部接口端與此類似,只要1有個(gè)FIFO為“半滿”,就可以繼續(xù)讀取數(shù)據(jù)。當(dāng)前操作的FIFO讀“空”時(shí),F(xiàn)X2自動(dòng)將其轉(zhuǎn)換到USB接口端,排除等
22、候?qū)懭耄徊⑼獠拷涌陉?duì)列中下一個(gè)為“滿”的FIFO轉(zhuǎn)移到外部接口上,供其繼續(xù)讀取數(shù)據(jù)。RAM/FIFO微控制器應(yīng)用環(huán)境端點(diǎn)FIFOsUSB 圖2-3 量子FIFO 空 半滿 滿 半滿512×8位外部接口512×8位USB接口512×8位512×8位圖2-4 端點(diǎn)數(shù)據(jù)緩存機(jī)制EZ-USB CY7C68013有2種接口方式:Slave FIFOs和可編程接口GPIF。Slave FIFOs方式是從機(jī)方式,外部控制器可像普通FIFO一樣對(duì)FX2的多層緩沖FIFO進(jìn)行讀寫。Slave FIFOs工作方式可設(shè)為同步或異步;工作時(shí)鐘可選為內(nèi)部產(chǎn)生或外部輸入;其它控制
23、信號(hào)也可靈活地設(shè)置為高有效或低有效。可編程接口GPIF是主機(jī)方式,可以軟件編程讀寫控制波形,幾乎可以對(duì)任何8/16 bit接口的控制器、存儲(chǔ)器和總線進(jìn)行數(shù)據(jù)的主動(dòng)讀寫,非常靈活。2.4 PC機(jī)終端基于對(duì)話PC機(jī)終端負(fù)責(zé)USB驅(qū)動(dòng)程序和上位機(jī)界面程序的編寫,并為上位機(jī)界面程序提供運(yùn)行平臺(tái)。利用Driver Works進(jìn)行USB 底層驅(qū)動(dòng)程序的編寫,Driver Works自己不能編譯開(kāi)發(fā)驅(qū)動(dòng)程序代碼,它是對(duì)DDK例程函數(shù)調(diào)用的C+封裝,這樣就減少了編程人員的重復(fù)編碼。Driver Works在對(duì)DDK例程函數(shù)進(jìn)行封裝的同時(shí)也盡可能做到執(zhí)行代碼的高效率。用Driver Works開(kāi)發(fā)驅(qū)動(dòng)程序還需要
24、安裝DDK和Visual C+6.0,在 VisualC+6.0的開(kāi)發(fā)環(huán)境中進(jìn)行驅(qū)動(dòng)的編寫和編譯。Driver Works是包含在Driver Studio軟件中,Driver Studio還提供了強(qiáng)大的驅(qū)動(dòng)程序調(diào)試工具。Driver Works對(duì)驅(qū)動(dòng)程序的例程調(diào)用等進(jìn)行了C+類封裝。本系統(tǒng)中需要編寫USB驅(qū)動(dòng)程序,在USB驅(qū)動(dòng)過(guò)程中,USB只需要實(shí)現(xiàn)數(shù)據(jù)的采集和讀取而不需要具體的復(fù)雜操作,因此,按照Driver Works的程序向?qū)б徊揭徊缴稍次募?,最后編譯生成.SYS文件即可。而PC 機(jī)界面的編寫采用Visual C+ 6.0程序開(kāi)發(fā)環(huán)境:它是目前國(guó)內(nèi)較為流行的面向?qū)ο蟮某绦蜷_(kāi)發(fā)環(huán)境,是
25、美國(guó)微軟公司推出的Visual Studio 6.0 開(kāi)發(fā)套件之一。由于Visual C+ 6.0具有優(yōu)越的性能和強(qiáng)大的功能,因此它成為該開(kāi)發(fā)工具最為完善的軟件開(kāi)發(fā)系統(tǒng)之一。Visual C+ 6.0提供了一個(gè)高效的Windows編程環(huán)境,將程序和資源的編輯、編譯、調(diào)試和運(yùn)行融為一體,并且提供了大量的程序開(kāi)發(fā)工具,如應(yīng)用程序向?qū)ppwizard、類向?qū)lassWizard等。這些工具都高度集成于一個(gè)名叫Developer Studio的開(kāi)發(fā)平臺(tái)中,利用該開(kāi)發(fā)平臺(tái),用戶可以字段生成應(yīng)用程序框架,編寫各種各樣的軟件。而且,從最簡(jiǎn)單的的程序到復(fù)雜的多用戶程序,都可以直接設(shè)計(jì)軟件的Windows
26、用戶界面。除此之外,微軟基礎(chǔ)類庫(kù)MFC使得應(yīng)用程序框架、類框架及函數(shù)框架的自動(dòng)生成更加方便,大大提高了程序的質(zhì)量。本界面程序的編寫正是借助于MFC較為強(qiáng)大的功能完成的。2.5 其他說(shuō)明系統(tǒng)分為硬件部分和軟件部分。本論文主要設(shè)計(jì)USB驅(qū)動(dòng)程序和上位機(jī)界面程序。 第三章 軟件設(shè)計(jì)軟件設(shè)計(jì)主要包括USB驅(qū)動(dòng)程序的編寫和上位機(jī)界面程序的編寫。3.1 USB 驅(qū)動(dòng)程序設(shè)計(jì)3.1.1驅(qū)動(dòng)程序模型隨著Windows XP成為主流操作系統(tǒng),Windows驅(qū)動(dòng)程序模型(WDM)取代了原先的VxD技術(shù),成為設(shè)備驅(qū)動(dòng)程序的主流模式。WDM提供靈活的方式,簡(jiǎn)化了驅(qū)動(dòng)程序的開(kāi)發(fā),并能夠?qū)SB、IEEE1394、PCI
27、等新硬件標(biāo)準(zhǔn)提供充分支持,并增強(qiáng)了驅(qū)動(dòng)程序的可靠性和可維護(hù)性。WDM有兩種運(yùn)行模式,即內(nèi)核模式(Kernel)和用戶模式(User)。在內(nèi)核模式下,程序的運(yùn)行不受操作系統(tǒng)的任何限制,對(duì)設(shè)備有完全的訪問(wèn)權(quán),能夠訪問(wèn)任何虛地址和控制虛擬內(nèi)存硬件在用戶模式下,操作系統(tǒng)提供某種機(jī)制,可以限制程序的各種I/O操作,硬件也可以防止特權(quán)指令的執(zhí)行,并進(jìn)行內(nèi)存和I/O空間檢查。WDM驅(qū)動(dòng)程序模型分兩個(gè)方面,除了核心模式描述設(shè)備驅(qū)動(dòng)程序的標(biāo)準(zhǔn)結(jié)構(gòu)外,WDM還為常見(jiàn)類型的設(shè)備實(shí)現(xiàn)了一個(gè)模塊化的、分層次類型的總線驅(qū)動(dòng)程序和類驅(qū)動(dòng)程序??偩€驅(qū)動(dòng)程序?qū)崿F(xiàn)了支持USB、IEEE1394協(xié)議等。類驅(qū)動(dòng)程序是為實(shí)現(xiàn)標(biāo)準(zhǔn)Win
28、dows功能提供條件。WDM對(duì)標(biāo)準(zhǔn)類接口的支持減少了Windows NT所需的設(shè)備驅(qū)動(dòng)程序的數(shù)量和復(fù)雜性。WDM型驅(qū)動(dòng)程序采用了分層處理的方法,通過(guò)它,用戶不需要直接和硬件打交道(在USB驅(qū)動(dòng)程序中尤為明顯),而只需通過(guò)下層驅(qū)動(dòng)程序提供的接口來(lái)訪問(wèn)硬件。WDM還引入了功能設(shè)備對(duì)象FDO(Functional Device Object)與物理設(shè)備對(duì)象PDO(Physical Device Object)兩個(gè)新類來(lái)描述硬件。一個(gè)PDO對(duì)應(yīng)一個(gè)實(shí)際硬件。一個(gè)硬件只允許有一個(gè)PDO,卻可以擁有多個(gè)FDO,在驅(qū)動(dòng)程序中直接操作的不是硬件而是相應(yīng)的PDO與FDO。FDO和PDO處于堆棧的最底層。在FDO
29、的上面和下面還會(huì)有一些過(guò)濾器設(shè)備對(duì)象(Filter Device Object)。位于上面的過(guò)濾器設(shè)備對(duì)象稱為上層過(guò)濾器驅(qū)動(dòng)程序,通常也叫作最高層驅(qū)動(dòng)程序,位于FDO下面(但仍在PDO之上)的過(guò)濾器設(shè)備對(duì)象稱為下層過(guò)濾器驅(qū)動(dòng)程序,通常也叫作最底層驅(qū)動(dòng)程序。在用戶態(tài)和內(nèi)核態(tài)通信方面,系統(tǒng)為每一個(gè)用戶請(qǐng)求打包形成一個(gè)IRP結(jié)構(gòu),將其發(fā)送至驅(qū)動(dòng)程序,并通過(guò)識(shí)別IRP中PDO的來(lái)區(qū)別是發(fā)送給哪一個(gè)設(shè)備的。另外,在驅(qū)動(dòng)程序的加載方面,WDM不通過(guò)驅(qū)動(dòng)程序名稱識(shí)別,而是通過(guò)一個(gè)128位的全局唯一標(biāo)識(shí)符來(lái)實(shí)現(xiàn)驅(qū)動(dòng)程序的識(shí)別。3.1.2 EZ-USB 驅(qū)動(dòng)程序選擇合適的開(kāi)發(fā)環(huán)境對(duì)于開(kāi)發(fā)WDM驅(qū)動(dòng)程序來(lái)說(shuō)很重要
30、,通常有以下三個(gè)常用組合:(1) 直接使用Windows DDK;(2) 使用DriverStudio;(3) 使用Windriver。三種方式有各自的優(yōu)缺點(diǎn):第一種開(kāi)發(fā)難度大一些,而且有很多煩瑣的工作要做,大部分都是通用的基礎(chǔ)性的工作。但如果選用這種方式的話,你將對(duì)整個(gè)體系結(jié)構(gòu)會(huì)有很好的理解和把握。第二種難度低一些,工具軟件已經(jīng)幫你做了很多基礎(chǔ)性的工作,也封裝了一些細(xì)節(jié),你只要專心去做你需要的操作。但由于封裝的緣故,可能會(huì)帶來(lái)一些問(wèn)題,有可能導(dǎo)致項(xiàng)目的失敗。第三種幾乎沒(méi)有難度(從開(kāi)發(fā)驅(qū)動(dòng)的角度),很容易,但只能開(kāi)發(fā)硬件相關(guān)的驅(qū)動(dòng)。事實(shí)上你寫的只是定制和調(diào)用它提供的通用驅(qū)動(dòng)而已。效率上有問(wèn)題,
31、工作頻率不是很高。但開(kāi)發(fā)花費(fèi)的時(shí)間很少。是上面的幾乃至幾十分之一。EZ-USB的驅(qū)動(dòng)開(kāi)發(fā)選用的是DDK直接開(kāi)發(fā)方式,使用Visual C+ 6.0平臺(tái),可以自由把握驅(qū)動(dòng)程序的開(kāi)發(fā)。EZ-USB通用驅(qū)動(dòng)程序(EZ-USB GPD)是用來(lái)和基于EZ-USB外設(shè)接口的通用設(shè)備驅(qū)動(dòng)程序。驅(qū)動(dòng)程序提供和公共USB設(shè)備請(qǐng)求和數(shù)據(jù)傳輸?shù)挠脩魬B(tài)接口。驅(qū)動(dòng)服務(wù)于兩種目的:首先,它幫助設(shè)備和軟件的開(kāi)發(fā)者,配合EZ-USB Control Panel,它允許開(kāi)發(fā)者測(cè)試他的設(shè)備的執(zhí)行標(biāo)準(zhǔn)USB設(shè)備請(qǐng)求和數(shù)據(jù)傳輸?shù)哪芰?。其次,它為USB設(shè)備開(kāi)發(fā)者提供例程。使用通用驅(qū)動(dòng)程序作為起始點(diǎn),可以創(chuàng)建一個(gè)用戶驅(qū)動(dòng)程序。從一個(gè)用戶
32、態(tài)應(yīng)用的角度來(lái)描述EZ-USB GPD接口。用戶態(tài)的應(yīng)用程序可以訪問(wèn)很大范圍的操作系統(tǒng)服務(wù)。他們可以訪問(wèn)文件,操作數(shù)據(jù)并且可以通過(guò)Windows GUI和用戶交互。然而,用戶態(tài)應(yīng)用不允許直接訪問(wèn)硬件。為了訪問(wèn)硬件,用戶態(tài)的應(yīng)用必須通過(guò)一個(gè)中間的代理,設(shè)備驅(qū)動(dòng)開(kāi)發(fā)工具。設(shè)備驅(qū)動(dòng)典型的運(yùn)行在一個(gè)稱為“核心模式”的授權(quán)模式。EZ-USB GPD是一個(gè)核心模式設(shè)備驅(qū)動(dòng)。EZ-USB GPD能夠在一個(gè)時(shí)刻和單一設(shè)備接口通訊。選擇設(shè)備的任何接口的備選設(shè)置是可以的,但是,在多接口設(shè)備上同時(shí)和多個(gè)接口通訊是不可能的。支持多接口設(shè)備將要使用驅(qū)動(dòng)的多實(shí)例來(lái)處理。在枚舉階段,EZ-USB GPD將會(huì)選擇接口0的備選
33、設(shè)置0。對(duì)于用戶態(tài)的應(yīng)用,可以使用任何支持Win 32功能的編譯工具CreatFile()和DeviceControl()。3.1.3INF 文件的編寫INF是系統(tǒng)用來(lái)查找適合硬件的驅(qū)動(dòng)程序的向?qū)募?dāng)Windows發(fā)現(xiàn)新的設(shè)備時(shí)在系統(tǒng)啟動(dòng)時(shí)、在安裝熱插拔設(shè)備時(shí)、或者在從控制面板安裝新設(shè)備時(shí),就調(diào)用Windows的“添加新設(shè)備向?qū)А眻?zhí)行。這個(gè)向?qū)Ь蛼呙杷锌捎玫腎NF文件,找到合適的驅(qū)動(dòng)程序。查找想要的INF文件,就需要用到硬件ID號(hào),即VID廠商號(hào)和PID產(chǎn)品號(hào),VID和PID都是要寫入固件程序中的。選擇一個(gè)設(shè)備的規(guī)則是相當(dāng)復(fù)雜的,Windows首先選擇硬件ID匹配的設(shè)備的驅(qū)動(dòng)程序,否則它
34、選擇其兼容ID與設(shè)備的兼容ID最佳匹配的驅(qū)動(dòng)程序,或者提示用戶選擇驅(qū)動(dòng)程序INF文件。如果不能發(fā)現(xiàn)合適的驅(qū)動(dòng)程序,Windows就會(huì)提示用戶插入驅(qū)動(dòng)程序盤或者由用戶自己選擇合適的INF文件。3.2 上位機(jī)界面程序設(shè)計(jì)3.2.1總體方案使用Visual C+ 6.0 的MFC 編寫上位機(jī)界面的應(yīng)用程序,主要功能有對(duì)USB設(shè)備的開(kāi)啟、關(guān)閉和檢測(cè)、設(shè)置數(shù)據(jù)傳輸管道、設(shè)置數(shù)據(jù)采集端口、從接口采集數(shù)據(jù)、顯示并處理數(shù)據(jù)和曲線繪制。3.2.2程序流程程序流程如圖3-1所示3.2.3程序模塊說(shuō)明(1) 程序初始化 BOOL CUSBApp:InitInstance() AfxEnableControlCont
35、ainer(); /允許應(yīng)用程序作為控件容器來(lái)使用HANDLE hObject = CreateMutex(NULL,FALSE,"myobj");/檢查程序是否已經(jīng)運(yùn)行,若已經(jīng)運(yùn)行,則對(duì)話框報(bào)錯(cuò) if(GetLastError() = ERROR_ALREADY_EXISTS) CloseHandle(hObject);AfxMessageBox("程序已經(jīng)運(yùn)行!");return FALSE; / Standard initialization啟動(dòng)USB設(shè)備 檢 測(cè)USB設(shè)備 成 功顯示錯(cuò)誤信息啟動(dòng)上位機(jī)界面 失敗 是否開(kāi)始數(shù)據(jù)采集 Yes是否進(jìn)行數(shù)
36、據(jù)接收 Yes接收、處理并保存數(shù)據(jù)顯示測(cè)得數(shù)值、繪曲線 圖3-1程序流程圖#ifdef _AFXDLL Enable3dControls(); / Call this when using MFC in a shared DLL#else Enable3dControlsStatic();/ Call this when linking to MFC statically#endif SetRegistryKey(_T("Local AppWizard-Generated Applications");LoadStdProfileSettings();/ Load stan
37、dard INI file options (including MRU) m_hDevice=EzusbOpen();/調(diào)用Ezusb庫(kù)函數(shù),啟動(dòng)USB 外設(shè)并獲得其句柄 if(!m_hDevice) /檢測(cè)USB 設(shè)備,若檢測(cè)失敗,則對(duì)話框報(bào)錯(cuò) AfxMessageBox("不能打開(kāi)USB設(shè)備!");/定義并調(diào)用主函數(shù) CUSBDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse = IDOK) else if (nResponse = IDCANCEL) return
38、FALSE;以下是主函數(shù)的各個(gè)模塊:(2)主函數(shù)初始化CUSBDlg:CUSBDlg(CWnd* pParent /*=NULL*/): CDialog(CUSBDlg:IDD, pParent) Display_Scale=2; m_COMBO1_VALUE = -1; m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);/為用戶打開(kāi)USB數(shù)據(jù)采集的上位機(jī)圖形界面其中,Display_Scale是實(shí)現(xiàn)曲線實(shí)時(shí)縮放的重要的全局變量,整個(gè)程序另有三處涉及到此變量,分別是:(1)比例尺選擇的相關(guān)程序,實(shí)現(xiàn)了比例尺的改變;(2)寫橫軸(即時(shí)間軸)刻度值
39、的相關(guān)程序;(3)繪曲線時(shí)橫軸(即時(shí)間軸)所用的坐標(biāo)變量。(2)和(3)實(shí)現(xiàn)了時(shí)間軸和曲線隨比例尺做相應(yīng)的改變,進(jìn)而實(shí)現(xiàn)了曲線的實(shí)時(shí)縮放功能。而m_COMBO1_VALUE是組合框的相應(yīng)變量值,用于標(biāo)示界面使用者的選項(xiàng),初值賦值為-1。最初打開(kāi)的USB數(shù)據(jù)采集的上位機(jī)圖形界面如圖3-2所示 圖3-2 USB數(shù)據(jù)采集的上位機(jī)圖形界面(3) 開(kāi)始轉(zhuǎn)換模塊void CUSBDlg:OnAbout() /開(kāi)始轉(zhuǎn)換 VENDOR_OR_CLASS_REQUEST_CONTROLmyRequest; char *buffer; ULONG bufferSize = 0; BOOLEAN bResult=
40、FALSE; myRequest.request = (UCHAR) 0xB0; buffer=NULL; myRequest.value = (USHORT) 0; myRequest.index = (USHORT) 0xBEEF; myRequest.direction = 0; /放送方向,0表示主機(jī)到設(shè)備 myRequest.requestType=2; / vendor specific request type (2)(2=vender) myRequest.recepient=2; / recepient is device (0)/endpoint (2) if (m_hDe
41、vice != NULL) bResult = DeviceIoControl (m_hDevice, IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,&myRequest,sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),buffer,bufferSize,(unsigned long *)&lenBytes,NULL); /* if valid driver handle */ 該模塊主要調(diào)用EZ-USB的DeviceIoControl()庫(kù)函數(shù),并使用它的輔助IOCTL中的IOCTL_EZUSB_VENDOR_OR_C
42、LASS_REQUEST模式,實(shí)現(xiàn)了向控制端點(diǎn)發(fā)送一個(gè)Vendor或Class專用請(qǐng)求,這里向數(shù)據(jù)采集端發(fā)出的是“0xB0”,這一信號(hào)是事先與另一位做畢設(shè)的同學(xué)約定好的,當(dāng)數(shù)據(jù)采集端的控制端點(diǎn)收到這一信號(hào)即可以開(kāi)始進(jìn)行數(shù)據(jù)采集。(4) 接收、處理數(shù)據(jù)模塊為實(shí)現(xiàn)數(shù)據(jù)接收將再次調(diào)用EZ-USB的DeviceIoControl()庫(kù)函數(shù),并使用它的數(shù)據(jù)傳送IOCTL中的IOCTL_EZUSB_BULK_READ模式,從指定的批量管道或中斷管道中(USB IN)讀取數(shù)據(jù),并將獲得的1K Byte 數(shù)據(jù)先存儲(chǔ)在數(shù)組bulk_buffer 中。然后進(jìn)行數(shù)據(jù)的保存,將獲得的USB采集數(shù)據(jù)連帶上位機(jī)獲得數(shù)據(jù)的
43、時(shí)間保存在一個(gè)記事本文件中,每行保存16個(gè)數(shù)據(jù),數(shù)據(jù)之間以空格相間隔,即保存為如下的形式:表3-1 USB數(shù)據(jù)采集Day:2008/5/12 Time:20:32:582552552552551854114712489441471241122550160462551154025118000000000048405500021111512012092155為了便于采集數(shù)據(jù)的顯示,先對(duì)接收到的數(shù)據(jù)進(jìn)行如下處理: for(int i=0;i<1024;i+) if(i%16=0) if(i!=0)strcat(printbuffer2,"rn"); /此處回車要用“/r/n
44、” sprintf(printbuffer1,"%4d",(i+1); strcat(printbuffer2,printbuffer1); sprintf(printbuffer1,"%4d",bulk_bufferi); strcat(printbuffer2,printbuffer1); 這一處理使得需要顯示的數(shù)據(jù)連成一個(gè)字符串,并保存在數(shù)組printbuffer2中,可以很方便的用來(lái)顯示接收到的數(shù)據(jù)。(5) 顯示數(shù)據(jù)及繪制曲線模塊由于之前進(jìn)行了相應(yīng)的數(shù)據(jù)處理,這里可以很方便的用以下的這條語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)的顯示:“m_edit0.SetWindowTe
45、xt(printbuffer2);” 。其中的m_edit0是顯示數(shù)據(jù)的文本框?qū)ο?,在默認(rèn)文本框的基礎(chǔ)上根據(jù)實(shí)際需要對(duì)其功能進(jìn)行了加強(qiáng),如實(shí)現(xiàn)多行輸入、增加水平及垂直滾動(dòng)條。顯示的實(shí)際效果如圖3-3所示:圖3-3 顯示實(shí)際效果圖繪制曲線的實(shí)際效果如圖3-4所示: 圖3-4 繪制曲線的實(shí)際效果圖繪制曲線較為核心的程序是DrawWave()子函數(shù),其實(shí)現(xiàn)流程圖如圖3-5所示:創(chuàng)建畫筆繪制坐標(biāo)軸寫繪坐標(biāo)軸刻度值和刻度繪制實(shí)際曲線 圖3-5 DrawWave()子函數(shù)流程圖DrawWave()子函數(shù)完成了繪制坐標(biāo)軸和曲線的任務(wù)。除此之外,為了能夠通過(guò)曲線更好、更全面了解采集數(shù)據(jù)的變化情況,為數(shù)據(jù)曲線的
46、顯示增加了改變顯示比例尺的功能,其中比例尺的設(shè)定是通過(guò)一個(gè)組合框?qū)崿F(xiàn)的。程序通過(guò)改變?nèi)肿兞緿isplay_Scale實(shí)現(xiàn)了曲線顯示比例尺的改變,即曲線的縮放。這在“主函數(shù)初始化”模塊部分也進(jìn)行了相應(yīng)的說(shuō)明。實(shí)現(xiàn)的效果如圖3-6所示:圖3-6曲線縮放實(shí)際效果圖組合框相關(guān)程序如下:void CUSBDlg:OnSelchangeCombo1() int symbol; UpdateData(true); symbol=m_combo1.GetCurSel(); switch (symbol) case 0: Display_Scale=2; break; case 1:Display_Scale
47、=1;break; case 2:Display_Scale=4;break; default: break;第四章 調(diào)試和測(cè)試4.1 調(diào)試程序中的問(wèn)題(1)由于以前對(duì)C+語(yǔ)言僅限于概念性了解,而對(duì)Visual C+ 6.0編譯環(huán)境又接觸較少,軟件編寫和調(diào)試一度受阻,困難重重,后來(lái)虛心地向老師和同學(xué)請(qǐng)教,并查閱了大量Visual C+方面的書籍,逐步對(duì)C+語(yǔ)言和開(kāi)發(fā)環(huán)境有了更加深入的認(rèn)識(shí),可以開(kāi)展軟件的編寫和調(diào)試。(2)在熟悉C+語(yǔ)言和Visual C+ 6.0編譯環(huán)境的基礎(chǔ)上,首先對(duì)各個(gè)功能模塊分別進(jìn)行了調(diào)試:對(duì)驅(qū)動(dòng)程序和“程序初始化”的調(diào)試:先將USB接口插入PC終端機(jī),再運(yùn)行界面應(yīng)用程序
48、,未跳出"不能打開(kāi)USB設(shè)備!"的消息框就證明已經(jīng)啟動(dòng)并檢測(cè)USB設(shè)備成功。對(duì)數(shù)據(jù)保存程序的調(diào)試:為了消除其他程序可能帶來(lái)的干擾,通過(guò)將采樣數(shù)組賦值為已知的數(shù)值的方法,單獨(dú)對(duì)該部分進(jìn)行調(diào)試。對(duì)繪制曲線程序的調(diào)試:采取了與“對(duì)數(shù)據(jù)保存程序的調(diào)試”相同的方法,單獨(dú)對(duì)曲線繪制程序進(jìn)行了調(diào)試。對(duì)接收數(shù)據(jù)程序的調(diào)試:進(jìn)行斷點(diǎn)調(diào)試,接收完畢后,查看儲(chǔ)存采集所得數(shù)據(jù)的相應(yīng)數(shù)組,判斷是否進(jìn)行了成功的數(shù)據(jù)采集。將各部分功能模塊程序調(diào)試完畢后,再結(jié)合完整的硬件條件進(jìn)行完全真實(shí)環(huán)境下的調(diào)試。(3)起初,改變曲線顯示比例尺時(shí),顯示曲線沒(méi)有實(shí)現(xiàn)實(shí)時(shí)的縮放更新。查找原因,在于每次改變曲線顯示比例尺時(shí),
49、沒(méi)有及時(shí)的對(duì)顯示的曲線進(jìn)行相應(yīng)的更新。于是在曲線顯示比例尺被改變的程序后,加入相應(yīng)程序,實(shí)現(xiàn)了實(shí)時(shí)更新顯示曲線。4.2 測(cè)試步驟(1)選擇信號(hào)輸入通道1,輸入直流信號(hào),觀察采樣結(jié)果(2)選擇信號(hào)輸入通道1,輸入800Hz的正弦波信號(hào),觀察采樣結(jié)果(3)選擇信號(hào)輸入通道1,輸入800Hz的三角波信號(hào),觀察采樣結(jié)果(4)選擇信號(hào)輸入通道1,輸入800Hz的鋸齒波信號(hào),觀察采樣結(jié)果4.3 測(cè)試結(jié)果(1)選擇信號(hào)輸入通道1,輸入直流信號(hào),采樣結(jié)果如表4-1:表4-1 采樣結(jié)果輸入幅值/V采樣結(jié)果/V測(cè)量誤差/V誤差百分率(%)0.600 0.610 +0.0101.670.808 0.809 +0.0
50、010.121.0091.013 +0.0040.401.203 1.201 -0.002-0.171.391 1.390 -0.001-0.071.596 1.601 +0.0050.311.790 1.790 001.991 1.986 -0.005-0.252.215 2.213 -0.002-0.092.389 2.386 -0.003-0.122.600 2.591 -0.009-0.35平均值=-0.00382平均值=0.32由上表可得,該USB數(shù)據(jù)采集系統(tǒng)很好的完成了直流模擬量值的測(cè)量工作。(2)選擇信號(hào)輸入通道1,輸入800Hz,VPP=1V的正弦波信號(hào),采樣結(jié)果如圖4-1所示
51、:(3)選擇信號(hào)輸入通道1,輸入800Hz,VPP=1V的三角波信號(hào),采樣結(jié)果如圖4-2所示:(4)選擇信號(hào)輸入通道1,輸入800Hz,VPP=1V的鋸齒波信號(hào),采樣結(jié)果如圖4-3所示:由(2)、(3)、(4)的采樣結(jié)果可知,該USB數(shù)據(jù)采集系統(tǒng)較好的完成了交流變化模擬量值的測(cè)量。圖4-1 輸入正弦波的采樣結(jié)果圖4-2 輸入三角波的采樣結(jié)果 圖4-3 輸入鋸齒波的采樣結(jié)果 結(jié) 論本設(shè)計(jì)方案達(dá)到了任務(wù)書的要求,實(shí)現(xiàn)了對(duì)于電機(jī)扭矩的USB數(shù)據(jù)采集,以及對(duì)數(shù)據(jù)儲(chǔ)存、處理、顯示和相應(yīng)曲線的繪制:(1)實(shí)現(xiàn)了EZ-USB設(shè)備(CY68013)與上位機(jī)的接口,并做到高速、穩(wěn)定、可靠、準(zhǔn)確;(2)完成了上位機(jī)對(duì)USB數(shù)據(jù)采集所得數(shù)據(jù)的接收、處理和儲(chǔ)存,并在界面中顯示出接收到的數(shù)據(jù)(每次接收采集1 K Byte的數(shù)據(jù));(3)繪制USB數(shù)據(jù)采集所得數(shù)據(jù)相應(yīng)的曲線,直觀地反映數(shù)據(jù)的變化情況,并增加了曲線的實(shí)時(shí)縮放功能,便于觀察和分析;(4)USB數(shù)據(jù)采集的界面做到了較為友好、實(shí)用和人性化。由于時(shí)間、水平和經(jīng)驗(yàn)有限,在數(shù)據(jù)保存形式、曲線縮放自由度等方面仍有不足之處,有改進(jìn)的余地,比如為了數(shù)據(jù)更加便于處理和管理,可以保存在數(shù)據(jù)庫(kù)里面,曲線的縮放也可以改進(jìn)得更加自由和實(shí)用。這次畢業(yè)設(shè)計(jì)對(duì)于我來(lái)說(shuō),是一次不錯(cuò)的學(xué)習(xí)新知識(shí)的機(jī)會(huì)。通過(guò)這次的畢業(yè)設(shè)計(jì),我學(xué)到了很多東西,并通過(guò)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人裝修水電合同
- 2025年宜昌道路運(yùn)輸從業(yè)資格證考試內(nèi)容是什么
- 2025年平頂山貨運(yùn)從業(yè)資格模擬考
- 2025年室外裝修承包合同8篇
- 《數(shù)據(jù)可視化技術(shù)應(yīng)用》1.2 開(kāi)啟數(shù)據(jù)可視化之門-教案
- 2025年陜西貨運(yùn)從業(yè)資格證考試題技巧
- 旋片真空泵競(jìng)爭(zhēng)策略分析報(bào)告
- 產(chǎn)品訂單合同范本
- 電安裝施工合同范本
- 出售養(yǎng)殖棚合同范本
- 建筑冷熱源素材樣本
- 胸椎小關(guān)節(jié)紊亂診斷與治療-課件
- 四川省德陽(yáng)市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)及行政區(qū)劃代碼
- Unit1Developingideaslittlewhitelies課件-高中英語(yǔ)外研版必修第三冊(cè)
- Unit 2 Listening and speaking 課件-高中英語(yǔ)人教版(2019)選擇性必修第二冊(cè)
- (參考)食品加工操作流程圖
- 員工面試登記表
- 鋼棧橋施工方案型鋼
- PySide學(xué)習(xí)教程
- 事業(yè)單位綜合基礎(chǔ)知識(shí)考試題庫(kù) 綜合基礎(chǔ)知識(shí)考試題庫(kù).doc
- 譯林初中英語(yǔ)教材目錄
評(píng)論
0/150
提交評(píng)論