基于usb的數(shù)據(jù)采集系統(tǒng) 畢設(shè)論文

上傳人:a**** 文檔編號(hào):144000115 上傳時(shí)間:2022-08-26 格式:DOC 頁(yè)數(shù):36 大小:465KB
收藏 版權(quán)申訴 舉報(bào) 下載
基于usb的數(shù)據(jù)采集系統(tǒng) 畢設(shè)論文_第1頁(yè)
第1頁(yè) / 共36頁(yè)
基于usb的數(shù)據(jù)采集系統(tǒng) 畢設(shè)論文_第2頁(yè)
第2頁(yè) / 共36頁(yè)
基于usb的數(shù)據(jù)采集系統(tǒng) 畢設(shè)論文_第3頁(yè)
第3頁(yè) / 共36頁(yè)

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《基于usb的數(shù)據(jù)采集系統(tǒng) 畢設(shè)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于usb的數(shù)據(jù)采集系統(tǒng) 畢設(shè)論文(36頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、本科畢業(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)換器、和PC機(jī)終端等四部分。上位機(jī)軟件設(shè)計(jì)主要包括USB驅(qū)動(dòng)程序的編寫(xiě)和上位機(jī)應(yīng)用界面程序的編寫(xiě)。軟件的編寫(xiě)在Visual C+ 6.0的開(kāi)發(fā)環(huán)境中完成,完成USB驅(qū)動(dòng)程序的編寫(xiě),解決了USB設(shè)備(以CY7C68013A為USB接口芯片)與上位機(jī)的接口問(wèn)題,使用Visual C+ 6.0 的MFC 編寫(xiě)上位機(jī)界面的應(yīng)用程序,實(shí)現(xiàn)了對(duì)USB設(shè)備的開(kāi)啟、關(guān)閉和檢測(cè)、設(shè)置數(shù)據(jù)傳輸管道、設(shè)置數(shù)據(jù)采集端口、從接口采集數(shù)據(jù)、顯示并處理數(shù)據(jù)和曲線繪制、曲線實(shí)時(shí)縮放等

2、功能。本設(shè)計(jì)方案實(shí)現(xiàn)了對(duì)于電機(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í)縮放功能,便于觀察和分析; USB數(shù)據(jù)采集的界面較為友好、實(shí)用和人性化。關(guān)鍵詞:USB,數(shù)據(jù)采集,Visual C+,MFCABSTRACTThis is a USB data acquisition system for the realization o

3、f the motor torque measurement and data 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

4、the Application interface. Software is finished in the development environment . Using Driver Works, cooperating , USB driver is completed,which solves the interface issue between the USB device CY7C68013A and PC terminal. With the using of MFC in ,the Application procedures for the Application inte

5、rface is written ,which realizes opening, closing and testing of the USB device, sets up a transmission pipeline, sets up data collection port, collects data from the interface, displays and processes it, draws corresponding curve and real-time changes the scale of the curve. The designing plan for

6、the realization of USB data acquisition for the motor torque, storing, processing, display of the data and drawing the corresponding 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

7、 (collects 1 K Byte data each time); drawing corresponding curve for the data from the USB data acquisition, which reflects the data changes intuitively; real-time changing of the scale of the curve for better observation and analysis; the interface of USB data acquisition to be friendly, practical

8、and humane.Key words:USB,Data Acquisition,Visual C+,MFC ,目 錄1 引言12 概述22.1 USB數(shù)據(jù)采集系統(tǒng)概述22.2 本設(shè)計(jì)方案思路32.3 研發(fā)方向和技術(shù)關(guān)鍵32.4 主要技術(shù)指標(biāo)43 總體設(shè)計(jì)53.1 扭矩傳感器53.2 A/D轉(zhuǎn)換器53.3 控制器63.4 PC機(jī)終端83.5 其他說(shuō)明84 軟件設(shè)計(jì)9USB 驅(qū)動(dòng)程序設(shè)計(jì)9驅(qū)動(dòng)程序模型9EZ-USB 驅(qū)動(dòng)程序10INF 文件的編寫(xiě)11上位機(jī)界面程序設(shè)計(jì)11總體方案11程序流程11程序模塊說(shuō)明125 調(diào)試和測(cè)試18調(diào)試程序中的問(wèn)題18測(cè)試步驟18測(cè)試結(jié)果186 結(jié)論21致謝22參

9、考文獻(xiàn)23附錄241 引言數(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)控設(shè)備,還有視頻會(huì)議、可視 等場(chǎng)合中,都需要進(jìn)行高速數(shù)據(jù)采集?,F(xiàn)在常用的采集方式是數(shù)據(jù)采集板卡,常用的有A/D卡以及422、485等總線板卡,采用板卡不僅安裝麻煩,價(jià)格昂貴,容易受到機(jī)箱內(nèi)環(huán)境

10、的干擾,通訊過(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ó)電氣和電子工程師協(xié)會(huì)推出的 IEEE1394總線協(xié)議。IEEE1394主要的特點(diǎn)是高速,但它的成本很高。所以目前IEEE1394只用于一些專用系統(tǒng)和打印機(jī)掃描儀等數(shù)據(jù)傳輸速度要求較高的設(shè)備,而不能普遍用于

11、諸如鼠標(biāo)鍵盤等價(jià)格較低、速度要求也不高的設(shè)備,所以確切地說(shuō) IEEEI394只適于高速的計(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)成為一個(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)中。2 概述2.1 USB數(shù)

12、據(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)域中,數(shù)據(jù)的采集與處理越及時(shí),工作效率就越高,取得的經(jīng)濟(jì)效益就越大。而與其他接口相比,USB接口具有以下優(yōu)勢(shì):1)速度快。有高速和低速兩種方式,主模式為高速模式,速率為12Mbps,USB2.0版規(guī)范允許4

