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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于pic單片機(jī)的wifi控制系統(tǒng)-文庫吧

2024-11-11 17:06 本頁面


【正文】 42IC2/U1CTS/SDA1/INT2/RD943IC3/PMCS2/PMA15/SCL1/INT3/RD1044IC4/PMCS1/PMA14/INT4/RD1145OC1/INT0/RD046SOSCI/CN0/RC1347SOSCO/T1CK/CN0/RC1448J?PIC32MX440F512HPIN1PIN2PIN3PIN4PIN5PIN6PIN7PIN8PIN9PIN10PIN11PIN12PIN13PIN14PIN15PIN16PGC PGD + GND PIN21 PIN22 PIN23 PIN24 GND + PIN27 PIN28 PIN29 PIN30 PIN31 PIN32PIN34PIN33PIN35PIN36PIN37+OSC1OSC2GNDPIN42PIN43PIN44PIN45PIN46PIN47PIN48PIN49PIN50PIN51PIN52PIN53PIN54PIN55VCAP+104C1VPP330R2104C2104C3330R512Y?XTAL22PFC422PFC5104C31104C32104C33+ 圖 PIC32MX440最小系統(tǒng) 如上圖 PIC32 最小系統(tǒng),此電路較為簡(jiǎn)單,和一般的 MCU 一樣,同樣有復(fù)位電路和供電電路,單片機(jī)選用了外部晶振,晶振頻率為 8MHZ。 4 系統(tǒng)軟件設(shè)計(jì) USB 協(xié)議棧 移植 USB 協(xié)議介紹 USB(Universal Serial Bus)通用串行總線,最早由 INTEL 和微軟倡導(dǎo)發(fā)起,時(shí)至今日已成為 最流行的桌面設(shè)備總線 , 現(xiàn)已發(fā)展到 。 本 科 畢 業(yè) 設(shè) 計(jì) 第 7 頁 共 47 頁 USB 的基本通信方式為主從模式, 其中主機(jī)是一個(gè)提供 USB 接口及接 口管理能力的硬件、軟件及固件的復(fù)合體,可以是 PC,也可以是 OTG 設(shè)備。 USB 采用輪詢廣播的方式傳輸數(shù)據(jù),每一個(gè) USB 設(shè)備都有其自身的地址,所有的數(shù)據(jù)傳輸均由 USB主機(jī)發(fā)起,任何時(shí)刻整個(gè) USB 傳輸系統(tǒng)中只允許一個(gè)數(shù)據(jù)包進(jìn)行傳輸。 USB 事務(wù)處理是 USB 主機(jī)和 USB 設(shè)備間進(jìn)行數(shù)據(jù)傳輸?shù)幕締挝?,基本事?wù)傳輸由一系列特定格式的信息包組成,一般而言,一次事務(wù)傳輸分為三個(gè)階段:令牌階段,數(shù)據(jù)階段和握手階段。 其中,令牌階段表示事務(wù)處理的開始,并定義了傳輸類型;數(shù)據(jù)階段負(fù)責(zé)傳輸相關(guān)的數(shù)據(jù);握手階段用于報(bào)告事務(wù)處理的狀態(tài) ,以表明數(shù)據(jù)接收是否成功。 信息包是 USB 數(shù)據(jù)傳輸?shù)淖钚挝唬?USB 信息包分為:令牌包,數(shù)據(jù)包,握手包等信息包, 在一次典型的 USB 通信過程中,主機(jī)首先發(fā)送 令牌包以表明本次 USB 傳輸?shù)哪康牡刂?,令牌包中一般?huì)包括 USB 設(shè)備地址和端點(diǎn)地址。 USB 設(shè)備會(huì)根據(jù)收到的令牌包來決定是否和主機(jī)進(jìn)行配合來完成本次事務(wù)傳輸;數(shù)據(jù)包中包含了本次事務(wù)傳輸中的真正有效數(shù)據(jù);握手包,處于事務(wù)傳輸?shù)哪┪?,一般用來確認(rèn)傳輸是否已成功。 USB 規(guī)范了四種基本的傳輸模式: a) 控制傳輸:主要用于在設(shè)備連接時(shí)對(duì)設(shè)備進(jìn)行枚舉以及其他因設(shè)備而已的特定 操作 b) 中斷傳輸:用于對(duì)延遲要求嚴(yán)格、小量數(shù)據(jù)的可靠傳輸,如鍵盤、游戲手柄等。 c) 批量傳輸:用于對(duì)延遲要求寬松,大量數(shù)據(jù)的可靠傳輸,如 U盤等。 d) 同步傳輸:用于對(duì)可靠性要求不高的實(shí)時(shí)數(shù)據(jù)傳輸,如攝像頭、 USB 音響等。 USB 主機(jī)除負(fù)責(zé)基本的數(shù)據(jù)傳輸外,還對(duì)設(shè)備的熱插拔進(jìn)行了支持,每當(dāng)一個(gè)設(shè)備插入 USB 接口后, USB 主機(jī)檢測(cè)到外部信號(hào)線上電平的變化,由此判斷有設(shè)備插入,此時(shí) USB主機(jī)隨即對(duì)外設(shè)進(jìn)行枚舉并分配地址,具體的枚舉過程如下: a) 連接了設(shè)備的 HUB 在 HOST 查詢其狀態(tài)改變端點(diǎn) 狀態(tài)改變端點(diǎn) 狀態(tài)改 變端點(diǎn) 狀態(tài)改變端點(diǎn)時(shí)返回對(duì)應(yīng)的 bitmap,告知 HOST 某個(gè) PORT 狀態(tài)發(fā)生了改變。 b) 主機(jī)向 HUB 查詢?cè)?PORT 的狀態(tài),得知有設(shè)備連接,并知道了該設(shè)備的基本特性。 c) 主機(jī)等待(至少 100mS)設(shè)備上電穩(wěn)定,然后向 HUB 發(fā)送請(qǐng)求,復(fù)位并使能該 d) PORT。 e) HUB 執(zhí)行 PORT 復(fù)位操作,復(fù)位完成后該 PORT 就使能了。現(xiàn)在設(shè)備進(jìn)入到 defalut狀態(tài),可以從 Vbus 獲取不超過 100mA 的電流。主機(jī)可以通過 0地址與其通訊。 f) 主機(jī)通過 0地址向該設(shè)備發(fā)送 get_device_descriptor 標(biāo)準(zhǔn)請(qǐng)求,獲取設(shè)備 描述符。 本 科 畢 業(yè) 設(shè) 計(jì) 第 8 頁 共 47 頁 g) 主機(jī)再次向 HUB 發(fā)送請(qǐng)求,復(fù)位該 PORT。 h) 主機(jī)通過標(biāo)準(zhǔn)請(qǐng)求 set_address 給設(shè)備分配地址。 i) 主機(jī)通過新地址向設(shè)備發(fā)送 get_device_descriptor 標(biāo)準(zhǔn)請(qǐng)求,獲取設(shè)備的描述符。 j) 主機(jī)通過新地址向設(shè)備發(fā)送其他 get_configuration 請(qǐng)求,獲取設(shè)備的配置描述符。 k) 根據(jù)配置信息,主機(jī)選擇合適配置,通過 set_configuration 請(qǐng)求對(duì)設(shè)備 進(jìn)行配置。 設(shè)備枚舉過程相當(dāng)設(shè)備自身的初始化過程 經(jīng)過了枚舉的設(shè)備此時(shí)才能在整個(gè) USB總線中進(jìn) 行數(shù)據(jù)傳輸 。 由于課題中 MCU是 USB 主機(jī),以上簡(jiǎn)單的介紹了 USB 總線中的基本概念和設(shè)備枚舉過程,對(duì)這些過程的了解能夠?qū)筮吚斫夂鸵浦?USBHOST 協(xié)議棧起到積極作用。 PIC32MX440 單片機(jī) USB 外設(shè) PIC32 的通用串行總線( Universal Serial Bus, USB)模塊包含模擬和數(shù)字元件, 使用最少量的外部元件即可實(shí)現(xiàn) 全速和低速嵌入式主機(jī)、全速設(shè)備或 OTG操作。 在主機(jī)模式下,此模塊旨在用作嵌入式主機(jī),因此并未實(shí)現(xiàn) UHCI 或 OHCI 控制器。 USB 模塊由 時(shí)鐘發(fā)生器、 USB 電壓比較器、收發(fā)器、串行接口引擎( Serial Interface Engine,SIE)、專用 USBDMA 控制器、上拉和下拉電阻以及寄存器接口組成。 USB DMA 控制器在RAM 和 SIE 的數(shù)據(jù)緩沖區(qū)之間傳輸數(shù)據(jù)。集成的上拉和下拉電阻省去了對(duì)外部信號(hào)傳輸元件的需要。寄存器接口使 CPU 可以配置模塊并與模塊進(jìn)行通信。 PIC 單片機(jī) USBHOST 協(xié)議棧 USB 嵌入式主機(jī)棧按實(shí)現(xiàn)邏輯分為三層,分別為應(yīng)用程序?qū)樱?USB 客戶機(jī)驅(qū)動(dòng)程序?qū)樱?USB 主機(jī)層。 USB 主機(jī)層是 Microchip 公司提供的主機(jī)棧,是整個(gè) USB 軟件協(xié)議的最低成和核心,負(fù)責(zé) PIC32USB 外設(shè)的直接控制 ,同時(shí)對(duì)上層的 USB 事務(wù)直接控制; USB客戶機(jī)驅(qū)動(dòng)程序?qū)邮轻槍?duì)于特定的 USB 外設(shè)的軟件層,比如 U盤, USBSerial 線 , USB網(wǎng)卡 等設(shè)備,它們具體的 USB 事務(wù)傳輸時(shí)不同的,但它們都可以利用同一 USB 主機(jī)層軟件, 應(yīng)用程序?qū)?利用下面兩層提供的 API 和一些服務(wù)程序 進(jìn)行操作,是用戶實(shí)現(xiàn)的具體功能 。 在有些情況下 USB 客戶機(jī)驅(qū)動(dòng)程序?qū)雍蛻?yīng)用程序?qū)涌梢院喜橐粚?,雖然犧牲了層次和可維護(hù)性 但是能夠提高不少效率,在 課題中,以上兩層就合并為一層。 本 科 畢 業(yè) 設(shè) 計(jì) 第 9 頁 共 47 頁 應(yīng) 用 程 序U S B 客 戶機(jī) 驅(qū) 動(dòng)程 序U S B 客 戶機(jī) 驅(qū) 動(dòng)程 序U S B 客 戶機(jī) 驅(qū) 動(dòng)程 序U S B 主 機(jī) 層 圖 USBHOST協(xié)議棧總體框圖 a) 應(yīng)用程序?qū)? 應(yīng)用程序?qū)邮菍?shí)現(xiàn)設(shè)備期望行為所必需的固件。它是由用戶設(shè)計(jì)和實(shí)現(xiàn)的代碼,應(yīng)用程序?qū)涌梢酝ㄟ^一個(gè)或多個(gè) USB 客戶機(jī)驅(qū)動(dòng)程序,并在需要時(shí)使用系統(tǒng)中任何其他固 件,與 USB設(shè)備進(jìn)行通信。在 WIFI 控制系統(tǒng)中, 協(xié)議棧作為應(yīng)用程序?qū)?,它可以直接調(diào)用 USB主機(jī)層的 API 進(jìn)行數(shù)據(jù)幀的傳輸。 b) USB 客戶機(jī)驅(qū)動(dòng)程序?qū)? 每個(gè) USB 外部設(shè)備實(shí)現(xiàn)一個(gè)具體的功能,有 些設(shè)備可能有多重功能。 USB 客戶機(jī)驅(qū)動(dòng)程序使嵌入式主機(jī)的應(yīng)用固件能夠控制與主機(jī)相連的 USB 外部設(shè)備的單個(gè)功能。多功能設(shè)備通常將由多客戶機(jī)驅(qū)動(dòng)程序來控制。客戶機(jī)驅(qū)動(dòng)程序應(yīng)該以一種抽象的方式對(duì)功能建模,從而讓主機(jī)應(yīng)用不需要了解設(shè)備的工作細(xì)節(jié)。 在此層中,主要完成 RT73模塊的初始化,以及 協(xié)議棧和 USB 主機(jī)之間的接口函數(shù)。 c) USB 主機(jī)層 主機(jī)層是 USB 的抽象,提供下列服務(wù):進(jìn)行設(shè)備標(biāo)識(shí),進(jìn)行設(shè)備枚舉,管理客戶機(jī)驅(qū)動(dòng)程序,提供與 USB 外部設(shè)備進(jìn)行通信的簡(jiǎn)單接口 。 設(shè)備第一次連接到總線時(shí),主機(jī)層將從 設(shè)備讀取描述符,以確定設(shè)備類型以及支持的功能。然后,主機(jī)層將檢查 TPL 來判斷是否支持該設(shè)備。如果是支持的設(shè)備,主機(jī)層將初始化相應(yīng)的客戶機(jī)驅(qū)動(dòng)程序 USB 主機(jī)層主要維護(hù) 了一個(gè) USB 主機(jī)狀態(tài)機(jī),負(fù)責(zé)完成設(shè)備上電枚舉時(shí)的狀態(tài)遷移,以及各種 USB 外設(shè)事件的處理。 USBHostTasks() 此函數(shù)執(zhí)行 主機(jī)任務(wù)的各種操作,它必須被 在一定時(shí)間內(nèi)輪詢執(zhí)行,主要實(shí)現(xiàn)的功能是 USB 設(shè)備的枚舉,但并不執(zhí)行 USB 數(shù) 本 科 畢 業(yè) 設(shè) 計(jì) 第 10 頁 共 47 頁 據(jù)傳輸功能。 除了維護(hù)一個(gè) USB 狀態(tài)機(jī)任務(wù)外, USB 主機(jī)層還提供了一些可供驅(qū)動(dòng)層和應(yīng)用層 調(diào)用 的 API, 這 部分包含一 系列的數(shù)據(jù)傳輸函數(shù),上層 USB 主機(jī)設(shè)備驅(qū)動(dòng)可以直接調(diào)用此部分的 API函數(shù) 。以下為重要的 API 傳輸控制函數(shù): a) USBHostRead() 此函數(shù)初始化一次 IN 事務(wù)傳輸 ,注意僅僅為為初始化,真正的 read事務(wù)傳輸開始是在 USB 中斷進(jìn)行的,因?yàn)榇藭r(shí) USB 外設(shè)有可能正在進(jìn)行 USB 信息包的傳輸,所以不能立即開始,此函數(shù)僅僅 在端點(diǎn)描述符鏈表中查找指定的端點(diǎn)并設(shè)置其狀態(tài)為需要 USB事務(wù)傳輸。 b) USBHostWrite()函數(shù)進(jìn)行一次 OUT 事務(wù)傳輸,基本原理和 USBHostRead()函數(shù)相同。 c) USBHostTransferIsComplete() 此函數(shù)判斷指定端點(diǎn)的 USB 事務(wù)傳輸是否結(jié)束,并將端點(diǎn)狀態(tài)返回。 d) USBHostSetNAKTimeout() 此函數(shù)設(shè)置指定端點(diǎn)的 NAK的超時(shí)次數(shù),也就是說如果主機(jī)連續(xù)得到了超過指定次數(shù)的 NAK 握手包,則指定端點(diǎn)會(huì)返回一個(gè)錯(cuò)誤狀態(tài)。 此外, USB 外設(shè) 中斷處理程序 也是主機(jī)棧重要的組成部分 ,此部分處理 USB 外設(shè)發(fā)生的所有中斷,基本的事務(wù)傳輸也是在中斷處理程序中控制的。 所有的 USB 中斷共用一個(gè)中斷號(hào),所以中斷處理程序中需要判斷中斷的類型并合理處理。 中斷類型由如下幾種:1. USB 設(shè)備 連接中斷。 2. USB 設(shè)備斷開中斷。 (當(dāng)一次 USB 數(shù)據(jù)傳輸結(jié)束后觸發(fā) )。 4. SOF幀中斷,正常情況下, USB 主機(jī)會(huì)每隔 1ms 發(fā)送 SOF 幀,此時(shí)會(huì)產(chǎn)生中斷。 移植總結(jié) 針對(duì)于 RT73 模塊的 USB 主機(jī)棧的移植主要有以下要點(diǎn): a) 增加針對(duì) RT73 模塊的 USB客戶驅(qū)動(dòng)程序初始化函數(shù)和時(shí)間處理函數(shù),并將函數(shù)指針加入 CLIENT_DRIVER_TABLE,這樣一旦 RT73 模塊連接到 USB 外設(shè), USB 主機(jī)棧就會(huì)調(diào)用相應(yīng)的初始化函數(shù),當(dāng)有 USB事件發(fā)生時(shí),會(huì)調(diào)用相應(yīng)的時(shí)間處理函數(shù)。 b) 將 RT73 模塊的廠商 ID 和產(chǎn)品 ID 加入 USB_TPL(目標(biāo)外設(shè)表 )中,這樣當(dāng) RT73 枚舉初始化時(shí),會(huì)根據(jù)的得到設(shè)備描述符和 USB_TPL 中的信息進(jìn)行比對(duì)以確定是否連接的是RT73 設(shè)備。 c) 將 的事件處理函數(shù)標(biāo)利用宏定義 define USB_HOST_APP_EVENT_HANDLER 標(biāo)識(shí)到 USB 主機(jī)棧中,當(dāng) RT73 連接后,會(huì)調(diào)用 層的事件處理函數(shù),此時(shí) 本 科 畢 業(yè) 設(shè) 計(jì) 第 11 頁 共 47 頁 層會(huì)進(jìn)行一些初始化操作。 d) USB 主機(jī)棧需要調(diào)用 USBInitialize()函數(shù)進(jìn)行初始化,并且 USBTasks()函數(shù)需要定 期調(diào)用,以對(duì)設(shè)備進(jìn)行枚舉和初始化操作,這里可以選擇多種方式來定期調(diào)用,比如放在大循環(huán)中或是利用 中斷定時(shí)調(diào)用。 RT73 WIFI 無線網(wǎng)卡驅(qū)動(dòng)的編寫 本節(jié)主要介紹 RT73 無線模塊的驅(qū)動(dòng)程序,由于 RT2571 主控芯片的詳細(xì)芯片 資料 沒有公開,所以此部分的驅(qū)動(dòng)程序主要來自于 linux 驅(qū)動(dòng)程序的精簡(jiǎn)和改寫, 為了完成驅(qū)動(dòng)程序的編寫,需要完成三項(xiàng)主要工作:一是對(duì) 規(guī)范的了解和學(xué)習(xí);二是完成對(duì) RT73 無線網(wǎng)卡 linux 驅(qū)動(dòng)程序的分析和理解,明確 RT73 無線網(wǎng)卡的工作流程 ;三是完成 對(duì) RT73 無線 網(wǎng)卡 linux 驅(qū)動(dòng)的裁剪和改寫。 協(xié)議規(guī)范介紹 IEEE802 家族是由一系列局域網(wǎng)技術(shù)規(guī)范所組成的。 是其中的成員之一。 規(guī)范該主要定義了 無線網(wǎng)絡(luò) 物理層和介質(zhì)訪問控制子層 (MAC)的協(xié)議規(guī)范
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1