畢業(yè)設(shè)計(jì)(論文)基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、天津職業(yè)技術(shù)師范大學(xué)2010屆本科生畢業(yè)設(shè)計(jì)摘 要信息技術(shù)與電子技術(shù)的迅猛發(fā)展,使得計(jì)算機(jī)和外圍設(shè)備也得到飛速發(fā)展和應(yīng)用,在科學(xué)研究領(lǐng)域和許多生產(chǎn)場(chǎng)合中常用到數(shù)據(jù)采集技術(shù),并且對(duì)數(shù)據(jù)采集的各種要求也越來(lái)越高。傳統(tǒng)的通信方式由于傳輸速度慢、抗干擾能力弱、安裝麻煩等原因嚴(yán)重阻礙了數(shù)據(jù)采集設(shè)備的發(fā)展,新一代通用串行總線(universal serial bus,簡(jiǎn)稱usb)具有傳輸線少、速度快、支持熱插拔以及易于擴(kuò)展等優(yōu)點(diǎn),很好的解決了以上問(wèn)題,因此串行總線技術(shù)在計(jì)算機(jī)系統(tǒng)及通信設(shè)備中迅速得到了廣泛的應(yīng)用。文中分析了usb總線的體系結(jié)構(gòu)和特點(diǎn),針對(duì)傳統(tǒng)總線不足之處,在此基礎(chǔ)上研究了基于usb的數(shù)據(jù)采

2、集系統(tǒng),根據(jù)系統(tǒng)應(yīng)該達(dá)到的技術(shù)指標(biāo),從而確定系統(tǒng)的整體框架和各個(gè)分芯片的選擇。整個(gè)系統(tǒng)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分,實(shí)現(xiàn)數(shù)據(jù)高速轉(zhuǎn)換和采集、數(shù)據(jù)顯示、數(shù)據(jù)保存以及數(shù)據(jù)打印等功能。 系統(tǒng)硬件部分實(shí)現(xiàn)數(shù)據(jù)采集功能,并將采集的數(shù)據(jù)送至usb控制器,再通過(guò)usb接口將數(shù)據(jù)傳送給pc機(jī)。硬件設(shè)計(jì)部分主要包括usb2.0主控制器(c8051f320)外圍電路設(shè)計(jì)與模數(shù)轉(zhuǎn)換器ad0809的連接、電源設(shè)計(jì)部分等。硬件設(shè)計(jì)中的各個(gè)芯片的選擇都以技術(shù)指標(biāo)為依據(jù),每個(gè)部分之間的連接以芯片的工作模式和系統(tǒng)要實(shí)現(xiàn)的功能來(lái)決定。文章每個(gè)部分都給出了芯片選擇的理由和硬件連接的原理圖。系統(tǒng)軟件部分包括usb固件程序、設(shè)備的驅(qū)

3、動(dòng)程序和用戶界面程序。usb固件程序在keil c中完成,實(shí)現(xiàn)c8051f320的初始化;設(shè)備驅(qū)動(dòng)程序?yàn)橛脩艚缑娉绦蛱峁┝塑浖陀布脚_(tái)連接的通道,它由windowsxp ddk和driverstudio來(lái)開(kāi)發(fā);用戶界面程序采用vb語(yǔ)言完成,在vb中調(diào)用驅(qū)動(dòng)函數(shù)中的句柄來(lái)對(duì)硬件設(shè)備進(jìn)行操作,實(shí)現(xiàn)數(shù)據(jù)的接收、保存、和顯示功能。最后以函數(shù)發(fā)生器為對(duì)象對(duì)系統(tǒng)進(jìn)行測(cè)試,從測(cè)試的結(jié)果中可得出此系統(tǒng)性能良好,能達(dá)到設(shè)計(jì)的預(yù)期效果。 關(guān)鍵詞: usb;數(shù)據(jù)采集;c8051f320;上位機(jī);固件abstract with the development of information technology an

4、d electronic technology,computers and other electronic devices also develop fast and be applied widely. data acquisition technology is used in the science research field and lots of manufacture occasion which require every parameter of data acquisition higher and higher. traditional communications s

5、tyle is strongly restricted the development of data acquisition devices because of slow transmitting rate、weak anti-jamming ability、inconvenient installation and so on. new generation universal serial bus has the advantages of small transmission line、quick transmitting rate、sustaining hot-plug and p

6、ull、easy extensibility and so on which solved the problems of traditional communications style well. so universal serial bus technology gains wide application in the computer system and communications devices. this thesis analyses system configuration and characteristics of universal serial bus. aim

7、ing at the shortages of traditional bus,it puts forward the system of data acquisition based on usb . this system has the advantages of quick transmitting rate、plug and play、convenient taking and so on. the whole system contains two parts that are hardware design and software design. it realizes fun

8、ctions of data acquisition、data transition、data saving、data display and data printing. the hardware of the system realizes data acquisition function, which sends data to the usb controller,and then usb controller sends data to pc by usb interface. the hardware design mainly includes the periphery ci

9、rcuit design of the usb2.0 controller (c8051f320)、the connection between the c8051f320 and the a/d 0809 and the power supply design. each chip is choose based on the technology index in the hardware design,and the ports communicate corroding to the mode of the chips and the system function. the pape

10、rs descript the reasons to choose the chips and the principle chart of the hardware connection. the software of system include usb firmware programme、device driver programme and the user programme. the usb firmware programme is accomplished in keil c ,realizing the initialization of c8051f320;the de

11、vice dirver programme provides the channel to the software and the hardware platform for the user programme, which is developed by windows xp ddk and driverstudio; the user programme finishes with vb language,operating the hardware device through calling the handle of drive function in vb,and realiz

12、es the data receiving,saving,and displaying functions.lastly,it tests the system using the function generator as the object. the system performs well from the testing results,reaching the expect effects.key words:usb;;data acquisition;c8051f320;vb;firmware目 錄1緒論11.1課題研究的背景及意義11.2usb技術(shù)發(fā)展趨勢(shì)及優(yōu)缺點(diǎn)分析11.2.

13、1 國(guó)內(nèi)外應(yīng)用現(xiàn)狀及發(fā)展趨勢(shì)11.2.2usb的優(yōu)勢(shì)和局限性21.3課題研究的主要內(nèi)容32基于usb總線數(shù)據(jù)采集系統(tǒng)的整體設(shè)計(jì)42.1usb數(shù)據(jù)采集系統(tǒng)的性能指標(biāo)42.2usb總線數(shù)據(jù)采集系統(tǒng)的硬件構(gòu)成42.3usb數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)53usb 數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì)73.1多通道a/d轉(zhuǎn)換電路的設(shè)計(jì)73.2usb2.0 主控芯片的選擇及介紹73.2.1常用usb2.0控制芯片介紹73.2.1usb2.0控制芯片選型及優(yōu)點(diǎn)分析83.2.2usb控制芯片c8051f32083.2.3通用串行總線控制器93.2.4usb控制芯片及其外圍電路設(shè)計(jì)103.3顯示模塊113.3.1lcd概述113.