13、80Mbps的速率傳輸數(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)配置,不再占用中斷資源或者資源,徹底拋棄了過(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ò)或中繼器

14、可以使外設(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)知道。7)可靠性。USB系統(tǒng)通過(guò)硬件設(shè)計(jì)和數(shù)據(jù)傳輸協(xié)議兩方面來(lái)保證其傳輸?shù)目煽啃?。USB發(fā)送器、接收器和電纜的硬件規(guī)范消除了大多數(shù)可能引起數(shù)據(jù)錯(cuò)誤的噪聲。在USB協(xié)議中包含了數(shù)據(jù)錯(cuò)誤和檢測(cè)機(jī)制,用來(lái)確保數(shù)據(jù)準(zhǔn)確無(wú)誤

15、地發(fā)送和接收。當(dāng)然,USB也有著自身的局限性,如距離的限制,協(xié)議比較復(fù)雜使得開(kāi)發(fā)難度較大等。但綜合考慮,USB數(shù)據(jù)采集系統(tǒng)的優(yōu)勢(shì)還是較為明顯的,尤其高速、大容量的應(yīng)用場(chǎng)合。基于USB的數(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ó)家儀器 (National Instruments,NI)公司研制的一系列USB數(shù)據(jù)采集卡,NI于2005年8月推出了八款最新USB 2.O高速數(shù)據(jù)采集設(shè)備,從而擴(kuò)展了其業(yè)界領(lǐng)先的高性能USB數(shù)據(jù)采集設(shè)備USB-9000系列產(chǎn)品,實(shí)現(xiàn)了高達(dá)800

16、ks/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)取得了可喜的發(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ā)符合

17、多種場(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)的可移植性。本系統(tǒng)由我和另外一名同學(xué)共同完成,我主要負(fù)責(zé)上位機(jī)驅(qū)動(dòng)程序和界面應(yīng)用程序的編寫(xiě)。2.2 本設(shè)計(jì)方案思路本設(shè)計(jì)以實(shí)現(xiàn)電機(jī)扭矩的測(cè)量、顯示和數(shù)據(jù)儲(chǔ)存為主要目的;以模擬信號(hào)采集、處理與傳輸,USB驅(qū)動(dòng)程序編寫(xiě)和PC上位機(jī)界面編寫(xiě)為主要設(shè)計(jì)內(nèi)容。USB驅(qū)動(dòng)程序的編寫(xiě):在理解USB 2.0 協(xié)議的基礎(chǔ)上,利用Driver Works,結(jié)合DDK和Visual C+6.0完成;PC上位機(jī)界面的編寫(xiě):

