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

正文內(nèi)容

usb接口在單片機通信中的設計應用畢業(yè)論文(參考版)

2025-07-01 09:04本頁面
  

【正文】 參考文獻[1] [M].北京:北京航空航天大學出版社,~160.[2] [M].西安: 西安電子科技大學出版社,~62.[3] 楊代華,葉敦范,[M].武漢:中國地質(zhì)大學出版社,~105.[4](美)Jan [M].北京: 中國電力出版社,~157.[5] [M].北京:國防工業(yè)出版社,~53.[6] [M]. 北京: 電子工業(yè)出版社,~81.[7] 馬忠梅,馬巖,[M].北京: 北京航空航天大學出版社,~185.[8] [M].北京: 清華大學出版社,~128.[9] [M].北京: 北京航空航天大學大學出版社,~206.[10] [M].北京: 北京航空航天大學出版社,~97.[11] [M].北京: 人民郵電出版社,~104.[12] Chris WDM設備驅(qū)動程序開發(fā)指南[M].西安: 西安電子科技大學出版社,~70.[13] 莫林利,++實現(xiàn)與USB驅(qū)動程序的通信[J].電腦編程技術與維護,2003,1:1001~1004.[14] [M].西安: 西安電子科技大學出版社,~56.[15] [M].北京: 北京航空航天大學出版社,2000. 98~104.[16] TEXAS Circuit。限于自己的能力和開發(fā)條件,本系統(tǒng)還有待改進和完善的地方。在該系統(tǒng)設計與開發(fā)過程中,我將大學五年學到的知識連接起來了,將它們運用到實際中。第四階段:與PC機相連接的系統(tǒng)整機調(diào)試。由于USB協(xié)議和底層驅(qū)動相當復雜,自己C語言運用能力也有限,在這個階段中,自己也需要通過不斷的學習,來完成本階段的工作。第三階段:系統(tǒng)軟件模塊的設計。第二階段:系統(tǒng)硬件電路圖的設計和電路的測試。結(jié)論本文從硬件和軟件兩個方面詳細地介紹了USB接口在單片機通信中的設計應用過程以及相關技術要點。在這個過程中要注意:這里的Setup包的Type、Request域為字節(jié)數(shù)據(jù),wValue、wIndex、wLength域為字數(shù)據(jù),Setup包傳輸?shù)膶嶋H內(nèi)容可在輸入框下方的文本框中顯示。選中Pipe00時,點擊Read/Write To Pipe,將彈出一個PipeControl的窗口。對USB設備來說,將在Resource窗口中看到2個管線:Pipe00—控制管線,Pipe81—數(shù)據(jù)管線(中斷方式)。Win Driver包含2個子窗口,Log和Resource。在這里,利用Win Driver來觀察USB設備的工作情況。當設備能實現(xiàn)此功能時,說明系統(tǒng)固件程序編寫正確。主機也可以為計數(shù)器設置新的計數(shù)值,即主機向設備送1字節(jié)的報文,設備收到后立即用該值替換計數(shù)器的計數(shù)值,計數(shù)器以這個新值開始計數(shù)。該設備是一個人機接口設備,以中斷方式傳輸,查詢周期為10ms(接口描述符中定義為10ms),發(fā)送和接收的數(shù)據(jù)都只有1字節(jié)。系統(tǒng)固件程序在wave6000中編譯通過后,我們就可以對它進行測試。固件程序的編寫運用的是單片機語言,它的編譯仿真用是在wave6000的輔助下進行的;由于驅(qū)動程序是在Win Driver下生成的,應用程序是基于驅(qū)動程序提供的接口上工作的,所以驅(qū)動程序和應用程序的調(diào)試是在Win Driver軟件輔助下進行的。 系統(tǒng)軟件調(diào)試及系統(tǒng)測試系統(tǒng)軟件程序編寫完畢以后,我們需要對它進行調(diào)試。后來檢測單片機模塊時,發(fā)現(xiàn)其沒有正常工作,經(jīng)檢測發(fā)現(xiàn)復位電路有問題,原因是復位腳上的電容接反了方向,導致不能復位,單片機不能工作。調(diào)試調(diào)試過程中我收獲很大。D12芯片需要單片機程序控制才能正常工作,這里可以檢測D12芯片外圍的晶振是否工作,只要將時鐘信號輸入端接到示波器上,如果看到振動現(xiàn)象就說明晶振電路沒有問題。由于本系統(tǒng)中單片機的外部時鐘輸入是由D12芯片的CLKOUT腳引入,所以在測試過程中,必須重新為單片機引入一個12M的時鐘脈沖。2) 看系統(tǒng)各部件是否正常工作。對系統(tǒng)硬件調(diào)試,主要按以下步驟來實現(xiàn):1) 看板子是否通。由于本系統(tǒng)的軟件調(diào)試過程,都是在軟件工具Win Driver的輔助下,在硬件的基礎上進行的,所以軟件的調(diào)試基本上可以稱為系統(tǒng)調(diào)試。為方便調(diào)試,硬件部分一開始只搭建了USB基本功能模塊,即由AT89S52和PDIUSBD12以及其外圍器件構(gòu)成的模塊。單擊“監(jiān)聽管線”后,應用程序通過驅(qū)動程序?qū)υO備的中斷端點進行掃描,這時設備單片機內(nèi)部的記數(shù)值就會發(fā)給主機,在應用程序的文本框中就會顯示出來[12]。當設備接入主機之后,從應用程序中可以開啟和關閉設備。在Build菜單中選擇Generate Code,Win Driver就會提示生成一個應用程序的工程源代碼,打開VC對所建工程編譯連接,就可以對得到一個控制臺的可執(zhí)行程序,這個程序運行同樣可以用來對設備的所有管線進行讀/寫。本系統(tǒng)的應用程序的開發(fā)是為了更好的實現(xiàn)數(shù)據(jù)的傳輸,把USB設備中數(shù)據(jù)的傳輸過程動態(tài)地呈現(xiàn)出來,讓使用者能夠直觀地看到主機對設備的控制,即數(shù)據(jù)的接收和發(fā)送。 系統(tǒng)應用程序開發(fā) 應用程序的實現(xiàn)的功能應用程序是基于驅(qū)動程序提供的接口工作的,所以本系統(tǒng)涉及的應用程序必須調(diào)用Win Driver提供的驅(qū)動程序接口。之后就會發(fā)現(xiàn)設備的掃描已經(jīng)暫時停止了(這時電路板的Good Link指示LED不再閃爍,計數(shù)器不顯示輸出)。當設備初次接入時,將被系統(tǒng)識別為標準的人機接口設備HID,并自動為其安裝驅(qū)動程序,之后操作系統(tǒng)將對這個設備類似對鼠標鍵盤的方式不停查詢(電路板的Good Link指示LED不停閃爍,而且計數(shù)器的8位LED輸出也在不停的變化),這時用戶就無法對其與主機的數(shù)據(jù)傳輸進行監(jiān)控,所以就必須為其安裝專用的驅(qū)動程序。打開Driver Wizard,建立一個新的工程,在彈出的Card Information窗口中,就可以看到要生成驅(qū)動程序的設備信息,有接口類型、生產(chǎn)廠商和Product ID 3個設備信息。區(qū)別在于Driver Works等工具可以開發(fā)出獨立但是完整的驅(qū)動程序,而使用Win Driver軟件時工具只提供一個設備安裝信息文件(.inf),真正的驅(qū)動程序在安裝Win Driver時就已經(jīng)加載了。使用這類工具開發(fā)驅(qū)動程序不如使用DDK靈活,但大大減小開發(fā)者的工作量和難度,縮短了開發(fā)周期。另一種具有代表性的有VtoolsD和Driver Works等開發(fā)工具軟件。使用DDK開發(fā)過程靈活,開發(fā)出的驅(qū)動程序的代碼效率高,與操作系統(tǒng)結(jié)合好。其中“初始化”模塊是一定不能少的,其它模塊可選。11) 處理Windows管理診斷(WMI)向系統(tǒng)管理員報告。9) 調(diào)用其它驅(qū)動程序。7) 取消I/O請求。5) 實現(xiàn)對設備的串行化訪問。3) 處理Win32程序打開和關閉文件句柄的要求。 WDM設備驅(qū)動程序結(jié)構(gòu)一個WDM設備驅(qū)動程序的功能模塊一般包括如下的幾個部分:1) 初始化。總線驅(qū)動按順序使用IRP與總線通信,最終總線直接驅(qū)動硬件,總線驅(qū)動為Windows系統(tǒng)提供不需要用戶編程的代碼。每個IRP請求或執(zhí)行一個獨立的輸入/輸出操作。驅(qū)動通信使用輸入/輸出請求包(IRP)結(jié)構(gòu)。在內(nèi)核模式下,代碼運行在Ring0模式,不限制訪問系統(tǒng)資源,可以直接執(zhí)行內(nèi)存管理指令和訪問I/O端口。應用程序必須運行在用戶模式下,一般不允許直接操作I/O端口,除非驅(qū)動預留了端口。在Windows操作系統(tǒng)中,程序代碼以以下兩種方式之一運行:用戶或內(nèi)核。設備驅(qū)動程序的任務是在應用層和硬件控制代碼之間進行轉(zhuǎn)換操作。主機應用程序通過驅(qū)動程序與系統(tǒng)USBI(USB Device Interface)進行通信,其主要任務是根據(jù)所需處理功能的要求來完成各種基于Windows程序的處理[13]。主機軟件開發(fā)在本系統(tǒng)中占很大的分量也是本系統(tǒng)設計的難點之一。注:固件程序的源代碼見附錄2。5) USB通信協(xié)議實現(xiàn)USB通信協(xié)議實現(xiàn)()的功能就是響應主機提出的設備要求。所以,中斷處理程序的功能就是從端點0(控制端點)輸出得到主機的各項設備要求,把設備要求發(fā)送USB協(xié)議層譯碼,得到相應的描述符,再把描述符按指定的包長打包,最后通過USB接口D12的端點0輸入送往主機。讀中斷狀態(tài)寄存器判斷中斷類型端點0輸出端點0輸入端點2輸入輸出SOF包掛起總線重置接收SETUPBAO BAO 響應設備要求讀傳輸狀態(tài)寄存器自定義自定義 中斷處理程序流程圖注意:在對端點0、1和2的輸出/輸入引發(fā)中斷的處理時,必須要做這樣一步操作:讀上次傳輸狀態(tài)寄存器(40~45)。 讀中斷寄存器返回值位7 6543210初始值00000000說 明掛起狀態(tài)改變總線重置端點2輸入端點2輸出端點1輸入端點1輸出控制輸入控制輸出本系統(tǒng)設備中,固件程序只須處理端點0的輸出和輸入要求就可以完成設備的正常配置和基本工作。4) 中斷處理程序本系統(tǒng)的中斷處理程序()。d12write(0x43)。以下是初始化D12的單片機語句:d12m(0xf3)。說明:上電后默認地址為0,暫時不需要改動,一般在收到設定地址的要求時再使用;SoftConnect為斷開狀態(tài),即這時主機檢測不到設備的接入,需軟件設置SoftConnect為連接狀態(tài)后主機才能檢測到設備接入;初始時鐘輸出為4MHz,本系統(tǒng)要求的系統(tǒng)時鐘為12MHz或24MHz;而設置DMA(set DMA)指令只要在設備內(nèi)部的D12和存儲器間使用DMA才會用到,本系統(tǒng)不用。在只實現(xiàn)基本USB設備功能的本系統(tǒng)中,目前單片機的外部器件中只需要對D12進行初始化。一般將這個延時控制在10ms左右。D12delay()函數(shù)的原型為void d12delay(void),它的功能是在兩次對D12芯片的操作間加入一定的延時,這個函數(shù)只能在上面3個函數(shù)中使用。D12芯片的數(shù)據(jù)端口地址在本系統(tǒng)中為0x10,定義為unsigned char volatile D12_DATA_AT_0X10,。該端口為只讀。d12m( )函數(shù)的原型為void d12m(unsigned char m.),實現(xiàn)的功能是向D12接口芯片的命令口寫一個字節(jié)的命令字。主程序中斷處理程序USB協(xié)議USB電氣接口驅(qū)動擴展功能 設備固件功能結(jié)構(gòu)圖 2) USB電氣接口驅(qū)動()USB電氣接口驅(qū)動()實現(xiàn)的功能是與PDIUSBD12接口芯片之間的通信。中斷程序所做的工作應該包括對每個包的接收清除中斷標志,以使D12能夠觸發(fā)下一次中斷[7]。每次PDIUSBD12接口芯片檢測到USB總線上主機發(fā)給這個設備的信號時候就觸發(fā)一次單片機的外部中斷。單片機初始化的最后一步將D12的SoftConnect功能打開,從這時起,主機才能檢測到設備的接入。主程序完成的工作是上電初始化PDIUSBD1給全局變量置初值、初始化中斷系統(tǒng),初始化完成之后進入死循環(huán),等待D12的中斷信號。對很多USB設備來說,字符串描述符都不是必須的,但是字符串描述符的使用有助于提高設備界面的友好性。在一個報告描述符中必須有以下項目:(1)輸入(input)、輸出(output)、特性(feature)或集合(collection);(2)用途(usage);(3)用途頁(usage page);(4)邏輯最大值(logical maximum);(5)邏輯最小值(logical minimum);(6)報告長度(report size);(7)報告記數(shù)值(report count)。6) 報告描述符報告描述符是USB中最復雜的描述符。每一個接口可能對應一個或多個端點,其端點數(shù)目由接口描述符的bNumEndpoints字段設定。對一個設備的配置來說,可能是一種或多種接口類型,其接口的數(shù)目是由配置描述符的bNumInterface字段指定的。對每個設備而言,可能會有一個或多個配置類型,其配置的數(shù)目由設備描述符的最后一個字段bNumConfigurations所設定的。設備描述符包含了設備的基本信息,包括數(shù)據(jù)傳輸時設備遵守USB規(guī)范的版本、數(shù)據(jù)封包大小,以及設備包括的若干特定字符串描述符和配置描述符。其中,設備描述符(device descriptor),配置描述符(configuration descriptor),接口描述符(interface descriptor)和端點描述符(endpoint descriptor)為每個USB設備所必須有的,字符串描述符(string descriptor),各設備類不同的類描述符(class descriptor)及報告描述符(report descriptor)則可以根據(jù)不同的設備進行添加或刪減。因此,編寫固件程序的一個最主要的目的就是讓Windows可以檢測和識別設備。在ISR(中斷服務程序)中,固件讀取數(shù)據(jù),并將數(shù)據(jù)保存值到循環(huán)數(shù)據(jù)緩沖區(qū),隨后置柏應事件的標志位,CPU繼續(xù)前臺程序,檢測事件標志,執(zhí)行完成相應的事件任務。它的操作方式與硬件聯(lián)系緊密,包括USB設備的連接、USB協(xié)議、中斷處理等,它不是單純的軟件,而是軟件和硬件的結(jié)合,需要對端口、中斷和硬件結(jié)構(gòu)非常熟悉。其中,USB設備中單片機控制器的固件程序的設計與實現(xiàn)是本章的重點。本系統(tǒng)的軟件設計包括三個大的方面:固件(Firmware)、WDM客戶驅(qū)動(主機操作系統(tǒng)上的客戶驅(qū)動程序)以及主機應用軟件。LPT接口模塊除了可以用做打印機擴展之外,還可以重新定義它的引腳功能作其他數(shù)據(jù)傳輸之用,前提是單片機固件中相應的描述符要更改為打印機之外的其它設備[9]。由于LPT模塊與基本模塊的8位撥碼開關輸入模塊共用P2口,所以在使用LPT模塊時,應禁止撥碼開關模塊的輸入,這里是通過模式選擇開關S1的低位接在用做總線開關的74245上的,故使用LPT模塊時應保證該位為高電平。這樣連接使得以2808為主的這個Flash存儲器模塊有如以下的地
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1