14、3.2基本特性113.3.3引腳定義123.3.4基本電路圖與時(shí)序圖123.4電源模塊134usb數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)154.1固件程序的設(shè)計(jì)154.1.1固件基礎(chǔ)154.1.2c8051f320 usb固件程序194.2驅(qū)動(dòng)程序設(shè)計(jì)234.2.2wdm和usb驅(qū)動(dòng)程序的介紹244.2.3驅(qū)動(dòng)程序的源代碼分析254.3用戶界面程序的設(shè)計(jì)274.3.1用戶界面程序的整體構(gòu)想274.3.2主界面的生成294.3.3數(shù)據(jù)接收294.3.4數(shù)據(jù)保存314.3.5數(shù)據(jù)顯示315基于usb數(shù)據(jù)采集系統(tǒng)的軟件測(cè)試335.1數(shù)據(jù)接收測(cè)試335.2數(shù)據(jù)顯示及打印功能測(cè)試335.3本章小結(jié)33結(jié) 論34參考文獻(xiàn)

15、35附錄一: 封面樣例37致 謝38v天津職業(yè)技術(shù)師范大學(xué)2010屆本科生畢業(yè)設(shè)計(jì)1 緒論1.1 課題研究的背景及意義數(shù)據(jù)采集系統(tǒng)是結(jié)合基于計(jì)算機(jī)的測(cè)量軟硬件產(chǎn)品來(lái)實(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)在常用的采集方式

16、是數(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ú)法專門(mén)對(duì)其作電磁屏蔽,從而導(dǎo)致采集的數(shù)據(jù)失真,針對(duì)上述問(wèn)題,急需采用新的技術(shù)解決。 通用串行總線(universal serial bus)的出現(xiàn),很好的解決了以上這些問(wèn)題。它是由compaq、hp、intel、lucent(朗訊)、microsoft、nec和philips七家公司聯(lián)合推出的新一代標(biāo)準(zhǔn)口總線,該總線是一種連接外圍設(shè)備的機(jī)外總線,最

17、多可連接127個(gè)設(shè)備,為微機(jī)系統(tǒng)擴(kuò)充和配置外部設(shè)備提供了方便,不僅解決了i/o插口不夠的問(wèn)題,而且建立了一條連接和訪問(wèn)外設(shè)的方法,這些方法可以有效的減少總體成本,減少硬件沖突。因此,我們能夠利用usb總線接口比較容易的實(shí)現(xiàn)低成本、高可靠性的多點(diǎn)數(shù)據(jù)采集系統(tǒng)。由于usb的種種優(yōu)點(diǎn),被越來(lái)越多的廠商和用戶所接受,出現(xiàn)了usb打印機(jī)、攝像機(jī)等產(chǎn)品。盡管目前usb接口的應(yīng)用主要集中在電腦的周邊外設(shè),但是usb產(chǎn)品進(jìn)入工控領(lǐng)域?qū)⑹潜厝坏内厔?shì),所以本課題的研究是具有一定的現(xiàn)實(shí)意義和經(jīng)濟(jì)意義的。1.2 usb技術(shù)發(fā)展趨勢(shì)及優(yōu)缺點(diǎn)分析1.2.1 國(guó)內(nèi)外應(yīng)用現(xiàn)狀及發(fā)展趨勢(shì)usb設(shè)備的應(yīng)用目前在國(guó)外處于高速發(fā)展階

18、段,國(guó)外有些企業(yè)也已經(jīng)推出了很多能適應(yīng)不同條件、不同精度要求等情況的usb數(shù)據(jù)采集系列產(chǎn)品。典型的是美國(guó)國(guó)家儀器有限公司(national instruments,nl)公司研制的一系列usb數(shù)據(jù)采集卡,nl于2005年8月推出了八款最新usbz.o高速數(shù)據(jù)采集設(shè)備,從而擴(kuò)展了其業(yè)界領(lǐng)先的高性能usb數(shù)據(jù)采集設(shè)備usb一9000系列產(chǎn)品,實(shí)現(xiàn)了高達(dá)800ks/s的采樣率。此后新推出的usb2.0高速設(shè)備包含免費(fèi)的交互式數(shù)據(jù)記錄軟件,以供分析之用,可以實(shí)現(xiàn)數(shù)據(jù)記錄,并將輸出結(jié)果導(dǎo)入像microsoft excel的電子數(shù)據(jù)表程序。憑借總線驅(qū)動(dòng)、即插即用的連接功能,該系列新款設(shè)備使得niusb一9

19、000高品質(zhì)的usb數(shù)據(jù)采集設(shè)備系列如虎添翼,但是nl公司的usb數(shù)據(jù)采集卡系列產(chǎn)品的價(jià)格都比較昂貴。 usb設(shè)備在國(guó)內(nèi)的應(yīng)用己經(jīng)起步,并速度快,水平不斷提高.在幾年前,對(duì)于國(guó)內(nèi)大多數(shù)普通的計(jì)算機(jī)用戶來(lái)說(shuō),usb還是個(gè)新鮮的名詞,那時(shí),市面上能夠買(mǎi)到的usb設(shè)備是非常有限的,基本局限于常用的計(jì)算機(jī)外設(shè),比如說(shuō)usb光驅(qū)、打印機(jī)等。隨著usb體系結(jié)構(gòu)的逐步完善,usb被越來(lái)越多的廠商所支持和推崇,也將應(yīng)用到更廣的領(lǐng)域,市場(chǎng)上國(guó)內(nèi)的主要產(chǎn)品有北京優(yōu)采公司ua300系列、四川拓普公司的udaq、ubox、ucard等系列。國(guó)內(nèi)在usb數(shù)據(jù)采集、usb工業(yè)控制等領(lǐng)域已經(jīng)取得了一定的成果,在現(xiàn)實(shí)中得到成