18、在熟悉Visual C+6.0編程環(huán)境的基礎(chǔ)上,完成完善、友好的上位機(jī)界面的編寫(xiě)。2.3 研發(fā)方向和技術(shù)關(guān)鍵(1)重點(diǎn)理解 USB 2.0協(xié)議,并加以靈活運(yùn)用,編寫(xiě)USB驅(qū)動(dòng)程序,確保數(shù)據(jù)傳輸?shù)母咚佟⒎€(wěn)定、可靠、準(zhǔn)確;(2)掌握 VC+ 編程技術(shù),為采集系統(tǒng)編寫(xiě)友好、實(shí)用的PC機(jī)界面,不僅顯示出接收到的數(shù)據(jù),還能夠直觀的以曲線形式反映數(shù)據(jù)的變化;(3)通過(guò)USB驅(qū)動(dòng)程序和上位機(jī)界面的編寫(xiě)實(shí)現(xiàn)較大容量數(shù)據(jù)的緩沖、處理、存儲(chǔ)和顯示。2.4 主要技術(shù)指標(biāo)(1)能夠?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ù),并繪制相

19、應(yīng)的曲線(4)使功能和界面更加人性化,比如增加曲線實(shí)時(shí)縮放的功能。3 總體設(shè)計(jì)本USB數(shù)據(jù)采集系統(tǒng)實(shí)現(xiàn)了對(duì)于電機(jī)扭矩的測(cè)量、以及數(shù)據(jù)的處理、傳輸、顯示和儲(chǔ)存。USB數(shù)據(jù)采集系統(tǒng)的組成框圖如圖3-1所示。該系統(tǒng)包括扭矩傳感器、A/D轉(zhuǎn)換器、和PC機(jī)終端等四部分。圖3-1 系統(tǒng)總體結(jié)構(gòu)框圖3.1 扭矩傳感器扭矩傳感器主要完成電機(jī)扭矩?cái)?shù)據(jù)的采集。扭矩測(cè)試比較成熟的檢測(cè)手段為應(yīng)變電測(cè)技術(shù)。它具有精度高,頻響快,可靠性好,壽命長(zhǎng)等優(yōu)點(diǎn)。 將專用的測(cè)扭應(yīng)變片用應(yīng)變膠粘貼在被測(cè)彈性軸上,并組成應(yīng)變橋,若向應(yīng)變橋提供工作電即源可測(cè)試該彈性軸受扭的電信號(hào)。這就是基本的扭矩傳感器模式。但是在旋轉(zhuǎn)動(dòng)力傳遞系統(tǒng)中,最

20、棘手的問(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)了無(wú)接觸的能源及信號(hào)傳遞功能。 3.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)的高精度和高速的采集,以

21、滿足后續(xù)電路各種功能實(shí)現(xiàn)。本次設(shè)計(jì)ADC選用TLC5510,精度為8位,轉(zhuǎn)換速率20MSPS,完全滿足了系統(tǒng)的設(shè)計(jì)指標(biāo)。 3.3 控制器 采用EZ-USB CY7C68013,它是,該芯片包括1個(gè)8051處理器、1個(gè)串行接口引擎(SIE)、1個(gè)USB收發(fā)器、8.5KB片上RAM、4KB FIFO存儲(chǔ)器以及1個(gè)通用可編程接口(GPIF),如圖32所示。圖3-2 CY7C68013結(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è)

22、通用可編程接口(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)這些共享FIFO,如圖33所示。這種被稱之為 “量子FIFO”的處理架構(gòu),較好地解決了USB高速模式的帶寬問(wèn)題。具體來(lái)說(shuō),如圖34所示,USB執(zhí)行OUT傳輸,將EP2端點(diǎn)設(shè)成512字節(jié)重FIFO。在USB端和外部接口端都并不

