版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、四川師范大學(xué)成都學(xué)院本科畢業(yè)設(shè)計(jì)四川師范大學(xué)成都學(xué)院本科畢業(yè)設(shè)計(jì) 基于usb的數(shù)據(jù)采集卡設(shè)計(jì)學(xué)生姓名杜學(xué)成學(xué) 號(hào)2009101038所 在 系通信工程系專(zhuān)業(yè)名稱(chēng)通信工程班 級(jí)2009級(jí)1班指導(dǎo)教師段純爽四川師范大學(xué)成都學(xué)院二一三年三月34基于usb的數(shù)據(jù)采集卡設(shè)計(jì)學(xué)生:杜學(xué)成 指導(dǎo)教師:段純爽內(nèi)容摘要:本論文所設(shè)計(jì)的數(shù)據(jù)采集卡是在單片機(jī)at89c5131控制下進(jìn)行數(shù)據(jù)采集,主要核心部分是微控制器和usb控制器,通過(guò)兩者結(jié)合實(shí)現(xiàn)上位機(jī)和下位機(jī)之間的usb通信,使用at89c5131單片機(jī)采集到數(shù)據(jù)通過(guò)usb數(shù)據(jù)線(xiàn)傳輸給pc機(jī),在從pc機(jī)上的usb數(shù)據(jù)采集界面,可顯示出采集數(shù)據(jù)的波形圖功能,最后實(shí)
2、現(xiàn)數(shù)據(jù)采集功能。在數(shù)據(jù)采集系統(tǒng)中,傳統(tǒng)外接設(shè)備與主機(jī)通信口一般采用isa、pci、1394等標(biāo)準(zhǔn),但是基于這些接口的產(chǎn)品,要不安裝麻煩,要不就是價(jià)格昂貴,還受到計(jì)算機(jī)插槽數(shù)量和地址中斷資源的限制,并且可擴(kuò)展性差,但usb的出現(xiàn)很好地解決了以上所有問(wèn)題。作為一種新型串口通信標(biāo)準(zhǔn),它不但具有較高的傳輸速率,而且可擴(kuò)展性好、采用總線(xiàn)供電,因此使用起來(lái)更加靈活。usb數(shù)據(jù)采集共有4種傳輸模式:同步傳輸、控制傳輸、批量傳輸、中斷傳輸,以此用來(lái)適應(yīng)不同設(shè)備的需求。同時(shí)信息技術(shù)與電子技術(shù)發(fā)展迅猛,也使得計(jì)算機(jī)和計(jì)算機(jī)外圍設(shè)備得到飛速發(fā)展和應(yīng)用。過(guò)去人們單純追求計(jì)算機(jī)與外設(shè)之間的數(shù)據(jù)傳輸速度,而現(xiàn)在操作安裝的
3、簡(jiǎn)易性和糾錯(cuò)能力也成為人們關(guān)注的問(wèn)題。usb通訊技術(shù)出現(xiàn)后,使高傳輸速度、強(qiáng)糾錯(cuò)能力、易擴(kuò)展性、即插即用等優(yōu)點(diǎn)有機(jī)的結(jié)合在一起,使得usb數(shù)據(jù)采集發(fā)展前景更為廣闊。關(guān)鍵詞:數(shù)據(jù)采集 usb接口 控制器 design of data acquisition card based on usbabstract:the data acquisition system designed is under the control of scm data acquisition in at89c5131. the micro controller and the usb controller as the
4、 core part, implementation of usb communication between upper machine and lower machine through the combination of the two, there to the data line via the usb data is transmitted to the pc through the at89c5131 collection. and the development of applications on pc, from the usb data acquisition inte
5、rface on pc machine, can display the waveform function of data acquisition, data acquisition function.in data acquisition system, communication host and peripherals traditional mouth generally use the isa, pci, 1394 standards, these interface products, based on the installation of trouble, the price
6、 is expensive, and the slot number, address and interrupt resources constraints, poor scalability, usb, is a good solution to the above problem. usb is a kind of serial communication standard model, the transmission rate is high, good scalability, the bus power supply, the use of flexible. it has a
7、total of 4 transmission modes: control transfer, interrupt transfer, synchronous transmission, mass transfer, in order to adapt to the needs of different equipment. the rapid development of information technology and electronic technology, the computer and peripheral equipment has also been rapid de
8、velopment and application. in the past people only pursue the transmission speed between computer and peripherals, simplicity of installation error correction ability and operation now has become one of the focuses of the target. usb communication technology, the high transmission speed, strong erro
9、r correction ability, expansibility, easy plug-and-play, organic unifies in together, at the same time, also make the development of a broader usb data acquisition.keywords: data acquisition usb interface controller 目錄1 usb簡(jiǎn)介51.1 usb的互連61.2 usb的主機(jī)71.2.1 usb驅(qū)動(dòng)(usbd)71.3 usb設(shè)備71.4 usb的物理層82 整體方案設(shè)計(jì)82.1
10、 方案論證92.2 方案比較103 單元模塊設(shè)計(jì)113.1 微控制器及usb控制器接口電路模塊113.1.1 at89c5131封裝及引腳說(shuō)明113.1.2 at89c5131的usb接口電路123.2 ad轉(zhuǎn)換電路模塊143.2.1 a/d轉(zhuǎn)換器143.2.2a/d轉(zhuǎn)換器接口電路163.3 外接存儲(chǔ)器接口電路173.3.1 外接存儲(chǔ)器173.3.2 外接存儲(chǔ)器接口電路183.4 系統(tǒng)外圍電路193.5 軟件設(shè)計(jì)203.5.1 固件程序203.5.2 usb設(shè)備驅(qū)動(dòng)程序243.5.3 應(yīng)用程序264 小結(jié)295 致謝306 參考文獻(xiàn)317 附錄327.1 硬件連接電路圖327.2 pcb圖33
11、1 usb簡(jiǎn)介通用串行總線(xiàn)標(biāo)準(zhǔn)usb是1995年微軟、康柏、dec、ibm等公司為解決傳統(tǒng)總線(xiàn)不足的問(wèn)題而推出的一種新型通信標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)具有高帶寬、安裝方便、易擴(kuò)展諸多優(yōu)點(diǎn),逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)闹饕侄巍;趗sb數(shù)據(jù)采集卡充擁有usb總線(xiàn)的上述優(yōu)點(diǎn),有效優(yōu)化解決傳統(tǒng)數(shù)據(jù)采集卡的安裝麻煩、擴(kuò)展不便等弊端。隨著現(xiàn)代工業(yè)生產(chǎn)和現(xiàn)代科學(xué)研究對(duì)數(shù)據(jù)采集的要求日益提高。許多地方都要求數(shù)據(jù)采集系統(tǒng)朝著便攜化的方向發(fā)展,并且要求系統(tǒng)功耗低、體積小、使用方便靈活、傳輸速率快。當(dāng)前數(shù)據(jù)采集系統(tǒng)開(kāi)發(fā)過(guò)程中考慮的主要問(wèn)題有如下兩點(diǎn):1,如何才能節(jié)省電能以使系統(tǒng)工作時(shí)間更長(zhǎng)。2,如何通信才能使得系統(tǒng)數(shù)據(jù)傳輸速度更快
12、。在我國(guó)國(guó)民經(jīng)濟(jì)和工業(yè)生產(chǎn)迅速發(fā)展,傳統(tǒng)工業(yè)數(shù)據(jù)采集已經(jīng)滿(mǎn)足不了工業(yè)現(xiàn)代化的發(fā)展。因我國(guó)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)的復(fù)雜性,所以數(shù)據(jù)的采集正在向網(wǎng)絡(luò)化、智能化、集成化等方向發(fā)展。傳統(tǒng)的數(shù)據(jù)采集方式有許多種,比如并口采集數(shù)據(jù)、安裝數(shù)據(jù)采集板卡、串口采集數(shù)據(jù)。其最常用的方法是安裝數(shù)據(jù)采集板卡,但它的缺點(diǎn)是安裝麻煩,每次安裝都需要關(guān)機(jī)后打開(kāi)機(jī)箱才能插入板卡,受到計(jì)算機(jī)插槽數(shù)量、地址以及中斷資源的限制,外接設(shè)備數(shù)量有限,此外機(jī)箱環(huán)境干擾可能導(dǎo)致通訊過(guò)程中產(chǎn)生中斷。隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,通用計(jì)算機(jī)外設(shè)接口有了明顯改觀(guān),并口、串口等傳統(tǒng)接口已不再使用,從而傳統(tǒng)的數(shù)據(jù)采集方式已經(jīng)過(guò)時(shí),usb數(shù)據(jù)采集卡的時(shí)代已經(jīng)到來(lái)。
13、在此也淺淡一下數(shù)據(jù)采集檢測(cè)技術(shù),數(shù)據(jù)采集監(jiān)測(cè)技術(shù)已成為日益重要的檢測(cè)技術(shù),廣泛應(yīng)用于需要監(jiān)控濕度、溫度、壓力等工農(nóng)業(yè)中。數(shù)據(jù)采集過(guò)程是工業(yè)控制等系統(tǒng)中的重要過(guò)程,通常主要采用一些功能獨(dú)立的單片機(jī)系統(tǒng)來(lái)采集,是測(cè)控系統(tǒng)不可缺少的一部分,因?yàn)閿?shù)據(jù)采集的性能特點(diǎn)直接影響到整個(gè)系統(tǒng)的穩(wěn)定性。在生產(chǎn)過(guò)程中這一系統(tǒng)可對(duì)現(xiàn)場(chǎng)的工藝參數(shù)進(jìn)行監(jiān)視、采集以及記錄,從而提高產(chǎn)品質(zhì)量,提供信息和手段,降低生產(chǎn)成本。而在科學(xué)研究中應(yīng)用該系統(tǒng)可以獲得大量動(dòng)態(tài)然后研究瞬間物理過(guò)程,也成為獲取科學(xué)奧秘重要手段之一??傊?,無(wú)論在哪個(gè)領(lǐng)域,數(shù)據(jù)采集系統(tǒng)應(yīng)用的越及時(shí),工作效率就愈高,獲得經(jīng)濟(jì)利益就愈大,這是毋庸置疑的。usb數(shù)據(jù)采
14、集卡是在實(shí)驗(yàn)的基礎(chǔ)上結(jié)合單片機(jī)研發(fā)的課題,在實(shí)際應(yīng)用中有著無(wú)法取代的地位,使數(shù)據(jù)采集技術(shù)上升了又一臺(tái)階。此次論文的設(shè)計(jì)鞏固了我對(duì)單片機(jī)的基礎(chǔ)知識(shí)以及各門(mén)學(xué)科知識(shí),由于設(shè)計(jì)所涉及到的知識(shí)面很廣,就如對(duì)我的大學(xué)所學(xué)知識(shí)的一個(gè)整體回顧。既然此論文是基于usb的,下面就讓我們先來(lái)了解一下usb。1.1 usb的互連一個(gè)usb系統(tǒng)主要被定義為三個(gè)部分:l usb的互連;l usb的設(shè)備; l usb的主機(jī)。usb互連是指usb設(shè)備與主機(jī)之間進(jìn)行連接和通信的操作,主要包括以下幾方面:·總線(xiàn)拓?fù)浣Y(jié)構(gòu):usb設(shè)備與主機(jī)之間各種連接方式;·內(nèi)部層次的關(guān)系:根據(jù)性能疊置,usb任務(wù)被分配到系統(tǒng)
15、的每一個(gè)層次;·數(shù)據(jù)流模式:描述數(shù)據(jù)在系統(tǒng)中通過(guò)usb從產(chǎn)生方到使用方的流動(dòng)方式;·usb的調(diào)度:usb提供一個(gè)共享的連接,可以使用的連接進(jìn)行了調(diào)度以支持同步數(shù)據(jù)傳輸,并且避免了判別優(yōu)先級(jí)。1.2 usb的主機(jī)主機(jī)和設(shè)備都被劃分成不同層次。由圖2-1可見(jiàn)主機(jī)上垂直的箭頭是實(shí)際的信息流。設(shè)備上的對(duì)應(yīng)接口是基于不同實(shí)現(xiàn)的。在主機(jī)與設(shè)備之間所有通信最終都是通過(guò)usb的電纜進(jìn)行,然而,在上層水平層之間存在邏輯的主機(jī)-設(shè)備信息流。主機(jī)上的客戶(hù)軟件以及設(shè)備功能部件之間的通信是基于實(shí)際的應(yīng)用需求及設(shè)備所能提供的能力。圖1.1展示的是usb通信模型之間基本的信息流與互連關(guān)系??蛻?hù)usb系統(tǒng)
16、主機(jī)控制器功能部件usb設(shè)備usb總線(xiàn)接口邏輯流實(shí)際流圖1.1 通信模型層次關(guān)系圖1.2.1 usb驅(qū)動(dòng)(usbd)usbd提供供操作系統(tǒng)組件特別是設(shè)備驅(qū)動(dòng)程序訪(fǎng)問(wèn)設(shè)備的一組接口。這些操作組件只能通過(guò)usbd來(lái)訪(fǎng)問(wèn)usb。usbd的具體實(shí)現(xiàn)是基于不同的操作系統(tǒng)。一個(gè)usbd可以訪(fǎng)問(wèn)一個(gè)或多個(gè)hcd(主機(jī)控制器的驅(qū)動(dòng)程序),而一個(gè)hcd可能與一個(gè)甚至多個(gè)主機(jī)控制器相連。某些操作系統(tǒng)很可能允許對(duì)usbd的初始化進(jìn)行一些設(shè)置。從客戶(hù)觀(guān)點(diǎn)來(lái)看,通過(guò)客戶(hù)進(jìn)行通信的usbd管理著所有連接著的usb設(shè)備。1.3 usb設(shè)備usb設(shè)備可被劃分三層:1) 首先底層是傳送和接收數(shù)據(jù)包的總線(xiàn)接口。2) 其次中間層處
17、理總線(xiàn)接口與不同端點(diǎn)之間的數(shù)據(jù)路由端節(jié)點(diǎn)是數(shù)據(jù)的終結(jié)提供處或使用處,它可被看作數(shù)據(jù)源或數(shù)據(jù)接收端(sink)。3) 最上層功能是由串行總線(xiàn)設(shè)備提供,比如鼠標(biāo)或isdn接口。1.4 usb的物理層usb物理接口包括電氣特性和機(jī)械特性。usb主要通過(guò)四線(xiàn)電纜來(lái)傳輸信號(hào)與電源,如圖1.2所示。圖1.2 usb電纜定義其中d+和d-是一對(duì)差模的信號(hào)線(xiàn)而vbus和gnd則提供了5v的電源它可以給一些設(shè)備(包括hub)供電當(dāng)然要有一定的條件限制。usb信號(hào)線(xiàn)在高速模式下必須使用帶有屏蔽的雙絞線(xiàn),而且最長(zhǎng)不能超過(guò)5m。而在低速模式時(shí)中可以使用不帶屏蔽或不是雙絞的線(xiàn),但最長(zhǎng)不能超過(guò)30m。這主要是由于信號(hào)衰減
18、的限制,為了提供信號(hào)電壓保證以及與終端負(fù)載相匹配,在電纜的每一端都使用了不平衡的終端負(fù)載,這種終端負(fù)載也保證了能夠檢測(cè)外設(shè)與端口的連接或分離,并且可以區(qū)分高速與低速設(shè)備。所有的設(shè)備都有上行的接口,上行和下行的接頭是不能互換的,這保證了不會(huì)有非法的連接出現(xiàn)。插頭與插座有兩個(gè)系列分別為a和b系列,a用于基本固定的外圍設(shè)備,而系列b用于經(jīng)常拔插的設(shè)備,這兩個(gè)系列是不能互換的。本文設(shè)計(jì)的基于usb總線(xiàn)的數(shù)據(jù)采集系統(tǒng)正是充分地利用了usb 總線(xiàn)的上述優(yōu)點(diǎn),從而有效地解決了傳統(tǒng)數(shù)據(jù)采集系統(tǒng)的缺陷。很方便地就能夠?qū)崿F(xiàn)低成本、高可靠性、實(shí)時(shí)的數(shù)據(jù)采集,適用于對(duì)瞬態(tài)信號(hào)進(jìn)行采集和處理。 2 整體方案設(shè)計(jì)硬件實(shí)現(xiàn)
19、:首先選擇合適的微控制器及usb控制器芯片,使采集到的數(shù)據(jù)通過(guò)a/d轉(zhuǎn)換變?yōu)閿?shù)字量進(jìn)入微控制器,再通過(guò)usb總線(xiàn)將數(shù)據(jù)送到pc機(jī)中進(jìn)行處理,從而完成usb數(shù)據(jù)采集器的硬件實(shí)現(xiàn)。軟件實(shí)現(xiàn):可通過(guò)對(duì)系統(tǒng)固件程序、usb設(shè)備驅(qū)動(dòng)程序和主機(jī)的應(yīng)用程序的設(shè)計(jì)實(shí)現(xiàn)數(shù)據(jù)波形圖在pc機(jī)界面上的顯示,最后實(shí)現(xiàn)對(duì)系統(tǒng)數(shù)據(jù)采集功能進(jìn)行測(cè)試。在目前的市場(chǎng)上芯片的類(lèi)別繁多,選擇哪些芯片才能使設(shè)計(jì)完成可靠,快速的數(shù)據(jù)采集就成為在做這個(gè)系統(tǒng)之前要考慮的一個(gè)很重要的問(wèn)題,它會(huì)直接關(guān)系到所設(shè)計(jì)系統(tǒng)的可實(shí)行性和實(shí)用性。應(yīng)盡量在條件允許的條件下做出性?xún)r(jià)比最優(yōu)的系統(tǒng)或產(chǎn)品。那么設(shè)計(jì)方案的選擇就很重要。設(shè)計(jì)本課題時(shí)考慮了兩種方案,下面
20、綜合比較這兩個(gè)方案的優(yōu)缺點(diǎn)以便選者最合適的設(shè)計(jì)方案。2.1 方案論證方案一整個(gè)采集系統(tǒng)以isp1581為核心,它主要負(fù)責(zé)a/d轉(zhuǎn)換,通過(guò)ad轉(zhuǎn)換采集數(shù)據(jù),然后將采集的數(shù)據(jù)送入ram中,再向單片機(jī)發(fā)送請(qǐng)求,單片機(jī)接受采集來(lái)的數(shù)據(jù),通過(guò)usb的控制芯片1581將數(shù)據(jù)送到pc機(jī)中完成與主機(jī)之間的通信以及數(shù)據(jù)傳輸,最終實(shí)現(xiàn)數(shù)據(jù)采集的目的。如圖2.1。方案二此方案主要采用多通道分時(shí)a/d轉(zhuǎn)換器,其特點(diǎn)是多路輸入模擬信號(hào)進(jìn)入a/d轉(zhuǎn)換器進(jìn)行分時(shí)轉(zhuǎn)換,在a/d轉(zhuǎn)換器內(nèi)部的多路模擬開(kāi)關(guān)負(fù)責(zé)選擇信號(hào)通道;將a/d轉(zhuǎn)換得到的數(shù)字?jǐn)?shù)據(jù)輸入at89c51后,再通過(guò)帶有usb接口的usb控制器實(shí)現(xiàn)上位機(jī)pc和下位機(jī)的u
21、sb數(shù)據(jù)通信,數(shù)據(jù)可通過(guò)usb連接線(xiàn)快速傳輸?shù)絧c機(jī)中進(jìn)行保存、處理。系統(tǒng)中外接存儲(chǔ)器用來(lái)存儲(chǔ)單片機(jī)固件程序,單片機(jī)就可以從外部存儲(chǔ)器中讀取并執(zhí)行程序?qū)崿F(xiàn)數(shù)據(jù)采集功能。如下圖2.2。a/d單片機(jī)89c51ramusb控制芯片isp1581usb接口圖2.1 數(shù)據(jù)采集器整體方案一框圖微控制器usb控制器存儲(chǔ)芯片多通道分時(shí)a/d轉(zhuǎn)換器pc圖2.2 數(shù)據(jù)采集器整體方案二框圖2.2 方案比較由于方案一整體涉及到的硬件電路特別復(fù)雜,消耗功率相對(duì)較大,同時(shí)考慮到方案二中的at89c5131采集數(shù)據(jù)方便,便于處理、采用多通道分時(shí)a/d轉(zhuǎn)換器對(duì)數(shù)據(jù)進(jìn)行采集,轉(zhuǎn)換后的數(shù)據(jù)單片機(jī)接受后直接存放在存儲(chǔ)芯片中,并時(shí)刻
22、向at89c5131發(fā)送請(qǐng)求,一旦允許馬上將數(shù)據(jù)傳輸?shù)絬sb接口中。充分體現(xiàn)了實(shí)時(shí)性、高速的特性,調(diào)試也較方便,因此決定采用方案二。3 單元模塊設(shè)計(jì)為了實(shí)現(xiàn)usb數(shù)據(jù)采集功能,系統(tǒng)硬件電路可分為以下幾個(gè)部分:微控制器及usb控制器接口電路、a/d轉(zhuǎn)換電路、外接存儲(chǔ)器接口電路和系統(tǒng)外圍電路。3.1 微控制器及usb控制器接口電路模塊at89c5131單片機(jī)具有內(nèi)置usb控制器為核心部分,通過(guò)二者的結(jié)合才能實(shí)現(xiàn)上位機(jī)和下位機(jī)之間的usb通信,從而使pc機(jī)獲得采集到的數(shù)據(jù)。3.1.1 at89c5131封裝及引腳說(shuō)明根據(jù)方案二的需要,選擇at89c5131作為usb控制芯片。其引腳分配如圖3.1所示
23、。圖3.1 at89c5131 vqfp64引腳分配圖下面對(duì)at89c5131單片機(jī)的主要管腳進(jìn)行介紹:p0.0p0.7、p1.0p1.7、p2.0p2.7、p3.0p3.7、p4.0p4.1是并行端口p0、p1、p2、p3以及p4口i/o信號(hào)引腳。其中p0口作為地址/數(shù)據(jù)復(fù)用總線(xiàn),當(dāng)p0口作為地址總線(xiàn)時(shí),p0.0p0.7上為低8位地址,p1.0p1.7與鍵盤(pán)接口信號(hào)kin0kin7復(fù)用,同時(shí)p1.0和p1.1與t2和t2ex復(fù)用,p1.2與可編程計(jì)數(shù)器隊(duì)列的外部時(shí)鐘輸入引腳eci復(fù)用,p1.3p1.7與捕獲外部信號(hào)輸入比較外部信號(hào)輸出cex0cex4復(fù)用。p2口也可以作為地址線(xiàn)時(shí)p2.0p2
24、.7上輸出高8位地址。p3口各引腳均具有第二功能,p3.0和p3.1與串行信號(hào)接口rxd和txd復(fù)用,p3.2和p3.3與外部觸發(fā)脈沖、 復(fù)用,p3.4與p3.5與定時(shí)器/計(jì)數(shù)器t0和t1復(fù)用,p3.6與p3.7則與寫(xiě)信號(hào)和讀信號(hào)復(fù)用;另外p3.3p3.7還跟驅(qū)動(dòng)led輸出引腳led0led3復(fù)用。p4.0p4.1分別與twi串行時(shí)鐘scl和twi串行數(shù)據(jù)sda復(fù)用。rst引腳是單片機(jī)復(fù)位信號(hào)引腳,當(dāng)此芯片處于休眠或低功耗模式時(shí)復(fù)位可使芯片恢復(fù)到正常工作狀態(tài),此外當(dāng)rst引腳保持64個(gè)時(shí)鐘周期就會(huì)使芯片復(fù)位。ale引腳是地址鎖存使能信號(hào)引腳,只有當(dāng)讀寫(xiě)外部的程序存儲(chǔ)器和使用movx指令時(shí)該引腳
25、信號(hào)有效。在系統(tǒng)編程模式,當(dāng)psen引腳復(fù)位后是用與檢測(cè)isp的外部硬件的。當(dāng)引腳接高電平時(shí)芯片是從內(nèi)部存儲(chǔ)器尋址,只有接低電平時(shí)才能使芯片從外部程序存儲(chǔ)器從起始地址0000h開(kāi)始尋址。vref引腳是usb總線(xiàn)參考電壓引腳,該引腳是通過(guò)一個(gè)1.5k電阻和d+相連以實(shí)現(xiàn)軟件斷開(kāi)功能。d+引腳和d分別是usb總線(xiàn)正信號(hào)i/o引腳和負(fù)信號(hào)i/o引腳,復(fù)位后d+引腳和d表示高電平和低電平。本系統(tǒng)主要利用d+和d兩個(gè)引腳與usb端口的兩根數(shù)據(jù)線(xiàn)d+和d相連,以實(shí)現(xiàn)usb數(shù)據(jù)通信。3.1.2 at89c5131的usb接口電路at89c5131單片機(jī)的usb總線(xiàn)正信號(hào)i/o引腳d+和負(fù)信號(hào)i/o引腳d分別
26、與usb端口j1的兩根數(shù)據(jù)線(xiàn)d+和d相連(電阻r2和r3為可選電阻),然后再通過(guò)usb連接線(xiàn)即可與pc機(jī)的usb接口相連進(jìn)行通信。此單片機(jī)的模擬地引腳avss和數(shù)字地引腳vss均接地;此外模擬電源引腳avdd和數(shù)字電源引腳連接正電源vcc,目的是給單片機(jī)提供工作所需電源。usb總線(xiàn)的參考電壓引腳vref通過(guò)1.5k的電阻r1與d+相連,從而可實(shí)現(xiàn)軟件斷開(kāi)功能。在本系統(tǒng)中pc機(jī)作為usb主機(jī),at89c5131作為usb設(shè)備,d+和d無(wú)需連接下拉電阻。 關(guān)于其他引腳說(shuō)明:ucap引腳是與一個(gè)外部電容(圖中為c1)連接來(lái)給usb提供電源。pllf作為鎖相環(huán)低通濾波器的輸入引腳,需與一個(gè)rc網(wǎng)絡(luò)(圖
27、中為r5和c3)構(gòu)成的低通濾波器相連。電容c1、電阻r1和按鍵s1構(gòu)成單片機(jī)復(fù)位電路,將復(fù)位信號(hào)輸入單片機(jī)rst引腳。xtal1引腳和xtal2則分別是單片機(jī)的內(nèi)部反相振蕩放大器的輸入端和輸出端21,它們一起與作為反饋元件的片外石英晶體y1及電容c4和c5一起構(gòu)成一個(gè)自激振蕩器,好產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號(hào)。 at89c5131內(nèi)置usb設(shè)備控制器能提供at89c5131和usb總線(xiàn)進(jìn)行數(shù)據(jù)交換的硬件接口;usb控制器要求48mhz(±0.25%)的參考時(shí)鐘,此參考時(shí)鐘通過(guò)at89c5131的pll鎖相環(huán)輸出,然后能產(chǎn)生12mhz的全速時(shí)鐘提供給usb控制器和usb總線(xiàn)之間的數(shù)據(jù)交
28、換。at89c5131單片機(jī)還具有usb接口功能,可直接與usb端口連接,通過(guò)usb總線(xiàn)與pc機(jī)通信。具體usb接口電路如圖3.2所示圖3.2 usb接口電路 3.2 ad轉(zhuǎn)換電路模塊ad轉(zhuǎn)換電路主要負(fù)責(zé)采集數(shù)據(jù),并向單片機(jī)發(fā)送請(qǐng)求,轉(zhuǎn)換后的數(shù)字?jǐn)?shù)據(jù)被單片機(jī)接受后存放在存儲(chǔ)芯片中。3.2.1 a/d轉(zhuǎn)換器多路輸入信號(hào)需要通過(guò)a/d轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào)才能被單片機(jī)接受,本設(shè)計(jì)所選擇的a/d轉(zhuǎn)換器是national semiconduct corporation的8位逐次逼近式a/d轉(zhuǎn)換器adc0809。該a/d轉(zhuǎn)換器是一種單片cmos器件,它包括8位模/數(shù)轉(zhuǎn)換器、8通道多路轉(zhuǎn)換器和與微處理器兼容
29、的控制邏輯。adc0809內(nèi)帶有鎖存功能的8路模擬多路開(kāi)關(guān),可以對(duì)8路05v輸入模擬電壓信號(hào)分時(shí)進(jìn)行轉(zhuǎn)換。主要功能特點(diǎn)包括:l 分辨率為8位;l 最大不可調(diào)誤差小于±1lsb;l 單一+5v電源供電,模擬輸入電壓范圍05v;l 可鎖存三態(tài)輸出,輸出與ttl兼容;l 功耗為15mw;l 典型轉(zhuǎn)換時(shí)間為100 s。adc0809的引腳如圖:圖3.3 adc0809的引腳圖adc0809采用的是28腳雙列直插式封裝,其引腳功能說(shuō)明如下:u in0in7:擁有8路輸入通道的模擬量輸入端口。u d0d7:擁有8位數(shù)字量輸出端口。u start、ale: ale端口為地址鎖存控制使能信號(hào)端口,s
30、tart作為a/d轉(zhuǎn)換啟動(dòng)控制端口。這兩個(gè)端口連在一起,通過(guò)軟件可輸入一個(gè)正脈沖即可啟動(dòng)a/d轉(zhuǎn)換。u eoc、oe:eoc作為轉(zhuǎn)換結(jié)束信號(hào)脈沖輸出端口,oe作為輸出允許控制端口。這兩個(gè)端口連在一起可表示a/d轉(zhuǎn)換結(jié)束。當(dāng)oe端電平由低變高,打開(kāi)三態(tài)輸出鎖存器,會(huì)將轉(zhuǎn)換得到的數(shù)字量輸出到數(shù)據(jù)總線(xiàn)上。u vref()、vref()、vcc、gnd: vref()和vref()為參考電壓輸入端;vcc作為主電源輸入端,gnd作為接地端。一般將vref()與vcc連接在一起,將vref()與gnd連接在一起。u clk:作為時(shí)鐘輸入端。u add a、add b、add c:他們表示8路模擬開(kāi)關(guān)的3
31、位地址選通輸入端,是用于選擇對(duì)應(yīng)的輸入通道。對(duì)應(yīng)關(guān)系如表3.1所示。 表3.1地址碼與輸入通道對(duì)應(yīng)關(guān)系addcaddbadda輸入通道000in0001in1010in2011in3100in4101in5110in6111in7adc0809的工作時(shí)序如下圖3.4所示。在圖中twe為最小ale脈寬,其典型值100ns;td為模擬開(kāi)關(guān)延時(shí),其典型值:1 s;tws最小啟動(dòng)脈寬,其典型值:100ns;teoc表示轉(zhuǎn)換結(jié)束延時(shí),最大為8個(gè)時(shí)鐘周期:2 s;tc表示轉(zhuǎn)換時(shí)間,其典型值:100 s。由圖3.4得出結(jié)論:送入啟動(dòng)信號(hào)start后,eoc將保持一段時(shí)間的高電平,意義表示上一次a/d轉(zhuǎn)換結(jié)束
32、,在實(shí)際應(yīng)用中可能引起誤控。因此在啟動(dòng)轉(zhuǎn)換后應(yīng)延遲一段時(shí)間(最好大于teoc)后再進(jìn)行查詢(xún)或者開(kāi)中斷。圖3.4 adc0809工作時(shí)序3.2.2 a/d轉(zhuǎn)換器接口電路單片機(jī)的p0口可分時(shí)輸出低8位地址和數(shù)據(jù),為了將地址的信息分離出來(lái)保存,就需外加地址鎖存器(圖中為74hc373),然后由單片機(jī)的地址鎖存允許信號(hào)ale的下降沿將地址信息鎖存到地址鎖存器中。通過(guò)鎖存器鎖存后的低三位地址q0q2分別與adc0809的地址譯碼引腳addaaddc連接,選通in0in7中的一個(gè)通道。adc0809具有了輸出三態(tài)鎖存器,因此其8位輸出數(shù)據(jù)引腳d0d7可直接與單片機(jī)數(shù)據(jù)總線(xiàn)p0.0p0.7相連。在adc08
33、09片內(nèi)無(wú)時(shí)鐘,上圖3.4中利用雙4位二進(jìn)制計(jì)數(shù)器74hc393給adc080929提供時(shí)鐘輸入。單片機(jī)ale引腳與74hc393的時(shí)鐘輸入端clk相連,計(jì)數(shù)器其中一路輸出q1與adc0809的時(shí)鐘輸入端clock相連,ale引腳時(shí)鐘頻率經(jīng)74hc393二分頻后提供給adc0809作為時(shí)鐘信號(hào)。單片機(jī)的p2.7引腳作為adc0809片選信號(hào)。上文圖3.4中使用了4與非門(mén)芯片74als00和6反相器芯片74als04來(lái)控制adc0809的啟動(dòng)和輸出轉(zhuǎn)換數(shù)據(jù)。當(dāng)p2.71,(p3.6)=0,74als04的6號(hào)引腳輸出為高電平,再將其與adc0809的轉(zhuǎn)換啟動(dòng)端口start和地址鎖存端口ale連接
34、,最后將在鎖存通道地址的同時(shí)啟動(dòng)a/d轉(zhuǎn)換。當(dāng)p2.7=1時(shí),(p3.7)=0時(shí),74als04的8號(hào)引腳輸出為高電平,再將其與adc0809的輸出允許引腳oe相連,允許將轉(zhuǎn)換得到的數(shù)字量數(shù)據(jù)輸出到數(shù)據(jù)總線(xiàn)上。本系統(tǒng)設(shè)計(jì)在軟件上采用延時(shí)的方法來(lái)等待轉(zhuǎn)換結(jié)束,因此沒(méi)有使用轉(zhuǎn)換結(jié)束信號(hào)引腳eoc。把a(bǔ)dc0809的正參考電壓輸入端vref()和主電源輸入端vcc都接5v電源,同時(shí)將負(fù)參考電壓輸入端vref()和接地端gnd均接地。adc0809與單片機(jī) at89c5131的接口電路如圖3.5所示圖3.5 at89c5131與a/d轉(zhuǎn)換器和存儲(chǔ)器芯片的連接電路 3.3 外接存儲(chǔ)器接口電路設(shè)計(jì)外接存儲(chǔ)
35、器接口電路是為了將單片機(jī)接受到的數(shù)據(jù)存儲(chǔ)起來(lái),以達(dá)到采樣功能。3.3.1 外接存儲(chǔ)器在at89c5131單片機(jī)片內(nèi)集成有兩個(gè)flash存儲(chǔ)空間fm0和fm1,其fm0為32k字節(jié)的程序存儲(chǔ)器(用戶(hù)空間),并且支持并行編程和串行在線(xiàn)編程(isp);其fm1為3k字節(jié)的引導(dǎo)啟動(dòng)程序和應(yīng)用編程接口(api),只支持并行編程。因此編寫(xiě)單片機(jī)固件程序時(shí)可使用fm0的用戶(hù)空間進(jìn)行在線(xiàn)編程,但是本系統(tǒng)設(shè)計(jì)時(shí)未采用在線(xiàn)編程的方法,而直接將單片機(jī)程序存儲(chǔ)在一片外接eeprom存儲(chǔ)器芯片中,通過(guò)將單片機(jī)的接低電平,從而使單片機(jī)執(zhí)行外部程序存儲(chǔ)器中的程序。本系統(tǒng)中使用的存儲(chǔ)器芯片是atmel公司的64k(8k
36、15;8位)eeprom芯片at28c64。該存儲(chǔ)器芯片采用了atmel非揮發(fā)性cmos技術(shù),其存取時(shí)間僅需150ns,且功耗僅220mw。其封裝形式有pdip/soic28腳、plcc32腳和tsop28腳三種,引腳說(shuō)明如表3.2所示。 表3.2 at28c64引腳說(shuō)明引腳功能a0-a12地址線(xiàn)ce芯片選擇(片選)oe輸出使能we寫(xiě)入使能i/o0-i/o7數(shù)據(jù)輸入/輸出端vcc電源端gnd接地端3.3.2 外接存儲(chǔ)器接口電路單片機(jī)at28c64與單片機(jī)at89c5131的連接電路同樣如圖3.4所示。其p0口輸出的地址信息經(jīng)地址鎖存器74hc373鎖存后送入存儲(chǔ)器at28c64的低8位地址線(xiàn)a
37、0a7后,p0口又at28c64的數(shù)據(jù)線(xiàn)i/o0i/o7相連,可以分時(shí)輸出存儲(chǔ)的數(shù)據(jù)。單片機(jī)p2口作為高位地址線(xiàn),其p2口輸出具有鎖存的功能,不必加地址鎖存器就可直接與at28c64的高5位地址線(xiàn)a8a12相連。單片機(jī)at89c5131引腳與at28c64的片選端和輸出允許端相連,從而就可選中外部存儲(chǔ)器并允許從中讀取程序指令。單片機(jī)端連接低電平,就使單片機(jī)執(zhí)行外部程序程序存儲(chǔ)器中的程序。 3.4 系統(tǒng)外圍電路系統(tǒng)外圍電路包括:電源電路、復(fù)位電路、時(shí)鐘產(chǎn)生電路、pll配置電路。(1)電源電路本系統(tǒng)中所有涉及的器件均可使用+5v電源電壓,由于usb端口電源可通過(guò)usb總線(xiàn)從pc機(jī)獲得,因此在本系統(tǒng)
38、未使用外部電源,而是直接利用usb總線(xiàn)供電。(2)復(fù)位電路。由于單片機(jī)at89c5131的引腳是復(fù)位信號(hào)輸入引腳,因此復(fù)位的實(shí)現(xiàn)一般可采用上電復(fù)位和外部手動(dòng)復(fù)位兩種方式,在本設(shè)計(jì)中采用手動(dòng)復(fù)位方式,可通過(guò)按鍵s1來(lái)進(jìn)行復(fù)位操作,其復(fù)位電路如圖3.2所示。(3)時(shí)鐘產(chǎn)生電路。單片機(jī)at89c5131時(shí)鐘發(fā)生器包括一個(gè)內(nèi)部振蕩器和一個(gè)鎖相環(huán)(pll),所有的外部設(shè)備以及cpu的內(nèi)核工作所需的時(shí)鐘信號(hào)都是由時(shí)鐘發(fā)生器產(chǎn)生的。at89c5131的xtal1引腳和xtal2分別是一個(gè)片內(nèi)反相放大器的輸入端和輸出端。如果使用內(nèi)部振蕩器產(chǎn)生時(shí)鐘信號(hào),則可以將這兩個(gè)引腳與作為反饋元件的片外晶振和電容相連接構(gòu)成
39、一個(gè)自激振蕩器,其連接電路如圖3.2所示。外接晶振的頻率本系統(tǒng)選擇12mhz,兩個(gè)電容則通常選擇20pf30pf左右。當(dāng)然也可選擇采用外部振蕩器來(lái)產(chǎn)生時(shí)鐘信號(hào)只需將xtal1引腳直接作為外部時(shí)鐘的輸入即可。本系統(tǒng)時(shí)鐘信號(hào)由內(nèi)部振蕩器產(chǎn)生。(4) pll配置電路。at89c5131鎖相環(huán)(pll)是用來(lái)產(chǎn)生和外部低頻時(shí)鐘(外圍設(shè)備時(shí)鐘)同步的內(nèi)部高頻時(shí)鐘(usb時(shí)鐘)的,就是usb接口所需的時(shí)鐘信號(hào)是由pll產(chǎn)生的。pll內(nèi)部結(jié)構(gòu)如圖3.5所示,可看出是一個(gè)閉環(huán)結(jié)構(gòu)。其n3:0和r3:0均位于plldiv寄存器,各為4位。內(nèi)部振蕩器參考時(shí)鐘經(jīng)過(guò)n分頻和反饋回來(lái)的usb時(shí)鐘經(jīng)過(guò)r分頻進(jìn)入pfld進(jìn)
40、行比較并產(chǎn)生合適的輸出信號(hào)。其pllcon寄存器的pllen位用來(lái)使能時(shí)鐘信號(hào)的產(chǎn)生;當(dāng)pll被鎖定時(shí)pllcon寄存器的plock位則會(huì)被置位,此時(shí)它輸出的時(shí)鐘信號(hào)才是穩(wěn)定的信號(hào)。pllf引腳是pll的低通濾波器連接引腳,它需要與一個(gè)rc網(wǎng)絡(luò)相連接,其連接電路如圖3.6所示。鎖相環(huán)pll輸出的usb時(shí)鐘頻率為48mhz,它與在內(nèi)部振蕩器的輸入時(shí)鐘頻率之間的數(shù)學(xué)關(guān)系是:usbclk=oscclk×(r+1)n+1。為了產(chǎn)生48mhz的時(shí)鐘信號(hào),可根據(jù)振蕩器的頻率來(lái)配置合適的分頻數(shù)值(n和r),典型分頻值見(jiàn)表3.3。因?yàn)楸鞠到y(tǒng)選用12mhz晶振,需要將plldiv寄存器設(shè)置為30h。圖
41、3.6 pll結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖 表3.3 典型分頻值設(shè)置振蕩器頻率r+1n+1plldiv寄存器3mhz161f0h6mhz8170h8mhz6150h12mhz4130h16mhz3120h18mhz8372h20mhz125b4h24mhz2110h32mhz3221h 3.5 軟件設(shè)計(jì)本系統(tǒng)設(shè)計(jì)在軟件上主要包括三部分:固件程序、usb設(shè)備驅(qū)動(dòng)程序以及應(yīng)用程序。固件程序和usb驅(qū)動(dòng)程序可使pc機(jī)可以與usb設(shè)備進(jìn)行正常的通信,且數(shù)據(jù)采集系統(tǒng)可以進(jìn)行正常的數(shù)據(jù)采集;界面程序的設(shè)計(jì)可使采集到的數(shù)據(jù)波形圖可以在pc機(jī)界面上顯示出來(lái)。以下分別進(jìn)行介紹。3.5.1 固件程序固件設(shè)計(jì)主要是完成兩個(gè)方面
42、的工作:一、控制a/d的采樣和通過(guò)usb控制器與主機(jī)通信。二、控制a/d采樣,由于控制采樣的工作非常簡(jiǎn)單,在此論文中不做介紹。對(duì)于固件程序的編程,它的基本結(jié)構(gòu)如下:初始化,包括了處理器和外圍電路的初始化;主函數(shù),包括了完成符合設(shè)備特定要求的代碼;中斷處理,包括了處理各種中斷的程序代碼。固件程序代碼如下:#define usb_enable()(usbcon|=0x80)/usbe=1,使能usb控制器#define usb_detach()(usbcon|=0x10)/detach=1,模擬usb總線(xiàn)斷開(kāi)#define usb_attach()(usbcon&=0x10)/detach
43、=0,模擬usb總線(xiàn)連接void configure_usb_clock(void)usb_clear_ext48(); /pllcon寄存器的d2位ext48=0,取消外部48mhzpll_set_div(0x30); /plldiv=0x30,按照12mhz晶振頻率設(shè)置pll分配值為30h,以保證pll輸出48mhz的usb時(shí)鐘pll_enable(); /pllcon寄存器的d1位pllen1,使能pllwhile(pll_check_clk(); /等待pll被鎖定,輸出穩(wěn)定的時(shí)鐘void usb_configure_endpoint(uchar ep_num,uchar ep_typ
44、e)usb_select_ep(ep_num); /選擇端點(diǎn)usb_configure_ep_type(ep_type); /配置端點(diǎn)類(lèi)型 void usb_reset_endpoint(uchar ep_num)ueprst=0x01<<ep_num; /復(fù)位選擇的端點(diǎn)ueprst=0x00; /復(fù)位結(jié)束清零void usb_var_init(void)endpoint_statusep_control=0x00;endpoint_statusep_in=0x00; /端點(diǎn)0和端點(diǎn)1復(fù)位usb_connected=false;usb_configuration_nb=0x00;v
45、oid usb_ep_init(void)usb_configure_endpoint(ep_in,bulk_in); /端點(diǎn)1配置為批量in類(lèi)型usb_reset_endpoint(ep_in); /復(fù)位端點(diǎn)1fifousb_configure_endpoint(ep_out,bulk_out); /端點(diǎn)2配置為批量out44類(lèi)型usb_reset_endpoint(ep_out); /復(fù)位端點(diǎn)2fifousb_select_ep(ep_control); /選擇端點(diǎn)0if(usb_setup_received() /端點(diǎn)0是否收到主機(jī)發(fā)出的setup包usb_enumeration_pro
46、cess(); /設(shè)備枚舉usb_select_ep(ep_in); /選擇端點(diǎn)1if(usb_tx_complete() /in數(shù)據(jù)是否發(fā)送完畢usb_clear_tx_complete(); /txcmpl=0,準(zhǔn)備下次發(fā)送usb_idle=1; /設(shè)備掛起void ex0_int(void) interrupt 0 /外部中斷0ea=disable; /關(guān)中斷switch (bbecint) /確定中斷idcase vecint_output_endpoint0: bvecfint=0x00; ep0qutputinterrupthandler(); break; case vecint
47、_input_endpoint0: bbecint=0x00; ep0inputinterrupthandler(); break; case vecint_output_endpoint1: bvecint=0x00; ep 1 outputinterrupthandler();break; case vecint_input_endpoint1: bvecint=0x00; ep1inputinterrupthandler();break; case vecint_setup_packet_received: setuppacketinterrupthandler();busbsta=us
48、bsta_setup; bvecint=0x00; break; default:break; /不知道中斷idea=enable; /開(kāi)中斷3.5.2 usb設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)驅(qū)動(dòng)程序是操作系統(tǒng)中控制和連接硬件的關(guān)鍵步驟,它提供了連接到計(jì)算機(jī)的硬件設(shè)備提供軟件接口。在本系統(tǒng)中共用到三個(gè)usb端點(diǎn):控制端點(diǎn)0、bulk in端點(diǎn)1和bulk out端點(diǎn)2;驅(qū)動(dòng)程序的主要功能是實(shí)現(xiàn)對(duì)輸入和輸出端點(diǎn)的讀寫(xiě)操作。明確以上信息就可通過(guò)driverworks的程序向?qū)煽梢酝瓿蓪?duì)usb設(shè)備bulk類(lèi)型端點(diǎn)進(jìn)行讀寫(xiě)的驅(qū)動(dòng)程序工程文件了。然后就需要在visual c+6.0的環(huán)境中對(duì)生成的驅(qū)動(dòng)程序進(jìn)行編譯生
49、成.sys文件,且對(duì)自動(dòng)生成的inf安裝文件進(jìn)行適當(dāng)?shù)男薷募纯赏瓿沈?qū)動(dòng)程序的安裝使用。此驅(qū)動(dòng)程序設(shè)計(jì)的重點(diǎn)是對(duì)端點(diǎn)的讀寫(xiě)操作函數(shù),其寫(xiě)操作函數(shù)編寫(xiě)如下:ntstatus usbdevice:write(kirp i)t<<"entering usbdevice:write,"<<i<<eol; /檢測(cè)輸入請(qǐng)求,當(dāng)請(qǐng)求無(wú)效時(shí)設(shè)置為“false”if(false)/write請(qǐng)求無(wú)效i.information()=0;return i.pnpcomplete(this,status_invalid_parameter);/寫(xiě)入0字節(jié)數(shù)據(jù)總是允
50、許的if(i.writesize()=0)i.information()=0;return i.pnpcomplete(this,status_success);ulong dwtotalsize=i.writesize(current);ulong dwmaxsize=m_endpoint2out.maximumtransfersize(); /如果讀取的字節(jié)數(shù)大于該端點(diǎn)一次所能傳遞的最大字節(jié)數(shù),就只能讀出傳的最大字節(jié)數(shù)if(dwtotalsize>dwmaxsize)56assert(dwmaxsize);dwtotalsize=dwmaxsize;/聲明一個(gè)存儲(chǔ)對(duì)象kmemory
51、mem(i.mdl(); /為irp completion分配一個(gè)新的結(jié)構(gòu)usb_completion_info*pcompinfonew(nonpagedpool)usb_completion_info;if(pcompinfo=null)i.information()=0;return i.pnpcomplete(this,status_insufficient_resources);/選擇正確的管道來(lái)寫(xiě)/創(chuàng)建一個(gè)urb,將批量數(shù)據(jù)寫(xiě)入管道purb purb=m_endpoint2out.buildbulktransfer(mem, /數(shù)據(jù)的來(lái)源?dwtotalsize, /讀取的數(shù)據(jù)字節(jié)
52、數(shù)false, /方向(false=out)null /連接下一個(gè)urb);if(purb=null)delete pcompinfo;i.information()=0;return i.pnpcomplete(this,status_insufficient_resources); /初始化結(jié)構(gòu)內(nèi)容pcompinfo->m_pclass=this;pcompinfo->m_purb=purb; /提交urb給usb設(shè)備ntstatus status;status=m_endpoint2out.submiturb(i,purb,linkto(writecomplete),pcom
53、pinfo,0);return status;3.5.3 應(yīng)用程序在應(yīng)用程序中,使用多線(xiàn)程技術(shù)可以提高應(yīng)用程序效率;其工作線(xiàn)程完成后臺(tái)數(shù)據(jù)采集的工作后,在用戶(hù)界面線(xiàn)程完成界面數(shù)據(jù)的顯示。usb數(shù)據(jù)采集卡的應(yīng)用程序設(shè)計(jì)步驟為: (1)查找usb設(shè)備,獲得設(shè)備;(2) 封裝usb設(shè)備操作的動(dòng)態(tài)鏈接庫(kù);(3) 創(chuàng)建工作線(xiàn)程以及用戶(hù)界面線(xiàn)程進(jìn)行數(shù)據(jù)采集和界面數(shù)據(jù)顯示。具體應(yīng)用程序代碼如下:hdev=createfile(devinterface.devicepath(), /設(shè)備路徑generic_read|generic_write, /訪(fǎng)問(wèn)模式file_share_read|file_share_write, /共享模式null,open_existing, /創(chuàng)建方式file_attribute_normal, /文件屬性和標(biāo)志null);writefile(hdevice,bufwrite,n,&nwritten,null)void cs
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《電氣控制原理圖》課件
- DB32T-建筑工程BIM規(guī)劃報(bào)建數(shù)據(jù)規(guī)范編制說(shuō)明
- 給予是快樂(lè)的課件公開(kāi)課專(zhuān)用
- 《口腔潔治課件》課件
- 基因工程的基本操作程序課件
- 《TA溝通分析課程》課件
- 《伊犁河大橋》課件
- 生活處處有哲學(xué)課件
- 單位管理制度展示匯編【員工管理篇】
- 中國(guó)武都頭風(fēng)痛丸項(xiàng)目投資可行性研究報(bào)告
- 安谷鐵龍煤礦整合技改施工組織設(shè)計(jì)樣本
- 《新概念英語(yǔ)第二冊(cè)》電子書(shū)、單詞、筆記、練習(xí)冊(cè)(附答案)匯編
- 2023年云南大學(xué)滇池學(xué)院招聘考試真題
- 品質(zhì)助理述職報(bào)告
- 2023-2024學(xué)年湖南省長(zhǎng)沙市雨花區(qū)外研版(三起)五年級(jí)上冊(cè)期末質(zhì)量檢測(cè)英語(yǔ)試卷
- 超越指標(biāo):存量時(shí)代降本增效的利器
- 部隊(duì)休假安全教育課件
- 2024縣級(jí)應(yīng)急廣播系統(tǒng)技術(shù)規(guī)范
- 一年級(jí)道德與法治無(wú)紙筆期末檢測(cè)質(zhì)量分析
- 視頻剪輯師工作總結(jié)
- 新疆維吾爾自治區(qū)巴音郭楞蒙古自治州2023-2024學(xué)年二年級(jí)上學(xué)期期末數(shù)學(xué)試卷
評(píng)論
0/150
提交評(píng)論