【正文】
ystem was put forward with technology in the paper. With the analysis on the subject, the architecture of the USB was deeply analyzed firstly, and according to the scheme of the data acquisition system, the detailed hardware and software design was introduced. In the hardware section, the interface between the CY7C68013’GPIF (General Programmable Interface) and the A/D converter was introduced, and the various DCDC circuit were embodied. In the software section, the “wave descriptor” and the whole munication process of CY7C68013 in the GPIF master mode were expounded。Function driver is the bridge between hardware and host software, and the design process of the WDM (Windows Driver Mode) driver for the USB was introduced here。數(shù)據(jù)采集系統(tǒng)主要完成數(shù)據(jù)信息的采集、 A/D 轉(zhuǎn)換,然后通過 PC 接口總線將處理后的數(shù)據(jù)送入計(jì)算機(jī)作進(jìn)一步處理。 數(shù)據(jù)采集卡同計(jì)算機(jī)外設(shè)一樣,與主機(jī)的通訊接口一般是基于 PC上的 RS232 總線、 ISA 總線、 PCI 總線或 EPP/ECP 等 [1]。對(duì)于 ISA總線也 存在同樣的問題。 總之,采用這些傳統(tǒng)接口的數(shù)據(jù)采集設(shè)備存在以下缺陷:安裝麻煩;價(jià)格昂貴;受計(jì)算機(jī)插槽數(shù)量、地址、中斷資源的限制,可擴(kuò)展性差 [2];在一些電磁干擾性強(qiáng)的測(cè)試現(xiàn)場(chǎng),可能無法專門對(duì)其作電磁屏蔽,從而導(dǎo)致采集的數(shù)據(jù)失真。采用 USB 總線接口的采集系統(tǒng)具備了如下優(yōu)點(diǎn): 1. 設(shè)備安裝和配置容易。 2. 接口數(shù)目多,每個(gè) USB 主機(jī)通過 USB 集線器,可以同時(shí)掛接最多 127 個(gè)外圍設(shè)備,有效地解決了多點(diǎn)數(shù)據(jù)采集系統(tǒng) I/O 口不夠用的問題。在 PC 主河南師范大學(xué)本科畢業(yè)論文 VIII 機(jī)和采集系統(tǒng)都具備支持 標(biāo)準(zhǔn)的接口芯片時(shí),最快可以達(dá)到 480Mbps,可以滿足高速數(shù)據(jù)采集系統(tǒng)的要求。 因此研究設(shè)計(jì)一種基于 接口技術(shù)的數(shù)據(jù)采集系統(tǒng)具有十分重要的實(shí)用價(jià)值。該技術(shù)著眼于簡(jiǎn)化計(jì)算機(jī)與外設(shè)的連接過程,顧及低速和高速的兼容;從而解決串行設(shè)備和并行 設(shè)備與計(jì)算機(jī)相連的爭(zhēng)論,為用戶提供一種可共享的、可擴(kuò)充的、使用方便的串行總線 [3]。 1994 年, Microsoft 公司提出 PnP( Plus and Play,即插即用)方案,旨在把 PC外設(shè)和擴(kuò)充電路板連接起來,實(shí)現(xiàn)系統(tǒng)對(duì)中斷和端口等資源的自動(dòng)分配,而無需用戶的干預(yù)。 USB 最初推出的是 版本,其總線傳輸速度較低,有 12Mbps(全速)和 (低速)兩種。 于 20xx 年 4 月發(fā)表,是一種高速模式的版本,它把數(shù)據(jù)傳輸速度提高到了 480Mbps,在保持了 優(yōu)點(diǎn)的前提下,保證了向下的兼容性,可以完全支持各種 的產(chǎn)品 [4]。 USB 設(shè)備的迅速增加,設(shè)備與設(shè)備之間的直接數(shù)據(jù)傳輸變得越來越迫切, USBOTG (OnTheGo)技術(shù)應(yīng)運(yùn)而生 [5][6][7],它于 20xx 年 12 月底制定,賦予了設(shè)備雙重身份。這一技術(shù)使 USB 設(shè)備擺脫了對(duì) PC 的依賴,大大擴(kuò)展了USB 的應(yīng)用范圍。 USB 設(shè)備在實(shí)際應(yīng)用中已經(jīng)逐漸取代傳統(tǒng)的外設(shè),因此研究 USB 具有一定的意義。 系統(tǒng)硬件支持 在數(shù)據(jù)采集系統(tǒng)中應(yīng)用 接口總線,首先計(jì)算機(jī)系統(tǒng)要支持 協(xié)議,也就是說主機(jī)要有 的主控制器及其相應(yīng)的驅(qū)動(dòng)程序來支持 的設(shè)備。在操作系統(tǒng)的“設(shè)備管理器”中可以看到開發(fā)數(shù)據(jù)采集系統(tǒng)所使用的計(jì)算機(jī)所包含的 主控制器和根集線器。 其中, D+、 D是串行數(shù)據(jù)通信線,它支持兩種數(shù)據(jù)傳輸速率,對(duì)于高速外設(shè), USB以全速 12Mbps 或高速 480Mbps 傳輸數(shù)據(jù);對(duì)于低速外設(shè), USB 則以 的傳輸速率傳輸數(shù)據(jù)。 VBUS 通常是 +5V 電源, GND 是地線。高速設(shè)備電纜的下行端的上拉電阻位于 D+線上,而低速設(shè)備電纜的下行端的上拉電阻位于 D線上。 USB 的電源 USB 的電源主要包括兩方面: 電源管理:即通過電源管理系統(tǒng), USB 的系統(tǒng)軟件和設(shè)備如何與主機(jī)協(xié)調(diào)工作。主機(jī)向與它直接相連的 USB 設(shè)備提供電源,并且每 USB 設(shè)備都有自己的電源。相反,那些有另外電源的設(shè)備稱作“自供電”設(shè)備。 ( 2)電源管理 圖 22 低速設(shè)備電纜纜 圖 23 高速設(shè)備電纜 河南師范大學(xué)本科畢業(yè)論文 4 USB 主機(jī)與 USB 系統(tǒng)有相互獨(dú)立的電源管理系統(tǒng)。另外, USB 設(shè)備還有額外的功耗管理特性,允許軟件對(duì)他們進(jìn)行功耗管理。 USB 總線拓?fù)浣Y(jié)構(gòu) USB 將 USB 設(shè)備和 USB 主機(jī)連接在一起。每段線路都是主機(jī)與集線器或功能設(shè)備之間,或者集線器與另一個(gè)集線器或功能設(shè)備之間的點(diǎn)對(duì)點(diǎn)連接。 圖 24 USB 總線拓?fù)浣Y(jié)構(gòu) 河南師范大學(xué)本科畢業(yè)論文 5 由于集線器和電纜中的信號(hào)傳輸有定時(shí)限制,該星形拓?fù)浣Y(jié)構(gòu)的最大層數(shù)為 7 層(包括根層)。一個(gè)復(fù)合設(shè)備( Compound Device) (如圖 所示 )占用了兩層;因此,如果它被連接在第 7 層就不能運(yùn)轉(zhuǎn),第 7層只能允許連接功能設(shè)備。 USB 通信流 USB 在主機(jī)的軟件和 USB 功能設(shè)備之間提供了通信服務(wù)。通過將 USB 功能設(shè)備的各種通信流分離, USB 能更好地全面利用總線。通信流在設(shè)備的端點(diǎn)中止,設(shè)備的端點(diǎn)可以識(shí)別所有通信流。 圖 25 USB 主機(jī) /設(shè)備詳細(xì)示意圖 河南師范大學(xué)本科畢業(yè)論文 6 主機(jī)和 USB 設(shè)備物理上的簡(jiǎn)單連接要求大量的層和實(shí)體之間相互作用。 USB 設(shè)備層是 USB 系統(tǒng)軟件所具有的觀點(diǎn),也是 USB 系統(tǒng)軟件對(duì)設(shè)備執(zhí)行普通 USB 操作的層。 USB 設(shè)備和功能層在他們的層內(nèi)都有一個(gè)邏輯通信的情況,但是實(shí)際上他們是 通過 USB 總線接口層完成數(shù)據(jù)傳輸?shù)摹=涌谑嵌它c(diǎn)聚集而成的端點(diǎn)集,是功能設(shè)備的體現(xiàn)??蛻糗浖霉艿朗ㄅc端點(diǎn)集相關(guān))來管理接口。而在 USB 上移動(dòng)之前,由主機(jī)控制器(或者 USB 設(shè)備,由傳輸方向決定)將數(shù)據(jù)進(jìn)行封裝。 圖 26 USB 通信流 河南師范大學(xué)本科畢業(yè)論文 7 圖 26 所示為通信流在端點(diǎn)與主機(jī)端的存儲(chǔ)器緩沖區(qū)之間的管道傳輸。這組通信流使設(shè)備的通信要求與 USB 提供的傳輸特性有效地匹配 [10]。當(dāng)設(shè)備連接時(shí),系統(tǒng)為每個(gè)邏輯設(shè)備分配了唯一的地址,設(shè)備的每個(gè)端點(diǎn)在設(shè)計(jì)時(shí)就給定了一個(gè)由設(shè)備決定的唯一的標(biāo)識(shí)符 — 端點(diǎn)號(hào)。設(shè)備地址、端點(diǎn)號(hào)和方向的組合允 許唯一指定一個(gè)端點(diǎn),每個(gè)端點(diǎn)都單一的連接,支持一個(gè)方向的數(shù)據(jù)流輸入(從設(shè)備到主機(jī))或輸出(從主機(jī)到設(shè)備)。而輸入端點(diǎn),存放的是要從 USB 設(shè)備傳到主機(jī)的數(shù)據(jù),這些數(shù)據(jù)對(duì)主機(jī)來說是要輸入的,所以就稱為輸入端點(diǎn),盡管它在設(shè)備上。USB 系統(tǒng)軟件用這個(gè)默認(rèn)的控制方式對(duì)邏輯設(shè)備進(jìn)行初始化 和一般的操作(比如配置邏輯設(shè)備),就像默認(rèn)的控制管道一樣。功能設(shè)備在執(zhí)行的過程中可能需要額外的端點(diǎn)。 管道 USB 管道是設(shè)備端點(diǎn)和主機(jī)軟件之間的聯(lián)系。有兩種相互獨(dú)立的管道通信模式 [11]: 1. 流:在管道中傳輸?shù)臄?shù)據(jù)沒有 USB 定義的結(jié)構(gòu)。 由兩個(gè)端點(diǎn)號(hào)為 0 的端點(diǎn)組成的管道稱為默認(rèn)管道,這個(gè)管道在 USB 設(shè)備上電或接收到一個(gè)總線復(fù)位信號(hào)后一直可用,而其他管道在 USB 設(shè)備配置后才開始存河南師范大學(xué)本科畢業(yè)論文 8 在。在設(shè)備配置后默認(rèn)控制管道也可以由特定的設(shè)備軟件使用, USB 系統(tǒng)軟件保留默認(rèn)控制管道的所有權(quán),并協(xié)調(diào)其他客戶軟件對(duì)管道的使用。如果需要,客戶軟件程序可以使管道返回所有未處理的IRP。 IRP 可以要求多數(shù)據(jù)有效載荷在總線上傳輸客戶數(shù)據(jù)。對(duì)于沒有填滿 IRP 數(shù)據(jù)緩沖區(qū)的短輸入信息包 IRP(即小于數(shù)據(jù)有效載荷的最大值),根據(jù)客戶程序的要求,可能是以下兩種含義中的一種: 1. 客戶程序可能期望 IRP 中數(shù) 據(jù)總量的大小可變。此時(shí),這個(gè) IRP 應(yīng)當(dāng)能無錯(cuò)誤地取消,并且主機(jī)控制器應(yīng)該處理下一個(gè) IRP。在這種情況下,沒有填滿 IRP 數(shù)據(jù)緩沖區(qū)的短信息包是一個(gè)錯(cuò)誤指示器。 幀和微幀 USB 工作在全速 /低速狀態(tài)時(shí),主機(jī)控制器每隔 1 毫秒發(fā)送一幀數(shù)據(jù);而工作在高速狀態(tài)時(shí),主機(jī) 控制器每隔 125 微秒就發(fā)送一幀數(shù)據(jù)。圖 27 表示幀和微幀的產(chǎn)生 圖 27 幀和微幀的產(chǎn)生 河南師范大學(xué)本科畢業(yè)論文 9 USB 數(shù)據(jù)傳輸類型 [12] USB 數(shù)據(jù)傳輸類型是從 USB 系統(tǒng)軟件的管理角度來描述的。傳輸類型決定于客戶軟件和它的功能模塊之間的數(shù)據(jù)流特性。 批量傳輸 批量傳輸用于傳輸突發(fā)的大量的數(shù)據(jù),全速模式時(shí) 以 8, 16, 32 或 64 字節(jié)(高速模式時(shí)是 512 字節(jié))的信息包傳送。 當(dāng)主機(jī)準(zhǔn)備接收批量數(shù)據(jù)時(shí),它發(fā)出一個(gè) IN 令牌包。 NAK 表示設(shè)備暫時(shí)不能返回?cái)?shù)據(jù),而 STALL 表示端點(diǎn)永久地被停止,需要 USB 系統(tǒng)軟件的干預(yù)。如果主機(jī)在接收數(shù)據(jù)時(shí)檢測(cè)到錯(cuò)誤,它將不返回任何握手包給設(shè)備。如果設(shè)備無錯(cuò)地接收到數(shù)據(jù)包,那么設(shè)備將返回下列三個(gè)握手包中的一個(gè)(高速設(shè)備,也可能是第四種握手包 NYET): 1) ACK:表示數(shù)據(jù)包被無錯(cuò)地接收,通知主機(jī)可以發(fā)送下一個(gè)包。 3) STALL:如果端點(diǎn)被停止,則返回 STALL 以告訴主機(jī)不要重試傳輸,因?yàn)樵O(shè)備上有錯(cuò)誤條件。批量傳輸格式如圖 28 所示。控制傳輸也可以根據(jù)不同的情況選擇是否需要在建立階段和狀態(tài)階段包含一個(gè)數(shù)據(jù)階段。在建立階段, SETUP 事務(wù)用于將信息發(fā)送到功能設(shè)備的控制端點(diǎn)。收到 SETUP 包的設(shè)備必須接收 SETUP 的數(shù)據(jù)并用 ACK 應(yīng)答,但是如果數(shù)據(jù)損壞,則丟 棄數(shù)據(jù)并且不返回握手信息。如果數(shù)據(jù)量超過了先前確定的數(shù)據(jù)包的大小,數(shù)據(jù)將在幾個(gè)事務(wù)中分別傳輸。數(shù)據(jù)階段中的所有事務(wù)都必須有相同的方向,即同為 OUT 或者同為 IN。例如,如果數(shù)據(jù)階段 由輸出事務(wù)構(gòu)成,則狀態(tài)階段是單一的輸入事務(wù)。圖 210 說明了控制傳輸事務(wù)讀寫順序以及數(shù)據(jù)時(shí)序位和控制讀寫序列的數(shù)據(jù) PID 類型。設(shè)備的端點(diǎn)模式器的結(jié)構(gòu)決定了它的查詢頻率,在 1255ms 之間。中斷傳輸主要應(yīng)用于鍵盤、操縱桿和鼠標(biāo)。一收到輸入標(biāo)記,設(shè)備便可返回?cái)?shù)據(jù)、 NAK 或 STALL。如果中斷端點(diǎn)的停止特征被設(shè)置了,設(shè)備將返回 STALL 握手包。作為對(duì)數(shù)據(jù)包接收的反應(yīng),如果主機(jī)無錯(cuò)的被接收數(shù)據(jù),則發(fā)出 ACK 握手包;如果數(shù)據(jù)包損壞,則不返回握手包。 圖 210 控制讀寫序列 河南師范大學(xué)本科畢業(yè)論文 12 中斷傳輸 同步傳輸 同步傳輸用于保證時(shí)間優(yōu)先的數(shù)據(jù)流,如音頻和視頻數(shù)據(jù)流,傳輸?shù)臅r(shí)間對(duì) 于數(shù)據(jù)來說是非常必要的條件,在全速模式時(shí),一個(gè)同步包包含 1023 字節(jié);在高速模式時(shí),一個(gè)同步包包含 1024 字節(jié)。為了減少內(nèi)部的事務(wù)操作,同步傳輸沒有握手信號(hào),也不具有重發(fā)機(jī)制,如圖 212 所示。在全速模式時(shí),對(duì)于每個(gè)端點(diǎn),一幀中只有一個(gè)同步包;在高速模式時(shí),對(duì)于每個(gè)端點(diǎn),一個(gè)微幀中就可 以包含多個(gè)同步包。至于同步傳輸,應(yīng)用于實(shí)時(shí)性要求較高,而準(zhǔn)確性要求較低的場(chǎng)合,比如視頻設(shè)備要求圖像不能有明顯的滯后,而如果傳輸?shù)哪承┳止?jié)出錯(cuò),人眼也無法察覺,這時(shí)就使用同步傳輸來傳送視頻數(shù)據(jù)流。 本設(shè)計(jì)是采用批量傳輸?shù)姆绞竭M(jìn)行傳輸?shù)?。圖 213 就是在通過 USB 數(shù)據(jù)線進(jìn)行信息傳輸時(shí)包含的步驟。接下來,編碼后的數(shù)據(jù)被放入 USB 數(shù)據(jù)線,這是由差分驅(qū)動(dòng)程序完成的。對(duì)數(shù)據(jù)進(jìn)行 編碼和采用差分信號(hào) 進(jìn)行傳輸有助于確保數(shù)據(jù)的完整性和消除噪聲干擾。圖 214 所示的是一個(gè)數(shù)據(jù)流和它相對(duì)應(yīng)的 NRZI 編碼。連續(xù)的一串 0 使 NRZI 數(shù)據(jù)在每個(gè)位周期都觸發(fā),而連續(xù)的一串 1 則導(dǎo)致數(shù)據(jù)中長(zhǎng)期都沒跳變。在 NRZI 編碼之前,數(shù)據(jù)流上每出現(xiàn)六個(gè)連續(xù)的 1 之后都要插入一個(gè) 0,迫使在 NIZR 數(shù)據(jù)流上有一個(gè)跳變。 同步頭 同步頭位于每個(gè)包前,允許接收器同步它們的位恢復(fù)時(shí)鐘,如圖 216 所示。 圖 216 同步頭 河南師范