23、知道有四重FIFO??磥?lái),USB端只要有1個(gè)FIFO為“半滿”,就可以繼續(xù)發(fā)送數(shù)據(jù)。當(dāng)膠操作的FIFO寫(xiě)“滿”時(shí),F(xiàn)X2自動(dòng)將其轉(zhuǎn)換到外部接口端,排除等候讀??;并將USB接口隊(duì)列中下一個(gè)為“空”的FIFO轉(zhuǎn)移到USB接口上,供其繼續(xù)寫(xiě)數(shù)據(jù)。外部接口端與此類似,只要1有個(gè)FIFO為“半滿”,就可以繼續(xù)讀取數(shù)據(jù)。當(dāng)前操作的FIFO讀“空”時(shí),F(xiàn)X2自動(dòng)將其轉(zhuǎn)換到USB接口端,排除等候?qū)懭?;并將外部接口?duì)列中下一個(gè)為“滿”的FIFO轉(zhuǎn)移到外部接口上,供其繼續(xù)讀取數(shù)據(jù)。 圖33 量子FIFO圖3-4 端點(diǎn)數(shù)據(jù)緩存機(jī)制EZ-USB CY7C68013有2種接口方式:Slave FIFOs和可編程接口GP

24、IF。Slave FIFOs方式是從機(jī)方式,外部控制器可像普通FIFO一樣對(duì)FX2的多層緩沖FIFO進(jìn)行讀寫(xiě)。Slave FIFOs工作方式可設(shè)為同步或異步;工作時(shí)鐘可選為內(nèi)部產(chǎn)生或外部輸入;其它控制信號(hào)也可靈活地設(shè)置為高有效或低有效??删幊探涌贕PIF是主機(jī)方式,可以軟件編程讀寫(xiě)控制波形,幾乎可以對(duì)任何8/16 bit接口的控制器、存儲(chǔ)器和總線進(jìn)行數(shù)據(jù)的主動(dòng)讀寫(xiě),非常靈活。3.4 PC機(jī)終端PC機(jī)終端負(fù)責(zé)USB驅(qū)動(dòng)程序和上位機(jī)界面程序的編寫(xiě),并為上位機(jī)界面程序提供運(yùn)行平臺(tái)。利用Driver Works進(jìn)行USB 底層驅(qū)動(dòng)程序的編寫(xiě),Driver Works自己不能編譯開(kāi)發(fā)驅(qū)動(dòng)程序代碼,它是對(duì)

25、DDK例程函數(shù)調(diào)用的C+封裝,這樣就減少了編程人員的重復(fù)編碼。Driver Works在對(duì)DDK例程函數(shù)進(jìn)行封裝的同時(shí)也盡可能做到執(zhí)行代碼的高效率。用Driver Works開(kāi)發(fā)驅(qū)動(dòng)程序還需要安裝DDK和Visual C+6.0,在 VisualC+6.0的開(kāi)發(fā)環(huán)境中進(jìn)行驅(qū)動(dòng)的編寫(xiě)和編譯。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)中需要編寫(xiě)USB驅(qū)動(dòng)程序,在USB驅(qū)動(dòng)過(guò)程中,USB只需要實(shí)現(xiàn)數(shù)據(jù)的采集和讀取而不需要具體的復(fù)雜操作,因此,按照Dr

26、iver Works的程序向?qū)б徊揭徊缴稍次募?,最后編譯生成.SYS文件即可。而PC 機(jī)界面的編寫(xiě)采用Visual C+ 6.0程序開(kāi)發(fā)環(huán)境:它是目前國(guó)內(nèi)較為流行的面向?qū)ο蟮某绦蜷_(kāi)發(fā)環(huán)境,是美國(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è)名

27、叫Developer Studio的開(kāi)發(fā)平臺(tái)中,利用該開(kāi)發(fā)平臺(tái),用戶可以字段生成應(yīng)用程序框架,編寫(xiě)各種各樣的軟件。而且,從最簡(jiǎn)單的基于對(duì)話的程序到復(fù)雜的多用戶程序,都可以直接設(shè)計(jì)軟件的Windows 用戶界面。除此之外,微軟基礎(chǔ)類庫(kù)MFC使得應(yīng)用程序框架、類框架及函數(shù)框架的自動(dòng)生成更加快捷方便,大大提高了程序的質(zhì)量。本界面程序的編寫(xiě)正是借助于MFC較為強(qiáng)大的功能完成的。3.5 其他說(shuō)明系統(tǒng)分為硬件部分和軟件部分。本論文主要設(shè)計(jì)USB驅(qū)動(dòng)程序和上位機(jī)界面程序。硬件部分由另外一名畢業(yè)設(shè)計(jì)同學(xué)實(shí)現(xiàn)。4 軟件設(shè)計(jì)軟件設(shè)計(jì)主要包括USB驅(qū)動(dòng)程序的編寫(xiě)和上位機(jī)界面程序的編寫(xiě)4.1 USB 驅(qū)動(dòng)程序設(shè)計(jì)4.

