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

正文內(nèi)容

畢業(yè)設(shè)計(jì)]基于usb的高速數(shù)據(jù)采集卡的設(shè)計(jì)(參考版)

2024-11-18 20:43本頁面
  

【正文】 綜上所述,本論文己經(jīng)完成了基于 US。 雖然本設(shè)計(jì)還有許多缺陷,不足以完成大批量數(shù)據(jù)的高速傳送,但是它己經(jīng)是 USB 數(shù)據(jù)采集系統(tǒng)的雛形。其實(shí),作為一種通用型串行總線標(biāo)準(zhǔn), USB不僅僅適用于 IT 行業(yè),它的應(yīng)用空間很廣泛,完全可以使用在不同的領(lǐng)域和行業(yè)。 在下面我們將要看到的 HelloWin 程序中, WndProc 就是一個(gè)回調(diào)函數(shù),它是是應(yīng)用程序的窗口消息處理函數(shù),當(dāng)注冊窗口類的時(shí)候,要把窗口消息處理函數(shù)的地址告訴 Windows, Windows 通過調(diào)用此函數(shù)進(jìn)行消息處理。 回調(diào)函數(shù)是 windows 操作系統(tǒng) 自己調(diào)用的函數(shù),用戶是不能直接調(diào)用他們的。在窗口消 息處理函數(shù)中,我們可以利用 switch 和 case 結(jié)構(gòu)進(jìn)行控制 , 針對此消息作出我們想要的操作。 窗口是人機(jī)交互的接口,當(dāng)窗口接受到輸入請求的時(shí)候,就會(huì)把這一請求交給某一個(gè)函數(shù)進(jìn)行處理,而這個(gè)函數(shù)就是窗口消息處理函數(shù),它能夠決定當(dāng)一個(gè)消息 被接受到的時(shí)候采取什么行動(dòng)。 Windows 應(yīng)用程序包含很多資源,例如,菜單,圖標(biāo),對話框等等, VC++環(huán)境下我們不僅僅可以使用系統(tǒng)下原有的資源,我們也可以定義自己的資源,這些資源被定義在 .RC文件中 ,通過應(yīng)用程序最后的編譯,這些資源文件和程序代碼連接在一起,形成一個(gè)可執(zhí)行的 .EXE 文件或者是一個(gè) .DLL 的庫文件。 句柄在 windows 環(huán)境下被定義成了一個(gè)無符號的整數(shù),用于標(biāo)識應(yīng)用程序中不同的對象和同類對象中的不同實(shí)例。要想從程序員的角度充分理解窗口的含義,那么對 WNDCLASS 這個(gè)數(shù)據(jù)結(jié)構(gòu)進(jìn)行充分的了解是必須的。 4 利用 Windows DDK 的 build 命令編譯創(chuàng)建該驅(qū)動(dòng)程序。 3 利用 將固件的 Inter HEX 記錄格式的代碼轉(zhuǎn)換為 C 文件。 2 編輯該目錄下的 sources 文件,在 TARGETNAME=ezloader 一行中修改目標(biāo)文件名。 3 Intel HEX 記錄格式的文件轉(zhuǎn)換為 C 文件的工具 —— 。 開發(fā)步驟 創(chuàng)建 EZLoader 驅(qū)動(dòng)程序需要的工具: 1 Windows DDK。 EZLoader 驅(qū)動(dòng)程序是一個(gè)非常簡單的 USB 驅(qū)動(dòng)程序模板,簡化到用戶只需要知道如何去做一件事情 —— 下載固件到 USB 外設(shè)備即可。但是,我們希望最終的作品能自動(dòng)完成固件下載以及設(shè)備重枚舉 .這就要一個(gè)特殊的、具有下載固件并完成設(shè)備重枚舉功能的設(shè)備驅(qū)動(dòng)程序。第 1 種方法是使用 EZUSB 控制面板通過 USB 口下載固件 (Intel Hex 格式的文 件 );第 2 種方式是使用 Keil 調(diào)試監(jiān)控程序 (Debug Monitor)通過 RS232 串口下載固件。 } void ISR_ep0ack(void) interrupt 0 //該函數(shù)在設(shè)備收到 x 數(shù)據(jù)輸入中斷時(shí),在中斷處理器內(nèi)部被調(diào)用 { } void ISR_epxack(void) interrupt 0 //這里 X 為 0, 1, 2, 4, 6, 8 //該函數(shù)在設(shè)備收到 x 數(shù)據(jù)輸出中斷時(shí),在中斷處理器內(nèi)部被調(diào)用 { } 第六章 設(shè)備驅(qū)動(dòng)及應(yīng)用程序的設(shè)計(jì) 固件下載 USB 設(shè)備驅(qū)動(dòng)程序 介紹 EZUSB 系列芯片都具有通過下載固件和重枚舉的方式來動(dòng)態(tài)改變設(shè)備特性的能力。 } ezusb_irq_clear()。 potherconfigdscr=pfullspeedconfigdscr。 } void ISR_highspeed(void) interrupt 0 //該函數(shù)在設(shè)備收到高速中斷時(shí),在中斷處理器內(nèi)部被調(diào)用 { if (ezusb_highspeed()) { pconfigdscr=phighspeedconfigdscr。 ezusb_irq_clear()。 potherconfigdscr=phighspeedconfigdscr。 } void ISR_ures(void) interrupt 0 //該函數(shù)在設(shè)備收到 usb reset 中斷時(shí),在中斷處理器內(nèi)部被調(diào)用 { pconfigdscr=pfullspeedconfigdscr。 ezusb_irq_clear()。 usbirq=bmsof。 usbirq=bmsutok。 usbirq=bmsudav。 } 中斷( USB interrupt) void ISR_sudav(void) interrupt 0 //該函數(shù)在設(shè)備收到 setup data available 中斷時(shí),在中斷處理器內(nèi)部被調(diào)用 { gotsud=true。 } bool dr_setfeature(void) //該函數(shù)在框架執(zhí)行 set feature 設(shè)備請求之前被調(diào)用 { return (TRUE)。 { return (TRUE)。 return (TRUE)。 EP0BCH=0。 return (TRUE)。 return (TRUE)。 EP0BCH=0。 return (TRUE)。 } ( device request) Bool DR_getdescription (void) //該函數(shù)在框架執(zhí)行 get description 設(shè)備請求之前被調(diào)用 { return (TRUE)。 { Return (TRUE)。 Void TD_Poll (void)//在設(shè)備工作期間,該 函數(shù)被重復(fù)調(diào)用。然后返回到主循環(huán)檢查循環(huán)緩沖區(qū)內(nèi)是否有新的數(shù)據(jù),若有就對其進(jìn)行處理,否則開始其它的前臺任務(wù)。在 ISR 中固件將數(shù)據(jù)包從 FX2內(nèi)部緩沖區(qū)移到循環(huán)數(shù)據(jù)緩沖區(qū),并在隨后清零 FX2 的內(nèi)部緩沖區(qū),以使能接收新的數(shù)據(jù)包。這就確保了最佳的傳輸速率和更好的軟件結(jié)構(gòu),同時(shí)簡化了編程和調(diào)試。 USB 通信固件設(shè)計(jì)的目標(biāo)就是使 FX2 在 USB 上達(dá)到最大的傳輸速率。這三個(gè)模塊都比較簡單。程序主要分四個(gè)模塊 :初始化模塊、數(shù)據(jù)處理模塊、控制采集模塊和 USB 通信模塊。通過 FX2 實(shí)時(shí)上傳采集數(shù)據(jù)給 PC。 第 五 章 USB 數(shù)據(jù)采集系統(tǒng)設(shè)備固件的編寫 設(shè)備固件是設(shè)備運(yùn)行的核心,采用 keil c51 語言設(shè)計(jì)。 TI_1 USART1 Rx amp。 TI_0 USART0 Rx amp。圖 圖 4分別為 FX2 FIFO 處在 “Slave FIFO” 模式和 “GPIF Master” 模式。 外部 FIFO 接口 EP EP EP6 和 EP8 大端點(diǎn)緩沖區(qū)主要用來進(jìn)行高速( 480Mbits/s)數(shù)據(jù)傳輸,可以通過 FIFO 數(shù)據(jù)接口與外部 ASIC 和 DSP 等處理器無縫連接來實(shí)現(xiàn)高速數(shù)據(jù)傳輸。 EP EP EP6 和 EP8 是高帶寬、大緩沖區(qū)。EP1IN 和 EP1OUT 使用獨(dú)立的 64字節(jié)緩沖區(qū), FX2 固件可配置這些端點(diǎn)為 BULK、INTERRUPT 或 ISOCHRONOUS 傳輸方式,這兩個(gè)端點(diǎn)和 EP0 一樣只能被 固件訪問。 EP0 作為控制端點(diǎn)用,它是一個(gè)雙向端點(diǎn),既可為 IN也可為 OUT。 注意:只有數(shù)據(jù)內(nèi)存空間保留,而程序內(nèi)存( 0xE000- 0xFFFF)并不保留。盡管 Scratch RAM 從物理上來說位于片內(nèi),但是通過固件可以把它作為外部 RAM 一樣來尋址。低 128 和高 128 是通用 RAM,SFR 包括 FX2控制和狀態(tài)寄存器。這兩個(gè)步驟就叫做重枚舉,當(dāng)設(shè)備插入時(shí)它們就立即執(zhí)行。 FX2 缺省的 VID/PID/DID 是 0x04B4/ 0x8613/ 0xxxyy。 USB 啟動(dòng)方式和枚舉 上電時(shí),內(nèi)部邏輯會(huì)檢查連接到 I2C 總線上的 EEPROM 中的第一個(gè)字節(jié)( 0xC0 或 0xC2)。 ● 集成標(biāo)準(zhǔn) 8051 內(nèi)核,且具有下列增強(qiáng)特性: ( 1) 可以達(dá)到 48MHz 時(shí)鐘; ( 2) 每條指令占四個(gè)時(shí)鐘周期; ( 3) 兩個(gè) USARTs; ( 4) 三個(gè)定時(shí) /計(jì)數(shù)器; ( 5) 擴(kuò)展的中斷系統(tǒng); ( 6) 兩個(gè)數(shù)據(jù)指針。 CY7C68013 集成了以下特性: ● 收發(fā)器、 SIE(串行接口引擎)和增強(qiáng)性 8051 微處理器; ● 軟件運(yùn)行: 8051 程序從內(nèi)部 RAM 開始運(yùn)行,可以借助下列幾種方式進(jìn)行程序裝載: ( 1) 通過 USB 下載; ( 2) 從 EEPROM 中裝載; ( 3) 通過外部 存儲器設(shè)備。 2 EZ- USB FX2 結(jié)構(gòu) CY7C68013 結(jié)構(gòu)圖如圖 1所示。在 FX2 中,智能 SIE 可以硬件處理許多 和 協(xié)議,從而減少了開發(fā)時(shí)間和確保了 USB 的兼容性。 接口的硬件設(shè)計(jì) EZUSB FX2 單片機(jī) CY7C68013 的特性介紹 Cypress Semiconductor 公司的 EZ- USB FX2 是世界上第一款集成 的微處理器,它集成了 收發(fā)器、 SIE(串行接口引擎)、增強(qiáng)的 8051 微控制器和可編程的外圍接口。另外由于采用一般單片機(jī),熟悉單片機(jī)的開發(fā)人員可以很快的開始一個(gè)項(xiàng)目。 USB 接口方案 USB接口設(shè)計(jì)中有三種芯片選擇方案 :第一種方案是選用設(shè)計(jì)成標(biāo)準(zhǔn) USB控制器的低層芯片,例如 Cypress 公司的 CY7C63XXX 系列,這類芯片是完全按照USB 協(xié)議設(shè)計(jì)的,另一種方案是采用具備 USB 通信功能的單片機(jī),例如Intel/Cypress 的 8X931, Cypress 的 EZUSB,這些單片機(jī)采用開發(fā)者熟悉的結(jié)構(gòu)和指令集,處理能力強(qiáng),構(gòu)成系統(tǒng)的電路簡單,調(diào)試方便,是目前常用的一種方案。 第 四 章 USB 數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì) 系統(tǒng)的模擬開關(guān)、 A/D 轉(zhuǎn)換器均采用傳統(tǒng)的設(shè)計(jì)方法,在此不多做介紹。單片機(jī)先給 FX2的命令地址發(fā)命令,根據(jù)不同命令的要求再發(fā)送或讀出不同的數(shù)據(jù)。 FX2的命令字分為三種:初始化命令字、數(shù)據(jù)流命令字和通用命令字。在 USB單片機(jī)程序中,要完成對各種令牌包的響應(yīng),其中比較難處理的是 SETUP包,主要是端口 0的編程。主機(jī)首先要發(fā)令牌包給 USB設(shè)備, FX2接收到令牌包后就給單片機(jī)發(fā)中斷。 根據(jù) USB協(xié)議,任何傳輸都是由主機(jī)開始的。因此,編寫固件程序的一個(gè)最主要的目的就時(shí)讓 Windows可以檢 測和識別設(shè)備。 采用 FX2的固件設(shè)計(jì) 固件編程的主要工作 固件是 FIREWARE的對應(yīng)中文詞,它實(shí)際上是單片機(jī)的程序文件,其編寫語言可以采用 C語言或是匯編語言 .它的操作方式與硬件聯(lián)系緊密,包括 USB設(shè)備的連接 USB協(xié)議、中斷處理等,它不是單純的軟件,而是軟件和硬件的結(jié)合,開發(fā)者需要對端口、中斷和硬件結(jié)構(gòu)非常熟悉。目標(biāo)文件可由 LIB51 創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件 (.ABS)。開發(fā)人員可用 IDE 本身或其它編輯器編輯 C 或匯編源文件。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級語言的優(yōu)勢。 Keil C51 軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全 Windows 界面。 同步傳送 IRP 事務(wù) 事務(wù) 事務(wù) 批傳送 事務(wù) 事務(wù) 事務(wù) 一個(gè)批傳送是一個(gè)或多個(gè) IN/OUT方向的數(shù)據(jù)事務(wù)。 控制傳送 IRP Setup 事務(wù) 數(shù)據(jù) 事務(wù) Status 事務(wù) 額外的 控制傳送 控制傳送首先是一個(gè) OUT方向的 Setup 事務(wù),然后是多個(gè) IN 方向或 OUT 方向的數(shù)據(jù)事務(wù),最后是一個(gè)與數(shù)據(jù)反向的 Status事務(wù)。 IRP 數(shù)據(jù)流類型 IRP 事務(wù) 事務(wù) 事務(wù) 所有的傳送都是由一個(gè)或多個(gè)事務(wù)組成。 圖 27 描述了輸入輸出請求 IRP傳輸與操作之間的關(guān)系。 中斷傳輸 (Interrupt Transfer) 1. 用于非周期的自然發(fā)生的數(shù)據(jù)量很小的信息的傳輸,如鍵盤、鼠標(biāo)等; 2. 數(shù)據(jù)沒有 USB 定義的結(jié)構(gòu)數(shù)據(jù)流管道; 3. 只有輸入這一種傳輸方式,即外設(shè)到主機(jī); 4. 對于高速設(shè)備允許數(shù)據(jù)包,最大容量為小于或等于 64字節(jié),對于低速設(shè)備只能小于或等于 8字節(jié); 5. 具有最大服務(wù)周期保證,即在規(guī)定時(shí)間內(nèi)保證有一次數(shù)據(jù)傳輸; 6. 與同步方式一起占用總線的時(shí)間不得超過一幀的 90%; 7. 具有數(shù)據(jù)傳輸保證,在必要時(shí)可以重試。 數(shù)據(jù)傳遞機(jī)制 被傳遞的數(shù)據(jù) 圖 28 USB 數(shù)據(jù)流 4. 對于高速設(shè)備允許數(shù)據(jù)包最大容量為 8, 16, 32或 64字節(jié),對于低速設(shè)備只
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1