20、功的應(yīng)用。usb2.0協(xié)議,數(shù)據(jù)傳輸速率高達(dá)480mbps,如此高的傳輸速率能用于1.o的傳輸速率所無(wú)法滿足的地方,如高實(shí)時(shí)性要求的工業(yè)設(shè)備控制、動(dòng)態(tài)圖像實(shí)時(shí)傳輸?shù)?,隨著時(shí)代的進(jìn)步和技術(shù)的發(fā)展,usb必將在更廣闊的領(lǐng)域得到更深層次的應(yīng)用。國(guó)內(nèi)有一些廠商為usb設(shè)備的研發(fā)提供軟硬件支持,這在很大程度上降低了開(kāi)發(fā)難度,減少了開(kāi)發(fā)時(shí)間,提高了開(kāi)發(fā)質(zhì)量和效率usb2.o接口憑借低成本、高性能、可靠穩(wěn)定、方便靈活的特點(diǎn),將逐步成為微型計(jì)算機(jī)的主要輸入輸出方式。總而言之,目前國(guó)內(nèi)對(duì)usb數(shù)據(jù)采集設(shè)備的研制己經(jīng)取得了可喜的發(fā)展,但是與國(guó)外相比,在開(kāi)發(fā)和應(yīng)用的深度和廣度而言,還有一段距離,現(xiàn)場(chǎng)數(shù)據(jù)采集要求比較

21、高的場(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)題。1.2.2 usb的優(yōu)勢(shì)和局限性 usb支持各種pc與外設(shè)之間的連接,還可實(shí)現(xiàn)數(shù)字多媒體集成?,F(xiàn)在的pc幾乎都配備了usb接口,很多操作系統(tǒng)都增加了對(duì)usb的支持,usb總線具有以下優(yōu)勢(shì): 1)設(shè)備安裝和配置容易。usb設(shè)備支持即插即用,安裝usb設(shè)備不必開(kāi)機(jī)箱,加減已安裝過(guò)的設(shè)備,完全不用關(guān)閉計(jì)算機(jī)。所有usb設(shè)備支持插,系統(tǒng)對(duì)其進(jìn)行自動(dòng)配置,不再占用中斷資源或者dma資源,徹底拋棄去

22、的跳線和拔碼開(kāi)關(guān)設(shè)置。usb為接纜和連接頭提供了單一模型,解決了越來(lái)越多造成的插槽緊張問(wèn)題。 2)接口數(shù)目多。每個(gè)usb主機(jī)通過(guò)usb集線器,可以同時(shí)掛接最多個(gè)外圍設(shè)備,有效地解決了多點(diǎn)數(shù)據(jù)采集系統(tǒng)i/o口不夠用的問(wèn)題。 3)數(shù)據(jù)傳輸速度比一般串行總線(如rs232,rs485等)快。usb1.1的接口最快可以達(dá)到12mbps,可以滿足絕大多數(shù)多點(diǎn)數(shù)據(jù)采集系統(tǒng)的要求,鍵盤(pán)、鼠標(biāo)、medem、游戲手柄以及攝像頭等設(shè)備的要求。在pc主機(jī)和采統(tǒng)都具備支持usb2.0標(biāo)準(zhǔn)的接口芯片時(shí),最快可以達(dá)到48ombps,可以滿速數(shù)據(jù)采集的要求。4)有總線電源保護(hù)。系統(tǒng)連續(xù)3ms沒(méi)有總線活動(dòng),usb自動(dòng)進(jìn)入掛起

23、狀態(tài)。5)性價(jià)比的優(yōu)勢(shì)。具有廉價(jià)的電纜和連接頭,并以低廉的價(jià)格提供傳率為1.5mb/s的子通道,將外設(shè)和主機(jī)硬件進(jìn)行了最優(yōu)化的集成,促進(jìn)了低外設(shè)的發(fā)展。6)支持四種傳輸模式。這四種傳輸模式分別為:中斷傳輸、批量傳輸、步傳輸和控制傳輸。盡管usb的應(yīng)用領(lǐng)域越來(lái)越寬,但是它也有其發(fā)展的局限性,其局限要表現(xiàn)為: 1)距離的限制。usb協(xié)議規(guī)定單條usb的長(zhǎng)度不能超過(guò)sm,同時(shí)可過(guò)集線器的方法將其進(jìn)行連接,最多可以接入5個(gè)集線器將線纜距離延30m。對(duì)于一般的應(yīng)用場(chǎng)合,這一距離已經(jīng)基本能夠滿足用戶的需求,但usb接口引入特殊的應(yīng)用場(chǎng)合時(shí)便顯得有些力不從心。2)協(xié)議復(fù)雜,開(kāi)發(fā)難度大。3)測(cè)試?yán)щy大。1.3

24、 課題研究的主要內(nèi)容鑒于usb總線的發(fā)展以及它的諸多優(yōu)點(diǎn),本課題主要研究數(shù)據(jù)采集系計(jì)算機(jī)通過(guò)usb接口通訊的基本方法。在課題研究結(jié)果的基礎(chǔ)上,可以形何形式的usb數(shù)據(jù)采集系統(tǒng)。主要內(nèi)容如下:l)掌握usb總線的協(xié)議及usb總線系統(tǒng)的組成結(jié)構(gòu)。2)研究usb總線接口硬件實(shí)現(xiàn)的方法、需要的芯片及硬件電路。設(shè)計(jì)要求的usb系統(tǒng),并在usb系統(tǒng)的基礎(chǔ)上形成基于usb接口的多點(diǎn)數(shù)據(jù)系統(tǒng)。3)完成usb固件程序的開(kāi)發(fā),研究基于usb總線接口的設(shè)備固件程方法。完成數(shù)據(jù)采集系統(tǒng)及usb接口的固件編程。4)掌握計(jì)算機(jī)usb外圍設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)工具及編程方法,完成用于數(shù)據(jù)通訊的usb設(shè)備驅(qū)動(dòng)程序。5)完成用戶界面

25、程序的編寫(xiě),并對(duì)系統(tǒng)的軟件進(jìn)行測(cè)試。3天津職業(yè)技術(shù)師范大學(xué)2010屆本科生畢業(yè)設(shè)計(jì)2 基于usb總線數(shù)據(jù)采集系統(tǒng)的整體設(shè)計(jì)基于usb總線數(shù)據(jù)采集系統(tǒng)包括兩部分:系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件部分完成數(shù)據(jù)采集功能,并將采集的數(shù)據(jù)送至usb控制器,再通過(guò)usb接口將數(shù)據(jù)傳送給pc機(jī);軟件部分包括usb固件程序、設(shè)備的驅(qū)動(dòng)程序和用戶界面程序。整體設(shè)計(jì)思路為:用戶通過(guò)主機(jī)端的應(yīng)用軟件下載usb固件代碼,并向采集系統(tǒng)發(fā)出讀寫(xiě)命令以及對(duì)a/d的設(shè)置數(shù)據(jù);采集系統(tǒng)收到命令后,根據(jù)所接收的設(shè)置開(kāi)始對(duì)外部的模擬信號(hào)進(jìn)行a/d變換,轉(zhuǎn)換后的數(shù)據(jù)由usb傳輸至計(jì)算機(jī),在用戶程序中實(shí)現(xiàn)數(shù)據(jù)現(xiàn)的接收、存儲(chǔ)和顯示。下面以