28、1.1 驅(qū)動(dòng)程序模型隨著Windows2000和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等新硬件標(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)行

29、內(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)Windows功能提供條件。WDM對(duì)標(biāo)準(zhǔn)類接口的支持減少了Windows NT所需的設(shè)備驅(qū)動(dòng)程序的數(shù)量和復(fù)雜性。WDM型驅(qū)動(dòng)程序采用了分層處理的方法(如圖4-1所示),通過(guò)它,用戶不需要直接和硬件打交道(在USB驅(qū)動(dòng)程序中尤為明顯),而只需通過(guò)下層驅(qū)動(dòng)程序提供的接口來(lái)訪問(wèn)硬件。 圖4-1 WDM中設(shè)備對(duì)象和驅(qū)動(dòng)程序的層次結(jié)構(gòu)圖中左邊是一個(gè)設(shè)備對(duì)象

30、堆棧。設(shè)備對(duì)象是系統(tǒng)為幫助軟件管理硬件而創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)。一個(gè)物理硬件可以有多個(gè)這樣的數(shù)據(jù)結(jié)構(gòu)。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的上面和下面還會(huì)有一些過(guò)濾器設(shè)備對(duì)象(Filter Device Object)。位于上面的過(guò)濾器設(shè)備對(duì)象稱為上層過(guò)濾器驅(qū)動(dòng)程序,通常也叫作最高層驅(qū)動(dòng)程序,位于

31、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í)別。4.1.2 EZ-USB 驅(qū)動(dòng)程序選擇合適的開(kāi)發(fā)環(huán)境對(duì)于開(kāi)發(fā)WDM驅(qū)動(dòng)程序來(lái)說(shuō)很重要,通常有以下三個(gè)常用組合:1. 直接使用Windows DDK;2. 使用DriverStudio;3. 使用Windriver。三種方式有各自的優(yōu)缺點(diǎn):第一種

32、開(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í)上你寫(xiě)的只是定制和調(diào)用它提供的通用驅(qū)動(dòng)而已。效率上有問(wèn)題,工作頻率不是很高。但開(kāi)發(fā)花費(fèi)的時(shí)間很少。是上面的幾乃至幾十分之一。EZ-USB的驅(qū)動(dòng)開(kāi)發(fā)選用的是DDK直接開(kāi)發(fā)方式,使用平臺(tái),可以自由把握驅(qū)動(dòng)程序的開(kāi)發(fā)。EZ-USB

33、通用驅(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è)用戶態(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)用不允許直接訪

