歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

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

  • 資源ID:144000115       資源大小:465KB        全文頁數(shù):36頁
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

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

本科畢業(yè)設(shè)計摘 要本USB數(shù)據(jù)采集系統(tǒng)實現(xiàn)了對于電機扭矩的測量、以及數(shù)據(jù)的處理、傳輸、顯示和儲存。USB數(shù)據(jù)采集系統(tǒng)主要包括扭矩傳感器、A/D轉(zhuǎn)換器、和PC機終端等四部分。上位機軟件設(shè)計主要包括USB驅(qū)動程序的編寫和上位機應(yīng)用界面程序的編寫。軟件的編寫在Visual C+ 6.0的開發(fā)環(huán)境中完成,完成USB驅(qū)動程序的編寫,解決了USB設(shè)備(以CY7C68013A為USB接口芯片)與上位機的接口問題,使用Visual C+ 6.0 的MFC 編寫上位機界面的應(yīng)用程序,實現(xiàn)了對USB設(shè)備的開啟、關(guān)閉和檢測、設(shè)置數(shù)據(jù)傳輸管道、設(shè)置數(shù)據(jù)采集端口、從接口采集數(shù)據(jù)、顯示并處理數(shù)據(jù)和曲線繪制、曲線實時縮放等功能。本設(shè)計方案實現(xiàn)了對于電機扭矩的USB數(shù)據(jù)采集,以及對數(shù)據(jù)儲存、處理、顯示和相應(yīng)的曲線繪制:USB接口做到了高速、穩(wěn)定、可靠、準確;完成了上位機對USB數(shù)據(jù)采集所得數(shù)據(jù)的接收、處理和儲存,并在界面中顯示出接收到的數(shù)據(jù)(每次接收采集1 K Byte的數(shù)據(jù));繪制USB數(shù)據(jù)采集所得數(shù)據(jù)相應(yīng)的曲線,直觀地反映數(shù)據(jù)的變化情況,并增加了曲線的實時縮放功能,便于觀察和分析; USB數(shù)據(jù)采集的界面較為友好、實用和人性化。關(guān)鍵詞:USB,數(shù)據(jù)采集,Visual C+,MFCABSTRACTThis is a USB data acquisition system for the realization of 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 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 interface 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 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 (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 and humane.Key words:USB,Data Acquisition,Visual C+,MFC ,目 錄1 引言12 概述22.1 USB數(shù)據(jù)采集系統(tǒng)概述22.2 本設(shè)計方案思路32.3 研發(fā)方向和技術(shù)關(guān)鍵32.4 主要技術(shù)指標43 總體設(shè)計53.1 扭矩傳感器53.2 A/D轉(zhuǎn)換器53.3 控制器63.4 PC機終端83.5 其他說明84 軟件設(shè)計9USB 驅(qū)動程序設(shè)計9驅(qū)動程序模型9EZ-USB 驅(qū)動程序10INF 文件的編寫11上位機界面程序設(shè)計11總體方案11程序流程11程序模塊說明125 調(diào)試和測試18調(diào)試程序中的問題18測試步驟18測試結(jié)果186 結(jié)論21致謝22參考文獻23附錄241 引言數(shù)據(jù)采集系統(tǒng)是基于計算機的、實現(xiàn)靈活并由用戶自定義的測量系統(tǒng),它主要完成數(shù)據(jù)信息的采集、A/D轉(zhuǎn)換、壓縮處理,然后通過PC接口總線將處理后的數(shù)據(jù)送入計算機作進一步處理。隨著計算機技術(shù)的飛快發(fā)展和普及,以數(shù)據(jù)采集系統(tǒng)為核心的設(shè)備也迅速在國內(nèi)外得到了廣泛的應(yīng)用,現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對數(shù)據(jù)采集的要求越來越高,如在工業(yè)控制中現(xiàn)場數(shù)據(jù)的采集,溫度、壓力等數(shù)據(jù)的采集,在比較重要場所安裝的監(jiān)控設(shè)備,還有視頻會議、可視 等場合中,都需要進行高速數(shù)據(jù)采集?,F(xiàn)在常用的采集方式是數(shù)據(jù)采集板卡,常用的有A/D卡以及422、485等總線板卡,采用板卡不僅安裝麻煩,價格昂貴,容易受到機箱內(nèi)環(huán)境的干擾,通訊過程中極易產(chǎn)生錯誤,而且由于計算機插槽數(shù)量和地址、中斷資源的限制,不可能掛接很多設(shè)備,在一些電磁干擾性強的測試場所,可能無法專門對其作電磁屏蔽,從而導(dǎo)致采集的數(shù)據(jù)失真,針對上述問題,急需采用新的技術(shù)解決。從20世紀90年代以來有很多串行總線問世,其中最成功的便是以Intel為首的七家公司于1994年推出的 USB(Universal Serial Bus)通用串行總線協(xié)議,以及美國電氣和電子工程師協(xié)會推出的 IEEE1394總線協(xié)議。IEEE1394主要的特點是高速,但它的成本很高。所以目前IEEE1394只用于一些專用系統(tǒng)和打印機掃描儀等數(shù)據(jù)傳輸速度要求較高的設(shè)備,而不能普遍用于諸如鼠標鍵盤等價格較低、速度要求也不高的設(shè)備,所以確切地說 IEEEI394只適于高速的計算機外部設(shè)備。USB具有速度高、成本低、功耗低、支持即插即用 (Plug & Play)和使用維護方便等優(yōu)點。USB總線從誕生之日起便引發(fā)了一場產(chǎn)業(yè)革命。它以靈活、方便、應(yīng)用范圍廣、通信穩(wěn)定、成本低廉等優(yōu)點,使得PC接口紛紛從串行口和并行口轉(zhuǎn)到USB總線上來。隨著USB2.0版本的發(fā)布,USB越來越流行,它已經(jīng)成為一個標準接口。目前市場上出售的所有PC機都支持USB,而且很多外設(shè)只推出了USB版本,如移動硬盤和U盤等。可見,USB能夠很好的解決以上問題,適合于應(yīng)用在數(shù)據(jù)采集系統(tǒng)中。2 概述2.1 USB數(shù)據(jù)采集系統(tǒng)概述數(shù)據(jù)采集技術(shù)是以傳感器技術(shù)、測試技術(shù)、電子技術(shù)和計算機技術(shù)等技術(shù)為基礎(chǔ)的一門綜合應(yīng)用技術(shù),這些技術(shù)水平的進步尤其是計算機技術(shù)的普及和發(fā)展提升了數(shù)據(jù)采集的技術(shù)水平。在生產(chǎn)過程中,應(yīng)用數(shù)據(jù)采集系統(tǒng)可對生產(chǎn)現(xiàn)場的工藝參數(shù)進行采集、監(jiān)視和記錄,為提高產(chǎn)品質(zhì)量、降低成本提供信息和手段。在科學(xué)研究中,應(yīng)用數(shù)據(jù)采集系統(tǒng)可獲得大量的動態(tài)信息,是研究瞬間物理過程的有力工具??傊?,不論在哪個應(yīng)用領(lǐng)域中,數(shù)據(jù)的采集與處理越及時,工作效率就越高,取得的經(jīng)濟效益就越大。而與其他接口相比,USB接口具有以下優(yōu)勢:1)速度快。有高速和低速兩種方式,主模式為高速模式,速率為12Mbps,USB2.0版規(guī)范允許480Mbps的速率傳輸數(shù)據(jù)。另外為了適應(yīng)一些不需要很大吞吐量和很高實時性的設(shè)備,如鼠標等,還提供低速方式。相比之下,串口數(shù)據(jù)傳輸率是115kbps-230kbps,標準并口的數(shù)據(jù)傳輸率為1MBps,這些都遠低于USB的傳輸速率。2)設(shè)備安裝和配置容易。設(shè)備支持即插即用,安裝設(shè)備不必再打開機箱,加減已安裝過的設(shè)備完全不用關(guān)閉計算機。所有設(shè)備支持熱插拔,系統(tǒng)對其進行自動配置,不再占用中斷資源或者資源,徹底拋棄了過去的跳線和撥碼開關(guān)設(shè)置。為接纜和連接頭提供了單一模型,解決了外設(shè)越來越多所造成的插槽緊張問題。3)易于擴展。通過使用擴展,可接多達127個外設(shè)。標準電纜長度為3m(低速5m),通過或中繼器可以使外設(shè)距離達到30m。4)使用靈活。共有4種傳輸模式:控制傳輸、同步傳輸、中斷傳輸、批量傳輸,以適應(yīng)不同設(shè)備的需要。5)能夠采用總線供電??偩€提供最大達,電流,對于功耗較小的設(shè)備來說這是非常有效的。6)節(jié)省系統(tǒng)資源。在USB系統(tǒng)中,只有USB主控制器需要使用一根IRQ線和一些I/O地址空間。對USB外設(shè)來說,它需要的僅僅是USB系統(tǒng)為其分配一個唯一地址,而這個地址只有USB子系統(tǒng)知道。7)可靠性。USB系統(tǒng)通過硬件設(shè)計和數(shù)據(jù)傳輸協(xié)議兩方面來保證其傳輸?shù)目煽啃?。USB發(fā)送器、接收器和電纜的硬件規(guī)范消除了大多數(shù)可能引起數(shù)據(jù)錯誤的噪聲。在USB協(xié)議中包含了數(shù)據(jù)錯誤和檢測機制,用來確保數(shù)據(jù)準確無誤地發(fā)送和接收。當(dāng)然,USB也有著自身的局限性,如距離的限制,協(xié)議比較復(fù)雜使得開發(fā)難度較大等。但綜合考慮,USB數(shù)據(jù)采集系統(tǒng)的優(yōu)勢還是較為明顯的,尤其高速、大容量的應(yīng)用場合?;赨SB的數(shù)據(jù)采集系統(tǒng)的研究與發(fā)展動態(tài):USB設(shè)備的應(yīng)用目前在國外處于高速發(fā)展階段,國外有些企業(yè)也已經(jīng)推出了很多能適應(yīng)不同條件、不同精度要求的USB數(shù)據(jù)采集系列產(chǎn)品。典型的是美國國家儀器 (National Instruments,NI)公司研制的一系列USB數(shù)據(jù)采集卡,NI于2005年8月推出了八款最新USB 2.O高速數(shù)據(jù)采集設(shè)備,從而擴展了其業(yè)界領(lǐng)先的高性能USB數(shù)據(jù)采集設(shè)備USB-9000系列產(chǎn)品,實現(xiàn)了高達800ks/s的采樣率。但是Nl公司的USB數(shù)據(jù)采集卡系列產(chǎn)品的價格都比較昂貴。USB設(shè)備在國內(nèi)的應(yīng)用己經(jīng)起步,發(fā)展速度較快,水平不斷提高。隨著USB體系結(jié)構(gòu)的逐步完善,USB被越來越多的廠商所支持和推崇,也將應(yīng)用到更廣的領(lǐng)域,市場上國內(nèi)的主要產(chǎn)品有北京優(yōu)采公司uA30o系列、四川拓普公司的UDAQ、UBOX、UCARD等系列??偠灾?,目前國內(nèi)對USB數(shù)據(jù)采集設(shè)備的研制己經(jīng)取得了可喜的發(fā)展,但是與國外相比,在開發(fā)和應(yīng)用的深度和廣度而言,還有一段距離,現(xiàn)場數(shù)據(jù)采集要求比較高的場合多是采用的國外產(chǎn)品。因此,隨著計算機對USB接口的普及和實際應(yīng)用中對數(shù)據(jù)采集卡要求的提高,利用USB2.0協(xié)議規(guī)范開發(fā)符合多種場合的數(shù)據(jù)采集系統(tǒng),以及此領(lǐng)域內(nèi)先進產(chǎn)品的國產(chǎn)化等都成了有待解決的現(xiàn)實問題。本USB數(shù)據(jù)采集系統(tǒng)主要針對于電機扭矩的測量和采集,性價比較高,適當(dāng)加以改造就可以應(yīng)用于許多其他數(shù)據(jù)采集場合,具有較強的可移植性。本系統(tǒng)由我和另外一名同學(xué)共同完成,我主要負責(zé)上位機驅(qū)動程序和界面應(yīng)用程序的編寫。2.2 本設(shè)計方案思路本設(shè)計以實現(xiàn)電機扭矩的測量、顯示和數(shù)據(jù)儲存為主要目的;以模擬信號采集、處理與傳輸,USB驅(qū)動程序編寫和PC上位機界面編寫為主要設(shè)計內(nèi)容。USB驅(qū)動程序的編寫:在理解USB 2.0 協(xié)議的基礎(chǔ)上,利用Driver Works,結(jié)合DDK和Visual C+6.0完成;PC上位機界面的編寫:在熟悉Visual C+6.0編程環(huán)境的基礎(chǔ)上,完成完善、友好的上位機界面的編寫。2.3 研發(fā)方向和技術(shù)關(guān)鍵(1)重點理解 USB 2.0協(xié)議,并加以靈活運用,編寫USB驅(qū)動程序,確保數(shù)據(jù)傳輸?shù)母咚?、穩(wěn)定、可靠、準確;(2)掌握 VC+ 編程技術(shù),為采集系統(tǒng)編寫友好、實用的PC機界面,不僅顯示出接收到的數(shù)據(jù),還能夠直觀的以曲線形式反映數(shù)據(jù)的變化;(3)通過USB驅(qū)動程序和上位機界面的編寫實現(xiàn)較大容量數(shù)據(jù)的緩沖、處理、存儲和顯示。2.4 主要技術(shù)指標(1)能夠?qū)崿F(xiàn)對EZ-USB設(shè)備的啟動和檢測(2)每次接收1 K Byte的數(shù)據(jù),并及時的進行處理和保存(3)及時顯示USB數(shù)據(jù)采集的數(shù)據(jù),并繪制相應(yīng)的曲線(4)使功能和界面更加人性化,比如增加曲線實時縮放的功能。3 總體設(shè)計本USB數(shù)據(jù)采集系統(tǒng)實現(xiàn)了對于電機扭矩的測量、以及數(shù)據(jù)的處理、傳輸、顯示和儲存。USB數(shù)據(jù)采集系統(tǒng)的組成框圖如圖3-1所示。該系統(tǒng)包括扭矩傳感器、A/D轉(zhuǎn)換器、和PC機終端等四部分。圖3-1 系統(tǒng)總體結(jié)構(gòu)框圖3.1 扭矩傳感器扭矩傳感器主要完成電機扭矩數(shù)據(jù)的采集。扭矩測試比較成熟的檢測手段為應(yīng)變電測技術(shù)。它具有精度高,頻響快,可靠性好,壽命長等優(yōu)點。 將專用的測扭應(yīng)變片用應(yīng)變膠粘貼在被測彈性軸上,并組成應(yīng)變橋,若向應(yīng)變橋提供工作電即源可測試該彈性軸受扭的電信號。這就是基本的扭矩傳感器模式。但是在旋轉(zhuǎn)動力傳遞系統(tǒng)中,最棘手的問題是旋轉(zhuǎn)體上的應(yīng)變橋的橋壓輸入及檢測到的應(yīng)變信號輸出如何可靠地在旋轉(zhuǎn)部分與靜止部分之間傳遞。通常有采用導(dǎo)電滑環(huán)或無線電遙測的方法來實現(xiàn),它們各有優(yōu)缺點。無線數(shù)字式扭矩傳感器主要原理是:將專用的測扭應(yīng)變片用應(yīng)變膠粘貼在被測彈性軸上并組成應(yīng)變橋 ,向應(yīng)變橋提供電源即可測得該彈性軸受扭的電信號。將該應(yīng)變信號放大后,經(jīng)過壓/頻轉(zhuǎn)換,變成與扭應(yīng)變成正比的頻率信號。系統(tǒng)的能源輸入及信號輸出是由兩組帶間隙的特殊環(huán)型變壓器承擔(dān)的,因此實現(xiàn)了無接觸的能源及信號傳遞功能。 3.2 A/D轉(zhuǎn)換器A/D 轉(zhuǎn)換完成扭矩傳感器的模擬電信號到數(shù)字信號的轉(zhuǎn)換,它的關(guān)鍵性指標就是能實現(xiàn)對模擬信號的高精度和高速的采集,以滿足后續(xù)電路各種功能實現(xiàn)。本次設(shè)計ADC選用TLC5510,精度為8位,轉(zhuǎn)換速率20MSPS,完全滿足了系統(tǒng)的設(shè)計指標。 3.3 控制器 采用EZ-USB CY7C68013,它是,該芯片包括1個8051處理器、1個串行接口引擎(SIE)、1個USB收發(fā)器、8.5KB片上RAM、4KB FIFO存儲器以及1個通用可編程接口(GPIF),如圖32所示。圖3-2 CY7C68013結(jié)構(gòu)框圖EZ-USB CY7C68013擁有1個獨特的架構(gòu),其中包括1個智能串行接口引擎(SIE)。它執(zhí)行所有基本的USB功能,將嵌入式MCU解放出來以用于實現(xiàn)專用的功能,并保證其持續(xù)的高性能的傳輸速率。FX2還包括2個通用可編程接口(GPIF),允許它“無膠粘接”,即可與任何ASIC或DSP進行連接,并且它還支持所有通用總線標準,包括ATA、UTOPIA、EPP和PCMCIA。EZ-USB FX2完全適用于USB2.0,并向下兼容USB1.1。EZ-USB CY7C68013的另一獨持架構(gòu)使USB接口和應(yīng)用環(huán)境直接共享FIFO,而微控制器可不參與數(shù)據(jù)傳輸?shù)试S以FIFO或RAM的方式訪問這些共享FIFO,如圖33所示。這種被稱之為 “量子FIFO”的處理架構(gòu),較好地解決了USB高速模式的帶寬問題。具體來說,如圖34所示,USB執(zhí)行OUT傳輸,將EP2端點設(shè)成512字節(jié)重FIFO。在USB端和外部接口端都并不知道有四重FIFO。看來,USB端只要有1個FIFO為“半滿”,就可以繼續(xù)發(fā)送數(shù)據(jù)。當(dāng)膠操作的FIFO寫“滿”時,F(xiàn)X2自動將其轉(zhuǎn)換到外部接口端,排除等候讀??;并將USB接口隊列中下一個為“空”的FIFO轉(zhuǎn)移到USB接口上,供其繼續(xù)寫數(shù)據(jù)。外部接口端與此類似,只要1有個FIFO為“半滿”,就可以繼續(xù)讀取數(shù)據(jù)。當(dāng)前操作的FIFO讀“空”時,F(xiàn)X2自動將其轉(zhuǎn)換到USB接口端,排除等候?qū)懭耄徊⑼獠拷涌陉犃兄邢乱粋€為“滿”的FIFO轉(zhuǎn)移到外部接口上,供其繼續(xù)讀取數(shù)據(jù)。 圖33 量子FIFO圖3-4 端點數(shù)據(jù)緩存機制EZ-USB CY7C68013有2種接口方式:Slave FIFOs和可編程接口GPIF。Slave FIFOs方式是從機方式,外部控制器可像普通FIFO一樣對FX2的多層緩沖FIFO進行讀寫。Slave FIFOs工作方式可設(shè)為同步或異步;工作時鐘可選為內(nèi)部產(chǎn)生或外部輸入;其它控制信號也可靈活地設(shè)置為高有效或低有效??删幊探涌贕PIF是主機方式,可以軟件編程讀寫控制波形,幾乎可以對任何8/16 bit接口的控制器、存儲器和總線進行數(shù)據(jù)的主動讀寫,非常靈活。3.4 PC機終端PC機終端負責(zé)USB驅(qū)動程序和上位機界面程序的編寫,并為上位機界面程序提供運行平臺。利用Driver Works進行USB 底層驅(qū)動程序的編寫,Driver Works自己不能編譯開發(fā)驅(qū)動程序代碼,它是對DDK例程函數(shù)調(diào)用的C+封裝,這樣就減少了編程人員的重復(fù)編碼。Driver Works在對DDK例程函數(shù)進行封裝的同時也盡可能做到執(zhí)行代碼的高效率。用Driver Works開發(fā)驅(qū)動程序還需要安裝DDK和Visual C+6.0,在 VisualC+6.0的開發(fā)環(huán)境中進行驅(qū)動的編寫和編譯。Driver Works是包含在Driver Studio軟件中,Driver Studio還提供了強大的驅(qū)動程序調(diào)試工具。Driver Works對驅(qū)動程序的例程調(diào)用等進行了C+類封裝。本系統(tǒng)中需要編寫USB驅(qū)動程序,在USB驅(qū)動過程中,USB只需要實現(xiàn)數(shù)據(jù)的采集和讀取而不需要具體的復(fù)雜操作,因此,按照Driver Works的程序向?qū)б徊揭徊缴稍次募詈缶幾g生成.SYS文件即可。而PC 機界面的編寫采用Visual C+ 6.0程序開發(fā)環(huán)境:它是目前國內(nèi)較為流行的面向?qū)ο蟮某绦蜷_發(fā)環(huán)境,是美國微軟公司推出的Visual Studio 6.0 開發(fā)套件之一。由于Visual C+ 6.0具有優(yōu)越的性能和強大的功能,因此它成為該開發(fā)工具最為完善的軟件開發(fā)系統(tǒng)之一。Visual C+ 6.0提供了一個高效的Windows編程環(huán)境,將程序和資源的編輯、編譯、調(diào)試和運行融為一體,并且提供了大量的程序開發(fā)工具,如應(yīng)用程序向?qū)ppwizard、類向?qū)lassWizard等。這些工具都高度集成于一個名叫Developer Studio的開發(fā)平臺中,利用該開發(fā)平臺,用戶可以字段生成應(yīng)用程序框架,編寫各種各樣的軟件。而且,從最簡單的基于對話的程序到復(fù)雜的多用戶程序,都可以直接設(shè)計軟件的Windows 用戶界面。除此之外,微軟基礎(chǔ)類庫MFC使得應(yīng)用程序框架、類框架及函數(shù)框架的自動生成更加快捷方便,大大提高了程序的質(zhì)量。本界面程序的編寫正是借助于MFC較為強大的功能完成的。3.5 其他說明系統(tǒng)分為硬件部分和軟件部分。本論文主要設(shè)計USB驅(qū)動程序和上位機界面程序。硬件部分由另外一名畢業(yè)設(shè)計同學(xué)實現(xiàn)。4 軟件設(shè)計軟件設(shè)計主要包括USB驅(qū)動程序的編寫和上位機界面程序的編寫4.1 USB 驅(qū)動程序設(shè)計4.1.1 驅(qū)動程序模型隨著Windows2000和Windows XP成為主流操作系統(tǒng),Windows驅(qū)動程序模型(WDM)取代了原先的VxD技術(shù),成為設(shè)備驅(qū)動程序的主流模式。WDM提供靈活的方式,簡化了驅(qū)動程序的開發(fā),并能夠?qū)SB、IEEE1394、PCI等新硬件標準提供充分支持,并增強了驅(qū)動程序的可靠性和可維護性。WDM有兩種運行模式,即內(nèi)核模式(Kernel)和用戶模式(User)。在內(nèi)核模式下,程序的運行不受操作系統(tǒng)的任何限制,對設(shè)備有完全的訪問權(quán),能夠訪問任何虛地址和控制虛擬內(nèi)存硬件在用戶模式下,操作系統(tǒng)提供某種機制,可以限制程序的各種I/O操作,硬件也可以防止特權(quán)指令的執(zhí)行,并進行內(nèi)存和I/O空間檢查。WDM驅(qū)動程序模型分兩個方面,除了核心模式描述設(shè)備驅(qū)動程序的標準結(jié)構(gòu)外,WDM還為常見類型的設(shè)備實現(xiàn)了一個模塊化的、分層次類型的總線驅(qū)動程序和類驅(qū)動程序??偩€驅(qū)動程序?qū)崿F(xiàn)了支持USB、IEEE1394協(xié)議等。類驅(qū)動程序是為實現(xiàn)標準Windows功能提供條件。WDM對標準類接口的支持減少了Windows NT所需的設(shè)備驅(qū)動程序的數(shù)量和復(fù)雜性。WDM型驅(qū)動程序采用了分層處理的方法(如圖4-1所示),通過它,用戶不需要直接和硬件打交道(在USB驅(qū)動程序中尤為明顯),而只需通過下層驅(qū)動程序提供的接口來訪問硬件。 圖4-1 WDM中設(shè)備對象和驅(qū)動程序的層次結(jié)構(gòu)圖中左邊是一個設(shè)備對象堆棧。設(shè)備對象是系統(tǒng)為幫助軟件管理硬件而創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)。一個物理硬件可以有多個這樣的數(shù)據(jù)結(jié)構(gòu)。WDM還引入了功能設(shè)備對象FDO(Functional Device Object)與物理設(shè)備對象PDO(Physical Device Object)兩個新類來描述硬件。一個PDO對應(yīng)一個實際硬件。一個硬件只允許有一個PDO,卻可以擁有多個FDO,在驅(qū)動程序中直接操作的不是硬件而是相應(yīng)的PDO與FDO。FDO和PDO處于堆棧的最底層。在FDO的上面和下面還會有一些過濾器設(shè)備對象(Filter Device Object)。位于上面的過濾器設(shè)備對象稱為上層過濾器驅(qū)動程序,通常也叫作最高層驅(qū)動程序,位于FDO下面(但仍在PDO之上)的過濾器設(shè)備對象稱為下層過濾器驅(qū)動程序,通常也叫作最底層驅(qū)動程序。在用戶態(tài)和內(nèi)核態(tài)通信方面,系統(tǒng)為每一個用戶請求打包形成一個IRP結(jié)構(gòu),將其發(fā)送至驅(qū)動程序,并通過識別IRP中PDO的來區(qū)別是發(fā)送給哪一個設(shè)備的。另外,在驅(qū)動程序的加載方面,WDM不通過驅(qū)動程序名稱識別,而是通過一個128位的全局唯一標識符來實現(xiàn)驅(qū)動程序的識別。4.1.2 EZ-USB 驅(qū)動程序選擇合適的開發(fā)環(huán)境對于開發(fā)WDM驅(qū)動程序來說很重要,通常有以下三個常用組合:1. 直接使用Windows DDK;2. 使用DriverStudio;3. 使用Windriver。三種方式有各自的優(yōu)缺點:第一種開發(fā)難度大一些,而且有很多煩瑣的工作要做,大部分都是通用的基礎(chǔ)性的工作。但如果選用這種方式的話,你將對整個體系結(jié)構(gòu)會有很好的理解和把握。第二種難度低一些,工具軟件已經(jīng)幫你做了很多基礎(chǔ)性的工作,也封裝了一些細節(jié),你只要專心去做你需要的操作。但由于封裝的緣故,可能會帶來一些問題,有可能導(dǎo)致項目的失敗。第三種幾乎沒有難度(從開發(fā)驅(qū)動的角度),很容易,但只能開發(fā)硬件相關(guān)的驅(qū)動。事實上你寫的只是定制和調(diào)用它提供的通用驅(qū)動而已。效率上有問題,工作頻率不是很高。但開發(fā)花費的時間很少。是上面的幾乃至幾十分之一。EZ-USB的驅(qū)動開發(fā)選用的是DDK直接開發(fā)方式,使用平臺,可以自由把握驅(qū)動程序的開發(fā)。EZ-USB通用驅(qū)動程序(EZ-USB GPD)是用來和基于EZ-USB外設(shè)接口的通用設(shè)備驅(qū)動程序。驅(qū)動程序提供和公共USB設(shè)備請求和數(shù)據(jù)傳輸?shù)挠脩魬B(tài)接口。驅(qū)動服務(wù)于兩種目的:首先,它幫助設(shè)備和軟件的開發(fā)者,配合EZ-USB Control Panel,它允許開發(fā)者測試他的設(shè)備的執(zhí)行標準USB設(shè)備請求和數(shù)據(jù)傳輸?shù)哪芰?。其次,它為USB設(shè)備開發(fā)者提供例程。使用通用驅(qū)動程序作為起始點,可以創(chuàng)建一個用戶驅(qū)動程序。從一個用戶態(tài)應(yīng)用的角度來描述EZ-USB GPD接口。用戶態(tài)的應(yīng)用程序可以訪問很大范圍的操作系統(tǒng)服務(wù)。他們可以訪問文件,操作數(shù)據(jù)并且可以通過Windows GUI和用戶交互。然而,用戶態(tài)應(yīng)用不允許直接訪問硬件。為了訪問硬件,用戶態(tài)的應(yīng)用必須通過一個中間的代理,設(shè)備驅(qū)動開發(fā)工具。設(shè)備驅(qū)動典型的運行在一個稱為“核心模式”的授權(quán)模式。EZ-USB GPD是一個核心模式設(shè)備驅(qū)動。EZ-USB GPD能夠在一個時刻和單一設(shè)備接口通訊。選擇設(shè)備的任何接口的備選設(shè)置是可以的,但是,在多接口設(shè)備上同時和多個接口通訊是不可能的。支持多接口設(shè)備將要使用驅(qū)動的多實例來處理。在枚舉階段,EZ-USB GPD將會選擇接口0的備選設(shè)置0。對于用戶態(tài)的應(yīng)用,可以使用任何支持Win 32功能的編譯工具CreatFile()和DeviceControl()。4.1.3 INF 文件的編寫INF是系統(tǒng)用來查找適合硬件的驅(qū)動程序的向?qū)募?,?dāng)Windows發(fā)現(xiàn)新的設(shè)備時在系統(tǒng)啟動時、在安裝熱插拔設(shè)備時、或者在從控制面板安裝新設(shè)備時,就調(diào)用Windows的“添加新設(shè)備向?qū)А眻?zhí)行。這個向?qū)Ь蛼呙杷锌捎玫腎NF文件,找到合適的驅(qū)動程序。查找想要的INF文件,就需要用到硬件ID號,即VID廠商號和PID產(chǎn)品號,VID和PID都是要寫入固件程序中的。選擇一個設(shè)備的規(guī)則是相當(dāng)復(fù)雜的,Windows首先選擇硬件ID匹配的設(shè)備的驅(qū)動程序,否則它選擇其兼容ID與設(shè)備的兼容ID最佳匹配的驅(qū)動程序,或者提示用戶選擇驅(qū)動程序INF文件。如果不能發(fā)現(xiàn)合適的驅(qū)動程序,Windows就會提示用戶插入驅(qū)動程序盤或者由用戶自己選擇合適的INF文件。4.2 上位機界面程序設(shè)計4.2.1 總體方案使用Visual C+ 6.0 的MFC 編寫上位機界面的應(yīng)用程序,主要功能有對USB設(shè)備的開啟、關(guān)閉和檢測、設(shè)置數(shù)據(jù)傳輸管道、設(shè)置數(shù)據(jù)采集端口、從接口采集數(shù)據(jù)、顯示并處理數(shù)據(jù)和曲線繪制。4.2.2 程序流程啟動USB設(shè)備 檢 測USB設(shè)備 顯示錯誤信息 成 功啟動上位機界面 失敗 是否開始數(shù)據(jù)采集是否進行數(shù)據(jù)接收接收、處理并保存數(shù)據(jù)顯示測得數(shù)值、繪曲線 圖4-2 程序流程圖4.2.3 程序模塊說明1. 程序初始化 BOOL CUSBApp:InitInstance() AfxEnableControlContainer(); /允許應(yīng)用程序作為控件容器來使用HANDLE hObject = CreateMutex(NULL,FALSE,"myobj");/檢查程序是否已經(jīng)運行,若已經(jīng)運行,則對話框報錯 if(GetLastError() = ERROR_ALREADY_EXISTS) CloseHandle(hObject);AfxMessageBox("程序已經(jīng)運行!");return FALSE; / Standard initialization#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 standard INI file options (including MRU) m_hDevice=EzusbOpen();/調(diào)用Ezusb庫函數(shù),啟動USB 外設(shè)并獲得其句柄 if(!m_hDevice) /檢測USB 設(shè)備,若檢測失敗,則對話框報錯 AfxMessageBox("不能打開USB設(shè)備!");/定義并調(diào)用主函數(shù) CUSBDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse = IDOK) else if (nResponse = IDCANCEL) return FALSE;以下是主函數(shù)的各個模塊:2. 主函數(shù)初始化CUSBDlg:CUSBDlg(CWnd* pParent /*=NULL*/): CDialog(CUSBDlg:IDD, pParent) Display_Scale=2; m_COMBO1_VALUE = -1; m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);/為用戶打開USB數(shù)據(jù)采集的上位機圖形界面 其中,Display_Scale是實現(xiàn)曲線實時縮放的重要的全局變量,整個程序另有三處涉及到此變量,分別是:1)比例尺選擇的相關(guān)程序,實現(xiàn)了比例尺的改變;2)寫橫軸(即時間軸)刻度值的相關(guān)程序;3)繪曲線時橫軸(即時間軸)所用的坐標變量。2)和3)實現(xiàn)了時間軸和曲線隨比例尺做相應(yīng)的改變,進而實現(xiàn)了曲線的實時縮放功能。 而m_COMBO1_VALUE是組合框的相應(yīng)變量值,用于標示界面使用者的選項,初值賦值為-1。最初打開的USB數(shù)據(jù)采集的上位機圖形界面如圖4-3所示 圖4-3 USB數(shù)據(jù)采集的上位機圖形界面3開始轉(zhuǎn)換模塊void CUSBDlg:OnAbout() /開始轉(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表示主機到設(shè)備 myRequest.requestType=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 *)&lenBytes,NULL); /* if valid driver handle */ 該模塊主要調(diào)用EZ-USB的DeviceIoControl()庫函數(shù),并使用它的輔助IOCTL中的IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST模式,實現(xiàn)了向控制端點發(fā)送一個Vendor或Class專用請求,這里向數(shù)據(jù)采集端發(fā)出的是“0xB0”,這一信號是事先與另一位做畢設(shè)的同學(xué)約定好的,當(dāng)數(shù)據(jù)采集端的控制端點收到這一信號即可以開始進行數(shù)據(jù)采集。4接收、處理數(shù)據(jù)模塊為實現(xiàn)數(shù)據(jù)接收將再次調(diào)用EZ-USB的DeviceIoControl()庫函數(shù),并使用它的數(shù)據(jù)傳送IOCTL中的IOCTL_EZUSB_BULK_READ模式,從指定的批量管道或中斷管道中(USB IN)讀取數(shù)據(jù),并將獲得的1K Byte 數(shù)據(jù)先存儲在數(shù)組bulk_buffer 中。然后進行數(shù)據(jù)的保存,將獲得的USB采集數(shù)據(jù)連帶上位機獲得數(shù)據(jù)的時間保存在一個記事本文件中,每行保存16個數(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ù)的顯示,先對接收到的數(shù)據(jù)進行如下處理: for(int i=0;i<1024;i+) if(i%16=0) if(i!=0)strcat(printbuffer2,"rn"); /此處回車要用“/r/n” sprintf(printbuffer1,"%4d",(i+1); strcat(printbuffer2,printbuffer1); sprintf(printbuffer1,"%4d",bulk_bufferi); strcat(printbuffer2,printbuffer1); 這一處理使得需要顯示的數(shù)據(jù)連成一個字符串,并保存在數(shù)組printbuffer2中,可以很方便的用來顯示接收到的數(shù)據(jù)。5顯示數(shù)據(jù)及繪制曲線模塊由于之前進行了相應(yīng)的數(shù)據(jù)處理,這里可以很方便的用以下的這條語句實現(xiàn)數(shù)據(jù)的顯示:“m_edit0.SetWindowText(printbuffer2);” 。其中的m_edit0是顯示數(shù)據(jù)的文本框?qū)ο?,在默認文本框的基礎(chǔ)上根據(jù)實際需要對其功能進行了加強,如實現(xiàn)多行輸入、增加水平及垂直滾動條。顯示的實際效果如圖4-4所示: 圖4-4 顯示實際效果圖繪制曲線的實際效果如圖4-5所示: 圖4-5 繪制曲線的實際效果圖繪制曲線較為核心的程序是DrawWave()子函數(shù),其實現(xiàn)流程圖如圖4-6所示:創(chuàng)建畫筆繪制坐標軸寫繪坐標軸刻度值和刻度繪制實際曲線 圖4-6 DrawWave()子函數(shù)流程圖DrawWave()子函數(shù)完成了繪制坐標軸和曲線的任務(wù)。除此之外,為了能夠通過曲線更好、更全面了解采集數(shù)據(jù)的變化情況,為數(shù)據(jù)曲線的顯示增加了改變顯示比例尺的功能,其中比例尺的設(shè)定是通過一個組合框?qū)崿F(xiàn)的。組合框相關(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=1;break; case 2:Display_Scale=4;break; default: break; 。程序通過改變?nèi)肿兞緿isplay_Scale實現(xiàn)了曲線顯示比例尺的改變,即曲線的縮放。這在“主函數(shù)初始化”模塊部分也進行了相應(yīng)的說明。實現(xiàn)的效果如圖4-7所示: 圖4-7 曲線縮放實際效果圖5 調(diào)試和測試(1)由于以前對C+語言僅限于概念性了解,而對Visual C+ 6.0編譯環(huán)境又接觸較少,軟件編寫和調(diào)試一度受阻,困難重重,后來虛心地向老師和同學(xué)請教,并查閱了大量Visual C+方面的書籍,逐步對C+語言和開發(fā)環(huán)境有了更加深入的認識,可以開展軟件的編寫和調(diào)試。(2)在熟悉C+語言和Visual C+ 6.0編譯環(huán)境的基礎(chǔ)上,首先對各個功能模塊分別進行了調(diào)試:對驅(qū)動程序和“程序初始化”的調(diào)試:先將USB接口插入PC終端機,再運行界面應(yīng)用程序,未跳出"不能打開USB設(shè)備!"的消息框就證明已經(jīng)啟動并檢測USB設(shè)備成功。對數(shù)據(jù)保存程序的調(diào)試:為了消除其他程序可能帶來的干擾,通過將采樣數(shù)組賦值為已知的數(shù)值的方法,單獨對該部分進行調(diào)試。對繪制曲線程序的調(diào)試:采取了與“對數(shù)據(jù)保存程序的調(diào)試”相同的方法,單獨對曲線繪制程序進行了調(diào)試。對接收數(shù)據(jù)程序的調(diào)試:進行斷點調(diào)試,接收完畢后,查看儲存采集所得數(shù)據(jù)的相應(yīng)數(shù)組,判斷是否進行了成功的數(shù)據(jù)采集。將各部分功能模塊程序調(diào)試完畢后,再結(jié)合完整的硬件條件進行完全真實環(huán)境下的調(diào)試。(3)起初,改變曲線顯示比例尺時,顯示曲線沒有實現(xiàn)實時的縮放更新。查找原因,在于每次改變曲線顯示比例尺時,沒有及時的對顯示的曲線進行相應(yīng)的更新。于是在曲線顯示比例尺被改變的程序后,加入相應(yīng)程序,實現(xiàn)了實時更新顯示曲線。5.2測試步驟(1)選擇信號輸入通道1,輸入直流信號,觀察采樣結(jié)果(2)選擇信號輸入通道1,輸入800Hz的正弦波信號,觀察采樣結(jié)果(3)選擇信號輸入通道1,輸入800Hz的三角波信號,觀察采樣結(jié)果(4)選擇信號輸入通道1,輸入800Hz的鋸齒波信號,觀察采樣結(jié)果5.3測試結(jié)果(1) 選擇信號輸入通道1,輸入直流信號,采樣結(jié)果如表5-1:表5-1輸入幅值/V采樣結(jié)果/V測量誤差/V誤差百分率(%)0.600 0.610 0.808 0.809 1.013 1.203 1.201 1.391 1.390 1.596 1.601 1.790 1.790 0 01.991 1.986 2.215 2.213 2.389 2.386 2.600 2.591 平均值=-382平均值=0.32由上表可得,該USB數(shù)據(jù)采集系統(tǒng)很好的完成了直流模擬量值的測量工作。(2) 選擇信號輸入通道1,輸入800Hz,VPP=1V的正弦波信號,采樣結(jié)果如圖5-1所示: 圖5-1 輸入正弦波的采樣結(jié)果(3)選擇信號輸入通道1,輸入800Hz,VPP=1V的三角波信號,采樣結(jié)果如圖5-2所示 圖5-2 輸入三角波的采樣結(jié)果(4)選擇信號輸入通道1,輸入800Hz,VPP=1V的鋸齒波信號,采樣結(jié)果如圖5-3所示 圖5-3 輸入鋸齒波的采樣結(jié)果由(2)、(3)、(4)的采樣結(jié)果可知,該USB數(shù)據(jù)采集系統(tǒng)較好的完成了交流變化模擬量值的測量。6 結(jié)論本設(shè)計方案達到了任務(wù)書的要求,實現(xiàn)了對于電機扭矩的USB數(shù)據(jù)采集,以及對數(shù)據(jù)儲存、處理、顯示和相應(yīng)曲線的繪制:(1)實現(xiàn)了EZ-USB設(shè)備(CY68013)與上位機的接口,并做到高速、穩(wěn)定、可靠、準確;(2)完成了上位機對USB數(shù)據(jù)采集所得數(shù)據(jù)的接收、處理和儲存,并在界面中顯示出接收到的數(shù)據(jù)(每次接收采集1 K Byte的數(shù)據(jù));(3)繪制USB數(shù)據(jù)采集所得數(shù)據(jù)相應(yīng)的曲線,直觀地反映數(shù)據(jù)的變化情況,并增加了曲線的實時縮放功能,便于觀察和分析;(4)USB數(shù)據(jù)采集的界面做到了較為友好、實用和人性化。由于時間、水平和經(jīng)驗有限,在數(shù)據(jù)保存形式、曲線縮放自由度等方面仍有不足之處,有改進的余地,比如為了數(shù)據(jù)更加便于處理和管理,可以保存在數(shù)據(jù)庫里面,曲線的縮放也可以改進得更加自由和實用。這次畢業(yè)設(shè)計對于我來說,是一次不錯的學(xué)習(xí)新知識的機會。通過這次的畢業(yè)設(shè)計,我學(xué)到了很多東西,并通過實踐,增強了自己的動手能力和調(diào)試能力,通過實際工程的設(shè)計實現(xiàn)了理論與實踐的結(jié)合,并學(xué)到了一些解決實際問題的能力。致謝在這幾個月的時間里,從對課題的理解,方案的設(shè)計,到程序的編寫,再到論文的寫作,中間有著自己的努力,更有著老師和同學(xué)的關(guān)心和巨大的幫助。感謝母校和老師們在大學(xué)四年中對我的培養(yǎng)和教育。參考文獻1 胡曉軍,張愛成. USB 接口開發(fā)技術(shù). 西安:西安電子科技大學(xué)出版社,2005.2 李英偉,王成儒,練秋生,胡正平. USB 2.0 原理與工程開發(fā)(第二版).北京:國防工業(yè)出版社,2007.3 張弘. USB接口設(shè)計. 西安:西安電子科技大學(xué)出版社 20034 廖濟林. USB 2.0 應(yīng)用系統(tǒng)開發(fā)實例精講.北京:電子工業(yè)出版社,2006.5 錢峰. EZ-USB FX2 單片機原理、編程及應(yīng)用.北京:北京航空航天出版社,2006.6 黃維通 魯明羽. Visual C+ 程序設(shè)計教程 北京:清華大學(xué)出版社,2005 7 揣錦華. 面向?qū)ο蟪绦蛟O(shè)計與VC+實踐.西安:西安電子科技大學(xué)出版社,2005.8 曹志剛,錢亞生.現(xiàn)代通信原理M.北京:清華大學(xué)出版社,19929Cypress7C10Cypress Corpation. EZ-USB FX2 Manual Technical Referenc.附錄VC+程序:1.程序初始化 BOOL CUSBApp:InitInstance() AfxEnableControlContainer(); /允許應(yīng)用程序作為控件容器來使用HANDLE hObject = CreateMutex(NULL,FALSE,"myobj");/檢查程序是否已經(jīng)運行,若已經(jīng)運行,則對話框報錯 if(GetLastError() = ERROR_ALREADY_EXISTS) CloseHandle(hObject);AfxMessageBox("程序已經(jīng)運行!");return FALSE; / Standard initialization#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 standard INI file options (including MRU) m_hDevice=EzusbOpen();/調(diào)用Ezusb庫函數(shù),啟動USB 外設(shè)并獲得其句柄 if(!m_hDevice) /檢測USB 設(shè)備,若檢測失敗,則對話框報錯 AfxMessageBox("不能打開USB設(shè)備!");/定義并調(diào)用主函數(shù) CUSBDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse = IDOK) else if (nResponse = IDCANCEL) return FALSE;以下是主函數(shù)的各個模塊:2.主函數(shù)初始化CUSBDlg:CUSBDlg(CWnd* pParent /*=NULL*/): CDialog(CUSBDlg:IDD, pParent) Display_Scale=2; m_COMBO1_VALUE = -1; m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);/為用戶打開USB數(shù)據(jù)采集的上位機圖形界面

注意事項

本文(基于usb的數(shù)據(jù)采集系統(tǒng) 畢設(shè)論文)為本站會員(a****)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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