26、usb數(shù)據(jù)采集系統(tǒng)須達(dá)到的技術(shù)指標(biāo)來(lái)分別介紹這兩部分的設(shè)計(jì)構(gòu)想和原理。2.1 usb數(shù)據(jù)采集系統(tǒng)的性能指標(biāo)(1) 接口方式:usb總線接口(支持usb2.o接口標(biāo)準(zhǔn)、可熱插拔、即插即拔);(2) 輸入通道:8個(gè)通道(在此設(shè)計(jì)中每次選中一個(gè)通道);(3) 測(cè)量信號(hào):工業(yè)現(xiàn)場(chǎng)各類傳感器的輸出電壓、電流信號(hào);;(4) 信號(hào)的輸入范圍:0-5v ;(5) a/d分辨率:8bit;(6) 用戶程序要實(shí)現(xiàn)數(shù)據(jù)的接收和顯示功能;2.2 usb總線數(shù)據(jù)采集系統(tǒng)的硬件構(gòu)成 基于usb總線數(shù)據(jù)采集系統(tǒng)的硬件部分主要由以下幾部分組成:a/d模數(shù)轉(zhuǎn)換芯片、usb2.0主控器、電源設(shè)計(jì)。實(shí)現(xiàn)多通道數(shù)據(jù)采集,多通道輸入數(shù)

27、據(jù)經(jīng)過(guò)a/d的多通道數(shù)據(jù)選擇并轉(zhuǎn)換,由usb接口控制芯片的in端點(diǎn)讀入緩沖區(qū),再由其out端點(diǎn)輸出至pc機(jī)。其系統(tǒng)的數(shù)據(jù)采集結(jié)構(gòu)圖如圖2.1所示:系統(tǒng)的工作流程為:通道1至通道8的采集信號(hào)經(jīng)多路轉(zhuǎn)換器進(jìn)行選擇,被選中的通道信號(hào)輸入模數(shù)轉(zhuǎn)換器(ad0809)轉(zhuǎn)換為數(shù)字信號(hào),用c8051f320的i/o引腳來(lái)控制ad0809,進(jìn)行讀數(shù)據(jù)。pc的用戶應(yīng)用程序發(fā)出接收數(shù)據(jù)的請(qǐng)求,并有設(shè)備發(fā)出相應(yīng)的響應(yīng)決定是否開(kāi)始傳輸數(shù)據(jù)。當(dāng)系統(tǒng)上電后,系統(tǒng)自動(dòng)識(shí)別設(shè)備后加載驅(qū)動(dòng)程序,usb控制器的固件程序通過(guò)usb電纜從主機(jī)自動(dòng)下載到其內(nèi)部程序ram中,并經(jīng)過(guò)列舉和重列舉后開(kāi)始正常工作,計(jì)算機(jī)可以通過(guò)用戶軟件取得系統(tǒng)

28、的各種配置信息。圖2.1系統(tǒng)硬件設(shè)計(jì)框架2.3 usb數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)usb數(shù)據(jù)采集系統(tǒng)的軟件部分一共包括三部分:芯片的固件程序、設(shè)備的驅(qū)動(dòng)程序和用戶界面程序,這三部分的層次關(guān)系如圖2.2所示:圖2.2 系統(tǒng)軟件的層次圖 usb固件程序是usb數(shù)據(jù)采集系統(tǒng)中處于最底層的設(shè)備端。它主要完成對(duì)usb芯片c8051f320、a/d轉(zhuǎn)換以及整個(gè)電路的初始化,將采集的數(shù)據(jù)送入c8051f320的緩沖區(qū)發(fā)給pc機(jī),接收并執(zhí)行pc發(fā)送的指令。它負(fù)責(zé)處理pc機(jī)發(fā)來(lái)的各種usb設(shè)備請(qǐng)求,并與外圍電路進(jìn)行數(shù)據(jù)傳輸。usb驅(qū)動(dòng)程序給用戶界面程序提供了軟件和硬件平臺(tái)連接的通道。usb驅(qū)動(dòng)程序的開(kāi)發(fā)工具有ddk(

29、driver development kit)和driverworks,系統(tǒng)中的usb驅(qū)動(dòng)程序是driverworks開(kāi)發(fā)的,利用vc+6.0的強(qiáng)大編程平臺(tái),為用戶界面程序提供了控制usb接口芯片的句柄。應(yīng)用程序也稱為用戶界面程序。應(yīng)用程序的功能主要是對(duì)采集的數(shù)據(jù)進(jìn)行顯示,并根據(jù)采集的數(shù)據(jù)進(jìn)行曲線圖的繪制,顯示某指標(biāo)的動(dòng)態(tài)曲線。開(kāi)發(fā)用戶界面程序可以選擇不同的開(kāi)發(fā)軟件,如vc+6.0,vb,delphi,c+builder等等,本系統(tǒng)中的應(yīng)用程序軟件是用vb開(kāi)發(fā)的,其特點(diǎn)是軟件安裝和操作都很簡(jiǎn)便。3 usb 數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì)本章主要完成usb數(shù)據(jù)采集系統(tǒng)的硬件電路的設(shè)計(jì),硬件電路設(shè)計(jì)部分主

30、要包括多通道a/d轉(zhuǎn)換電路、usb2.o主控制器(c8051f320)外圍電路設(shè)計(jì)c8051f320與模數(shù)轉(zhuǎn)換器ad0809的連接、電源設(shè)計(jì)部分等。3.1 多通道a/d轉(zhuǎn)換電路的設(shè)計(jì) 多通道a/d轉(zhuǎn)換電路是把8個(gè)通道的信號(hào)進(jìn)行選擇,每次只選中一個(gè)通道的信號(hào)傳送至ad0809中,在此設(shè)計(jì)中采用的是單片機(jī)的3個(gè)i/o口,與ad0809的三個(gè)地址口(a,b,c)相連,用這三個(gè)引腳來(lái)控制選擇哪一路通道;in0in7共8個(gè)數(shù)據(jù)源與8個(gè)通道相連,d0d7與單片機(jī)的i/o口連接,其中74f74給ad0809提供轉(zhuǎn)換脈沖。其電路連接圖如3.1所示:圖3.1 多通道a/d轉(zhuǎn)換電路圖3.2 usb2.0 主控芯片

