




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)據(jù)采集系統(tǒng)usb接口的實現(xiàn)自動化專業(yè)學生 xxx指導教師 xxx摘要:usb通用串行總線是一種新型的微機接口規(guī)范,隨著客戶對系統(tǒng)的數(shù)據(jù)采集速度要求的不斷提高,usb以其易于擴展、速度快、方便使用等優(yōu)點越來越多的應用于數(shù)據(jù)采集系統(tǒng)中。本文論述了一種基于usb總線的數(shù)據(jù)采集系統(tǒng)的設計方法,通過對usb協(xié)議和設備構架的充分理解,對以單片機at89c52和usb接口芯片ch372為核心的數(shù)據(jù)采集系統(tǒng)進行了硬件設計,并在此設計的基礎上給出相應的電路原理圖。硬件設計主要解決的是ch372、tlc549和tlc5620與單片機之間的接口電路問題;usb軟件設計由usb設備固件程序、設備驅動程序以及主機應用
2、程序三部分組成。本系統(tǒng)充分展現(xiàn)了usb總線安裝方便、使用方便、功能齊全等優(yōu)點。關鍵詞:usb通用串行總線;單片機;數(shù)據(jù)采集系統(tǒng)realize of data acquisition system based on usbstudent majoring in automation xxxtutor xxxabstract:usb universal serial bus is a new type of computer interface specification. with customers on the system data acquisition speed requiremen
3、ts continue to increase, more and more usb was used in data acquisition systems with its easy to expand, fast, easy to use, etc. this paper discussed a usb-based data bus acquisition system design approach, through the usb protocol and device architecture fully understanding, at89c52 micro controlle
4、r and usb interface chip ch372 as the core of the data acquisition system hardware design, and the corresponding circuit diagram on the basis of this design. the hardware design is mainly to solve the problem of the interface circuit ch372, tlc549 and tlc5620 communicated with micro controller; usb
5、software was designed by the usb device firmware, device drivers, and the host application consists of three partsthe system has the advantage of usb bus to install, easy to use, full-featured, etc.key words:usb bus;data collection;mcu1 緒論1.1 課題背景和研究意義在工業(yè)生產中,往往需要使用pc機進行各種數(shù)據(jù)采集和處理,如溫度和壓力。數(shù)據(jù)采集系統(tǒng)的主要任務是數(shù)
6、據(jù)信息的采集、a/d轉換,然后通過pc接口總線將數(shù)據(jù)送到計算機中進行進一步的處理。目前,以該系統(tǒng)為核心的設備在國內和國外已被廣泛應用,如工業(yè)控制中現(xiàn)場數(shù)據(jù)采集設備;視頻電話,家庭影院及其他多媒體設備。數(shù)據(jù)采集卡與計算機外設一樣,與主機通訊接口一般基于pc機上的isa總線、pci總線、rs-232總線等1。雖然pci總線具有更高的傳輸速率,并支持“即插即用”功能,但其缺點是插拔麻煩,而且由于pc擴展插槽一般56個,所以最多也只能有56個pci數(shù)據(jù)采集卡同時使用在同一計算機,同時pci插槽在主板上占用相當大的空間,這不利于小型化的計算機系統(tǒng)。對于isa總線也是存在同樣的問題。雖然rs-232c串行
7、總線連接器簡單,但其傳輸速度慢,且主機串口數(shù)目非常有限??傊?,這些傳統(tǒng)接口的數(shù)據(jù)采集設備在使用上存在以下缺陷:安裝麻煩,受計算機插槽數(shù)量、中斷資源、地址的限制,在一些強電磁干擾試驗現(xiàn)場可能不會專門做出電磁屏蔽,從而會出現(xiàn)所收集的數(shù)據(jù)失真的情況。通用串行總線usb很好地解決了這些問題。usb總線接口的數(shù)據(jù)采集系統(tǒng)具有以下優(yōu)點:1.設備裝配簡單。usb設備支持即插即用,無需打開機箱安裝usb設備,無需再關閉計算機。2.接口數(shù)目多,每個usb主機可以通過usb集線器同時掛接最多127個外圍設備,可以有效的解決i/o口數(shù)目不夠用的問題。3.數(shù)據(jù)傳輸速度比一般的串行總線快,可以達到絕大部分多點數(shù)據(jù)采集系
8、統(tǒng)的要求。4.usb總線能夠直接對設備進行供電2。1.2 usb的發(fā)展usb(通用串行總線)作為一種新的外設連接技術,最初由康柏、dec、ibm、英特爾、微軟、nec和北方電信等七大集團合作開發(fā)的。這項技術的重點在于簡化計算機和外圍設備的連接過程,兼容低速和高速,從而解決串行設備和并行設備連接電腦的爭論,為用戶提供一個可擴展的、共享的、容易來使用的串行總線。隨著各級的發(fā)展和滲透,外設和pc連接與擴展已變得越來越重要。1994年,微軟公司的即插即用計劃,重點在于pc外圍設備和擴充電路板連接在一起,實現(xiàn)系統(tǒng)對端口和中斷等資源自動分配,無需用戶干預。1996年康柏、英特爾和微軟三家廠商提出設備托架的
9、概念,其目的是實現(xiàn)高度的可擴展性3。1.x版本在usb中首次引入,它的總線傳輸速率低,有12mbps(全速)和1.5mbps(低速)兩種。目前,它主要用在傳統(tǒng)的pc外設,如鍵盤、鼠標、顯示器等,移動存儲設備,如u盤,以及新興的消費類電子產品,如移動電話、mp3播放器、mp4、mp5等。usb2.0于2000年4月公布,是一個高速模式的版本,它的數(shù)據(jù)傳輸速度可達480mbps,同時保持usb1.1優(yōu)勢的前提下,保證了向下兼容性,可以完全支持usb1.1產品。不過,如果要使用高速傳輸,則必須使用兼容usb2.0的主機軟件和主機控制器,這意味著這臺主機的操作系統(tǒng)必須安裝usb2.0的補丁,同時安裝支
10、持usb2.0主機控制器或pci擴展卡。隨著usb設備急劇增長,設備和設備之間的直接數(shù)據(jù)傳輸變得越來越重要,在2001年12月底usb otg技術應運而生,開發(fā)設備上給予雙重身份。作為主機的同時也可以作為一個設備,其實質是在設備加一個嵌入式計算機來執(zhí)行主機任務。這項技術使usb設備來擺脫對電腦的依賴,usb應用的范圍大大擴展。1.3 國內外現(xiàn)狀國外公司紛紛推出了很多以適應不同精度,不同條件要求的usb數(shù)據(jù)采集產品。典型的是美國ni公司開發(fā)了一系列的usb數(shù)據(jù)采集卡,ni公司于2006年6月推出了兩款最新的采樣率高達1.25mb/s的usb2.0總線m系列數(shù)據(jù)采集設備。這些新器件不僅能提供最高速
11、率的數(shù)據(jù)采集功能,更是一種強大的測量服務軟件,以簡化編程工作和系統(tǒng)設置。新設備包括一個免費的usb2.0高速交互式數(shù)據(jù)記錄軟件進行分析。但是,該公司的usb數(shù)據(jù)采集卡系列產品的價格是非常昂貴的。近年來,國內也有不少公司也都紛紛推出了usb數(shù)據(jù)采集卡,而這些產品大多是基于usb1.1協(xié)議規(guī)范,數(shù)據(jù)傳輸速度遠低于基于usb2.0協(xié)議規(guī)范數(shù)據(jù)采集卡,因此限制了采集速度。目前,usb接口的開發(fā)和應用在廣度和深度上遠遠不如傳統(tǒng)的串行端口、并行端口以及各種總線插卡,其應用主要局限于制定一些標準的pc外圍設備,如u盤、鍵盤、鼠標。這主要是因為作為一個新的技術和新的標準,usb規(guī)范是更復雜的,相應的技術支持比
12、較少,應用程序開發(fā)人員都不是很了解,usb接口作為通用i/o接口使用有一定硬件和軟件的開發(fā)難度。usb2.0接口具有低成本、靈活方便、高性能以及可靠穩(wěn)定的特點,將會逐步成為計算機的主要輸入和輸出方式??傮w來看,目前國內usb數(shù)據(jù)采集設備的發(fā)展已經(jīng)取得了較大的進步,但與國外在開發(fā)和應用的深度和廣度而言,還有一定的距離,在一些現(xiàn)場數(shù)據(jù)采集的要求相對高的場合還是較多的采用外國產品。因此,隨著電腦對usb接口的普及和數(shù)據(jù)采集卡的實際應用增加,使用usb2.0協(xié)議規(guī)范開發(fā)符合各種場合的數(shù)據(jù)采集系統(tǒng),以及推進產品的國產化已成為急需解決的現(xiàn)實問題4。1.4 本設計研究的主要內容設計一款自適應的usb接口的數(shù)
13、據(jù)采集系統(tǒng),能夠通過通用的串行總線接口替代傳統(tǒng)的數(shù)據(jù)采集板槽式應用。此設計包括硬件系統(tǒng)和軟件系統(tǒng)的設計。數(shù)據(jù)采集系統(tǒng)的硬件系統(tǒng)包括a/d轉換電路、d/a轉換電路、接口芯片與usb連接圖以及周邊電路的設計。軟件系統(tǒng)包括固件程序、驅動程序以及用戶程序的設計來完成數(shù)據(jù)的采集及顯示工作。2 硬件系統(tǒng)的設計2.1 硬件方案的選擇在芯片方面處理器采用功能強大的at89c52,因為其適用于許多較復雜系統(tǒng)控制的應用場合;a/d轉換器及d/a轉換器分別采用tlc549及tlc5620;由于ch372具有靈活省事的外置盒內置雙重固件模式,內置了usb通訊中的底層協(xié)議,所以接口芯片采用ch372。2.1.1 芯片的
14、選擇 本設計采用51單片機中的at89c52為主控制器件。at89c52是美國atmel公司生產的低電壓,高性能8位cmos單片機,器件采用atmel公司的高密度、非易失性存儲技術生產,兼容標準mcs-51指令系統(tǒng),可靈活應用于各種領域。at89c52單片機屬于at89c51單片機的增強型,與intel公司的80c52在硬件組成、引腳排列、指令系統(tǒng)和工作特點等方面兼容。其主要工作特性是:片內程序存儲器內含8kb的flash程序存儲器,擦寫壽命可達到1000次;片內數(shù)據(jù)存儲器內含256字節(jié)的ram;具有32根可編程的i/o口線;具有3個可編程的定時器;中斷系統(tǒng)是具有8個中斷源、6個中斷矢量、2級
15、優(yōu)先權的中斷結構;具有一個數(shù)據(jù)指針dptr;低功耗工作模式有空閑模式和掉電模式;at89c52工作電源電壓典型值為5v5。ch372具有靈活省事的內置和外置兩種雙重固件模式,內置了usb通訊中的底層協(xié)議。在外置固件模式下,所有usb請求由外部單片機根據(jù)需要自行處理,從而實現(xiàn)符合各種usb類規(guī)范的設備。在內置固件模式下,本地端單片機只負責數(shù)據(jù)交換,端點0的所有事務由ch372自動處理默認,單片機程序非常簡潔6。2.1.2 硬件系統(tǒng)設計方框圖圖2-1 總體設計方案模塊關系方框圖16路模擬信號經(jīng)a/d轉換器轉變成數(shù)字信號送入微處理器,再由d/a轉換器轉變?yōu)?6路開關信號送出;開關量信號經(jīng)過開關輸入電
16、路讀入微處理器進行處理,處理后的結果經(jīng)74ls273鎖存輸出;8路脈沖信號由脈沖輸入電路輸入微處理器經(jīng)處理后送出;整個過程計算機通過接口芯片ch372對微處理器進行控制;微處理器由電源直接供電。2.2 a/d轉換和d/a轉換2.2.1 tlc549芯片電路設計 tlc549是ti公司生產的一種高性能、低價位的8位a/d轉換器,它以8位開關電容逐次逼近的方法實現(xiàn)a/d轉換,最大轉換速率為40khz,4mhz典型內部系統(tǒng)時鐘,電源為3v至6v。它能很好的采用三線串行接口方式與各種微處理器連接,構成各種廉價的測控應用系統(tǒng)7。tlc549的其他特點包括可在微處理器控制下控制片內采樣-保持電路或自動工作
17、;具有差分高阻抗基準電壓輸入端、易于實現(xiàn)比率轉換的高速轉換器;整個開關電容逐次逼近轉換器電路的設計允許以不大于0.5的誤差在0-17s的時間范圍內實現(xiàn)最低有效位精度的轉換。tlc549中ref-接地,ref+接vcc,具體電路設計如圖2-2所示:圖2-2 a/d轉換電路tlc549內部包含控制邏輯電路,數(shù)據(jù)寄存器以及采樣,內部系統(tǒng)時鐘和保持。器件有兩個控制輸入:芯片選擇和i/o clock,這是為了提高訪問速度和靈活性。這些控制輸入與ttl兼容的3態(tài)輸出易于與微處理器或小型計算機實現(xiàn)串行通信。器件可在17s甚至更短時間內完成轉換。tlc549重復一次輸入-轉換-輸出周期為25s。i/o clo
18、ck和內部系統(tǒng)時鐘獨立使用且不需要任何二者之間的相位關系或特定的速度。由于這種獨立性和系統(tǒng)時鐘的內部產生,控制軟件和硬件只需關心利用i/o時鐘讀出先前轉換結果和啟動轉換,從而簡化了器件的軟件和硬件控制任務。內部系統(tǒng)時鐘以這種方式驅動轉換電路以便控制,硬件和軟件不需要涉及此項任務。2.2.2 tlc5620芯片電路設計 tlc5620i和tlc5620c是帶有高阻抗緩沖輸入的4通道8位電源輸出數(shù)模轉換器集合。這些轉換器可以產生單調的、1至2倍于基準電壓和接地電壓差值的輸出。器件內集成上電復位功能,確保啟動時的環(huán)境是可重復的。tlc5620中gnd接地,ref a-d連接+5v電源,vdd接+5v
19、電源及0.1f電容,具體電路圖如圖2-3所示:圖2-3 d/a轉換電路對tlc5620i和tlc5620c是通過一根簡單的3路串行總線來實現(xiàn)數(shù)字控制的。該總線兼容cmos,并易于向所有的微處理器和微控制器設備提供接口。ref a-d四個引腳分別表示dac a-d基準電壓輸入。11位的命令字包括1位范圍位、2位dac選擇位和8位數(shù)據(jù)位,范圍位用來選擇輸出范圍是1倍還是2倍。dac寄存器采用雙緩存,允許設備中寫入一整套新值ldac實現(xiàn)了對dac輸出值的同時更新。輸入則采用了史密斯觸發(fā)器,從而避免了高噪聲。2.3 usb接口芯片ch372是ch375芯片的功能簡化版和ch371的升級產品,它是一個u
20、sb線的通用設備接口芯片。ch372可以方便的掛接到mcu/dsp/mpu/單片機等控制器的系統(tǒng)總線上,它在本地端具有8位數(shù)據(jù)總線和中斷輸出以及寫、讀、片選控制線;在pc系統(tǒng)中,ch372的配套軟件提供的操作接口簡潔易用,這使得本地端的單片機與該芯片的通訊方便得就如同讀寫文件一般。ch372需與上位機及下位機連接來完成數(shù)據(jù)交換,下面詳細介紹其連接電路的設計。2.3.1 ch372和上位機連接電路設計圖2-4 ch372與usb總線連接圖如果ch372的電源電壓為3.3v,則應該將v3引腳與vcc引腳短接,共同輸入3.3v電壓,并且電容c3可以省掉。圖2-4中,在電源斷電后將電解電容c4中的電能
21、及時釋放掉會用到可選電阻r2,使vcc及時下降到0v,確保在下次通電時ch372能夠可靠地上電復位。為使ch372能夠可靠復位,電源電壓從0v上升到5v的上升時間應該少于100ms,所以電容c4的容量和電阻r3的阻值都不能太大。2.3.2 ch372與下位機連接電路設計圖2-5 ch372與單片機連接電路在沒有外部擴展總線的單片機系統(tǒng)中,單片機也可以用普通的i/o引腳模擬出8位并口時序操作ch372芯片。在普通的mcs-51系列簡化單片機的典型應用電路中,ch372的固定為低電平,一直處于片選狀態(tài),u5的p1端口作為8位雙向數(shù)據(jù)總線,在單片機程序中,可以控制各個i/o引腳模擬并口時序與ch37
22、2進行數(shù)據(jù)交換。2.4 周邊電路設計由于系統(tǒng)要求必須由16路開關量以及8路脈沖信號輸入,因此周邊電路的設計包括開關量輸入電路、脈沖輸入電路以及多路開關電路,完成信號的輸入處理及輸出工作。2.4.1 開關量輸入電路設計 74ls244為三態(tài)輸出的八組緩沖器和總線驅動器。由于系統(tǒng)要求有16路開關量輸入,因此,開關量輸入電路由2片74ls244組成。開關量輸入電路如圖2-6所示:圖2-6 開關量輸入電路2.4.2 開關量輸出電路設計 74ls273是帶有清除功能的8d觸發(fā)器。低電平清除,上升沿鎖存。滿足所需建立時間的d輸入信息在時鐘脈沖正邊沿作用下傳送到q輸出端,時鐘觸發(fā)發(fā)生在一個特定的電平上,它不
23、直接和正脈沖的過渡時間有關。當時鐘輸入為高電平或低電平時,d輸入信號對輸出無影響。觸發(fā)器保證對0到30m的時鐘頻率范圍響應,而最高時鐘頻率的典型值是40m。對于273每個觸發(fā)器的功耗典型值為39mw,對于ls273為10mw。由于系統(tǒng)要求有16路開關量輸出,因此,開關量輸出電路由2片74ls273組成。電路如圖2-7所示:圖2-7 開關量輸出電路2.4.3 脈沖輸入電路設計 8253是可編程的定時器/計數(shù)器,其內部有三個獨立的16位定時器/計數(shù)器,每個通道都可以按二或十進制計數(shù),并且每個通道都可按6種不同的方式工作。其gate0gate2是門控脈沖輸入端,clk0clk2是計數(shù)器02的時鐘脈沖
24、輸入端,out0out2是輸出端。當8253做外部事件計數(shù)器時,在clk端所加的計數(shù)脈沖由外部事件產生,這些脈沖的間隔可以不相等。這時,8253所能實現(xiàn)的定時時間決定于計數(shù)脈沖的頻率和計數(shù)器的初值,即定時時間=預置的計數(shù)初值n時鐘脈沖周期t8。由于系統(tǒng)要求有8路脈沖量輸入,因此,脈沖量輸入電路由3片8253組成。電路如圖2-8示:圖2-8 8路脈沖輸入電路2.4.4 多路開關電路設計 cd4051是單8通道數(shù)字控制模擬開關,有三個二進制控制輸入端a0、a1、a2和inh輸入,具有低導通阻抗和很低的截止漏電流。這些開關電路在整個vdd-vss和vdd-vee電源范圍內具有極低的靜態(tài)功耗,與控制信
25、號的邏輯狀態(tài)無關。當inh輸入端為1時,所有的通道截止。三位二進制信號選8通道中的某一通道,可連接該輸入端至輸出。系統(tǒng)要求有16路模擬量輸入及輸出,模擬量輸入輸出信號分別經(jīng)過2片cd4051選擇。多路開關圖如圖2-9所示: 圖2-9 多路開關電路其中a0-a3為地址,s0-s15為模擬信號,in/out為總輸入輸出。cd4051帶有三個通道選擇輸入端a、b、c和一個禁止端inh。當cba為000111b時,可產生8選1控制信號,使8路通道中的某一通道的輸入與輸出接通。當inh為0時,允許通道接通;當inh為1時,禁止通道接通。改變cd4051的in/out07及out/in的傳遞方向,可用做多
26、路開關和反多路開關9。使用禁止端inh,可以很方便地實現(xiàn)通道數(shù)的擴展。本系統(tǒng)使用兩片cd4051組成16路的多路開關。當通道選擇碼取00001111b之一時,便唯一地選中這16路通道中的某一通道。3 軟件系統(tǒng)的設計基于usb的數(shù)據(jù)采集系統(tǒng)軟件部分總共分為三塊:采集設備固件程序、采集設備驅動程序和用戶應用程序。采集設備固件的作用是輔助硬件,任何基于微處理器及外圍電路的功能設備正常工作都離不開固件的參與;驅動程序采用基于wdm模型的驅動程序;對于基于usb的數(shù)據(jù)采集系統(tǒng),用戶應用程序也是必須存在的,功能是開啟、關閉usb設備,檢測usb設備,顯示分析數(shù)據(jù)等。下面對軟件的設計詳細介紹。3.1 usb
27、固件程序設計所有基于微處理器及其外圍電路的功能設備保證正常工作都離不開固件的參與,固件的作用就是輔助硬件,即控制硬件來完成預期的功能,若沒有固件的控制和參與,硬件設備只是簡單的芯片堆砌,無法達到預期的功能。因此,用戶必須編寫固件程序去輔助硬件完成usb的通信任務。具體如下:(1)初始化。設置一些特殊寄存器的初始值,以實現(xiàn)所需的設備功能或屬性,例如使能端點、開中斷、配置端口等。(2)輔助硬件完成設備的重新枚舉過程。包括模擬設備的重新連接與斷開,對收到的設置包進行判斷分析,從而對主設備的請求做出適當?shù)捻憫?,完成對設備的配置任務。(3)對中斷的處理。(4)數(shù)據(jù)的接收發(fā)送。(5)外圍電路的控制10。固
28、件程序采用模塊化設計設計成中斷驅動模式,其總體結構如圖3-1所示。請求處理程序中斷服務程序數(shù)據(jù)接收/發(fā)送主程序硬件接口訪問程序圖3-1 固件程序結構和數(shù)據(jù)流向各模塊主要功能如下:主程序:完成usb接口芯片及數(shù)字信號處理器的初始化、數(shù)據(jù)接收/發(fā)送標志位的判斷和中斷請求等待。中斷服務程序:固件程序設計的重中之重就是中斷服務程序。首先讀取中斷寄存器的值判斷所發(fā)生中斷的類型,然后根據(jù)具體的中斷類型進入相應的處理子程序或設置相應的標志位。請求處理程序:usb標準請求處理程序來負責處理枚舉階段主機發(fā)給設備的標準請求,以及正常工作時主機發(fā)送的廠商的請求。固件接收第1個setup中斷開始,就進入usb枚舉的過
29、程,枚舉過程是由主機發(fā)出一系列的請求并要求及時得到設備的響應,如果不需要操作,也必須指示出一個空響應,使主機能為其準備所請求的資源,建立好主機和設備之間的信息溝通機制11。數(shù)據(jù)接收/發(fā)送程序:當用戶通過主機端應用程序向設備發(fā)送或索要數(shù)據(jù)時,數(shù)字信號處理器調用數(shù)據(jù)接受/發(fā)送的子程序完成數(shù)據(jù)的接受/發(fā)送。數(shù)據(jù)的接收和發(fā)送過程如下:圖3-2 發(fā)送數(shù)據(jù)過程圖3-3 接收數(shù)據(jù)過程硬件接口訪問程序:硬件接口程序負責完成數(shù)字信號處理器對芯片的讀寫操作,它是整個固件程序中的最底層,同時也是使用最頻繁的部分。3.2 驅動程序的設計windows環(huán)境下驅動程序有3種模型:kmd模型、vxd模型、wdm模型。wdm
30、模型是全新的驅動程序模型,現(xiàn)在主流操作系統(tǒng)基本上都是采用基于wdm模型的驅動程序9。wdm模型的為分層體系結構,具體如圖3-4所示:圖3-4 wdm結構圖這里首先介紹兩個概念irp及urb。irp 即i/o請求包。它是驅動程序的核心。i/o管理器接收到一個i/o請求,然后把它傳遞到設備驅動程序之前,分配并初始化一個irp。urb 即usb請求塊。usb設備驅動程序在向設備發(fā)送一個請求之前,必須首先創(chuàng)建一個urb,然后把urb送到總線驅動程序,這樣設備驅動程序才會得以運行。對于usb設備,其wdm驅動程序分為usb功能驅動程序和usb底層驅動程序。usb底層驅動程序由操作系統(tǒng)提供,負責與硬件打交
31、道,實現(xiàn)底層通信。usb功能驅動程序由設備開發(fā)者編寫,不對硬件進行操作,而是通過向usb底層驅動程序發(fā)送包含請求塊urb的irp,以實現(xiàn)對usb設備信息的發(fā)送和接收12。3.3 用戶應用程序設計3.3.1 操作流程 一般用戶應用程序必須的功能是采樣數(shù)據(jù)讀取、采樣控制以及數(shù)據(jù)顯示,其他功能(例如數(shù)據(jù)分析、數(shù)據(jù)存儲)可以根據(jù)應用系統(tǒng)的需要進行定制。根據(jù)功能劃分,應用程序可以細化為以下幾個模塊:主框架、設備訪問模塊、采樣設置模塊和數(shù)據(jù)顯示模塊,模塊之間的關系如圖3-5所示:數(shù)據(jù)顯示模塊采集設置模塊主框架設備訪問模塊圖3-5 應用程序模塊結構圖數(shù)據(jù)顯示模塊、設備訪問模塊和采樣設置模塊都只與主框架進行通
32、信。數(shù)據(jù)顯示模塊負責數(shù)據(jù)的波形顯示,采樣設置模塊負責采樣參數(shù)的配置,設備訪問模塊負責與下層設備的通信,整個系統(tǒng)以主框架為中心。采樣設置模塊,主要用于配置采樣參數(shù),包括通道、各通道的量程和總的采樣率。在win32系統(tǒng)中,可以把每個設備都抽象為文件,此時的應用程序只需要幾條簡單的文件操作api函數(shù),就可以實現(xiàn)與驅動程序中的某個設備通信。api函數(shù)及對應關系如表3-1所示:表3-1 api函數(shù)與驅動程序例程對應關系api函數(shù)irp說明create fileirp_mj_crete打開設備read fileirp_mj_read從設備獲取數(shù)據(jù)write fileirp_mj_write向設備發(fā)送數(shù)據(jù)c
33、lose handleirp_mj_close關閉設備device i/o controlirp_mj_device_control控制設備具體執(zhí)行流程圖如圖3-6所示:圖3-6 執(zhí)行流程圖3.3.2 設備讀寫接口程序的實現(xiàn) 對于我們的硬件板,當把前面開發(fā)的設備驅動程序安裝到系統(tǒng)后并以它作為設備與上層應用程序的軟件接口時,也可以使用這些方式來實現(xiàn)應用程序與它的通信。但是為了修改和設計應用程序更加方便,因此本文便把讀寫設備封裝在相應的讀寫函數(shù)中。對于應用程序來講,讀寫usb端口和讀寫串口類似。數(shù)據(jù)傳輸流程圖如圖3-7所示:圖3-7 數(shù)據(jù)傳送程序流程圖下傳數(shù)據(jù)程序:function mdownlo
34、addata(ibuffer:array of byte; ilength:cardinal ):cardinal;var mdemoreq:command_packet; mlength:cardinal;begin if ( ilength 4096 ) then begin messagebox( frmmain.handle, 單次下傳數(shù)據(jù)長度超過4096字節(jié), mcaptioninform, mb_ok+mb_iconerror ); mdownloaddata:=0; exit; end; mdemoreq.mcommandcode:= def_cmd_down_data;/ 連續(xù)
35、下傳數(shù)據(jù)塊 mdemoreq.mcommandcodenot := $ff- def_cmd_down_data; mdemoreq.mparameter0 := access_mcs51_xram; / 讀寫51單片機的外部ram(本演示板的單片機沒有外部ram,所以無法演示) mdemoreq.mparameter1 := 00;/ 指定外部ram緩沖區(qū)起始地址,該例是將數(shù)據(jù)下傳到起始地址為0x8200的外部ram mdemoreq.mparameter2 :=$82; mdemoreq.mparameter3 := ilength mod 256; / 傳輸數(shù)據(jù)總長度低二位 mdemor
36、eq.mparameter4 := ilength div 256; mlength := const_cmd_len;/ 命令包的長度 if ( ch372writedata( mindex, mdemoreq, mlength ) ) then / 通過ch372發(fā)送命令包,成功 begin mlength := ilength;/ 數(shù)據(jù)塊的長度,一次下傳不超過4096字節(jié) if ( ( mlength mod 64 ) = const_cmd_len ) then mlength:=mlength+1; / 防止數(shù)據(jù)包的長度與命令包的長度相同,如果相同,則多發(fā)送一個無效數(shù)據(jù) if ( c
37、h372writedata( mindex, mdemoreq, mlength ) ) then / 通過ch372發(fā)送數(shù)據(jù),成功 mdownloaddata:=mlength else messagebox( frmmain.handle, ch375writedata 下傳數(shù)據(jù)失敗, mcaptioninform, mb_ok + mb_iconerror ); end else messagebox( frmmain.handle, ch372writedata 發(fā)送命令失敗,def_cmd_down_data, mcaptioninform, mb_ok + mb_iconerror
38、 ); mdownloaddata:=0;end;上傳處理程序:function muploaddata( ibuffer:array of byte;ilength:cardinal ):cardinal;varmdemoreq:command_packet ;mlength:cardinal;begin if ( ilength 4096 ) then messagebox( frmmain.handle, 單次上傳數(shù)據(jù)長度超過4096字節(jié),mcaptioninform, mb_ok + mb_iconerror );mdemoreq.mcommandcode := def_cmd_cle
39、ar_up;/ 連續(xù)上傳數(shù)據(jù)塊之前進行同步,實際是讓單片機清除上傳緩沖區(qū)的已有內容mdemoreq.mcommandcodenot :=$ff-def_cmd_clear_up;mlength := const_cmd_len;/ 命令包的長度if ( ch372writedata( mindex, mdemoreq, mlength ) ) then / 通過ch372發(fā)送命令包,成功 begin mdemoreq.mcommandcode := def_cmd_up_data;/ 連續(xù)上傳數(shù)據(jù)塊 mdemoreq.mcommandcodenot := $ff- def_cmd_up_dat
40、a; mdemoreq.mparameter0 := access_mcs51_xram; / 讀寫51單片機的外部ram(本演示板的單片機沒有外部ram,所以無法演示) mdemoreq.mparameter1 := 00;/ 指定外部ram緩沖區(qū)起始地址,該例是將數(shù)據(jù)下傳到起始地址為0x8200的外部ram mdemoreq.mparameter2 :=$82; mdemoreq.mparameter3 := ilength mod 256; / 傳輸數(shù)據(jù)總長度低二位 mdemoreq.mparameter4 := ilength div 256; mlength := const_cmd
41、_len;/ 命令包的長度if ( ch372writedata( mindex, mdemoreq, mlength ) ) then / 通過ch372發(fā)送命令包,成功 beginmlength := ilength;/ 數(shù)據(jù)塊的長度,一次上傳不超過4096字節(jié)if ( ch372readdata( mindex, ibuffer, mlength ) ) then/ 通過ch372接收數(shù)據(jù),成功 muploaddata := mlengthelse messagebox( frmmain.handle, ch372readdata 上傳數(shù)據(jù)失敗,mcaptioninform, mb_ok
42、 + mb_iconerror ); end else messagebox( frmmain.handle, ch372writedata 發(fā)送命令失敗def_cmd_up_data, mcaptioninform, mb_ok + mb_iconerror ); endelse messagebox( frmmain.handle, ch372writedata 發(fā)送命令失敗def_cmd_clear_up, mcaptioninform, mb_ok + mb_iconerror ); muploaddata:= 0;endend4 系統(tǒng)測試4.1 數(shù)據(jù)采集過程4.1.1 模擬信號 模擬
43、多路信號經(jīng)多路開關選擇后進入tlc549進行a/d轉換,轉換后的數(shù)字信號送入單片機進行處理,處理后的信號可以通過usb接口芯片送入計算機進行處理,也可以經(jīng)過tlc5620轉換為模擬信號,再通過多路開關選擇后輸出。計算機也可通過usb接口芯片對單片機進行控制。數(shù)據(jù)采集過程如圖4-1所示:ch372pc機usb控制器模擬信號cd4051模擬tlc5620tlc549at89c52cd4051信號圖4-1 模擬信號采集過程4開關信號 開關74ls27374ls244at89c52信號ch372pc機usb控制器.1.2 開關信號 開關量經(jīng)過74ls244讀入單片機進行處理,處理后的結果經(jīng)74ls27
44、3鎖存輸出,整個過程由計算機通過ch372芯片進行控制。采集過程如圖4-2所示:圖4-2 開關量采集過程4脈沖信號at89c52脈沖8253信號ch372pc機usb控制器.1.3 脈沖信號 脈沖信號經(jīng)計數(shù)后讀入單片機進行處理,主要處理數(shù)據(jù)的累計值、脈沖頻率、周期等,然后將處理后的信號送出。整個過程由計算機通過ch372芯片進行控制。如圖4-3所示:圖4-3 脈沖信號采集過程4.2 測試結果4.2.1 輸入模擬量測試 輸入模擬量測試結果如表4-1所示:表4-1 輸入模擬量測試結果模擬電壓(v)123456實測值(v)1.0032.0042.9964.0084.9946.012誤差0.30%0.
45、20%0.10%0.20%0.10%0.20%由上表可以算出,輸入模擬量測試最大誤差為0.3%,為誤差允許范圍。4.2.2 輸出模擬量測試 輸出模擬量測試結果如表4-2所示:表4-2 輸出模擬量測試結果模擬電壓(v)123456實測值(v)1.0012.0042.9944.0115.016.012誤差0.30%0.20%0.20%0.27%0.20%0.20%由上表可以算出,輸出模擬量測試最大誤差為0.30%,為誤差允許范圍。4.2.3 脈沖量測試 脈沖量測試結果如表4-3所示:表4-3 脈沖量測試結果輸入頻率(hz)1k2k3k4k5k6k實測值(hz)1002200430084012501
46、06012誤差0.20%0.20%0.27%0.30%0.20%0.20%由上表可以算出,脈沖量測試最大誤差為0.3%,為誤差允許范圍。由于電路中線路本身存在電阻,并且在使用過程中不可避免的受到干擾,因此系統(tǒng)存在誤差??偨Y本論文在研究usb總線技術的基礎上,提出了usb接口的數(shù)據(jù)采集系統(tǒng)的一種實現(xiàn)方案,設計并實現(xiàn)了基于usb接口的數(shù)據(jù)采集的硬件系統(tǒng);實現(xiàn)了ch372、單片機at89c52之間,以及主機軟件和數(shù)據(jù)采集系統(tǒng)之間的通信。本系統(tǒng)為通用性高速數(shù)據(jù)采集系統(tǒng),可用于生物電波、聲波分析等瞬態(tài)信號的實時采集、觀察等場合。該基于usb總線的高速數(shù)據(jù)采集系統(tǒng)具可靠性高、數(shù)據(jù)不會丟失、抗干擾性強,便于
47、數(shù)據(jù)傳輸和處理等優(yōu)點,有良好的應用前景和很大的實用價值13。目前,很多常見的數(shù)據(jù)采集系統(tǒng)都存在功能單一的缺點,而本課題所完成的系統(tǒng)作為通用數(shù)據(jù)采集系統(tǒng),具有采集、處理多種信號等功能。并且采用usb總線與計算機通訊,繼承了usb總線高帶寬、安裝方便、易擴展等優(yōu)點。不過,由于水平有限、缺乏經(jīng)驗,該系統(tǒng)還有許多不足之處,比如說微處理器及接口芯片工作速度有限,精度不準確等問題。但是隨著科技的大力發(fā)展,usb技術的不斷提高,相信在不遠的將來會設計出更高速的單片機來滿足于人們的需求??梢灶A見,隨著技術的發(fā)展和數(shù)據(jù)采集系統(tǒng)的廣泛應用,人們對數(shù)據(jù)采集的主要技術指標,如采樣速率、分辨率、精度、輸入電壓范圍以及抗
48、干擾能力等方面,都提出了越來越高的要求。所以,如何將新技術應用到高速采集系統(tǒng)中,如usb的otg技術等,設計出更高速、更可靠、精度更高的數(shù)據(jù)采集系統(tǒng)將是未來的研究趨勢。參考文獻:1 夏益民,王光君. 基于usb的高速數(shù)據(jù)采集系統(tǒng)j.國外電子元器件,2003(10):20-23.2 胡曉軍,張愛成. usb 接口開發(fā)技術m.西安電子科技大學出版社,2005:56-59.3 王平,蘇濤. 基于usb2.0的高速數(shù)據(jù)采集系統(tǒng)設計j.現(xiàn)代電子技術,2007(4):35-37.4 匡勝元,楊浩. usb2.0在數(shù)據(jù)采集系統(tǒng)中的應用j.電子器件,2007(5):20-22.5 張雄偉. dsp芯片的原理及
49、研發(fā)應用m.北京電子工業(yè)出版社,2003:41-44.6 周立功. pdiusbdi2 usb固件編程與驅動開發(fā)m.北京航空航天大學出版社,2004:18-21.7 許永和等. ezusb fx系列單片機usb外圍設備設計與應用(第一版)m.北京航空航天大學出版社,2002:44-46. 8 張念淮,江浩. usb總線開發(fā)指南m.北京國防工業(yè)出版社,2001:13-14.9 陳啟美,丁傳鎖. 計算機usb接口技術m.南京大學出版社,2003:14-17.10 謝淑如,鄭光欽,楊渝生. protel pcb 99se電路板設計m.北京清華大學出版社,2001:51-53.11 黃娟,朱紅. 混合
50、電路的pcb設計j.電子軟件與材料,2004(7):36-37.12 donaderson著. usb大全m.陳逸等譯.電力出版社,2001:8-12.13 馬偉. 計算機usb系統(tǒng)原理及其主/從機設計m.北京航空航天大學出版社,2003:35-36.致謝在完成畢業(yè)論文過程中得到了xxx的關心和支持,在她的指導和幫助下解決了我遇到的許多困難和問題,得以順利完成論文。特別感謝xxx給我極大的幫助,她淵博的知識、嚴謹?shù)闹螌W態(tài)度、崇高的敬業(yè)精神以及求真務實的作風令我終生難忘。她是我一生學習的榜樣。感謝xxxxxx的所有老師和同學們。感謝父母對我的關心和愛護,感謝同學和老師的幫助,是他們默默的支持著我
51、,給我學習創(chuàng)造了很好的條件。最后借此機會向所有關心、支持、幫助過我的老師、同學表示由衷的感謝。內部資料僅供參考*cz7h$dq8kqqfhvzfedswsyxty#&qa9wkxfyeq!djs#xuyup2knxprwxma&ue9aqgn8xp$r#͑gxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxy7jnd6ywrrwwcvr9cpbk!zn%mz849gxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4n
52、gpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxy7jnd6ywrrwwcvr9cpbk!zn%mz849gxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z89amue9aqgn8xp$r#͑gxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6
53、x4ngpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxy7jnd6ywrrwwcvr9cpbk!zn%mz849gxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxy7jnd6ywrrwwcvr9cpbk!zn%mz849gxgjqv$u
54、e9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z8vg#tym*jg&6a*cz7h$dq8kqqfhvzfedswsyxty#&qa9wkxfyeq!djs#xuyup2knxprwxma&ue9aqgn8xp$r#͑gxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxy7jnd6ywrrwwcvr9cpbk!zn%mz849gxg89amue9aqgn8xp$r#͑gxg
55、jqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxy7jnd6ywrrwwcvr9cpbk!zn%mz849gxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z89amywpazadnu#kn&muwfa5uxy7jnd6ywrrwwcvr9cpbk!zn%mz849gxgjqv$ue9wewz#qcue%&qypeh5pdx2zvkum>xrm6x4ngpp$vstt#&ksv*3tngk8!z8vg#tym*jg&6a*cz7h$dq8kqq
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能視角下的認知科學研究
- 智慧林業(yè)推動林業(yè)新質生產力的內在機制與發(fā)展路徑研究
- 公平原則下個人信息同意機制的法律經(jīng)濟學分析
- 勞動力市場扭曲的成因機制及其影響效應研究與對策探討
- 高中物理案例教學科學思維培養(yǎng)
- 橋頭飯?zhí)霉芾磙k法細則
- 幼兒園衛(wèi)生保健人才隊伍建設與培訓體系
- 大氣光學湍流廓線的探測與預測技術研究
- 昭通盆景栽培管理辦法
- 國家安全學習體會
- GB/T 307.4-2017滾動軸承推力軸承 產品幾何技術規(guī)范(GPS)和公差值
- GB 29415-2013耐火電纜槽盒
- 《密碼法》培訓只是講座PPT課件(帶內容)
- 建筑工程文件歸檔管理明細表
- 如何解讀血常規(guī)報告
- 區(qū)域消防安全風險評估規(guī)程DB50-T 1114-2021
- 免疫調節(jié)治療在腦卒中的運用課件
- 機關檔案管理工作培訓PPT課件
- 25T汽車吊檢驗報告
- 變頻空調中的永磁電機電感分析
- 高考常考語法填空詞性轉換匯總
評論
0/150
提交評論