基于USB總線數據采集系統設計與實現說明書
基于USB總線數據采集系統設計與實現說明書,基于,USB,總線,數據,采集,系統,設計,實現,說明書
XXXXXXXX(設計)任務書設計(論文)題目: 基于USB總線數據采集系統設計與實現 學 號: 學生姓名 專 業: 機械設計制造及其自動化 指導教師: 李 衛 系主任: 1、檢索國內USB總線數據采集系統的發展動態,分析國內的現狀; 2、完成USB總線數據采集系統方案選擇設計; 3、完成系統中USB總線硬件與軟件系統的設計; 4、完成系統中USB總線驅動程序系統的設計; 5、總結USB總線數據采集系統設計的體會和收獲; 6、完成畢業論文的文稿工作,要求:總字數不低于一萬字,使用A4編輯及打印裝訂成冊; 7、技術圖紙:控制系統原理圖1張(0號)、控制系統程序流程圖1張(0號)、; 8、翻譯英文技術資料:翻譯國內USB總線數據采集系統的(或相關課題)開發及研究的英文資料。要求:3000單詞,復印原稿與翻譯(打印)稿同冊裝訂。 二、重點研究的問題: 1、 USB總線數據采集系統方案選擇設計; 2、 系統中USB總線硬件與軟件系統的設計; 3、 系統中USB總線驅動程序系統的設計; 三、進度安排 各階段完成的內容起止時間1資料檢索、查詢2010年2月20 日 3月5 日2系統總體方案構思及設計2010年3月6日 3月20日3完成USB總線數據采集方案選擇設計2010年3月 21日 4月10日4完成USB總線數據采集硬件設計; 2010年4月11日 4月25日5完成USB總線數據采集軟件的設計2010年4月26日 5月10日6畢業設計說明書撰寫和編輯2010年5月11日 5月19日7交畢業設計說明書和圖紙,答辯準備2010年5月 20 日 5月 25 日四、應收集的資料及主要參考文獻1 薛圓圓編著.USB應用開發技術大全M.北京:人民郵電出版社,2007.8 2 許永和,編著.USB接口完全解決方案M.北京:北京航空航天大學出版社,2004.8 3李全利,遲榮強編著.單片機原理及接口技術M.北京:高等教育出版社,2004.1 4周立功編著.PDIUSBDI2 USB固件編程與驅動開發M.北京:北京航空航天大學出版社,2003.2 5邊海龍,賈少華編著.USB2.0設備的設計與開發M.北京:人民郵電出版社,2004.1 6張弘編著.USB接口設計M.西安:西安電子科技大學出版社,2002.1 7坎特編著.Windows WDM設備驅動程序開發指南M.孫義,馬莉波等譯.北京:機械工業出版社,2000.1 8劉炳文,李鳳華編著Visual Basic 6.0 Win32 API程序設計M.北京:清華大學出版社,2001.9 9陳志強編著.基于USB2.0圖像采集卡的設計與實現M.西安:西安電子科技大學出版社,2007.5 10Jan Axelson編著;陳逸等譯.USB大全M.北京:中國電力出版社,2001.1 XXX(設計)評閱表學號 姓名 專業 畢業論文(設計說明書)題目: 基于USB總線數據采集系統設計與實現 評價項目評 價 內 容選題1.是否符合培養目標,體現學科、專業特點和教學計劃的基本要求,達到綜合訓練的目的;2.難度、份量是否適當;3.是否與生產、科研、社會等實際相結合。能力1.是否有查閱文獻、綜合歸納資料的能力;2.是否有綜合運用知識的能力;3.是否具備研究方案的設計能力、研究方法和手段的運用能力;4.是否具備一定的外文與計算機應用能力;5.工科是否有經濟分析能力。論文(設計)質量1.立論是否正確,論述是否充分,結構是否嚴謹合理;實驗是否正確,設計、計算、分析處理是否科學;技術用語是否準確,符號是否統一,圖表圖紙是否完備、整潔、正確,引文是否規范;2.文字是否通順,有無觀點提煉,綜合概括能力如何;3.有無理論價值或實際應用價值,有無創新之處。綜合評 價評閱人: 20XX年6月 日XXXXXX(設計)鑒定意見學 號: 學生姓名: 專 業: 畢業論文(設計說明書) 56 頁 圖 表 3 張論文(設計)題目: 基于USB總線數據采集系統設計與實現 內容提要: 本文介紹了一種基于通用串行總線USB(Universal Serial Bus)數據采集系統設計。隨著用戶對數據采集系統要求的不斷提高,USB接口以其簡單易用、速度快而被廣大用戶所接受。本論文所闡述的數據采集系統采用了集成了微處理器的USB接口芯片PDIUSBDI2來完成采樣控制并與PC機應用程序完成系統通信功能。由應用程序完成用戶命令及數據的顯示。該系統采用USB總線取代傳統的數據采集總線,通過對USB協議和設備構架的理解,對數據采集系統進行了硬件設計和軟件設計。硬件設計主要解決了控制器與主機通信問題,數據采樣、模擬輸出、I/O擴展等電路設計以及它們之間的接口。軟件編程主要分為三部分:一是為滿足獲得最大傳輸速率和運行效率的固件程序編程;二是為用戶提供的以動態鏈接庫形式封裝的功能函數;三是提供演示和測試的控制面板程序,并為系統提供了兩個應用實例。除此之外,論文還介紹了設備驅動程序的開發,并在文章結尾對USB的應用前景進行了探索。指導教師評語羅杰同學在畢業設計中,工作態度端正,能積極努力地學習與鉆研。畢業設計選題較合適,系統設計方案較合理,畢業說明書書寫、編輯較規范,論述較充分、通順、清晰,圖表及文獻引用較為規范,反映了該生具有一定的分析問題、解決問題的能力,文獻資料檢索、利用和外文閱讀翻譯能力得以提高,較好地完成了畢業設計任務要求。建議評定畢業設計成績為:良好。指導教師: 年 月 日答辯簡要情況及評語答辯小組: 年 月 日答辯委員會意見 答辯委員會主任: 年 月 日II目 錄 第一章 緒論51.1 課題背景51.2 課題的提出51.3 USB串行總線優勢61.4 本課題研究的內容和意義7第二章 USB概要設計92.1 USB傳輸要件92.2 事務、信息包和聯絡信號92.3 USB的傳輸結構102.4 USB總線枚舉過程132.5 USB的設備描述符142.6 USB請求15第三章 數據采集系統的硬件設計173.1 硬件系統的結構173.2 芯片選擇173.2.1 ADC0809183.2.2 AT89C51203.2.3 PDIUSBD12213.3 接口硬件電路設計243.3.1 A/D與單片機接口電路253.3.2 PDIUSBDI2與單片機接口電路25第四章 數據采集系統軟件設計274.1 A/D轉換時序控制274.2 固件的開發274.3 采用PDIUSBD12的固件設計284.3.1 驅動的開發工具284.3.2 PDIUSBD12固件程序的編寫294.4 固件結構304.5 固件的編程實現324.5.1 底層函數324.5.2 命令接口324.5.3 中斷服務程序ISR.C344.5.4 主循環MAINLOOP.C36第五章 USB設備驅動及應用程序設計405.1 USB設備驅動程序405.2 USB設備應用程序設計46 第六章 結 論49 參考文獻50 附錄51基于USB總線的數據采集系統設計摘要:本文介紹了一種基于通用串行總線USB(Universal Serial Bus)的數據采集系統設計。隨著用戶對數據采集系統要求的不斷提高,USB接口以其簡單易用、速度快而被廣大用戶所接受。本論文所闡述的數據采集系統采用了集成了微處理器的USB接口芯片PDIUSBDI2來完成采樣控制并與PC機應用程序完成系統通信功能,由應用程序完成用戶命令及數據的顯示。該系統采用USB總線取代傳統的數據采集總線,通過對USB協議和設備構架的理解,對數據采集系統進行了硬件設計和軟件設計。硬件設計主要解決了控制器與主機通信問題,數據采樣、模擬輸出、I/O擴展等電路設計以及它們之間的接口。軟件編程主要分為三部分:一是為滿足獲得最大傳輸速率和運行效率的固件程序編程;二是為用戶提供的以動態鏈接庫形式封裝的功能函數;三是提供演示和測試的控制面板程序,并為系統提供了兩個應用實例。除此之外,論文還介紹了設備驅動程序的開發,并在文章結尾對USB的應用前景進行了探索。關鍵詞:USB總線;單片機;數據采集;固件;Windows驅動程序模型;設備驅動程序USB bus-based data acquisition system design and implementationAbstract:This paper describes the design of a data acquisition system based on USB. With the advance of the clients requirement on data collection of a system, as a late-model interface technology, USB is well accepted by vast clients because of its simplicity and high speed. The system using the USB interface chip with on-chip microprocessor PDIUSBDI2controls the data acquisition process and communicates with the computer. Through the man-machine interface clients can send commend and data can be printed. With good understanding of USB protocol and device truss, the system is design by using USB instead of other buses. The hardware design includes the communication between the controller and computer, the data acquisition part, analog output, I/O extension and the interface between them. The software program mainly includes the firmware code in the controller, functions for clients with DLL encapsulation and the control panel design. Also the device driver development is introduced and the foreground of USB application is explored at the end.KEY WORDS:USB bus;data collection;MCU;fireware;WDM;device drive program第一章 緒論本次畢業設計的數據采集系統是在單片機AT89C51控制下進行數據采集,并通過PHILIPS公司的USB接口芯片PDIUSBDI2上傳給PC機進行分析、顯示和存盤。該系統用傳統的USB總線取代了RS232串行總線,通過對USB協議和設備構架的充分理解,對以單片機89C51和USB接口芯片D12為主的數據采集系統進行了硬件設計和軟件編程,并在此設計的基礎上給出相應的原理圖。硬件設計主要解決的是D12與單片機的接口電路的設計。軟件設計可分為三部分:一是充分了解D12的主要功能特點,為滿足D12在USB上的最大傳輸速率而編寫固件程序,用C51語言編寫:二是了解USB的設備驅動程序與應用。1.1 課題背景現代工業生產和科學研究對數據采集的要求日益普遍,在瞬態信號測量、圖像處理等一些測量中,都需要進行數據采集?,F在通用的數據采集卡一般多是利用微機機箱內的PCI插槽或ISA插槽進行擴展。通過數據采集系統,可以簡潔、通用化的硬件配合以相應的軟件實現以往專用測試儀器的功能;完成“軟件既儀器”的理念.信息技術與電子技術的迅猛發展,使得計算機和外圍設備也得到飛速發展和應用。過去人們單純追求計算機與外設之間的傳輸速度,現在糾錯能力和操作安裝的簡易性也成為人們關注的目標。USB通訊技術的出現,使高傳輸速度、強糾錯能力、易擴展性、方便的即插即用,有機的結合在一起。USB設備需要依據USB協議進行數據的解包與打包,底層硬件設備與操作系統之間需要以驅動程序為橋梁。驅動程序以WDM為模型,以DDK為開發工具,以IRP為消息傳播載體,來實現與Windows系統底層核心機制相交互的功能。1.2 課題的提出對于數據采集系統而言有兩個關鍵性問題:一是控制A/D轉換和數據傳輸的控制器,一是采集系統與上位機PC的傳輸方式。其中控制器一般采用通用的單片機,包括4位、8位、16位以至32位的各類單片機;這些單片機芯片優勢在于價格低廉、結構簡單、接口擴展能力強等,但是其數字運算能力較差,所以目前出現了許多以DSP芯片作為數據采集系統控制器的數據采集系統。本課題為簡化開發難度,充分利用現有的工作環境采用較常用的AT89C52單片機作為系統控制器。 對于數據采集系統與上位機的通訊方式,現行的常用方式是利用PC機箱內的PCI, ISA插槽進行擴展:其傳輸速度分別為132M/S. 16M/S、但是由于PC機接口資源有限,且需要對接口卡硬件資源進行合理配置,故其存在以下缺點:安裝麻煩;價格昂貴;受計算機插槽數量、地址、中斷資源限制,可擴展性差;在一些電磁干擾性強的測試現場,無法專門對其做電磁屏蔽,易導致采集的數據失真。本課題旨在使用新型的通用串行總線USB完成數據采集系統的構架,充分發揮USB總線接口簡潔、使用方便的優勢;并為后續的使用USB總線對實驗室現有的“頻率特性測試系統”改進作前期準備工作。課題主要完成四個方面的工作:數據采集系統硬件設計、固件設計、應用程序及WDM設備驅動程序設計。使用到的軟件工具包括Prote199,K eilC 51,M icrosoftV isualSt udio6 .0,W in2000DDK:使用到的硬件工具包括單片機寫入器、萬用表、示波器等等。采用的操作系統平臺為Windows 200。1.3 USB串行總線優勢通用串行總線USB( UniversalS erialB us)是1995年康柏、微軟、IBM,D EC等公司為解決傳統總線不足而推廣的一種新型的通信標準。該總線接口具有安裝方便、高帶寬、易于擴展等優點,已逐漸成為現代數據傳輸的發展趨勢?;赨SB的高速數據采集卡充分利用USB總線的上述優點,有效解決了傳統數據采集卡的缺陷。USB從傳統I/O模式的栓桔中解放出來,開辟了一條外設同PC機連接的方法。與其他的老式PC機接口相比,USB具有如下優點:1. 熱插拔:用戶可以把USB外設連接到一臺正在運行的PC機上,操作系統能自動識別,并且用戶可以立即使用,而不需要重新啟動。用戶也可以在任何時候斷開USB設備,而不管計算機是否正在運行,這都不會損壞計算機。 2. 即插即用:USB實現了自動配置,它不需要用戶手動配置I/O地址和中斷請求(URQ)。當USB外設接入PC時,操作系統會自動檢測到這個連接。并加載適合的驅動程序。對用戶來說,只需要等待幾秒鐘,USB外設的安裝就會完成。3. 共享式接口:USB端口支持多個外設的連接,通過USB集線器,一個USB主控制器可以連接多達126個外設。4.接口體積小巧:和其它老式的PC接口相比,USB接口小且薄,更適合于外設體積的小型化。5. 使用靈活:USB支持三種類型的傳輸速率,1.5Mb/s的低速傳輸、12Mb/s的全速傳輸和480Mb/s的高速傳輸。USB支持四種傳輸類型,塊傳輸、同步傳輸、中斷傳輸和控制傳輸。這使得USB總線適合多種外設的傳輸需要。6. 提供電源:USB電纜向外設提供一根+5V的電源線,電流的大小取決于集線器端口。用戶可以直接使用這個總線電源。當然 ,USB總線還存在許多缺陷,比如USB2.0所支持的480Mb/s速率不及IEEE-1394的六分之一;USB總線傳輸距離有限;USB總線協議復雜等。但隨著操作系統、硬件廠商對USB的進一步支持,其在PC外設方面的將大有可為。1.4本課題研究的內容和意義本課題旨在對USB總線的結構、協議和系統體系進行充分研究的基礎上,完成一個實際的USB數據采集系統軟硬件的構架。具體需要做的工作包括軟件和硬件兩部分。硬件方面 ,該系統使用Philips公司的PDIUSBD12芯片作為設備的USB接口芯片;采用常用的AT89C51作為系統的CPU: ADC0809芯片作為AD轉換芯片。配合其它輔助芯片和單片機固件完成輸入模擬信號的采集、存儲和向PC主機的傳輸。軟件方面分如下幾部分: 1. 單片機固件: 本系統中的單片機固件采用C語言編寫,使用KeilC 51編譯器為開發工具。固件中主要完成對USB協議規定的諸多標準請求以及用戶自定義請求的響應;此外還包括控制ADC0809芯片完成對模擬信號的轉換代碼,以及USB設備所需各種描述符的定義。 2. 主機設備驅動程序: USB外設的驅動程序只能為WDM(WindowsD riverM odle)形式的驅動,課題中采用以DDK2000為開發工具,在VC6.0集成開發環境編寫,編譯時直接在DDK2000的DOS窗口中編譯。 3. 用戶應用程序: 應用程序是采集到數據最終顯示、處理的地方。系統用戶應用程序界面模仿傳統示波器的外形;以圖形的方式動態的顯示采樣數據;具體的采樣數值也可以寫入“記事本”文件中,進而可以用其它專門軟件進行處理。 Philips公司提供了PDIUSBD1 2的開發包,包括軟件和硬件兩部分。為用戶使用該種型號的USB接口芯片進行設備開發提供一個基礎和工作平臺。 該數據采集系統的目的在于為實驗室現有的一套頻率特性測試儀的改進做前期工作。但系統應用的潛力并不局限與此,比如在增加與被測信號相適應的傳感器、采樣保持、濾波和隔離電路后系統可以方便的應用于家庭醫療護理方面,可以用于對人體的心率、脈搏、體溫等參數的測試。在個人電腦逐步進入家庭的當今,這樣的系統應當具有一定的應用前景。第二章 USB概要設計2.1 USB傳輸要件1、端點端點是USB設備的一個部分,所有的傳輸都是將端點作為發出點或者接收點。通常情況下,設備端點是一個內存區域,或者是控制芯片的一個緩存器,端點的作用是數據緩存。每個USB設備有一個唯一的地址,這個地址是在設備連上主機時由主機分配的,而設備中的每個端點在設備內部有唯一的端點號,這個端點號是在設備設計時被給定的。端點號可以是015,方向可以是IN(設備發送數據給主機)或者OUT(主機發送數據給設備)。每個設備必須將端點0設置為控制端點??刂贫它c是雙向傳輸數據,其他端點都是單向數據傳輸。2、管道管道是設備端點和主機控制器之間的連接,在一個傳輸發生之前,必須首先建立一個管道。管道隨著主機和設備的連接的建立而建立,當移除設備時,管道也跟著被移除。每一個設備都會和主機建立一個默認的控制管道(Default Control Pipe),此管道使用端口0。不同的傳輸類型使用不同的管道,此外管道還可以被分為消息管道(Message Pipe)和流管道(Stream Pipe)消息管道是指具有某種USB定義格式的數據流,是雙向的管道;而流管道則是不具有USB定義格式的數據流,不具有雙向性??刂苽鬏斒俏ㄒ皇褂秒p向消息管道的傳輸,其他傳輸都是使用單方向的流管道。2.2 事務、信息包和聯絡信號每一個USB傳輸包含一個或多個事務,每一個事務又包含一到三個信息包。事務根據其數據流方向以及傳輸目的,可以分為3類:輸入、輸出與設置。每一個傳輸類型的傳輸包括一個或多個階段(Stage),一個階段即一種類型的事務。每個階段又可以分為一個或幾個相位(Phase),相位包含幾個或兩個事務信息包。信息包是一個區塊的固定格式信息,每個信息包由一個信息包標示符(PID)開頭,作為信息包的識別。根據事務種類的不同,PID后面可能有端點地址、數據、狀態信息,或者是一個在幀號碼、錯誤校驗位。在控制傳輸、批量傳輸和中斷傳輸中都有一個相位是聯絡數據包,它包含的是聯絡信息。但是聯絡信號不是僅僅在聯絡數據包中,有些數據信息包中也包含聯絡信號。USB定義的聯絡信號如下:ACK(Acknowledge):表示主機或設備已成功接收數據。NAK(Negative Acknowledge):表示設備在忙中。STALL:表示3種意義,即不支持的控制要求、控制要求失敗或端點失敗。NYET(Not Yet):表示設備是否已準備好接收數據,只有高速設備使用。ERR(Error):表示在集線器和主機事務中,設備沒有傳回預期的聯絡信號。ERR只有在高速集線器完成事務分割時才會使用。2.3 USB的傳輸結構USB的傳輸結構描述的是各個類型USB傳輸的時序、數據包和特征。下面分別介紹一下4種USB傳輸類型的傳輸結構:1、控制傳輸控制傳輸用于在設備初次連接時對器件進行配置,以及對設備的狀態進行實時檢測,還有在設備配置完成后用于特殊傳輸目的。端點0只可以采用控制傳送的方式。每一個控制傳輸都必須有設置與狀態階段,數據階段則是選擇性的??刂苽鬏數脑O置事務傳輸結構如圖2-1所示:圖2-1 控制傳輸結構示意圖控制傳送的數據階段,由一個以上的輸入或輸出事務構成,遵守和批處理傳送相同的協議規則。所有的數據階段里的事務都必須有相同的方向(即全部輸入或全部輸出)。在數據項中要發送的數據的數量和其方向在建立階段被指定。如果數據的數量超過了先前確定的數據包的大小,數據在支持最大的包大小的多個事務中被發送(輸入或輸出)。任何剩下的數據都作為剩余在最后的事務中被發送。2、批量傳輸批量傳輸包含一個或者多個傳輸事務,其傳輸是單方向的,即所有的事務都必須是輸入或輸出事務。如果需要雙向傳數據,需要另建立一個管道。批量傳輸的傳輸結構如圖2-2所示:圖2-2 批量傳輸結構示意圖3、中斷傳輸中斷傳輸適用于小批量的、點式、非連續的數據傳輸應用的場合。中斷傳輸必須在指定的時間內完成,它一般應用于鼠標、鍵盤、游戲桿等HID(Human Interface Device)類設備以及集線器的狀態報表中。中斷傳輸的傳輸結構如圖2-3所示:圖2-3 中斷傳輸結構示意圖4、同步傳輸同步傳輸的意義在于每一個幀或者微幀內必須傳輸固定數目的字節數據,它適用于固定速度或者特定時間的傳輸。同步傳輸沒有聯絡階段,所以不能保證傳輸的完全可靠性。同步傳輸的傳輸結構如圖2-4所示:圖2-4 同步傳輸結構示意圖2.4 USB總線枚舉過程USB規范定義的設備狀態總共有6個,分別是連接(Attached)、上電(Powered)、默認(Default)、地址(Address)、配置(Configured)和掛起(Suspend)。USB總線枚舉過程中,USB設備需要經歷后4種狀態。USB集線器負責監測設備的連接情況,而USB主機會通過集線器輪詢地查詢設備。當主機發現一個新的設備時,會要求集線器建立與設備的通信通道,即設備的端點0,控制傳輸端點。之后,主機會通過此通道向設備發送一系列的標準USB 請求以獲取所需的信息,設備必須響應這些請求并且采取適當的動作。這個過程即稱為USB的總線枚舉??偩€枚舉的過程如下: 設備連接USB設備通過USB總線與主機相連。 設備上電USB設備可以采用USB總線供電,也可以使用外部電源供電。 主機檢測到設備,進行復位設備連接到總線后,主機通過檢測設備在差分信號線的上拉電阻檢測到有新的設備連接,并獲釋該設備是全速設備還是低速設備,如果上拉電阻與D+線相連,則為全速設備,如果上拉電阻與D線相連,則為低速設備,主機確認有設備連接后,向該端口發送一個復位信號。 設備默認狀態設備收到一個復位信號后,連接到主機的所有設備的地址為默認地址(00H),主機會首先發送一個獲取設備描述符的請求,設備通過這個默認地址向主機發送第一次設備描述符。 地址分配當主機接收到有設備對默認地址(00H)來響應的時候,就確認有設備連接,主機對設備分配一個空閑的地址(如02H),以后設備就只對02H地址進行響應。 讀取USB設備描述符主機分配給設備地址后,通過這個地址主機讀取該設備描述符,確認USB設備的屬性。 設備配置主機依照讀取的USB設備描述符來進行配置,如果設備所需的USB資源得以滿足,主機就會查找驅動,當正確找到驅動后,主機給設備發送配置命令,配置完畢后,這個USB設備就枚舉成功了。 掛起為了節省電源,當總線保持空閑狀態超過3ms以后,設備驅動程序就會進入掛起狀態,在掛起狀態時,設備的消耗電流不超過500A。當被掛起時,USB設備保留了包括其地址和配置信息在內的所有的內部狀態。2.5 USB的設備描述符標準的USB描述符包括設備(Device)描述符、配置(Configuration)描述符、接口(Interface)描述符、端點(Endpoint)描述符以及字符串(String)描述符,字符串描述符不是必須的。不同的描述符從不同的層級來表示設備的屬性。設備描述符包含了整個設備的信息以及設備支持的配置號碼,每一個設備只能由一個設備描述符。但每一個設備可以有幾個配置描述符,它包含了電源管理信息以及所支持的接口號碼。接口描述符包含了與端點通信所需要的信息,它可以有零個或多個端點描述符。各個描述符的樹狀結構如圖2-5所示:圖2-5 描述符的樹狀結構設備描述符描述了一個USB設備的總體信息,它在枚舉過程中主機從設備讀取的第一個描述符。設備描述符總共有18個字節,分為14個字段。配置、接口以及端點描述符是在主機得到設備描述符之后發送給主機的。配置描述符描述了一個特定的設備配置信息,主機使用Set_Configuration請求來選擇一個配置,用Get_Configuration請求來返回一個配置。當主機請求獲取一個配置描述符的時候,與配置描述符相關的所有接口、端點描述符都會一并返回。配置描述符由9個字節組成,分為8個字段。接口描述符描述了一個配置中的特定接口。接口描述符總是作為配置描述符的一部分被返回,主機不能通過Get_Descriptor請求直接獲取接口描述符。接口描述符由9個字節組成,分為9個字段。端點描述符包含了主機用來確定一個端點帶寬要求的信息。除了端點0外,一個接口所使用的每一個端點都有它自己的描述符。端點0不需要描述符,它也不能直接由Get_Descriptor請求來獲得。端點描述符由7個字節組成,分為6個字段。2.6 USB請求USB規范定義了3種請求,分別是標準請求(Standard Request)、類請求(Class Request)和廠商請求(Vendor Request)。USB規范定義了11種標準請求,所有設備都必須對這11種請求作出響應,即使當主機沒有給設備分配一個地址或者沒有配置設備。某些設備的功能類似或者提供類似的服務,USB協議就將它們歸為一類,并且定義了特定的請求,稱為類請求。但是只有類請求是不能滿足眾多USB廠商的需求的,所以,USB協議允許一個供應商為它的設備自定義特殊的請求,此類請求稱為廠商請求。所有的USB總線設備以缺省控制管道響應主機發出的請求,這些請求是通過控制傳輸來完成的,請求及請求的參數通過Setup包發向設備,由主機負責設置Setup包內的每個域的值。Setup包格式如表2-1所示。表2-1 SETUP包格式大?。˙)11222域bmRequestTypebRequestwValuewIndexwLength在表2.4.5.1中,bmRequestType表示設備請求類型,D7:數據傳輸方向, 0主機到設備,1設備到主機;D65:類型,0標準,1類型,2廠商,3保留;D40:接收方,0設備,1接口,2端點,3其它;431保留。bRequest表示USB設備請求值,標準請求有11個命令。wValue為值,它根據不同的請求,以字節來定義,例如,設備請求為Get Descriptor(06H),wValue為01H時,表明要發送設備描述符。wLength表示長度,如果傳輸的是一組數據,則這個長度的值表示要傳輸數據的字節數。本章介紹了USB協議的相關內容,包括USB傳輸要件,USB傳輸中的事務、信息包和聯絡信號,USB的傳輸結構,USB的總線枚舉過程,USB的設備描述符以及USB請求。本章為本設計下面內容的展開奠定了基礎。第三章 數據采集系統的硬件設計如前所述 ,USB系統中的通信主要由主機控制,這里的主機是指計算機硬件與軟件的結合體,不是單純的硬件。在開發USB的外圍設備時,需要有主機中主控制器對應外設控制器和外設響應軟件程序。其中硬件部分的收發器的作用是驅動和接收USB的差分數據,串行輸入引擎SIE的作用是前端硬件和USB標準中相關規定的協議內容,即包識別、數據編碼和譯碼、填充和去填充、CRC錯誤校驗、數據串并和并串轉換等。協議引擎部分的主要作用是操作控制管道(端點0)的消息流、USB標準中相關內容規定的最底層協議和數據接受與發送。3.1 硬件系統的結構基于USB總線的實時數據采集系統硬件組成包括模擬開關、A/D轉換器、單片機、USB接口芯片,該系統能夠實現8路數據自動采集,系統的組成框圖如圖3.1.1所示。主要包括5個組成部分:中央處理器選用AT89C51芯片,完成各部分控制功能和USB傳輸協議;A/D轉換器和接口電路主要完成數據采集,并讀入MCU處理;復位電路完成對MCU的上電復位和電源電壓監視;電源電路主要為各部分提供要求的電源;外設與主機間的通信電路采用USB接口。單片機通過8位并行接口傳送經過A/D轉換的采集數據,存儲在FIFO存儲器中。一旦存滿,串行接口引擎SIE立刻對數據進行處理,包括同步模式識別、并串轉換、位填充/不填充、CRC校驗、PID確認、地址識別以及握手鑒定,處理完畢后數據由模擬收/發器通過D+、D-發送至PC。上述過程遵循USB1.1協議?,F場電信號A / D轉換器USB接口芯片PC機MCU圖3-1 數據采集系統硬件組成框圖3.2 芯片選擇USB數據采集系統硬件主要由微控制器AT89C51,A/D轉換芯片ADC0809,USB接口芯片PDIUSBDI2組成。在實際開發過程中使用USB D12 SMART開發套件,使用其預留的擴展口在試驗板上搭建AID轉換電路,并對開發板電路進行相應修改而實現此硬件系統。要實現一個USB設備,首先面對的問題就是選擇一種適合的USB控制芯片。從芯片大的構架來分,市面上所有的USB控制器芯片可以分為不需要外接微控制器的芯片和需要外接微控制器的芯片。而不需要外接微控制器的芯片又可以分為專門為USB設計的芯片和嵌入通用微控制器內核的芯片。1.專US設計的USB控制芯片 該類芯片是廠商為開發USB應用設備而專門設計的,內部用的是專用的CPU.較為典型的代表為Cypress公司推出的CY7C63101A, CY7C63723、等等。 2.內嵌通用微控制器的芯片 內嵌通用微控制器的USB控制芯片可以說是在通用微控制器的基礎上擴展了USB功能。這些控制器芯片的優點是開發者已經熟悉了這些通用微控制器的結構和指令集,所以開發起來救比較容易。即使用戶不熟悉這些芯片的結構,但是介紹這些微控制器的書籍和關于他們的范例程序、開發工具等都可以作為設計時的參考。此類芯片的典型代表有:Cypress公司的EZarU SB系列芯片(內嵌80C186), Atmel公司的AT76C711(內嵌Atmel AVR), SIEMENS公司的C541U(內 嵌80C51,8 0052)等等。 3.需外接微控制器的芯片 這些USB控制芯片只負責處理USB相關的通信工作,而且必須由外部微控制器的控制才能正常工作。如果選擇了這種設計方按,那么必須再選擇一個微控制器芯片,這樣就增加了設備的體積。但其優點是用戶可以選擇任何一種己熟悉的微控制器,而且這種芯片價格也相對便宜。 3.2.1 ADC0809ADC0809允許的最大時鐘頻率為1280kHz,主要管腳功能如下:地址輸入和控制線:4條 ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經譯碼后被選中的通道的模擬量進轉換器進行轉換。A,B和C為地址輸入線,用于選通IN0IN7上的一路圖3-2 ADC0809的內部邏輯結構模擬量輸入。 ADC0809對輸入模擬量要求信號單極性,電壓范圍是05V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。 通道選擇表如下表3-1所示。表3-1CBA選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7數字量輸出及控制線:11條 ST為轉換啟動信號:當ST上跳沿時,所有內部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,ST應保持低電平。EOC為轉換結束信號。當EOC為高電平時,表明轉換結束;否則,表明正在進行A/D轉換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉換得到的數據。OE1,輸出轉換得到的數據;OE0,輸出數據線呈高阻狀態。D7D0為數字量輸出線。 VREF(),VREF()為參考電壓輸入。CLOCK: 時鐘輸入信號線。因ADC0809的內部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHZ.START: 啟動脈沖輸入端。在時鐘脈沖頻率為640kHz時,START脈寬應大于100ns-200ns 。EOC: EOC為轉換結束信號,當EOC為高電平時,表明轉換結束;否則,表明正在進行A/D轉換。D7-DO: 轉換所得八位輸出數據,D7是最高位,而DO是最低位。OE: 允許輸出端。OE端控制輸出鎖存器的三態門。當OE=1時,轉換所得數據出現在D7-DO腳,當OE=0時D7-DO腳對外是高阻抗。 ADC0809應用說明:(1)ADC0809內部帶有輸出鎖存器,可以與AT89C51單片機直接相連。 (2)初始化時,使ST和OE信號全為低電平。 (3)送通道的地址到A、B、C端口上。 (4)在ST端給出一個至少有100ns寬的正脈沖信號。 (5)是否轉換完畢,我們根據EOC信號來判斷。 (6)當EOC變為高電平時,這時給OE為高電平,轉換的數據就輸出給單片機了。 3.2.2 AT89C51AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROM Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。 圖3-3 AT89C51管腳圖主要特性:(1)4K字節可編程FLASH存儲器(壽命:1000寫/擦循環)(2)全靜態工作:0Hz-24KHz(3)三級程序存儲器保密鎖定(4)128*8位內部RAM(5)32條可編程I/O線(6)兩個16位定時器/計數器(7)6個中斷源(8)可編程串行通道(9)低功耗的閑置和掉電模式(10)片內振蕩器和時鐘電路3.2.3 PDIUSBD12介紹PDIUSBD12是一款性價比很高的USB器件,它通常用作微控制器系統中實現與微控制器進行通信的高速通用并行接口。它還支持本地的DMA傳輸。這種實現USB接口的標準組件使得設計者可以在各種不同類型微控制器中選擇出最合適的微控制器。這種靈活性減小了開發的時間風險以及費用(通過使用已有的結構和減少固件上的投資),從而用最快捷的方法實現最經濟的USB外設的解決方案。PDIUSBD12完全符合USB1.1版的規范,它還符合大多數器件的分類規格:成像類、海量存儲器件、通信器件、打印設備以及人機接口設備。同樣地,PDIUSBD12理想地適用于許多外設,例如:打印機、掃描儀、外部的存儲設備、Zip驅動器和數碼相機等等,它使得當前使用SCSI的系統可以立即降低成本。PDIUSBD12 所具有的低掛起功耗連同LazyClock輸出可以滿足使用ACPI、OnNOW和USB電源管理的要求。低的操作功耗可以應用于使用總線供電的外設。此外它還集成了許多特性包括SoftConnetTM、GoodLinkTM、可編程時鐘輸出、低頻晶振和終止寄存器。集合所有這些特性都為系統顯著節約了成本,同時使USB功能在外設上的應用變得容易。 D12芯片的主要特點包括:(1)符合USB1.1版本規范;(2)可與任何外部微控制器/微處理器實現高速并行接口(2MB/s);(3)采用GoodLink技術的連接指示器,在通信時使LED閃爍;(4)主端點的雙緩沖配置增加了數據吞吐量并輕松實現實時數據傳輸;(5)在批量和等時模式下均可實現1Mb/s的數據傳輸率;(6)完全自治的直接內存存取DMA操作。PDIUSBD12內部結構如圖3-4所示。圖3-4 PDIUSBD12內部結構說明:1、模擬收發器:集成的收發器接口可通過終端電阻直接與USB電纜相連。2、電壓調整器:片內集成了一個3.3V的調整器用于模擬收發器的供電。該電壓還作為輸出連接到外部1.5K的上拉電阻??蛇x擇PDIUSBD12提供的帶1.5K內部上拉電阻的軟件連接到外部1.5K內部上拉電阻的軟件連接技術。3、PLL鎖相環:片內集成了6MHz時鐘乘法PLL,這樣就可使用低成本的6MHz晶振,EMI也隨之降低。PLL的工作不需要外部元件。4、位時鐘恢復:位時鐘恢復電路使用4X過采樣規則,從進入的USB數據流中恢復時鐘,能跟蹤USB規定范圍內的抖動和頻漂。5、PHILIPS串行接口引擎(PSIE):PSIE實現了全部的USB協議層,且完全由硬件實現而不需要固件的參與。該模塊的功能包括:同步模式的識別;并行/串行轉換;位填充/解除填充;CRC校驗/產生;PID校驗/產生;地址識別和握手評估/產生。6、SoftConnectTM:SoftConnectTM與USB的連接是通過1.5K上拉電阻將D(用于高速USB器件)設置為高實現的。1.5K上拉電陰集成在PDIUSBD12片內,默認狀態下不與V相連,其連接的建立是通過外部系統微控制器發送命令來實現的。這就允許系統微控制器在決定與USB建立連接之前完成初始化時序。USB總線連接可以重新初始化而不需要拔出電纜。PDIUSBD12在連接可以建立之前會檢測USB規格的5%,但用于連接的VSE電壓規格仍然有足夠的余量。SoftConnectTM是PHILIPS半導體一項尚未獲批準的專利技術。7、GoodLinkTM:GoodLinkTM技術可提供可提供良好的USB連接指示。在枚舉中,LED指示根據通信的狀況間歇閃爍。當PDIUSBD12成功地枚舉和配置后,LED指示將一直點亮。隨后與PDIUSBD12之間成功的傳輸(帶應答)將關閉LED。處于掛起狀態時,LED將會關閉。該特性為USB器件,集線器和USB通信狀態提供了用戶友好的指示。作為一個診斷工具它對隔離故障的設備是很有用的。該特性降低了現場支持和熱線的成本。8、存儲器管理單元(MMU)和集成RAM:在以12MB/S的速率傳輸并與微控制器并口相連時,MMU和集成RAM作為USB之間速度差異和緩沖區。這就允許微控制器以其自己的速率對USB信息包進行讀寫。9、并行和DMA接口:一個普通的并行接口定義成易于使用,快速而且可以主流的微控制器直接連接的接口。對一個微控制器而言,PDIUSBD12看起來就像一個帶8位數據總線和一個地址(占用2個位置)的存儲器件,PDIUSBD12支持多路復用和非復用的地址和數據總線;支持主端點與本地共享RAM之間直接讀取的DMA傳輸;還支持單周期和突發模式的DMA傳輸。10、DMA傳輸:直接存儲器尋址(DMA)允許在主端點和本地共享存儲器間實現數據塊的有效傳輸。使用DMA控制器,PDIUSBD12的主端點和本地共享存儲器間的數據傳輸可自主進行,而不需要本地CPU的干預。要處理任何DMA傳輸,本地CPU從主機接收必要的SETUP信息,并對DMA控制器進行正確的編程。典型的,對DMA控制器的傳輸模式,字節計數寄存器和地址計數器進行正確的編程。在該模式下,PDIUSBD12發出請求時開始傳輸,當字節計數器減少為零時終止。在DMA控制器編程之后,本地CPU在初始化傳輸時,將PDIUSBD12中的DMA使能位置位。PDIUSBD12可編程為單周期DMA或突發模式DMA。在單周期DMA中,DMREQ在每單個應答后直到被DMACK_N重新激活之前保持無效。在突發模式DMA中,DMREQ器件中突發編程時一直保持有效。該過程持續到PDIUSBD12通過EOT_N接收到一個DMA終止信息,這時產生一個中斷指示本地CPU,DMA操作已經完成。3.3 接口硬件電路設計由D12接口組成的通信電路原理如圖3.3.1.1所示。多路地址/數據總線ALE接單片機的ALE腳,這樣使用傳送指令可以與D12接口,對D12操作就象對D12操作一樣,此時忽略A0(命令口和數據口地址線)的輸入。因為沒有使用DMA傳輸方式,所以沒有用到DMACK_N、EOT_N和DMREQ_N等DMA引腳。INT_N是USB中斷請求腳,發出USB中斷請求;GL_N是GooDLink指示燈,在調試過程中非常有用,在通信時會不停閃爍。如果一直亮或者一直暗,表示USB接口有問題,如果D12掛起,則LED關閉。CLKOUT是D12的時鐘輸出,可以通過固件編程改變其頻率,在調試固件時,可作為參考。3.3.1 A/D與單片機接口電路 圖3-5 ADC0809與89C51的接口電路89C51通過P2.7和讀、寫控制線來控制轉換器的模擬輸入通道地址鎖存、啟動和允許輸出。編程時注意啟動AD0809后,EOC在一定時間才能變成低電平。3.3.2 PDIUSBDI2與單片機接口電路PDIUSBD12與89C51的連接電路如圖3.3.2.1所示。89C51的ALE和PD12的ALE相接,表示采用單獨地址和數據總線配置。其AO腳接高電平用于控制命令或數據輸入到PDIUSBD12,也就是編程中outportcmd()和outportdata()函數。此外89051的多位地址/數據復用總線PO可直接與PDIUSBD12的數據總線相連,CLKOUT時鐘輸出為89C51提供時鐘輸入。圖3-6 PDIUSBD12與89C51的連接電路
收藏
資源目錄
壓縮包內文檔預覽:(預覽前20頁/共59頁)
基于USB總線數據采集系統設計與實現說明書,基于,USB,總線,數據,采集,系統,設計,實現,說明書