31、的選擇及介紹3.2.1 常用usb2.0控制芯片介紹 隨著usb的應(yīng)用日益廣泛,各個(gè)開(kāi)發(fā)商也相繼推出了各自的符合usb相應(yīng)協(xié)議的usb控制器芯片,盡管各種芯片都是嚴(yán)格遵循usb的相關(guān)協(xié)議,但不同的商推出的產(chǎn)品還是有著一定的性能和用途差異,各種usb控制器芯片的結(jié)構(gòu)可分成3種: 1)專為usb設(shè)計(jì)的芯片。這類控制器是為usb應(yīng)用專門(mén)設(shè)計(jì)的芯片,能夠使usb的應(yīng)用達(dá)到最優(yōu)化。 2)與現(xiàn)有的芯片兼容。這類控制器芯片與現(xiàn)有的芯片兼容,這樣開(kāi)發(fā)者己經(jīng)熟悉現(xiàn)有的芯片結(jié)構(gòu)和開(kāi)發(fā)指令,因此開(kāi)發(fā)起來(lái)會(huì)比較容易。最常見(jiàn)的usb控制器都是與8051微處理器兼容。3)需要外部微處理器接口的芯片。這類usb控制器只處理

32、usb通信,而且必須由外部的微處理器來(lái)控制,因此這類控制器需要兩個(gè)芯片,而其他種類的usb控制器則只需一個(gè)芯片(mcu和usb控制器在同一個(gè)芯片上)。3.2.1 usb2.0控制芯片選型及優(yōu)點(diǎn)分析根據(jù)設(shè)計(jì)的需要,在此選用的usb控制芯片是silicon的c8051f320芯片。符合usb規(guī)范2.0版全速(12mbps)或低速(1.5mbps) 集成時(shí)鐘恢復(fù)電路;無(wú)需外部晶體支持8個(gè)端點(diǎn)1kb usb緩存集成收發(fā)器;無(wú)需外部電阻,該芯片性價(jià)比較高。另外c8051f320提供了設(shè)備的“軟”解決方案,使得設(shè)備可以無(wú)限制的配置和升級(jí)。開(kāi)發(fā)包提供的硬件和軟件己經(jīng)為開(kāi)發(fā)者做了大量開(kāi)發(fā)工作,開(kāi)發(fā)者只需在特定

33、的地方加入自己的功能相關(guān)的代碼即可,開(kāi)發(fā)極為方便。3.2.2 usb控制芯片c8051f320高速8051微控制器內(nèi)核: 流水線指令結(jié)構(gòu);70%的指令的執(zhí)行時(shí)間為一個(gè)或兩個(gè)系統(tǒng)時(shí)鐘周期 速度可達(dá)25mips(時(shí)鐘頻率為25mhz時(shí))擴(kuò)展的中斷系統(tǒng) 存儲(chǔ)器: 2304 b內(nèi)部數(shù)據(jù)ram(1k+256+1k usb fifo)-16kb flash;可在系統(tǒng)編程,扇區(qū)大小為512字節(jié) 數(shù)字外設(shè): 25/21個(gè)端口i/o;均耐5v電壓,大灌電流硬件增強(qiáng)型spi、增強(qiáng)型uart和smbus串口4個(gè)通用16位計(jì)數(shù)器/定時(shí)器16位可編程計(jì)數(shù)器/定時(shí)器陣列(pca),有5個(gè)捕捉/比較模塊使用外部時(shí)鐘源和 p

34、ca 或定時(shí)器的實(shí)時(shí)時(shí)鐘方式 時(shí)鐘源: 內(nèi)部振蕩器:0.25%的精度(時(shí)鐘恢復(fù)被使能時(shí))。支持usb和uart操作 外部振蕩器:晶體、rc、c、或外部時(shí)鐘 可在運(yùn)行中切換時(shí)鐘源,適用于節(jié)電方式。圖3.2圖3.33.2.3 通用串行總線控制器通用串行總線控制器(usb)符合usb2.0規(guī)范,可以全速或低速工作,集成了收發(fā)器和端點(diǎn)fifo ram。 共有8個(gè)端點(diǎn): 一個(gè)雙向控制端點(diǎn) (端點(diǎn)0) 和三對(duì)輸入/輸出端點(diǎn) (端點(diǎn)1-3 輸入/輸出)。 xram中有1kb的存儲(chǔ)塊被專門(mén)用作usb fifo空間。該fifo空間被分配給端點(diǎn)0-3;端點(diǎn)1-3 的fifo可以被配置為輸入(in)、輸出(out)

35、或輸入/輸出(分割模式)。最大的fifo大小為512字節(jié)(端點(diǎn)3)。usb可以工作在全速或低速方式。 片內(nèi)4倍時(shí)鐘乘法器和時(shí)鐘恢復(fù)電路允許使用內(nèi)部高精度振蕩器作為usb時(shí)鐘源,實(shí)現(xiàn)全速和低速通信。外部振蕩器也可以與4倍時(shí)鐘乘法器配合使用來(lái)產(chǎn)生usb時(shí)鐘。cpu時(shí)鐘源與usb時(shí)鐘相互獨(dú)立。 usb收發(fā)器符合usb2.0規(guī)范,并包含內(nèi)部匹配和上拉電阻。上拉電阻可以被用軟件使能/禁止,可以根據(jù)軟件選擇的速度設(shè)置(全速或低速)出現(xiàn)在d+或d-引腳。圖3.4 usb控制器原理框圖3.2.4 usb控制芯片及其外圍電路設(shè)計(jì)圖3.5 usb控制器電路圖3.3 顯示模塊顯示系統(tǒng)是單片機(jī)不可或缺的環(huán)節(jié),它為單片

36、機(jī)提供了直觀的觀察環(huán)境。單片機(jī)顯示模塊應(yīng)該能夠做到快速簡(jiǎn)練,并且有語(yǔ)義明確,這對(duì)使用單片機(jī)具有很關(guān)鍵的作用。本實(shí)驗(yàn)系統(tǒng)涉及到兩種顯示方式,液晶顯示和led數(shù)碼管顯示,這兩種顯示方法在生活中被廣泛的應(yīng)用,學(xué)習(xí)這兩種顯示方法對(duì)于單片機(jī)系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì)有很大的意義。3.3.1 lcd概述 帶中文字庫(kù)的128x64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ascii字符集.利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文