34、問(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的備選設(shè)置0。對(duì)于用戶態(tài)的應(yīng)用,可以使用任何支持Win 32功能的編譯工具CreatFile()和DeviceControl()。4.1.3 INF 文件的編寫(xiě)INF是系統(tǒng)用來(lái)查找適合硬件的驅(qū)動(dòng)程序

35、的向?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都是要寫(xiě)入固件程序中的。選擇一個(gè)設(shè)備的規(guī)則是相當(dāng)復(fù)雜的,Windows首先選擇硬件ID匹配的設(shè)備的驅(qū)動(dòng)程序,否則它選擇其兼容ID與設(shè)備的兼容ID最佳匹配的驅(qū)動(dòng)程序,或者提示用戶選擇驅(qū)動(dòng)程序INF文件。如果不能發(fā)現(xiàn)合適的驅(qū)動(dòng)程序,Windows就會(huì)提示用戶插入驅(qū)動(dòng)程序盤或者由用戶自己選擇合適的INF文件。

36、4.2 上位機(jī)界面程序設(shè)計(jì)4.2.1 總體方案使用Visual C+ 6.0 的MFC 編寫(xiě)上位機(jī)界面的應(yīng)用程序,主要功能有對(duì)USB設(shè)備的開(kāi)啟、關(guān)閉和檢測(cè)、設(shè)置數(shù)據(jù)傳輸管道、設(shè)置數(shù)據(jù)采集端口、從接口采集數(shù)據(jù)、顯示并處理數(shù)據(jù)和曲線繪制。4.2.2 程序流程啟動(dòng)USB設(shè)備 檢 測(cè)USB設(shè)備 顯示錯(cuò)誤信息 成 功啟動(dòng)上位機(jī)界面 失敗 是否開(kāi)始數(shù)據(jù)采集是否進(jìn)行數(shù)據(jù)接收接收、處理并保存數(shù)據(jù)顯示測(cè)得數(shù)值、繪曲線 圖4-2 程序流程圖4.2.3 程序模塊說(shuō)明1. 程序初始化 BOOL CUSBApp:InitInstance() AfxEnableControlContainer(); /允許應(yīng)用程序作為控

37、件容器來(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#ifdef _AFXDLL Enable3dControls(); / Call this when using MFC in a shared DLL#else Enable3dContro

38、lsStatic();/ Call this when linking to MFC statically#endif SetRegistryKey(_T(Local AppWizard-Generated Applications);LoadStdProfileSettings();/ Load standard 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

39、設(shè)備!);/定義并調(diào)用主函數(shù) CUSBDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse = IDOK) else if (nResponse = IDCANCEL) return FALSE;以下是主函數(shù)的各個(gè)模塊:2. 主函數(shù)初始化CUSBDlg:CUSBDlg(CWnd* pParent /*=NULL*/): CDialog(CUSBDlg:IDD, pParent) Display_Scale=2; m_COMBO1_VALUE = -1; m_hIcon = AfxGetApp()-Loa

40、dIcon(IDR_MAINFRAME);/為用戶打開(kāi)USB數(shù)據(jù)采集的上位機(jī)圖形界面 其中,Display_Scale是實(shí)現(xiàn)曲線實(shí)時(shí)縮放的重要的全局變量,整個(gè)程序另有三處涉及到此變量,分別是:1)比例尺選擇的相關(guān)程序,實(shí)現(xiàn)了比例尺的改變;2)寫(xiě)橫軸(即時(shí)間軸)刻度值的相關(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ī)圖形界面如圖4-3所示 圖4-3 USB數(shù)據(jù)采集的上位機(jī)圖形界面3開(kāi)始

41、轉(zhuǎn)換模塊void CUSBDlg:OnAbout() /開(kāi)始轉(zhuǎn)換 VENDOR_OR_CLASS_REQUEST_CONTROLmyRequest; char *buffer; ULONG bufferSize = 0; BOOLEAN bResult= FALSE; myRequest.request = (UCHAR) 0xB0; buffer=NULL; myRequest.value = (USHORT) 0; myRequest.index = (USHORT) 0xBEEF; myRequest.direction = 0; /放送方向,0表示主機(jī)到設(shè)備 myRequest.req

42、uestType=2; / vendor specific request type (2)(2=vender) myRequest.recepient=2; / recepient is device (0)/endpoint (2) if (m_hDevice != NULL) bResult = DeviceIoControl (m_hDevice, IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,&myRequest,sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),buffer,bufferSize,(unsigned long

43、*)&lenBytes,NULL); /* if valid driver handle */ 該模塊主要調(diào)用EZ-USB的DeviceIoControl()庫(kù)函數(shù),并使用它的輔助IOCTL中的IOCTL_EZUSB_VENDOR_OR_CLASS_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中的

44、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ù)的時(shí)間保存在一個(gè)記事本文件中,每行保存16個(gè)數(shù)據(jù),數(shù)據(jù)之間以空格相間隔,即保存為如下的形式:Day:2008/5/12 Time:20:32:58255 255 255 255 185 41 147 124 89 44 147 124 112 2 55 0 160 46 225 115 40 251 18 0 0 0 0 0 0 0 0 0 。 0 48 40 55 0 0 0 211 115 120 1 20 0 92 1 55 為了便于采集數(shù)據(jù)的顯示,先對(duì)接收到的數(shù)據(jù)進(jìn)行如下處理: for(int i=0;iLoadIcon(IDR_MAINFRAME);/為用戶打開(kāi)USB數(shù)據(jù)采集的上位機(jī)圖形界面

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!