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

正文內(nèi)容

at89c51單片機(jī)usb接口驅(qū)動和應(yīng)用程序的開發(fā)畢業(yè)論文-資料下載頁

2025-08-17 17:06本頁面

【導(dǎo)讀】USB,由于速度快,使用方便靈活,易于擴(kuò)展,支持即插即用,成本低廉等。一系列優(yōu)點,得到了廣泛的應(yīng)用。方法和開發(fā)過程,并給出了具體實現(xiàn)方案。數(shù)據(jù)采集系統(tǒng)的設(shè)計包括硬件設(shè)計、固件程序開發(fā)、驅(qū)動程序開發(fā)和應(yīng)用程。在硬件設(shè)計部分,首先介紹了設(shè)計中所用的CH372的性能和特。機(jī)界面,對數(shù)據(jù)采集系統(tǒng)進(jìn)行控制并顯示采集后的數(shù)據(jù)。使用USB總線傳輸數(shù)據(jù),為數(shù)據(jù)采集系統(tǒng)與計算機(jī)之間的通訊。開辟了新的道路。

  

【正文】 ect 一 MajorFuion[IRP_MJ_WRITE]=D12_Write: 1/0 控制模塊完成輸入輸出請求的大部分功能。設(shè)備的控制由設(shè)備控制例程 (RIPMJDEVCIECONTROL)負(fù)責(zé),主要是對設(shè)備進(jìn)行一些操作命令的發(fā)送或 者標(biāo)志的讀取。數(shù)據(jù)讀寫主要由 IRP_MJ_READ 和 IRP_MJ_WRTIE 兩個例程完成,只需在 AddDeviec 中申請一個符號鏈接,并且在 StartDveiec 中將此符號鏈接激活即可第一步 :調(diào)用例程 IRP_MJ_CREATE 打開設(shè)備,檢查設(shè)備狀態(tài),看是否在工作狀態(tài),設(shè)備的接口信息是否己經(jīng)準(zhǔn)備好,然 后檢查文件對象中的參數(shù)是否合法 。第二步 :開始檢查 IRP 中的 MDL 地址,即 DMA數(shù)據(jù)傳輸模式的內(nèi)存描述結(jié)構(gòu),如果長度為 0 也直接退出 。接著設(shè)備 URB 的傳輸標(biāo)志,允許未填滿緩沖區(qū)的傳輸,獲取 MDL 的虛擬地址,并根據(jù)讀寫變量,設(shè)置相應(yīng)的 URB 傳輸標(biāo)志 。接著判斷傳送的長度是否大于緩沖區(qū),如果是,則還要分割進(jìn)行 。第三步 :則首先根據(jù)剛讀出的虛擬地址申請一塊MDL,使其與那個虛擬地址對應(yīng) 。然后將其與用戶應(yīng)用程序指定的 MDL 進(jìn)行映像 。第四步,將這些信息再填入用戶自行定義的結(jié)構(gòu)中,進(jìn)行數(shù)據(jù)傳輸,直到所有數(shù)據(jù)傳輸完畢。 應(yīng)用程序設(shè)計 與實現(xiàn) 本文在第四章和第五章分別闡述了 USB 固件程序和設(shè)備驅(qū)動程序的設(shè)計與開發(fā)。通常一個設(shè)備開發(fā)的目標(biāo)是讓用戶能夠方便的控制和使用設(shè)備,也就是使用應(yīng)用程序來控制設(shè)備, USB 類設(shè)備也是如此。因此 USB 接口開發(fā)的工作也包括了上層應(yīng)用程序的設(shè)計。 操作例程及初始化 在 WIN32 系統(tǒng)中,把每一個設(shè)備都抽象為文件,應(yīng)用程序只需通過幾條簡 單的文件操作 API 函數(shù),就可以實現(xiàn)與驅(qū)動程序中的設(shè)備進(jìn)行通信。 表 6一 1API函數(shù)與驅(qū)動程序例程對應(yīng)關(guān)系 開 始結(jié) 束檢 測 U S B 設(shè) 備 是 否準(zhǔn) 備 好報 錯設(shè) 置 參 數(shù)啟 動 采 集有 數(shù) 據(jù)顯 示采 集 結(jié) 束NYYYNN 圖 設(shè)備讀寫接口程序的實現(xiàn) 在 Win32 系統(tǒng)中,可以把每個設(shè)備都抽象為文件,此時的應(yīng)用程序只需要幾條簡單的文件操作 API 函數(shù),就可以實現(xiàn)與驅(qū)動程序中的某個設(shè)備通信。對于我們的硬件板,當(dāng)把前面開發(fā)的設(shè)備驅(qū)動程序安裝到系統(tǒng)后并以它作為設(shè)備與上層應(yīng)用程序的軟件接口時,也可以使用這些方式來實現(xiàn)應(yīng)用程序與它的通信。但是為了修改和設(shè)計應(yīng)用程序更加方便,因此本文便把讀寫設(shè)備封裝在相應(yīng)的讀寫函數(shù)中。 對于應(yīng)用程序來說,讀寫 USB 端口和讀寫串口類似。 數(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。 iLength:cardinal ):cardinal。 var mDemoReq:COMMAND_PACKET。 MLength:cardinal。 begin if ( iLength 4096 ) then begin Messagebox( , 39。單次下傳數(shù)據(jù)長度超過 4096 字節(jié) 39。, mCaptionInform, MB_OK+MB_ICONERROR )。 mDownloadData:=0。 exit。 end。 := DEF_CMD_DOWN_DATA。 // 連續(xù)下傳數(shù)據(jù)塊 := $FF DEF_CMD_DOWN_DATA。 [0] := ACCESS_MCS51_XRAM。 // 讀寫 51 單片機(jī)的外部 RAM(本演示板的單片機(jī)沒有外部 RAM,所以無法演示 ) [1] := 00。 // 指定外部 RAM 緩沖區(qū)起始地址 ,該例是將數(shù)據(jù)下傳到起始地址為 0X8200 的外部 RAM [2] :=$82。 [3] := iLength mod 256。 // 傳輸數(shù)據(jù)總長度低二位 [4] := iLength div 256。 mLength := CONST_CMD_LEN。 // 命令包的長度 if ( CH375WriteData( mIndex, @mDemoReq, @mLength ) ) then // 通過CH375 發(fā)送命令包 ,成功 begin mLength := iLength。 // 數(shù)據(jù)塊的長度 ,一次下傳不超過 4096 字節(jié) if ( ( mLength mod 64 ) = CONST_CMD_LEN ) then mLength:=mLength+1。 // 防止數(shù)據(jù)包的長度與命令包的長度相同 ,如果相同 ,則多發(fā)送一個無效數(shù)據(jù) if ( CH375WriteData( mIndex, @mDemoReq, @mLength ) ) then // 通過 CH375 發(fā)送數(shù)據(jù) ,成功 mDownloadData:=mLength else MessageBox( , 39。CH375WriteData 下傳數(shù)據(jù)失敗 39。, mCaptionInform, MB_OK + MB_ICONERROR )。 end else MessageBox( , 39。CH375WriteData 發(fā) 送 命 令 失敗 ,DEF_CMD_DOWN_DATA39。, mCaptionInform, MB_OK + MB_ICONERROR )。 mDownloadData:=0。 end。 ● 上傳數(shù)據(jù)例程 Function mUploadData( iBuffer:array of byte。iLength:cardinal ):cardinal。 var mDemoReq:COMMAND_PACKET 。 mLength:cardinal。 begin if ( iLength 4096 ) then MessageBox( , 39。單次上傳數(shù)據(jù)長度超過 4096 字節(jié) 39。, mCaptionInform, MB_OK + MB_ICONERROR )。 := DEF_CMD_CLEAR_UP。 // 連續(xù)上傳數(shù)據(jù)塊之前進(jìn)行同步 ,實際是讓單片機(jī)清除上傳緩沖區(qū)的已有內(nèi)容 :=$FFDEF_CMD_CLEAR_UP。 mLength := CONST_CMD_LEN。 // 命令包的長度 if ( CH375WriteData( mIndex, @mDemoReq, @mLength ) ) then // 通過CH375 發(fā)送命令包 ,成功 begin := DEF_CMD_UP_DATA。 // 連續(xù)上傳數(shù)據(jù)塊 := $FF DEF_CMD_UP_DATA。 [0] := ACCESS_MCS51_XRAM。 // 讀寫 51單片機(jī)的外部 RAM(本演示板的單片機(jī)沒有外部 RAM,所以無法演示 ) [1] := 00。 // 指定外部 RAM 緩沖區(qū)起始地址 ,該例是將數(shù)據(jù)下傳到起始地址為 0X8200 的外部 RAM [2] :=$82。 [3] := iLength mod 256。 // 傳輸數(shù)據(jù)總長度低二位 [4] := iLength div 256。 mLength := CONST_CMD_LEN。 // 命令包的長度 if ( CH375WriteData( mIndex, @mDemoReq, @mLength ) ) then // 通過 CH375 發(fā)送命令包 ,成功 begin mLength := iLength。 // 數(shù)據(jù)塊的長度 ,一次上傳不超過 4096 字節(jié) if ( CH375ReadData( mIndex, @iBuffer, @mLength ) ) then// 通過 CH375 接收數(shù)據(jù) ,成功 mUploadData := mLength else MessageBox( , 39。CH375ReadData 上傳數(shù)據(jù)失敗 39。, mCaptionInform, MB_OK + MB_ICONERROR )。 end else MessageBox( , 39。CH375WriteData 發(fā)送命令失敗 ,DEF_CMD_UP_DATA39。, mCaptionInform, MB_OK + MB_ICONERROR )。 end else MessageBox( , 39。CH375WriteData 發(fā)送命令失敗 ,DEF_CMD_CLEAR_UP39。, mCaptionInform, MB_OK + MB_ICONERROR )。 mUploadData:= 0。 End。 } end. 用戶應(yīng)用程序的具體實現(xiàn) 由 Borland 公司推出的 Delphi 是全新的 可視化編程 環(huán)境,為我們提供了一種方便、快捷的 Windows 應(yīng)用程序 開發(fā)工具。它使用了 Microsoft Windows 圖形用戶界面 的許多先進(jìn)特性和設(shè)計思想,采用了彈性可重復(fù)利用的完整的面向?qū)ο蟪绦蛘Z言 (ObjectOriented Language)、當(dāng)今世界上最快的編譯器、最為領(lǐng)先的 數(shù)據(jù)庫 技術(shù)。 而且 使用 Delphi 開發(fā)應(yīng)用軟 件,會大大地提高編程效率 。所以使用 Delphi 實現(xiàn)人機(jī)交互的數(shù)字圖形界面無疑是一個較好的選擇。 圖 數(shù)據(jù)傳輸顯示界面 結(jié)束語 USB 是一種 TI 行業(yè)新發(fā)展起來的通用接口標(biāo)準(zhǔn)。目前很多應(yīng)用主要集中在PC 機(jī)的外設(shè)和一些消費類電子上,在一定程度上限制了 USB 的應(yīng)用領(lǐng)域和發(fā)展空間。作為一種通用型串行總線標(biāo)準(zhǔn)。 USB 不僅僅適用于 TI 行業(yè), 而且 它的應(yīng)用空間很廣泛,完全可以使用在不同的領(lǐng)域和行業(yè)。特別是由于 USB 的 簡單、即插 即 用、熱插拔、開放性、高速、穩(wěn)定、可靠性高等優(yōu)點,它特別適用于儀器儀表、虛擬儀器、數(shù)據(jù) 采集、監(jiān)控設(shè)備和加密設(shè)備等場合。尤其是 標(biāo)準(zhǔn)的推出,其傳輸速率可達(dá) 480Mb/S,使其真正意義上成為了一種通用串行總線。 將 USB 串行通用總線和單片機(jī) 相結(jié)合,并應(yīng)用于信號的采集與處理領(lǐng)域是 本課題的一個特點。本文對 USB 協(xié)議 進(jìn)行了較為詳細(xì)的研究,分析了傳統(tǒng)的 單片機(jī) 接口的一系列缺點,闡明了 USB 發(fā)展的歷史背景。從硬件電路設(shè)計、固件編程、驅(qū)動程序設(shè)計、主機(jī)應(yīng)用程序設(shè)計 等 幾個方面,綜合論述了基于 USB 接口的數(shù)據(jù)采集處理系統(tǒng)的所有開 發(fā)步驟。 隨著 USB 總線技術(shù)的不斷發(fā)展,它的應(yīng)用前景會更加廣闊。 致謝 在完成畢業(yè)論文過程中得到了各位老師和同學(xué)的關(guān)心和支持,在他們的指導(dǎo)和幫助下解決了 我遇到的許多困難和問題,得以順利完成學(xué)業(yè)。首先要特別感謝講 師 周春艷老師給我極大的幫助,她 淵博的知識、 嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、崇高的敬業(yè)精神以及求真務(wù)實的作風(fēng)令我終生難忘。她是 我一生學(xué)習(xí)的榜樣。 感謝教研室的所有老師和同學(xué)們。 感謝父母對我的關(guān)心和愛護(hù), 感謝 同學(xué)和老師的幫助 ,是他們默默的支持著我,給我學(xué)習(xí)創(chuàng)造了很好的條件。 最后借此機(jī)會謹(jǐn)向所有關(guān)心、支持 、幫助過我的老師、同學(xué)表示由衷的感謝。 參考文獻(xiàn) [1] 胡曉軍、張愛成 《 USB接口開發(fā)技術(shù)》 西安電子科技大學(xué)出版社 2020 [2] 周立功《 USB 與 OTG規(guī)范及開發(fā)指南》 北京航空航天大學(xué)出版社 2020 [3] 廖濟(jì)林 《 USB 應(yīng)用系統(tǒng)開發(fā)實例精講》 電子工業(yè)出版社 2020 [4] 邊海龍 《 設(shè)備的設(shè)計與開發(fā)》 人民郵電出版社 2020 [5] 廖濟(jì)林 《 USB 應(yīng)用系統(tǒng)開發(fā)實例精講》 電子工業(yè)出版社 2020 [6] 王成儒、李英偉著 《 USB 原理與工程開發(fā)》 國防工業(yè)出版社 2020 [7] 《 USB 總線接口芯片 CH372 中文手冊》 3E版 [8] 寧愛民 、 蘭如波 《單片機(jī)應(yīng)用技術(shù)》 北京理工大學(xué)出版社 202
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1