37、人機(jī)交互圖形界面。可以顯示8×4行16×16點(diǎn)陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。3.3.2 基本特性Ø 低電源電壓(vdd:+3.0-+5.5v)Ø 顯示分辨率:128×64點(diǎn) Ø 內(nèi)置漢字字庫(kù),提供8192個(gè)16×16點(diǎn)陣漢字(簡(jiǎn)繁體可選) Ø 內(nèi)置 128個(gè)16×8點(diǎn)陣字符 Ø 2mhz時(shí)鐘頻率 Ø 顯示方式:

38、stn、半透、正顯 Ø 驅(qū)動(dòng)方式:1/32duty,1/5bias Ø 視角方向:6點(diǎn) Ø 背光方式:側(cè)部高亮白色led,功耗僅為普通led的1/51/10 Ø 通訊方式:串行、并口可選 Ø 內(nèi)置dc-dc轉(zhuǎn)換電路,無(wú)需外加負(fù)壓 Ø 無(wú)需片選信號(hào),簡(jiǎn)化軟件設(shè)計(jì)Ø 工作溫度: 0 - +55 ,存儲(chǔ)溫度: -20 - +603.3.3 引腳定義lcd12864模塊的20個(gè)引腳定義如下:1.vss  邏輯電源地2.vdd邏輯電源正5v3.v0 lcd驅(qū)動(dòng)電壓4.rs 數(shù)據(jù)/指令選擇:高電平為數(shù)據(jù),低電平為指令

39、5.r/w讀/寫(xiě)選擇:高電平為讀數(shù)據(jù),低電平為寫(xiě)數(shù)據(jù)6.e讀寫(xiě)使能,高電平有效,下降沿鎖定數(shù)據(jù)7.db0數(shù)據(jù)輸入輸出引腳8.db1數(shù)據(jù)輸入輸出引腳9.db2數(shù)據(jù)輸入輸出引腳10.db3數(shù)據(jù)輸入輸出引腳11.db4數(shù)據(jù)輸入輸出引腳12.db5數(shù)據(jù)輸入輸出引腳13.db6數(shù)據(jù)輸入輸出引腳14.db7數(shù)據(jù)輸入輸出引腳15.cs1片選擇號(hào),低電平時(shí)選擇前64列16.cs2片選擇號(hào),低電平時(shí)選擇后64列17.ret復(fù)位信號(hào),低電平有效。18.vee輸出15v電源給v0提供驅(qū)動(dòng)電源19.a背光電源led正極20.k背光電源led負(fù)極3.3.4 基本電路圖與時(shí)序圖Ø 基本連接電路圖如下圖3.6圖3

40、.6Ø 串行連接時(shí)序圖圖3.7第一字節(jié):作用是控制數(shù)據(jù):其格式是:11111abc。其中:a為數(shù)據(jù)傳送方向控制:h表示數(shù)據(jù)從lcd到mcu,l表示數(shù)據(jù)從mcu到lcd;b為數(shù)據(jù)類型選擇:h表示數(shù)據(jù)是顯示數(shù)據(jù)。l表示數(shù)據(jù)是控制指令;c固定為0第二字節(jié):表示數(shù)據(jù)的高4位,格式是dddd0000第三字節(jié):表示數(shù)據(jù)的低4位,格式是0000dddd3.4 電源模塊圖3.8在此系統(tǒng)中,一共需要兩種大小不同的供電電源,一個(gè)是ad0809需要+5v供電電源,在此我們選用效率比較高的lm2576-adj的芯片來(lái)設(shè)計(jì)電路電源,電路如圖3.1.1。同時(shí)電路中usb模塊也可直接利用usb總線上的+5v電源,

41、不需要轉(zhuǎn)換;c8051f320芯片的工作的電壓是+3.3v,而系統(tǒng)使用總線供電,因此就需要電源轉(zhuǎn)換,以滿足系統(tǒng)中各個(gè)部分所需要的電源,下面介紹由+5v轉(zhuǎn)換為+3.3v電源的設(shè)計(jì)。電路中采用as1117-3.3的ldo芯片,能提供最大500ma的電路,完全可以滿足電路的基本功能。為了保證c8051f320的芯片中模擬與數(shù)字地分開(kāi),在電源的輸入端用2歐姆的電阻,來(lái)分隔電路的電源部分為了保證電路中采用外部電源供電,由于電源電壓可以超過(guò)5v,采用短路帽p1隔開(kāi)兩部分電源。圖3.94 usb數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì) usb數(shù)據(jù)采集系統(tǒng)的軟件部分一共包括三部分:芯片的固件程序、硬件的驅(qū)動(dòng)程序和用戶界面程序,

42、本章具體介紹這三部分的內(nèi)容。4.1 固件程序的設(shè)計(jì)4.1.1 固件基礎(chǔ) 對(duì)于主機(jī)驅(qū)動(dòng)和人機(jī)接口設(shè)備(hid)通信,設(shè)備必須使用相應(yīng)的固件程序來(lái)滿足一定的要求,通過(guò)固件程序的調(diào)度,主機(jī)才可以得到設(shè)備的描述符以及完成端點(diǎn)數(shù)據(jù)的傳輸。 (1)固件與報(bào)表設(shè)備的描述符必須識(shí)別設(shè)備為一個(gè)hid設(shè)備,除了缺省的控制流程,固件必須支持中斷in端點(diǎn)。另外,固件程序中要包括設(shè)備描述符,它定義了傳送和接收設(shè)備數(shù)據(jù)的格式。要發(fā)送數(shù)據(jù),固件必須支持get_report控制傳輸和中斷in傳輸;要接收數(shù)據(jù),固件必須支持set_report控制傳輸和中斷out傳輸。hid設(shè)備傳輸?shù)臄?shù)據(jù)必須有一個(gè)定義過(guò)的報(bào)表格式,在報(bào)表里描述

43、了數(shù)據(jù)的大小和內(nèi)容。hid設(shè)備可能支持一個(gè)或多個(gè)報(bào)表。報(bào)表中的一個(gè)值定義該報(bào)表為一個(gè)輸入報(bào)表、輸出報(bào)表或特征報(bào)表。輸入報(bào)表發(fā)送數(shù)據(jù)到主機(jī),輸出報(bào)表從主機(jī)接收數(shù)據(jù),特征報(bào)表可以在兩個(gè)方向傳輸數(shù)據(jù)。特征報(bào)表總是使用控制傳輸。識(shí)別hid設(shè)備 由表4.1 hid描述符 表4-1給出了hid描述符。報(bào)表描述符是一種類描述符。主機(jī)通過(guò)發(fā)送get_descriptor請(qǐng)求來(lái)獲取這個(gè)描述符,默認(rèn)的報(bào)表數(shù)值為00h。它定義了執(zhí)行設(shè)備功能的數(shù)格式和使用方法,需要有足夠的靈活度,其格式應(yīng)該簡(jiǎn)單,這樣當(dāng)傳輸數(shù)據(jù)時(shí)就不會(huì)占用太多的存儲(chǔ)空間和總線時(shí)間。報(bào)表描述符的內(nèi)容和長(zhǎng)度隨設(shè)備而不同,可以而簡(jiǎn)潔,也可長(zhǎng)而復(fù)雜。 (3)

