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

正文內(nèi)容

基于stm32的usb簡(jiǎn)易鼠標(biāo)設(shè)計(jì)-在線瀏覽

2025-01-15 15:03本頁(yè)面
  

【正文】 接口是串行總線通信端口, 支持即插即用,在 計(jì)算機(jī) 領(lǐng)域應(yīng)用非常廣泛 。一 般 USB 設(shè)備的研發(fā)非常困難,不但要嚴(yán)格遵守 USB 協(xié)議,還要編寫驅(qū)動(dòng)程序。 USB 接口 不但具有 熱插拔功能 而且還是即插即用的,非常方便 。 USB 協(xié)議最早在 1996 年提出,經(jīng)過(guò)多年的發(fā)展 USB 版本到現(xiàn)在已經(jīng)發(fā)展為 版本。本次設(shè)計(jì)中使用的 STM32 是一款基于 CotexM3 內(nèi)核的 32 位處理器。 鼠標(biāo)自從 1968 年美國(guó)科學(xué)家研制出來(lái)后,基于其方便快捷操作簡(jiǎn)單等優(yōu)點(diǎn)很快成為家喻戶曉的產(chǎn)品,是現(xiàn)在每臺(tái)電腦都必須配備的電子產(chǎn)品。在選購(gòu)鼠標(biāo)時(shí),我們一般會(huì)挑選外觀漂亮延遲小的產(chǎn)品,無(wú)論什么樣的鼠標(biāo),目的只有一個(gè),那就是舒適好用。 基于 STM32 的 USB 鼠標(biāo)的設(shè)計(jì)研究方法及目標(biāo) 想 讓計(jì)算機(jī) 把 一個(gè) HID 設(shè)備識(shí)別為鼠標(biāo)設(shè)備,要完成的主要工作是修改 HID 設(shè)備的 標(biāo)準(zhǔn) 描述符。通過(guò)修改描述符可以將 HID 設(shè)備枚舉為鼠標(biāo)。 本文所講述的 USB 鼠標(biāo)是采用 STM32 來(lái)實(shí)現(xiàn)的。而且 STM32官方封裝了很多庫(kù)函數(shù),對(duì)于編寫 USB 驅(qū)動(dòng)節(jié)省了很多時(shí)間。 USB 鼠標(biāo)國(guó)內(nèi)外研究現(xiàn)狀 從原始鼠標(biāo)、 機(jī)械鼠標(biāo) 、 光電鼠標(biāo) (光學(xué)鼠標(biāo), 激光鼠標(biāo) )再到如今的觸控鼠標(biāo),鼠標(biāo)技術(shù)經(jīng)歷了漫漫 征途 終于修成正果。其中,光機(jī)鼠標(biāo)為過(guò)去的主流,我們一般也將它俗稱作“機(jī)械鼠標(biāo)”。現(xiàn)在光學(xué)鼠標(biāo)的技術(shù)相當(dāng)完善,基本上每個(gè)人用的都是光學(xué)鼠標(biāo)。 河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第 2章 USB協(xié)議概述 3 第 2 章 USB 協(xié)議概述 USB 簡(jiǎn)介 USB 是英文 Universal Serial Bus(通用串行總線 )的縮寫,是一個(gè)外部總線的標(biāo)準(zhǔn),用于規(guī)范電腦與外部設(shè)備的連接和通訊,是應(yīng)用在 PC 領(lǐng)域的接口技術(shù)。 現(xiàn)在 USB 設(shè)備 已進(jìn)入千家萬(wàn)戶, 應(yīng)用 之所以如此廣泛 ,優(yōu)點(diǎn) 主要有以下幾點(diǎn) : 支持熱插拔,也就是即插即用。 標(biāo)準(zhǔn)統(tǒng)一。 可以連接多個(gè)設(shè)備。 USB 協(xié)議出現(xiàn)過(guò)的版本有 、 、 以及現(xiàn)在最新的 。 USB OTG 就是讓同一個(gè)設(shè)備在不同場(chǎng)合下實(shí)現(xiàn)主機(jī)與從機(jī)之間的切換。 中不僅支持這兩種模式 , 還增添了 速度更快的 480Mb/s的高速模式。 USB 的拓?fù)浣Y(jié)構(gòu) 前面提到, USB 是一種主從結(jié)構(gòu)的系統(tǒng) 。主控制器下 雖然只有 一個(gè)根集線器, 但一般情況下 根 集線器 上都有 多個(gè) USB 口 。集線器雖然可以擴(kuò)展出更多的 USB 口,但不能擴(kuò)展出更多的帶寬,帶寬還是共享的。 我們可以 在電腦的設(shè)備管理器中是查看 USB 主控制器和 USB 根集線器的。在“設(shè)備管理器 ” 中 找到“通用串行總線控制器 ” 并把它展開(kāi),就可以看到 USB 主控制器和根集線器了。在 Windows 中,由各種 USB 功能驅(qū)動(dòng)程序負(fù)責(zé)產(chǎn)生和管理 USB 功能設(shè)備( FOD),即我們最終所看到的設(shè)備。在 USB OTG 中又增加了一種 MINI USB 接頭,使用五條線,比標(biāo)準(zhǔn) USB 多一條身份識(shí)別線 。因?yàn)殡娖?長(zhǎng)時(shí)間 不 發(fā)生 變化 會(huì) 不利于時(shí)鐘信號(hào)的提取,所以要 在 經(jīng)過(guò)位填充處理 后 發(fā)送數(shù)據(jù)(當(dāng)遇到連續(xù)六個(gè) 1 時(shí)強(qiáng)制插入一個(gè)數(shù)據(jù) 0)。 USB 標(biāo)準(zhǔn)還規(guī)定了信號(hào)線的顏色,其中 5V電源線為紅色, D‐為白色, D+為綠色, GND 為黑色。在 USB 集線器的每個(gè)端口的 D+和 D‐上,分別接了一個(gè) 15kΩ的下拉電阻到地,無(wú)設(shè)備插入時(shí)輸入端被下拉電阻拉到 了低電平。上拉電阻接正還是負(fù)由設(shè)備速度決定,全速和高速設(shè)備接正,低速設(shè)備接負(fù)。當(dāng)集線器檢測(cè)到這個(gè)高電平信號(hào)時(shí),它把信號(hào)發(fā)送到 USB 主控制器,就可以檢測(cè)到設(shè)備插入了。 USB 描述符 前面說(shuō)道 USB 是一個(gè)總線, USB 總線驅(qū)動(dòng)程序也不知道設(shè)備的行為,那么主機(jī)怎么獲知設(shè)備的功能呢,這就 要通過(guò)描述符來(lái)實(shí)現(xiàn)了。還有一些特殊的描述符,如設(shè)計(jì)中要用的 HID 描述符等。在設(shè)備描述符中描述了該設(shè)備的各種配置,每種配置都有一個(gè)配置描述符,定義了設(shè)備有多少個(gè)接口,接口描述符又定義了接口有多少端點(diǎn)。總的來(lái)說(shuō),由端點(diǎn)構(gòu)成接口,接口構(gòu)成配置,配置構(gòu)成設(shè)備。 USB 的包結(jié)構(gòu) 在 USB 總線上,數(shù)據(jù)是以包為單位進(jìn)行傳輸?shù)?。所有的包都要以同步域開(kāi)始,后接一個(gè)包標(biāo)識(shí)符,最后以包結(jié)束符 EOP 結(jié)束。同步域還可以同步主機(jī)端和設(shè)備端的數(shù)據(jù)時(shí)鐘。當(dāng)串行接口引擎檢測(cè)到電平?jīng)]有 翻轉(zhuǎn)時(shí),就會(huì)認(rèn)為包標(biāo)識(shí)符開(kāi)始了。 USB 協(xié)議規(guī)定了四類包:令牌包、數(shù)據(jù)包、握手包和特殊包。協(xié)議中對(duì)最低兩位的規(guī)定如 圖 。因?yàn)?USB 的拓?fù)浣Y(jié)構(gòu)是主從結(jié)構(gòu),所有數(shù)據(jù)的傳輸都是由主機(jī) 發(fā)起的,設(shè)備只負(fù)責(zé)接受,所以需要主機(jī)發(fā)送一個(gè)令牌來(lái)通知需要的設(shè)備進(jìn)行相應(yīng)的操作。具體的功能還要參照 USB 協(xié)議。四種令牌包中,只有 SOF 令牌包之后不跟隨數(shù)據(jù)傳輸,其他包都有數(shù)據(jù)傳輸。它們的結(jié)構(gòu)相同,而且數(shù)據(jù)在傳輸時(shí),每個(gè)域的最低位 LSB 在前。 DATA0和 DATA1包。不同類型的數(shù)據(jù)包是在當(dāng)握手包出錯(cuò)時(shí)糾錯(cuò)用的。主機(jī)和設(shè)備都會(huì)維護(hù)自己的一個(gè)數(shù)據(jù)包類型切換機(jī)制,即當(dāng)數(shù)據(jù)包成功發(fā)送或接收時(shí),數(shù)據(jù)包類型切換。一般情況下,當(dāng)握手包被損壞時(shí),會(huì)發(fā)生數(shù)據(jù)包類型不匹配的情況。此時(shí)它就會(huì)保持自己的數(shù)據(jù)包類型不變,如果對(duì)方下次發(fā)送的數(shù)據(jù)包類型和自己不同,說(shuō)明對(duì)方已經(jīng)成功接收數(shù)據(jù)。 同步域 8 位 PID 字節(jié) 0 字節(jié) 1 握手包四種類型: ACK、 NAK、 STALL 和NYET。 NAK 表示沒(méi)有數(shù)據(jù)需要返回或已經(jīng)正確接受 但沒(méi)有空間容納。 NYET 只在 的高速設(shè)備中使用,表示本次數(shù)據(jù) 成功接受但沒(méi)有空間接受下一次數(shù)據(jù) 。 同步域 包標(biāo)志 PID EOP 圖 握手包結(jié)構(gòu) 特殊包 只在一些特殊場(chǎng)合使用,分 PRE、 ERR、 SPLIT 和 PING 四種。除了 PRE,其他三個(gè)都是 協(xié)議新增的,不在此次設(shè)計(jì)的研究范圍。 PRE 僅僅使用在全速模式中,與握手包的結(jié)構(gòu)一樣。 河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第 2章 USB協(xié)議概述 7 USB 的傳輸類型 USB 有四種傳輸類型:批量傳輸、同步傳輸、中斷傳輸和控制傳輸。 批量傳輸 :使用批量事務(wù)傳輸數(shù)據(jù) 。 中斷傳輸一般用在 我們所說(shuō)的延遲 要 盡可能小的設(shè)備 中 。 同步傳輸 : 有些設(shè)備如音頻、視頻設(shè)備對(duì)數(shù)據(jù)的延遲很敏感,而且需要對(duì)大量數(shù)據(jù)不停的傳輸,但對(duì)數(shù)據(jù)的正確與否要求不高,此時(shí)同步傳輸是最好的選擇。建立過(guò)程 用來(lái) 輸出數(shù)據(jù),使用建立事務(wù)。數(shù)據(jù)過(guò)程可選,如果有可以包含一筆或多比數(shù)據(jù)事務(wù)。其傳輸方向也就是控制讀和控制寫過(guò)程與前面批量事務(wù)相反 。本次設(shè)計(jì)使用的是 M 系列,因?yàn)檫@個(gè)系列成本較低,性能上也完全能夠勝任。 STM32 系列處理器分為標(biāo)準(zhǔn)型和增強(qiáng)型兩個(gè)系列,主要產(chǎn)品有標(biāo)準(zhǔn)型的STM32F101 工作在 36MHz,增強(qiáng)型的 STM32F103 工作在 72MHz 并擁有更大的 RAM 和更豐富的外設(shè)。 圖 是 STM32F103 處理器的配置。在工業(yè)方面,可以應(yīng)用在 PLC、報(bào)警系統(tǒng)、變頻器,打印機(jī)等上面;在低功耗方面,應(yīng)用的產(chǎn)品有電表、血糖測(cè)量?jī)x、 UPS 等;數(shù)碼家電方面,相應(yīng)的產(chǎn)品有電腦外設(shè)、游戲機(jī)、數(shù)碼相機(jī)等。 MDK 集成了 Keil 的μ Vision IDE 和 ARM 編譯工具 RVCT 的優(yōu)勢(shì)。 使用 MDK 的一般開(kāi)發(fā)過(guò)程: 河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第 3章 STM32及 MDK簡(jiǎn)介 9 新建一個(gè)工程,從設(shè)備庫(kù)中選擇目標(biāo)芯片,配置編譯器環(huán)境; 用 C/C++或匯編語(yǔ)言編寫源文件; 編譯目標(biāo)應(yīng)用程序; 修改源程序中的錯(cuò)誤; 測(cè)試連接應(yīng)用程序。下面是 此次設(shè)計(jì)中 的 具體操作 : 在 MDK 主界面中選擇 Project→ New Project 菜單項(xiàng),輸入工程名字即可新建一個(gè) 工程。對(duì)于大部分設(shè)備,軟件會(huì)提示是否在工程中添加 CPU 的啟動(dòng)代碼,為了讓設(shè)備順利完成初始化工作,我們點(diǎn)擊“是”,以減少編寫啟動(dòng)代碼的工作量。 工程創(chuàng)建完了,接下來(lái)就是源程序的編寫了。一般情況下會(huì) 先寫一個(gè) 添加到工程中。點(diǎn)擊 Project→ Conponents,Environment and Books→ Project Components 創(chuàng)建文件組來(lái)管理啟動(dòng)代碼、源程序和配置文件。單擊 Build Target 圖標(biāo)可編譯連接工程文件,出現(xiàn)錯(cuò)誤時(shí),會(huì)在 Output Window 的 Build 頁(yè)中顯示錯(cuò)誤和警告信息。應(yīng)用程序在調(diào)試通過(guò)后,需要生成 HEX 文件,用于下載到編程器或仿真器中。 在此次設(shè)計(jì)中,我們 按照流程走到最后一步, 然后 在 MDK 中點(diǎn)擊 Flash→Download 下載代碼到 STM32F103 開(kāi)發(fā)板中。如果設(shè)備已經(jīng)成功安裝,試用開(kāi)發(fā)板的四個(gè)按鍵操縱鼠標(biāo)箭頭。 河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第 4章 USB鼠標(biāo)的實(shí)現(xiàn) 10 第 4 章 USB 鼠標(biāo)的實(shí)現(xiàn) USB 簡(jiǎn)易鼠標(biāo) 的程序編寫 因?yàn)槲覀兊?STM32F103 開(kāi)發(fā)板上只有四個(gè)按 鍵,所以只能實(shí)現(xiàn)鼠標(biāo)光標(biāo)的上下左右移動(dòng),不能實(shí)現(xiàn)鼠標(biāo)左右鍵的功能。 USB 鼠標(biāo)的程序比較復(fù)雜,除了庫(kù)文件和 USB函數(shù)庫(kù)文件之外,還包含了 8 個(gè)源文件,其中 是啟動(dòng)代碼,這里不再多說(shuō)。如果確定有按鍵按下則向 USB 緩沖器發(fā)出相關(guān)數(shù)據(jù)。 該文件中沒(méi)有任何函數(shù),只是包含一些定義 USB 設(shè)備的描述符常數(shù),由于 USB鼠標(biāo)是一個(gè)標(biāo)準(zhǔn)的 USB 設(shè)備,所以相關(guān)的參數(shù)也比較容易得到。 該文件 是用來(lái)控制 USB 中斷服務(wù) 用的 。 該文件中只有一個(gè)函數(shù),就是上面提到的用于 控制 USB 中斷的 USB_Istr 函數(shù),此 函數(shù) 的 主要 作用 是對(duì)各類引起 USB 中斷的事件作輪詢處理。 該文件中包含處理上電、掉電、掛起和喚醒事件的函數(shù)。其中 Set_USBClock函數(shù)用于配置 USB 端口時(shí)鐘; Set_System 函數(shù)用于配置時(shí)鐘、通用端口;USB_Cable_Config 函數(shù)配置 USB 電纜狀態(tài); USB_Interrupts_Config 函數(shù)用于配置 USB 中斷; JoyState 函數(shù)用于獲取按鍵狀態(tài); Joystick_Send 用于向 USB 端口河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第 4章 USB鼠標(biāo)的實(shí)現(xiàn) 11 發(fā)送按鍵的事件。 USB 協(xié)議規(guī)定了標(biāo)準(zhǔn)的設(shè)備請(qǐng)求為八個(gè)字節(jié)。任何 USB 設(shè)備都要能夠接收大于八字節(jié)的數(shù)據(jù)。 表 標(biāo)準(zhǔn)請(qǐng)求及代碼 標(biāo)準(zhǔn)請(qǐng)求 值 標(biāo)準(zhǔn)請(qǐng)求 值 GET_STATUS 0 GET_CONFIGURATION 8 CLEAR_FEATURE 1 SET_CONFIGURATION 9 SET_FEATURE 3 GET_INTERFACE 10 SET_ADDRESS 5 SET_INTERFACE 11 GET_DISCRIPTOR 6 SYNCH_FRAME 12 SET_DISCRIPTOR 7 其中獲取描述符請(qǐng)求 GET_DESCRIPTOR 在枚舉過(guò)程中用的最多。表 是獲取描述符請(qǐng)求的結(jié)構(gòu)。它的高字節(jié),也就是第二字節(jié),用來(lái)描述類型編號(hào)。設(shè)備在收到描述符請(qǐng)求后,就會(huì)按照描述符類型的編號(hào),返回對(duì)應(yīng)的描述符。 表 描述符類型及編號(hào) 類型 設(shè)備描述符 配置描述符 字符串描述符 接口描述符 端點(diǎn)描述符 編號(hào) 1 2 3 4 5 對(duì)于全速模式和低速模式,只有獲取設(shè)備、配置和字符串描述符這三種。圖 是 HID 描述符的結(jié)構(gòu)。 ②打開(kāi)設(shè)計(jì)目錄下的 文件,編譯連接工程。 ④重啟開(kāi)發(fā)板。 ⑤分別控制開(kāi)發(fā)板上的四個(gè)鍵,觀察電腦屏幕上鼠標(biāo)光標(biāo)的變化,如果光標(biāo)隨按鍵按下移動(dòng),則表明程序運(yùn)行成功,一個(gè) USB 簡(jiǎn)易鼠標(biāo)就做好了。 設(shè)備描述符 字符串描符 配置描述符 字符串描符 接口描述符 字符串描符 端點(diǎn)描述符 字符串描符 河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第 4章 USB鼠標(biāo)的實(shí)現(xiàn) 13 圖 設(shè)備管理器 河南城建學(xué)院本科畢業(yè)設(shè)計(jì)(論文)
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1