freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

互聯(lián)網(wǎng)]基于單片機和usb接口技術(shù)的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計-資料下載頁

2024-11-12 15:56本頁面

【導讀】數(shù)據(jù)采集包括從信號源采集信號,將其進行數(shù)字化,存儲分析并傳遞到個人。通用串行總線作為一種新的微機總線接口規(guī)范.具有便捷、易擴展、低。成本、低干擾等特點,非常適合作為主機和外設(shè)之間的通信接口。設(shè)備/儀器與PC機之間的連接提供了一個費用低廉且簡單易用的方案。USB技術(shù)雖然出現(xiàn)的時間并不長,但是由于它的種種優(yōu)點,被越來越多的廠。系統(tǒng)的硬件及固件PDIUSBD12程序設(shè)計方案。

  

【正文】 e 模式。然后 MCU 通過檢查選擇控制輸出端點確認緩沖區(qū)是否己滿并將數(shù)據(jù)從緩沖區(qū)讀出。 普通端點:端點 1 和端點 2 這里定義為普通輸入輸出。 普通輸出端點配置為從主機接收數(shù)據(jù)包。當 MCU 從主機接收 Generic_ Out 標志(通過讀中斷寄存器識別 )時, D12 中斷位必須清零。選擇端點將清零 Generic_ Out 緩沖區(qū),接下來 MCU 需要確認數(shù)據(jù)的長度并把數(shù)據(jù)讀出,然后設(shè)置收到數(shù)據(jù)標志位bEPPflag。 對于普通輸入端點的中斷,只要讀取端點號的最后處理狀態(tài)寄存器來消除中斷寄存器的相應(yīng)位,把狀態(tài)清零就可以了。 Generic_ In 標志是在發(fā)送完數(shù)據(jù)后才產(chǎn)生的,當還有數(shù)據(jù)要發(fā)送時可以在中斷程序里接著繼續(xù)發(fā)。注意 :這里的數(shù)據(jù)發(fā)送完成標志是指在主機的一個有效的 IN 事務(wù)后才發(fā)生的。當主機發(fā)出 IN 事務(wù)而設(shè)備沒有送出數(shù)據(jù)時,是不會產(chǎn)生中斷的 主循環(huán) MCU 一旦上電就需要初始化其所有端口、存儲區(qū)、定時器和中斷服務(wù)程序。之后 MCU 將重新連接 USB,包括將 Soft_ Connect 寄存器設(shè)置為 ON。這些過程是很重要的,因為它確保了在 MCU 準備好服務(wù) D12 之前 D12 不會進行操作。 在主循環(huán)程序中 MCU 對鍵盤進行輪詢。如果任何一個特定的按鍵被按下,鍵處遼寧科技大學畢業(yè)設(shè)計(論文) 第 22 頁 22 理命令將執(zhí)行子程序并返回主循環(huán)。增加該子程序的目的僅僅是為了調(diào)試。 1ms 定時器用于激活該子程序以檢測在評估板上的任何按鍵。當輪詢到了檢測建立包時,它確認建立標志在之前是 否被中斷服務(wù)程序所置位。如果建立標志置位,它將向協(xié)議層發(fā)送一個器件請求進行處理。 驅(qū)動程序開發(fā)工具的介紹 Windows DDK Windows DDK 是 Microsoft 公司提供的一個開發(fā) Windows 驅(qū)動程序的工具,是 Microsoft 出品的設(shè)備驅(qū)動程序開發(fā)工具包 DDK(Device Developer Kit),它有 Windows98 DDK 和 Windows2020 DDK 兩個版本。前者能夠開發(fā)Windows95/98/Me/NT 下的 VxD, KMD 和 WDM 驅(qū)動程序,后者可以開發(fā)Windows98/Me/NT/2020 下的 KMD 和 WDM 驅(qū)動程序。利用 DDK 開發(fā) Windows 驅(qū)動程序是一種比較傳統(tǒng)的方法。 它要求設(shè)計者必須對 Windows 的體系結(jié)構(gòu)、設(shè)備驅(qū)動程序的結(jié)構(gòu)、虛擬機管理器 (VMM)以及 Intel CPU 體系結(jié)構(gòu)有深入的了解,而且需要保護模式的匯編語言編程經(jīng)驗。因此,在實際的開發(fā)過程中, DDK 一般不常被人們所使用,取而代之的是另外兩種工具: DriverStudio 和 WinDriver DriverStudio 是由 Compuware 公司提供的驅(qū)動程序開發(fā)工具,簡化了 Windows驅(qū)動程序的開發(fā)、調(diào)試和測試,完整的版本是由 SoftICE , DriverWorks , DriverNetWorks、 VtoolsD, BoundsChecker, TrueTime Driver, TrueCoverage Driver 等工具組成。 WinDriver 是美國 KRFTech 公司出品的用于編寫驅(qū)動程序的另一種工具包。它包括代碼生成器 WinDriver Wizard, WinDriver Debugging Monitor, WinDriver 發(fā)行包和一些公用程序和實例。 WinDriver 支持 ISA, EISA, PCI, Plugamp。Play 和 DMA, 它能自動地發(fā)現(xiàn)硬件并產(chǎn)生驅(qū)動程序,不需要牽涉到很低層的東西即可在很短的時間里編出驅(qū)動程序。使用 WinDriver 的優(yōu)點是 :開發(fā)者并不需要熟悉任何內(nèi)部操作系統(tǒng)或 kernel programming 或 DDK 及任何驅(qū)動程式。 WinDriver 同時允許開發(fā)者能在自己所熟悉的開發(fā)環(huán)境下,利用使用者模式 (User Mode)來開發(fā)出所需的驅(qū)動程序,如使用 MSDEV Visual C/C++, Borland C++Builder, Delphi 或任何 Win32 編譯器。使用 WinDriver 所開發(fā)的驅(qū)動程式均可用于 Windows XP, Windows 9x, NT/2020, CE, Linux and Solaris 等平遼寧科技大學畢業(yè)設(shè)計(論文) 第 23 頁 23 臺。 USB 設(shè)備驅(qū)動程序設(shè)計 USB 設(shè)備驅(qū)動程序是支持即插即用功能的標準 WDM(Windows DriverModel)驅(qū)動程序,它與 VXD 和 NT 式的驅(qū)動程序不同,它是內(nèi)核態(tài)程序,采用了分層處理的方式,不需要直接和硬件打交道。當 USB 設(shè)備插入 USB 集線器時, USB 集線器驅(qū)動程序會檢測到一個新設(shè)備的插入。 PnP 管理器使用廠商 ID 或設(shè)備類信息選擇要運行的驅(qū)動程序。一般情況下,調(diào)用驅(qū)動程序的 AddDevice 例程,并發(fā)出其他的 PnP IRP 。USB 設(shè)備驅(qū)動程序決不會收到任何硬件資源 (如端口或中斷 ),因為 USB 類驅(qū)動程序處理所有的低層 I/O。 在編寫驅(qū)動程序時,需要包含以下幾個頭文件 : :包含有 USB 設(shè)備驅(qū)動程序中所用到的各種常量和結(jié)構(gòu) 。 : IOCTL 的定義,包括各種驅(qū)動程序通用的數(shù)據(jù)結(jié)構(gòu) 。 : URB 構(gòu)造和各種例程,定義了 USBD 所輸出的服務(wù) 。 : USBDI 例程,包括 URB 結(jié)構(gòu)、各種驅(qū)動程序通用的數(shù)據(jù)結(jié)構(gòu)。 在編譯驅(qū)動程序時, build 將會在欲編譯的驅(qū)動程序所在的目錄中尋找一個叫 sources 的文件,這個文件將告訴編譯程序,應(yīng)該怎么做。在該文件中,以下五個內(nèi)容是必須包含的 : (1) TARGETNAME:表示編譯出的結(jié)果名稱 。 (2) TARGETTYPE:表示編譯出的結(jié)果類型 (例如驅(qū)動程序 )。 (3) TARGETPATH:表示在當前目錄 (sources 文件所在的目錄 )中建立一個什么名稱的子目錄來 保存中間結(jié)果 。 (4)TARGETLIBS:表示編譯過程中需要那些庫 。 (5) SOURCE:表示需要編譯那些文件。 在本系統(tǒng)的驅(qū)動程序開發(fā)中,主要的分發(fā)例程有 : DriverEntry():是驅(qū)動程序的入口,主要完成各種初始化操作,同時把注冊表復制到一個全局變量中,并告訴系統(tǒng)那些 IRP 由哪個例程處理,這部分被 I/O 系統(tǒng)直接調(diào)用。 USB_ D 12_Create():主要是用來在 USB 設(shè)備和驅(qū)動程序之間建立連接,當以打遼寧科技大學畢業(yè)設(shè)計(論文) 第 24 頁 24 開文件的名義打開設(shè)備準備讀寫時,調(diào)用 它。 USB_ D 12_pnp():處理即插即用的操作。 USB_ D 12_power():處理和電源相關(guān)的操作。 USB_ D 12_ Read()/USB_ D12_ Write():用來讀寫數(shù)據(jù),把數(shù)據(jù)讀到數(shù)據(jù)緩存區(qū)或把數(shù)據(jù)從緩存區(qū)寫到端點專用寄存器,由此發(fā)往 USB 主機。 USB_ D 12_DeviceloControl():設(shè)備操作,一般是用來對硬件發(fā)出一些控制命令。 USB_ D 12_closeHandle():當用戶關(guān)閉文件時,調(diào)用它清掃系統(tǒng),卸載驅(qū)動程序。 USB_ D 12_ AddDevice()第一次安裝硬件 (插上板子 )時使用 USB_ D 12_ DriverUnload():卸載硬件時使用,當硬件完全卸載后,調(diào)用它清理此硬件在系統(tǒng)中留下的痕跡,釋放全局變量中注冊表路徑字符串所占的內(nèi)存。 以上是驅(qū)動程序中的幾個重要的分發(fā)歷程,只有上述這些例程正確執(zhí)行,編譯生成的 *.SYS 文件才是有效的,驅(qū)動程序才可以使用, 設(shè)備才能和上位機通信。設(shè)備插上主機后,主機發(fā)現(xiàn)新硬件并提示安裝驅(qū)動程序。 USB 設(shè)備驅(qū)動程序的調(diào)用 USB 設(shè)備通過客戶驅(qū)動程序與設(shè)備打交道并響應(yīng)內(nèi)核或用戶應(yīng)用程序請求。在內(nèi)核級,命令由客戶驅(qū)動程序使用內(nèi)部的 IOCTL 發(fā)送給 USB 系統(tǒng),而不能用于用戶態(tài)應(yīng)用程序。最有用的 IOCTL 是 IOCT_ INTERNAL USB_ SUBMIT_ URB,它發(fā)出USB 請求塊 (URB)給系統(tǒng) USB 驅(qū)動程序。 URB 允許發(fā)出多個功能調(diào)用給 USB 系統(tǒng),通過 URB 進行與 USB 設(shè)備的大多數(shù)交互。用戶只需在相應(yīng)的 分發(fā)例程中構(gòu)造 URB塊 (讀取 USB 的描述表、選擇配置和接口 ),并根據(jù)設(shè)備所支持的傳輸類型和設(shè)備自有的命令字將其通過 USBDI 發(fā)送下去,由 USB 類驅(qū)動程序處理所有的低層 I/O,從而實現(xiàn)對 USB 設(shè)備的控制。 USB 總線驅(qū)動程序由操作系統(tǒng)提供,它位于 USB 功能驅(qū)動程序的下面,負責與實際的硬件打交道,實現(xiàn)煩瑣的低層通信。 USB 功能驅(qū)動程序由設(shè)備開發(fā)者編寫,位于 USB 總線驅(qū)動程序的上面,不與實際的硬件打交道,而是通過向 USB 總線驅(qū)動程序發(fā)送包含 URB (Request Block, USB 請求塊 )的 IRP (I/O Request Packet,IRP 請求包 ),來實現(xiàn)對 USB 設(shè)備信息的發(fā)送或接收。采用這種分層驅(qū)動程序的方法有兩個優(yōu)點 : 遼寧科技大學畢業(yè)設(shè)計(論文) 第 25 頁 25 (1)多個 USB 設(shè)備可以通過 USB 總線驅(qū)動程序來協(xié)調(diào)它們的工作 。 (2)編寫分層驅(qū)動程序較之編寫單一驅(qū)動程序相對簡單,且可以節(jié)省內(nèi)存和資源,不易出錯。 整個驅(qū)動程序模型如圖 所示。 圖 USB設(shè)備驅(qū)動程序的調(diào)用 遼寧科技大學畢業(yè)設(shè)計(論文) 第 26 頁 26 第 4 章 方案設(shè)計的分析及 本研究的創(chuàng)新 策略 方案的 可行性、實驗過程、數(shù)據(jù)的 處理及分析 系統(tǒng)硬件設(shè)計分析 89C52 通過 和讀、寫控制線來控制轉(zhuǎn)換器的模擬輸入通道地址鎖存、啟動和允許輸出。編程時注意啟動 AD0809 后, EOC 在一定時間才能變成低電平。 89C52的 ALE 和 PD12 的 ALE 相接,表示采用單獨地址和數(shù)據(jù)總線配置。其 AO 腳接高電平用于控制命令或數(shù)據(jù)輸入到 PDIUSBD I2,也就是編程中 outportcmd()和 outportdata()函數(shù)。此外 89C52 的多位地址 /數(shù)據(jù)復用總線 PO 可直接與 PDIUSBD12 的數(shù)據(jù)總線相連, CLKOUT 時鐘輸出為 89C52 提供時鐘輸入。在該數(shù)據(jù)采集系統(tǒng)中,用 ADC0809采集 05V 的電壓信號,經(jīng) A/D 轉(zhuǎn)換后將數(shù)字量存入預(yù)先設(shè)定的緩沖區(qū)里,利用接口芯片 D12 將數(shù)據(jù)送至 USB 總線上。設(shè)備應(yīng)用程序從緩沖區(qū)里取數(shù)據(jù)顯示,通過數(shù)值說明 USB 接口的采集速率比一般的串行總線速度高。當前端的電壓信號不斷變化的同時,在 PC 上可以觀察到數(shù)據(jù)的變化,這就表明利用 USB 接口在數(shù)字采集系統(tǒng)中進行數(shù)據(jù)傳輸是能夠?qū)崿F(xiàn)的,而且能夠很好的實現(xiàn)。 系統(tǒng)軟件設(shè)計分析 在編寫 PDIUSBDI2 固件程序時需要注意 : [1]單片機的中斷應(yīng)設(shè)置為電平觸發(fā) :中斷后一定要讀上次傳輸狀態(tài)寄存器 (命令4045H), 以清除中斷寄存器中的中斷標志。這樣, PDIUSBD12 的中斷輸出才能變回高電平。這一點非常重要。 [2]在接收到 Setup 包后,一定要調(diào)用 ACK setup 命令重新使能端口 0。 [3]在向 IN 端點寫完數(shù)據(jù)后,一定要調(diào)用 Vali date Buffer(命令 FAH ), 指明緩沖區(qū)中的數(shù)據(jù)有效,可以發(fā)送到主機。 [4]讀完數(shù)據(jù)后,一定要調(diào)用 Clear Buffer(命令 F2H),以保證可以接收新 的包。 [5]可以通過調(diào)用 Read Chip ID(命令 FDH)檢查 PDIUSBDI2 是否工作。該 遼寧科技大學畢業(yè)設(shè)計(論文) 第 27 頁 27 命令要讀兩個字 節(jié)數(shù)據(jù)。 USB 初始化過程為 : [1] Set Address Enable。 [2] Set Endpoint Enable(此時 LED 亮 )。 [3] Disconnect。 [4]delay(12 s)。 [5] Connect(即用 43h 參數(shù)調(diào)用 Set Mode,此時 LED 滅 )。 [6]Read Interrupt Register。 完成初始化工作后就可作其它的前臺工作了,并在前臺判斷是否有 Setup 包 (通過一個變量,當中斷服務(wù)程序檢測到有 Setup 包時,設(shè)置該變量 ),
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1