44、hid特定請(qǐng)求hid除了能支持11個(gè)標(biāo)準(zhǔn)控制請(qǐng)求,還支持6個(gè)特定請(qǐng)求。表4.2列出了些請(qǐng)求。所有的hid必須支持get_report請(qǐng)求,所有引導(dǎo)設(shè)備都必須支持get_protocol和set_protocol請(qǐng)求,其他請(qǐng)求是可選的。但是,如果設(shè)備沒(méi)有中斷out端點(diǎn),則需要支持set_report來(lái)從主機(jī)接收數(shù)據(jù)。不支持特征報(bào)表的設(shè)備只使用中斷傳輸來(lái)發(fā)送數(shù)據(jù),設(shè)備可能不會(huì)用到get_report請(qǐng)求,但為了遵循協(xié)議,必須支持這個(gè)請(qǐng)求以防止主機(jī)可能使用get_report。表4.1 hid描述符偏移量字段大?。╞)描述0blength1描述符表示的長(zhǎng)度1bdescriptor121h表示hid類

45、2bcdhid2hid規(guī)范發(fā)布號(hào)4bcountycode1識(shí)別本地硬件的數(shù)字化表示5bnumdescriptor1支持的從屬類描述符的數(shù)目6bdescriptortype1類描述符類型7wdescriptortype2報(bào)表描述符的長(zhǎng)度9bdescriptortype2識(shí)別描述符類型的常數(shù)。對(duì)于有多于一個(gè)描述符的設(shè)備是可選的11wdescriptorlength2描述符的長(zhǎng)度,對(duì)于有多于一個(gè)描述符的設(shè)備是可選的 表4.2 hid特定請(qǐng)求請(qǐng)求號(hào)請(qǐng)求數(shù)據(jù)源值指針數(shù)據(jù)長(zhǎng)度數(shù)據(jù)是否需要01hget_report設(shè)備報(bào)表id中斷報(bào)表長(zhǎng)度報(bào)表是02hget_idle設(shè)備報(bào)表id中斷1閑置時(shí)間否03hget_

46、protocol設(shè)備0中斷1協(xié)議引導(dǎo)設(shè)備需要04hset_report主機(jī)報(bào)表id中斷報(bào)表長(zhǎng)度報(bào)表否05hset_idle主機(jī)閑置時(shí)間中斷0無(wú)否06hset_protocol主機(jī)協(xié)議中斷0無(wú)引導(dǎo)設(shè)備需要(4)數(shù)據(jù)傳輸 當(dāng)枚舉完成以后,主機(jī)識(shí)別設(shè)備為hid設(shè)備,建立支持端點(diǎn)的流程,并知道了發(fā)送和接收數(shù)據(jù)所使用的報(bào)表格式。主機(jī)使用控制傳輸來(lái)發(fā)送和接收包括其他配置數(shù)據(jù)或其他沒(méi)有嚴(yán)格時(shí)間要求的數(shù)據(jù)特征報(bào)表。主機(jī)使用中斷傳輸,在輸入和輸出報(bào)表里發(fā)送和接收周期或低延遲的數(shù)據(jù)。設(shè)備固件代碼必須有補(bǔ)充的代碼來(lái)對(duì)主機(jī)的請(qǐng)求做出響應(yīng)。當(dāng)傳輸數(shù)據(jù)到主機(jī)時(shí):在一個(gè)中斷或控制傳輸中,發(fā)據(jù)。對(duì)中斷做出響應(yīng),設(shè)備固件需要在

47、它的傳輸緩沖區(qū)里放好請(qǐng)求的數(shù)據(jù),然后配置成響應(yīng)中斷水請(qǐng)求。在設(shè)備收到一個(gè)中斷in請(qǐng)求時(shí),它就把數(shù)據(jù)傳輸給主機(jī),同時(shí),新的待傳輸?shù)臄?shù)據(jù)也將被送入緩存區(qū)中,等待下一次傳輸。如果設(shè)備沒(méi)有數(shù)據(jù)要發(fā)送,則發(fā)送一個(gè)nak來(lái)響應(yīng)請(qǐng)求。當(dāng)從主機(jī)接收數(shù)據(jù)時(shí):芯片的結(jié)構(gòu)和描述符決定了設(shè)備的中斷out流程是否可用。主機(jī)總是用set_report控制請(qǐng)求來(lái)發(fā)送特征報(bào)表。如果設(shè)備有一個(gè)中斷out端點(diǎn)并需要接收低延遲數(shù)據(jù)的話,那么端點(diǎn)應(yīng)該配置成接收?qǐng)?bào)表數(shù)據(jù)。當(dāng)新的數(shù)據(jù)到達(dá)時(shí),中斷通常會(huì)通知設(shè)備這個(gè)事件,固件的中斷服務(wù)程序做相應(yīng)的處理工作。如果設(shè)備沒(méi)有中斷out端點(diǎn),則固件必須檢測(cè)set_report控制請(qǐng)求并處理請(qǐng)求里的

48、報(bào)表數(shù)據(jù)。芯片也必須做同樣的工作來(lái)接收特征報(bào)表。使用控制傳輸比中斷傳輸要復(fù)雜。(5)固件的執(zhí)行 對(duì)于所有的usb人機(jī)接口設(shè)備似id)來(lái)說(shuō),它們的應(yīng)用都遵循著同樣的啟動(dòng)過(guò)程,這個(gè)過(guò)程如圖4.1所示。 圖4.1 l)設(shè)備的接入 當(dāng)usb總線設(shè)備連接到總線上時(shí),它雖然被供電了,但這時(shí)它并不起任何作用,而是在等待著總線復(fù)位。 2)總線復(fù)位 當(dāng)有新的usb總線設(shè)備接入時(shí),主機(jī)檢測(cè)到這個(gè)新usb總線設(shè)備并復(fù)它??偩€復(fù)位過(guò)程見(jiàn)圖4.2所示。圖4.2 3)枚舉主機(jī)發(fā)送一個(gè)后跟創(chuàng)包的setup包,這個(gè)包從地址o讀取設(shè)備描述符。當(dāng)主機(jī)收到描述符后,它就會(huì)給該設(shè)備分配一個(gè)新的usb地址。然后設(shè)備與主機(jī)進(jìn)行通信,同時(shí)

