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

正文內(nèi)容

at89c51單片機(jī)usb接口驅(qū)動和應(yīng)用程序的開發(fā)畢業(yè)論文(參考版)

2024-08-30 17:06本頁面
  

【正文】 參考文獻(xiàn) [1] 胡曉軍、張愛成 《 USB接口開發(fā)技術(shù)》 西安電子科技大學(xué)出版社 2020 [2] 周立功《 USB 與 OTG規(guī)范及開發(fā)指南》 北京航空航天大學(xué)出版社 2020 [3] 廖濟(jì)林 《 USB 應(yīng)用系統(tǒng)開發(fā)實(shí)例精講》 電子工業(yè)出版社 2020 [4] 邊海龍 《 設(shè)備的設(shè)計(jì)與開發(fā)》 人民郵電出版社 2020 [5] 廖濟(jì)林 《 USB 應(yīng)用系統(tǒng)開發(fā)實(shí)例精講》 電子工業(yè)出版社 2020 [6] 王成儒、李英偉著 《 USB 原理與工程開發(fā)》 國防工業(yè)出版社 2020 [7] 《 USB 總線接口芯片 CH372 中文手冊》 3E版 [8] 寧愛民 、 蘭如波 《單片機(jī)應(yīng)用技術(shù)》 北京理工大學(xué)出版社 2020
。 感謝父母對我的關(guān)心和愛護(hù), 感謝 同學(xué)和老師的幫助 ,是他們默默的支持著我,給我學(xué)習(xí)創(chuàng)造了很好的條件。她是 我一生學(xué)習(xí)的榜樣。 致謝 在完成畢業(yè)論文過程中得到了各位老師和同學(xué)的關(guān)心和支持,在他們的指導(dǎo)和幫助下解決了 我遇到的許多困難和問題,得以順利完成學(xué)業(yè)。從硬件電路設(shè)計(jì)、固件編程、驅(qū)動程序設(shè)計(jì)、主機(jī)應(yīng)用程序設(shè)計(jì) 等 幾個方面,綜合論述了基于 USB 接口的數(shù)據(jù)采集處理系統(tǒng)的所有開 發(fā)步驟。 將 USB 串行通用總線和單片機(jī) 相結(jié)合,并應(yīng)用于信號的采集與處理領(lǐng)域是 本課題的一個特點(diǎn)。特別是由于 USB 的 簡單、即插 即 用、熱插拔、開放性、高速、穩(wěn)定、可靠性高等優(yōu)點(diǎn),它特別適用于儀器儀表、虛擬儀器、數(shù)據(jù) 采集、監(jiān)控設(shè)備和加密設(shè)備等場合。作為一種通用型串行總線標(biāo)準(zhǔn)。 圖 數(shù)據(jù)傳輸顯示界面 結(jié)束語 USB 是一種 TI 行業(yè)新發(fā)展起來的通用接口標(biāo)準(zhǔn)。 而且 使用 Delphi 開發(fā)應(yīng)用軟 件,會大大地提高編程效率 。 } end. 用戶應(yīng)用程序的具體實(shí)現(xiàn) 由 Borland 公司推出的 Delphi 是全新的 可視化編程 環(huán)境,為我們提供了一種方便、快捷的 Windows 應(yīng)用程序 開發(fā)工具。 mUploadData:= 0。CH375WriteData 發(fā)送命令失敗 ,DEF_CMD_CLEAR_UP39。, mCaptionInform, MB_OK + MB_ICONERROR )。 end else MessageBox( , 39。CH375ReadData 上傳數(shù)據(jù)失敗 39。 // 命令包的長度 if ( CH375WriteData( mIndex, mDemoReq, mLength ) ) then // 通過 CH375 發(fā)送命令包 ,成功 begin mLength := iLength。 // 傳輸數(shù)據(jù)總長度低二位 [4] := iLength div 256。 // 指定外部 RAM 緩沖區(qū)起始地址 ,該例是將數(shù)據(jù)下傳到起始地址為 0X8200 的外部 RAM [2] :=$82。 [0] := ACCESS_MCS51_XRAM。 // 命令包的長度 if ( CH375WriteData( mIndex, mDemoReq, mLength ) ) then // 通過CH375 發(fā)送命令包 ,成功 begin := DEF_CMD_UP_DATA。 // 連續(xù)上傳數(shù)據(jù)塊之前進(jìn)行同步 ,實(shí)際是讓單片機(jī)清除上傳緩沖區(qū)的已有內(nèi)容 :=$FFDEF_CMD_CLEAR_UP。, mCaptionInform, MB_OK + MB_ICONERROR )。 begin if ( iLength 4096 ) then MessageBox( , 39。 var mDemoReq:COMMAND_PACKET 。 ● 上傳數(shù)據(jù)例程 Function mUploadData( iBuffer:array of byte。 mDownloadData:=0。CH375WriteData 發(fā) 送 命 令 失敗 ,DEF_CMD_DOWN_DATA39。, mCaptionInform, MB_OK + MB_ICONERROR )。 // 防止數(shù)據(jù)包的長度與命令包的長度相同 ,如果相同 ,則多發(fā)送一個無效數(shù)據(jù) if ( CH375WriteData( mIndex, mDemoReq, mLength ) ) then // 通過 CH375 發(fā)送數(shù)據(jù) ,成功 mDownloadData:=mLength else MessageBox( , 39。 // 命令包的長度 if ( CH375WriteData( mIndex, mDemoReq, mLength ) ) then // 通過CH375 發(fā)送命令包 ,成功 begin mLength := iLength。 // 傳輸數(shù)據(jù)總長度低二位 [4] := iLength div 256。 // 指定外部 RAM 緩沖區(qū)起始地址 ,該例是將數(shù)據(jù)下傳到起始地址為 0X8200 的外部 RAM [2] :=$82。 [0] := ACCESS_MCS51_XRAM。 := DEF_CMD_DOWN_DATA。 exit。, mCaptionInform, MB_OK+MB_ICONERROR )。 begin if ( iLength 4096 ) then begin Messagebox( , 39。 var mDemoReq:COMMAND_PACKET。 數(shù)據(jù) 傳輸程序的設(shè)計(jì)和實(shí)現(xiàn) 開 始 接 收 數(shù) 據(jù)是 否 與 地 址 匹配 ?接 收 命 令 字發(fā) 送 或 接 收發(fā) 送 地 址 和 功 能 碼發(fā) 送 數(shù) 據(jù) 長 度 和 數(shù)據(jù)接 收 應(yīng) 答是 否 正 確 ?接 收 數(shù) 據(jù) 長 度接 收 數(shù) 據(jù)發(fā) 送 應(yīng) 答 信 號結(jié) 束出 錯 處 理 程 序結(jié) 束初 始 化 圖 數(shù)據(jù)傳送程序流程圖 ● 下傳數(shù)據(jù)例程 { function mDownloadData(iBuffer:array of byte。但是為了修改和設(shè)計(jì)應(yīng)用程序更加方便,因此本文便把讀寫設(shè)備封裝在相應(yīng)的讀寫函數(shù)中。 表 6一 1API函數(shù)與驅(qū)動程序例程對應(yīng)關(guān)系 開 始結(jié) 束檢 測 U S B 設(shè) 備 是 否準(zhǔn) 備 好報(bào) 錯設(shè) 置 參 數(shù)啟 動 采 集有 數(shù) 據(jù)顯 示采 集 結(jié) 束NYYYNN 圖 設(shè)備讀寫接口程序的實(shí)現(xiàn) 在 Win32 系統(tǒng)中,可以把每個設(shè)備都抽象為文件,此時的應(yīng)用程序只需要幾條簡單的文件操作 API 函數(shù),就可以實(shí)現(xiàn)與驅(qū)動程序中的某個設(shè)備通信。因此 USB 接口開發(fā)的工作也包括了上層應(yīng)用程序的設(shè)計(jì)。 應(yīng)用程序設(shè)計(jì) 與實(shí)現(xiàn) 本文在第四章和第五章分別闡述了 USB 固件程序和設(shè)備驅(qū)動程序的設(shè)計(jì)與開發(fā)。然后將其與用戶應(yīng)用程序指定的 MDL 進(jìn)行映像 。接著判斷傳送的長度是否大于緩沖區(qū),如果是,則還要分割進(jìn)行 。第二步 :開始檢查 IRP 中的 MDL 地址,即 DMA數(shù)據(jù)傳輸模式的內(nèi)存描述結(jié)構(gòu),如果長度為 0 也直接退出 。設(shè)備的控制由設(shè)備控制例程 (RIPMJDEVCIECONTROL)負(fù)責(zé),主要是對設(shè)備進(jìn)行一些操作命令的發(fā)送或 者標(biāo)志的讀取。當(dāng)有新的 PnP 設(shè)備被添加到正在使用的系統(tǒng)中時,可以重新分配資源。 ● 硬件資源分配和再分配 。 初 始 化 端 口 和 寄 存器 上 電 復(fù) 位開 中 斷是 否 有 S E T U P包是 否 為 標(biāo) 準(zhǔn) 輕 輕總 線 是 否 掛 起掛 起 處 理延 遲 重 新 枚 舉執(zhí) 行 標(biāo) 準(zhǔn) 請 求NYYNNY 圖 即插即用管理模塊 即插即用的功能有兩個 : ● 自動和動態(tài)識別安裝 PnP 設(shè)備。它有一個標(biāo)準(zhǔn)的函數(shù)原型。該驅(qū)動程序 由四個模塊組成 :初始化模塊、即插即用管理模塊、電源管理模塊和1/0 控制模塊。一個 WDM 驅(qū)動程序的 功能模塊可由以下幾部分組成 : 驅(qū)動程序的初始化 , 創(chuàng)建和刪除設(shè)備 , 處理 Win32程序打開和關(guān)閉文件句柄的請求 , 處理 Win32 程序輸入 /輸出請求 , 實(shí)現(xiàn)對設(shè)備的串行化訪問 , 訪問硬件 , 取消 1/0 請求 , 超時 1/0 請求 , 調(diào)用其他驅(qū)動程序 ,處理電源管理請求 , 使用 Windows 管理診斷 (WM)I 向系統(tǒng)管理員報(bào)告 , 處理一個可熱插 /拔的設(shè)備被加入或刪除的情況。處于最底層的是物理設(shè)備對象,一般由總線生成,一個設(shè)備只能有一個物理設(shè)備對象,但可以有若干個功能設(shè)備對象。另一個驅(qū)動程序稱為總線驅(qū)動程序,它負(fù)責(zé)管理硬件與計(jì)算機(jī)的連接。其中一個驅(qū)動程序稱為功能 (FunCtion)驅(qū)動程序, 通常它就是我們一般所說的硬件設(shè)備驅(qū)動程序。內(nèi)核通常通過發(fā)送工 RP 來運(yùn)行驅(qū)動程序中的代碼。在應(yīng)用程序與 WDM 驅(qū)動程序通信方面,系統(tǒng)為每一個用戶請求打 包形成一個 1/0 請求包結(jié)構(gòu)。 WDM 概述 WDM(Win32DriverModel),即 Win32 驅(qū)動程序模型 ,是微軟公司全新的驅(qū)動程序模式,支持即插即用、電源管理和 WMI 技術(shù),它的運(yùn)行平臺是windows98/2020/Xp 操作系統(tǒng)。 使用 WniDriver:這種方法幾乎沒有什么難度,但只能開發(fā)硬件相關(guān)的驅(qū)動,事實(shí)上你寫的只是定制和調(diào)用它提供的通用驅(qū)動而已,工作效率不是很高。 使用 Drviersutdio:這種方法難度低一些,工具軟件幫你做了很多基礎(chǔ)性的工作。 驅(qū)動開發(fā)工具的選擇 目前驅(qū)動程序的開發(fā),有以下幾種方法可供選擇 : 直接使用 WindowsDDK 式開發(fā)難度大一些,而且有很多煩瑣的工作要做,大部分都是通用的基礎(chǔ)性工作。應(yīng)用層代碼一般使用一套操作系統(tǒng)支持的函數(shù)。設(shè)備驅(qū)動知道如何與系統(tǒng)的 USB 和訪問設(shè)備的用戶應(yīng)用程序通信。應(yīng)用程序只能工作在用戶模式下,而驅(qū)動程序大多運(yùn)行在內(nèi)核模式下。 第 5 章 USB 設(shè)備驅(qū)動程序及應(yīng)用程序 計(jì)算 機(jī)與外設(shè)通過 UBS 接口的通信是通過驅(qū)動程序來實(shí)現(xiàn)的。 ENTRY: R0 指向存放了準(zhǔn)備上傳數(shù)據(jù)的緩沖區(qū)(位于片外 RAM 中), R7 準(zhǔn)備上傳的數(shù)據(jù)長度, 有效數(shù)值是 0 到 8。程序用到的寄存器 包括 ACC, R0, R7 和 DPTR。它用到的寄存器包括 ACC, R7 和 DPTR。 4. CH372_INTER 中斷服務(wù)子程序,它需要堆棧 8 字節(jié)。 ENTRY: DPTR 指向存放了準(zhǔn)備上傳數(shù)據(jù)的緩沖區(qū), R7 存放準(zhǔn)備上傳的數(shù)據(jù)長 度,有效數(shù)值是 0 到 8。 ENTRY:用DPTR 指向存放了準(zhǔn)備上傳數(shù)據(jù)的緩沖區(qū), R7 存放準(zhǔn)備上傳的數(shù)據(jù)長度,有效數(shù)值是 0 到 64,用到的寄存器有 ACC、 R7 和 DPTR。主循環(huán) 外接口模塊 1. CH372_INIT 初始化子程序,用到的寄存器有 ACC、 R7 和 DPTR。初始化 SETB EA 。復(fù)位后單片機(jī)入口 LJMP START ORG 0003H 。因?yàn)檫@些過程確保了在 MCU 準(zhǔn)備好服務(wù) D12 之前 D12 不會進(jìn)行操作,所以是很重要的。 MCU 一旦上電就需要初始化其所有端口、存儲區(qū)、定時器和中斷服務(wù)程序。下面就各個模塊的具體實(shí)現(xiàn)進(jìn)行 介紹 : 主循環(huán)模塊 () 主循環(huán)檢查事件標(biāo)志并進(jìn)入對應(yīng)的子程序進(jìn)行進(jìn)一步的處理。整個過程可以歸納為主機(jī)通過 USB 設(shè)備的相應(yīng)端點(diǎn) 向固件發(fā)出各種操作請求,固件通過對這些請求的解析來控制硬件電路模塊完成相應(yīng)的操作,并向主機(jī)返回設(shè)備的狀態(tài)信息。固件在接收到復(fù)位信號后, USB 設(shè)備進(jìn)入到總線缺省狀態(tài),此時它有一個缺省地址 0,主機(jī)通過此缺省地址與 USB 設(shè)備進(jìn)行通信,等待主機(jī)給它分配一個唯一的非 0 地址,并對它進(jìn)行配置 。圖 3 一 1描述了設(shè)備處于特定狀態(tài)后固件相應(yīng)的設(shè)計(jì)流程。主機(jī)要求通信時,能夠做出應(yīng)有的響應(yīng)。 固件的設(shè)計(jì)思想 固件要實(shí)現(xiàn)的功能包括 :接口控制芯片的初始化 。 固件設(shè)計(jì)方案及工作流程 固件的主要功能是負(fù)責(zé)接收和處理主機(jī)發(fā)給設(shè)備的各種請求,并向主機(jī)返回 設(shè)備的狀態(tài)信息。 圖 36 單片機(jī)擴(kuò)展 RAM 接口電路 第
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1