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

正文內(nèi)容

基于stm32的usb簡易鼠標畢業(yè)設(shè)計-展示頁

2025-07-03 16:13本頁面
  

【正文】 標都少不了和USB打交道,基于USB的設(shè)備已經(jīng)是電子產(chǎn)品研發(fā)的主流。對于光學鼠標,則是現(xiàn)在鼠標技術(shù)的發(fā)展方向,它已經(jīng)大面積取代過時的光機鼠標產(chǎn)品。與主流PC部件相比,鼠標的技術(shù)革新顯得非常保守,從道格拉斯博士的原始鼠標,再到后來的純機械鼠標、光電鼠標、光機鼠標,以及光學鼠標,鼠標技術(shù)只經(jīng)歷寥寥幾次大變革,其中真正算得上成功的其實只有光機鼠標和光學鼠標,它們也是當前鼠標技術(shù)的主流形態(tài)。本次設(shè)計通過把符合HID協(xié)議的程序燒錄到STM32開發(fā)板中,由開發(fā)板的四個按鍵控制window窗口光標的移動。本文所講述的USB鼠標是采用STM32來實現(xiàn)的。通過修改描述符可以將HID 設(shè)備枚舉為鼠標。 基于STM32的USB鼠標的設(shè)計研究方法及目標想讓計算機把一個HID 設(shè)備識別為鼠標設(shè)備,要完成的主要工作是修改HID 設(shè)備的標準描述符。在選購鼠標時,我們一般會挑選外觀漂亮延遲小的產(chǎn)品,無論什么樣的鼠標,目的只有一個,那就是舒適好用。鼠標自從1968年美國科學家研制出來后,基于其方便快捷操作簡單等優(yōu)點很快成為家喻戶曉的產(chǎn)品,是現(xiàn)在每臺電腦都必須配備的電子產(chǎn)品。本次設(shè)計中使用的STM32是一款基于CotexM3內(nèi)核的32位處理器。USB協(xié)議最早在1996年提出。USB接口不但具有熱插拔功能而且還是即插即用的,非常方便。一般USB設(shè)備的研發(fā)非常困難,不但要嚴格遵守USB協(xié)議,還要編寫驅(qū)動程序。河南城建學院本科畢業(yè)設(shè)計(論文) 目錄基于STM32的USB簡易鼠標畢業(yè)設(shè)計目錄摘 要 IAbstract II目錄 III第1章 引言 1 課題背景 1 基于STM32的USB鼠標的設(shè)計研究方法及目標 1 USB鼠標國內(nèi)外研究現(xiàn)狀 2第2章 USB協(xié)議概述 3 USB簡介 3 USB的拓撲結(jié)構(gòu) 3 USB的電氣特性 4 USB描述符 4 USB的包結(jié)構(gòu) 5 5 6 6 6 USB的傳輸類型 7第3章 STM32及MDK簡介 8 STM32簡介 8 MDK的使用 8第4章 USB鼠標的實現(xiàn) 10 USB簡易鼠標的程序編寫 10 USB鼠標的運行 12 硬件實現(xiàn) 12設(shè)計總結(jié) 14附 錄 15附錄A 15附錄B 19附錄C 26附錄D 38參考文獻 51致 謝 52河南城建學院本科畢業(yè)設(shè)計(論文) 引言第1章 引言 課題背景USB 接口是串行總線通信端口,支持即插即用,在計算機領(lǐng)域應用非常廣泛。HID設(shè)備是一種可以進行人機交互操作的設(shè)備,在USB設(shè)備中占有重要地位,可以輔助計算機進行各種操作,如常用的電腦攝像頭、手寫板等設(shè)備。但HID設(shè)備使用的是操作系統(tǒng)自帶的HID 驅(qū)動程序,免去了驅(qū)動程序的編寫,加快了開發(fā)效率,因此一些簡單的USB 設(shè)備,都喜歡枚舉成HID 設(shè)備。USB接口在理論上最多可以同時連接127個外設(shè),如游戲手柄、手寫板、鍵盤等。從1975年第一個單片機產(chǎn)生后經(jīng)過四代的發(fā)展,目前單片機具有生命周期長、接口內(nèi)容豐富、運算速度快、低電壓低功耗、價格便宜等優(yōu)點。這款處理器具有低成本、高性能的有點,非常適合USB鼠標的設(shè)計。從有線到無線,從滾球到光電,鼠標經(jīng)過一代代的發(fā)展可以說是品種繁多,價格也是十幾元到幾千元的都有。所以不管計算機發(fā)展到什么程度,只要有人用鼠標,鼠標的研制與開發(fā)都是必須的。HID 設(shè)備的描述符主要包括5 個USB 的標準描述符和3 個HID 設(shè)備類特定描述符。本次設(shè)計使用C語言進行程序的編寫。而且STM32官方封裝了很多庫函數(shù),對于編寫USB驅(qū)動節(jié)省了很多時間。 USB鼠標國內(nèi)外研究現(xiàn)狀 從原始鼠標、機械鼠標、光電鼠標(光學鼠標,激光鼠標)再到如今的觸控鼠標,鼠標技術(shù)經(jīng)歷了漫漫征途終于修成正果。其中,光機鼠標為過去的主流,我們一般也將它俗稱作“機械鼠標”。現(xiàn)在光學鼠標的技術(shù)相當完善,基本上每個人用的都是光學鼠標。16河南城建學院本科畢業(yè)設(shè)計(論文) 第2章 USB協(xié)議概述 第2章 USB協(xié)議概述 USB簡介 USB是英文Universal Serial Bus(通用串行總線)的縮寫,是一個外部總線的標準,用于規(guī)范電腦與外部設(shè)備的連接和通訊,是應用在PC領(lǐng)域的接口技術(shù)?,F(xiàn)在USB設(shè)備已進入千家萬戶,應用之所以如此廣泛,優(yōu)點主要有以下幾點: 支持熱插拔,也就是即插即用。 標準統(tǒng)一。 可以連接多個設(shè)備。 、。USB OTG就是讓同一個設(shè)備在不同場合下實現(xiàn)主機與從機之間的切換。還增添了速度更快的480Mb/s的高速模式。主機在一般情況下都會具有一個或多個USB主控制器(host controller)和根集線器(root hub)。USB集線器是一種特殊的USB設(shè)備,是在USB接口不夠用時擴展USB口用的。所以最好不要把多個USB設(shè)備接到同一個USB端口上。對于window7系統(tǒng),右擊“計算機”,在彈出的菜單中選擇“管理”,在“計算機管理”選項卡中單擊“設(shè)備管理器”,就可以查看計算機設(shè)備的屬性了,在這里可以查看驅(qū)動程序信息、設(shè)備的PID和VID等。USB的拓撲結(jié)構(gòu)為金字塔型,塔頂為主控制器和根集線器,下面是通過USB集線器拓展的多個USB口。 USB的電氣特性 標準的USB連接線使用四芯電纜:5V電源線、差分數(shù)據(jù)線負(D‐)、差分數(shù)據(jù)線正(D+)及地(GND)。USB使用的是NRZI編碼方式,即數(shù)據(jù)為0時電平翻轉(zhuǎn),數(shù)據(jù)為1不翻轉(zhuǎn)。USB協(xié)議規(guī)定,USB低速電纜長度不得超過3米,而全速電纜不得超過5米。 插入檢測機制就是檢測到設(shè)備插入到主機的過程。在USB設(shè)備端D+或D‐。當設(shè)備插入USB插座時,接上拉電阻的數(shù)據(jù)線的電壓由上拉電阻和下拉電阻分壓決定,大概在3V左右。此時,還可以根據(jù)被拉高的數(shù)據(jù)線是D+還是D‐來判斷設(shè)備的速度類型。:設(shè)備描述符、配置描述符、接口描述符、端點描述符和字符串描述符。一個USB設(shè)備只有一個設(shè)備描述符。 USB描述符之間的關(guān)系:設(shè)備描述符包含配置描述符包含接口描述符包含端點描述符。如果一個設(shè)備的各種描述符都成功的返回了,那么設(shè)計基本上算是成功了一大半。一個包被分成不同的域,包的類型不同,所包含的域也不同。 同步域用以告訴USB串行接口數(shù)據(jù)要開始傳輸了,以便做好準備。同步域都是以一串0開始的,所以每個數(shù)據(jù)都會發(fā)生電平變化(0在USB總線上被編碼為電平翻轉(zhuǎn)),這樣串行接口引擎很容易恢復采樣時鐘信號。 包標識符PID用以表示一個包的類型,共8位,其中USB協(xié)議使用的只有PID0~PID3這四位,另外四位是這四位的取反,用來校驗PID。每種包又分成幾種具體的包。因為USB的拓撲結(jié)構(gòu)是主從結(jié)構(gòu),所有數(shù)據(jù)的傳輸都是由主機發(fā)起的,設(shè)備只負責接受,所以需要主機發(fā)送一個令牌來通知需要的設(shè)備進行相應的操作。具體的功能還要參照USB協(xié)議。四種令牌包中,只有SOF令牌包之后不跟隨數(shù)據(jù)傳輸,其他包都有數(shù)據(jù)傳輸。它們的結(jié)構(gòu)相同,而且數(shù)據(jù)在傳輸時,每個域的最低位LSB在前。不同類型的數(shù)據(jù)包是在當握手包出錯時糾錯用的。主機和設(shè)備都會維護自己的一個數(shù)據(jù)包類型切換機制,即當數(shù)據(jù)包成功發(fā)送或接收時,數(shù)據(jù)包類型切換。一般情況下,當握手包被損壞時,會發(fā)生數(shù)據(jù)包類型不匹配的情況。此時它就會保持自己的數(shù)據(jù)包類型不變,如果對方下次發(fā)送的數(shù)據(jù)包類型和自己不同,說明對方已經(jīng)成功接收數(shù)據(jù)。字節(jié)N16位校驗EOP 數(shù)據(jù)包結(jié)構(gòu) 用來查看一個數(shù)據(jù)是否被對方確認。ACK表示數(shù)據(jù)已經(jīng)被接收,空間容納也足夠。STALL表示這個設(shè)備無法執(zhí)行這個請求或者端點已經(jīng)被掛起了,表示一種錯誤的狀態(tài)。同步域包標志PIDEOP 握手包結(jié)構(gòu) 只在一些特殊場合使用,分PRE、ERR、SPLIT和PING四種。除了PRE,不在此次設(shè)計的研究范圍。PRE僅僅使用在全速模式中,與握手包的結(jié)構(gòu)一樣。 USB的傳輸類型 USB有四種傳輸類型:批量傳輸、同步傳輸、中斷傳輸和控制傳輸。 批量傳輸:使用批量事務傳輸數(shù)據(jù)。中斷傳輸一般用在我們所說的延遲要盡可能小的設(shè)備中。 同步傳輸:有些設(shè)備如音頻、視頻設(shè)備對數(shù)據(jù)的延遲很敏感,而且需要對大量數(shù)據(jù)不停的傳輸,但對數(shù)據(jù)的正確與否要求不高,此時同步傳輸是最好的選擇。建立過程用來輸出數(shù)據(jù),使用建立事務。數(shù)據(jù)過程可選,如果有可以包含一筆或多比數(shù)據(jù)事務。其傳輸方向也就是控制讀和控制寫過程與前面批量事務相反。本次設(shè)計使用的是M系列,因為這個系列成本較低,性能上也完全能夠勝任。 STM32系列處理器分為標準型和增強型兩個系列,主要產(chǎn)品有標準型的STM32F101工作在36MHz,增強型的STM32F103工作在72MHz并擁有更大的RAM和更豐富的外設(shè)。72MHzCPU多達64K的RAM212位ADC溫度傳感器3USART2SPI多達512K的ROM USB通用I/O引腳316位定時器4~16MHz主振蕩器內(nèi)嵌8MHz和32kHz的RC振蕩器實時時鐘2看門狗7通道DMACAN PWM定時器圖 STM32F103處理器的配置 正是由于STM32F10x系列處理器配有眾多的外設(shè),所以它的用途非常廣泛。 MDK的使用 支持STM32微控制器的開發(fā)工具雖然很多,但結(jié)合中國的業(yè)內(nèi)行情及收費情況,Keil公司的MDK是不二選擇。特別是中國版MDK推出后,通過更加合理的價格和服務,逐步使得MDK成為中國嵌入式工程師的最愛芯片。 MDK的工具集默認的是RealView編譯工具,如有特殊需要,也可以安裝使用GNU GCC編譯器。創(chuàng)建新工程時軟件會提示我們?yōu)楣こ踢x擇一款相應的處理器,也可以通過Poject→Select Device打開此選項。 MDK還可以通過Project→Options for Target,在彈出的選項中對目標硬件和設(shè)備內(nèi)組件的相關(guān)參數(shù)進行配置。點擊File→New創(chuàng)建新的源文件。點擊Project→Conponents,Environment and Books→Project Components創(chuàng)建文件組來管理啟動代碼、源程序和配置文件。單擊Build Target圖標可編譯連接工程文件,出現(xiàn)錯誤時,會在Output Window的Build頁中顯示錯誤和警告信息。應用程序在調(diào)試通過后,需要生成HEX文件,用于下載到編程器或仿真器中。在此次設(shè)計中,我們按照流程走到最后一步,然后在MDK中點擊Flash→Download下載代碼到STM32F103開發(fā)板中。如果設(shè)備已經(jīng)成功安裝,試用開發(fā)板的四個按鍵操縱鼠標箭頭。 河南城建學院本科畢業(yè)設(shè)計(論文) USB鼠標的實現(xiàn) 第4章 USB鼠標的實現(xiàn) USB簡易鼠標的程序編寫 因為我們的STM32F103開發(fā)板上只有四個按 鍵,所以只能實現(xiàn)鼠標光標的上下左右移動,不能實現(xiàn)鼠標左右鍵的功能。USB鼠標的程序比較復雜,除了庫文件和USB函數(shù)庫文件之外,還包含了8個源文件,這里不再多說。如果確定有按鍵按下則向USB緩沖器發(fā)出相關(guān)數(shù)據(jù)。該文件中沒有任何函數(shù),只是包含一些定義USB設(shè)備的描述符常數(shù),由于USB鼠標是一個標準的USB設(shè)備,所以相關(guān)的參數(shù)也比較容易得到。該文件是用來控制USB中斷服務用的。該文件中只有一個函數(shù),就是上面提到的用于控制USB中斷的USB_Istr函數(shù),此函數(shù)的主要作用是對各類引起USB中斷的事件作輪詢處理。該文件中包含處理上電、掉電、掛起和喚醒事件的函數(shù)。其中Set_USBClock函數(shù)用于配置USB端口時鐘;Set_System函數(shù)用于配置時鐘、通用端口;USB_Cable_Config函數(shù)配置USB電纜狀態(tài);USB_Interrupts_Config函數(shù)用于配置USB中斷;JoyState函數(shù)用于獲取按鍵狀態(tài);Joystick_Send用于向USB端口發(fā)送按鍵的事件。USB協(xié)議規(guī)定了標準的設(shè)備請求為八個字節(jié)。任何USB設(shè)備都要能夠接收大于八字節(jié)的數(shù)據(jù)。 標準請求及代碼標準請求值標準請求值GET_STATUS0GET_CONFIGURATION8CLEAR_FEATURE1SET_CONFIGURATION9SET_FEATURE3GET_INTERFACE10SET_ADDRESS5SET_INTERFACE11GET_DISCRIPTOR6SYNCH_FRAME12SET_DISCRIPTOR7其中獲取描述符請求GET_DESCRIPTOR在枚舉過程中用的最多。 獲取描述符請求的結(jié)構(gòu)bmRequestTypebRequestwValuewIndexwLength數(shù)據(jù)過程0x800x06描述符類型和索引0或語言ID描述符長度描述符 在上表中的wValue這一項中,低字節(jié)表示索引號,其具體的作用是在相同種類的描述符中確定一個描述符。設(shè)備在收到描述符請求后,就會按照描述符類型的編號,返回對應的描述符。 描述符類型及編號類型設(shè)備描述符配置描述符字符串描述符接口描述符端點描述符編號12345 對于全速模式和低速模式,只有獲取設(shè)備、配置和字符串描述符這三種。字符串描符設(shè)備描述符 配置描述符
點擊復制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1