49、主機(jī)繼續(xù)從設(shè)備描述符、配置描述符及其他的描述符中得知設(shè)備的信息。通過(guò)從設(shè)備返回的信息,主機(jī)能知道該設(shè)備支持的端點(diǎn)數(shù)。這時(shí),枚舉過(guò)程就完成了。具體過(guò)程見(jiàn)圖4.3所示。4)數(shù)據(jù)的傳輸usb總線通過(guò)位于同主機(jī)上的客戶軟件相對(duì)應(yīng)的緩存區(qū)和usb總線設(shè)備上的端點(diǎn)之間的管道來(lái)傳送數(shù)據(jù)。在消息管道中傳輸?shù)臄?shù)據(jù)具有usb總線定義的結(jié)構(gòu),但是usb總線也允許在消息數(shù)據(jù)負(fù)載中傳送某個(gè)特定設(shè)備結(jié)構(gòu)的數(shù)據(jù)。usb總線規(guī)定對(duì)于任一種管道類型,數(shù)據(jù)經(jīng)過(guò)總線時(shí)要進(jìn)行分組,但是最終對(duì)一個(gè)總線操作的數(shù)據(jù)負(fù)載中傳送的數(shù)據(jù)進(jìn)行分析和解釋工作則要由客戶軟件和使用該管道的功能模塊來(lái)完成。4.1.2 c8051f320 usb固件程序f

50、w.c是固件運(yùn)行的主程序文件,負(fù)責(zé)處理主機(jī)發(fā)出的各種usb設(shè)備請(qǐng)求,里面包含著函數(shù)的實(shí)現(xiàn)的代碼。程序首先是全局變量的初始化,如下:/初始化全局狀態(tài)變量sleep=false; /使睡眠狀態(tài)無(wú)效rwuen=false; /使遠(yuǎn)程喚醒無(wú)效selfpwr=false; /使自供電無(wú)效gotsud=false; /清除得到裝載數(shù)據(jù)標(biāo)志位然后初始化設(shè)備,代碼如下:/初始化用戶設(shè)備td_init();usb的描述符的定位代碼,因?yàn)闆](méi)有外部程序存儲(chǔ)器,描述符重定位代碼:/下面的代碼是分配描述表pdevieedser=(word)&devieedser;pdevieequaldser=(word)&a

51、mp;devieequaldser;phighspeedconfigdser=(word)&highspeedconfigdser;pfullspeedconfigdser=(word)&fullspeedconfigdser;pstringdser=(word)&stringdser;設(shè)備描述符重新定位以后,cy7c68o13循環(huán)調(diào)用源代碼,如果有setup包則執(zhí)行相應(yīng)的處理函數(shù),否則執(zhí)行數(shù)據(jù)傳送函數(shù)。如下:whlle(true) /主循環(huán)if(gotsud) /等待sudavsetupcommand(); /指向setup指令gotsud=false; /清除sud

52、av標(biāo)志位 (2)用戶定義功能程序wrusb.c分析下面分別介紹主程序中的兩個(gè)函數(shù):td_init()函數(shù)和td_poll()函數(shù)l)td_init()函數(shù)td_init()是c8051f320的初始化程序,它是在重新枚舉和開(kāi)始任務(wù)分配前調(diào)用的。其初始化工作主要完成以下內(nèi)容:設(shè)置的cpu的時(shí)鐘頻率和slavefifo接口時(shí)鐘頻率,均為48mhz設(shè)置傳輸方式為bulk方式,并設(shè)置相關(guān)的端點(diǎn)的傳輸方向其程序代碼如下:void td_init(void) /開(kāi)始時(shí)調(diào)用 /設(shè)置cpu的時(shí)鐘為48mhzcpucs=(cpucs&bmclkspd)/bmclkspdi); /設(shè)置slavefifo

53、接口時(shí)鐘為48mhzifconfig=0x40;ep1outefg=oxao; /ep1為bulk傳輸方式,方向:輸出epimcfg=oxe2; /ep1為bulk傳輸方式,方向:輸入syncdelay;epzcfg=oxe2; /ep2為bulk傳輸方式,方向:輸入,雙緩沖syncdelay;ep4cfg=0x20; /ep4未使用syncdelay;ep6cfg=0xa2; /ep6為bulk傳輸方式,方向:輸出,雙緩沖syncdelay;epscfg=0x20; /ep8未使用syncdelay;epzbcl=0x80;syncdelay;epzbcl=0x80;syncdelay;au

54、toptrsetup=0x01; /使能雙緩沖自動(dòng)指針rwnen=true; /使能遠(yuǎn)程喚醒2)tdpoll()函數(shù)tdpoll()函數(shù)是用戶自己要實(shí)現(xiàn)功能函數(shù),在這個(gè)函數(shù)中,系統(tǒng)實(shí)現(xiàn)了將數(shù)據(jù)寫(xiě)入輸出端點(diǎn)緩沖區(qū)內(nèi),等待pc機(jī)的讀取。在usb循環(huán)調(diào)用的過(guò)程中不斷執(zhí)行用戶程序,不斷進(jìn)行數(shù)據(jù)的傳輸。其程序代碼如下:void td_poll(void) /當(dāng)設(shè)備閑置時(shí)重復(fù)調(diào)用int i;bytexdata*addr;addr=memory;read_data(void);if(!(ep2468tat&bmep2full) /檢查epz數(shù)據(jù)是否滿autoptrhi“msb(&ep2fifobuf):autoptrli=lsb(&ep2fifobuf); /通過(guò)自動(dòng)指針將epzin緩沖區(qū)的數(shù)據(jù)傳送給ep6outfor(i=ox0000:i<512;i+)addri=in2bufi;out6buf11=addri;ep2bch=msb(512);syncdelay;ep2bcl=lsb(512); /重新配置ep2在td_poll()函數(shù)中執(zhí)行讀取數(shù)據(jù)傳輸程序,首先判斷緩沖區(qū)是否滿標(biāo)志,如果不滿,則開(kāi)始讀取8位數(shù)據(jù),也就是刀d的數(shù)據(jù),并把緩沖區(qū)的地址指針加1,保證數(shù)據(jù)不會(huì)被后來(lái)的數(shù)據(jù)覆蓋,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論