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

正文內(nèi)容

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

2025-01-03 17:29 本頁面


【正文】 主機(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)程序來控制??蛻魴C(jī)驅(qū)動(dòng)程序應(yīng)該以一種抽象的方式對(duì)功能建模,從而讓主機(jī)應(yīng)用不需要了解設(shè)備的工作細(xì)節(jié)。在此層中,主要完成RT73模塊的初始化。c) USB主機(jī)層主機(jī)層是USB 的抽象,提供下列服務(wù):進(jìn)行設(shè)備標(biāo)識(shí),進(jìn)行設(shè)備枚舉,管理客戶機(jī)驅(qū)動(dòng)程序,提供與USB 外部設(shè)備進(jì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ù)據(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加入U(xiǎn)SB_TPL(目標(biāo)外設(shè)表)中,這樣當(dāng)RT73枚舉初始化時(shí),會(huì)根據(jù)的得到設(shè)備描述符和USB_TPL中的信息進(jìn)行比對(duì)以確定是否連接的是RT73設(shè)備。c) define USB_HOST_APP_EVENT_HANDLER標(biāo)識(shí)到USB主機(jī)棧中,當(dāng)RT73連接后。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)程序的精簡和改寫,為了完成驅(qū)動(dòng)程序的編寫,需要完成三項(xiàng)主要工作:;二是完成對(duì)RT73無線網(wǎng)卡linux驅(qū)動(dòng)程序的分析和理解,明確RT73無線網(wǎng)卡的工作流程;三是完成對(duì)RT73無線網(wǎng)卡linux驅(qū)動(dòng)的裁剪和改寫。 IEEE802家族是由一系列局域網(wǎng)技術(shù)規(guī)范所組成的。(MAC)的協(xié)議規(guī)范。,通過USB總線提交數(shù)據(jù)是已經(jīng)處理好的數(shù)據(jù)幀。a) :一類是獨(dú)立型網(wǎng)絡(luò)(independent BSS,簡稱IBSS)。在IBSS中,工作站之間可以直接通信,一般是為了特定的目的而組成的臨時(shí)性的網(wǎng)絡(luò);一類是基礎(chǔ)結(jié)構(gòu)型網(wǎng)絡(luò),這是一種最常用的組網(wǎng)方式,在基礎(chǔ)結(jié)構(gòu)型網(wǎng)絡(luò)里,工作站必須先與接入點(diǎn)建立關(guān)聯(lián),才能取得網(wǎng)絡(luò)服務(wù),也就是說,各工作之間是由接入點(diǎn)數(shù)據(jù)轉(zhuǎn)發(fā)而建立通信的,無線接入點(diǎn)是基礎(chǔ)結(jié)構(gòu)型網(wǎng)絡(luò)的核心。方案采用了第二種組網(wǎng)方式,這種方式組網(wǎng)方便,程序編寫較容易。b) ,為了使多個(gè)工作站能在同一信道上同時(shí)進(jìn)行無線通信,盡量減少數(shù)據(jù)的傳輸碰撞和重試發(fā)送,防止各站點(diǎn)無序地爭用信道,無線局域網(wǎng)中采用了與以太網(wǎng)CSMA/CD相類似的CSMA/CA(載波監(jiān)聽多路訪問/沖突避免)協(xié)議。:物理載波監(jiān)聽和虛擬載波監(jiān)聽。考慮到成本問題,虛擬載波監(jiān)聽使用網(wǎng)絡(luò)分配矢量(Network Allocation Vector,簡稱 NAV )實(shí)現(xiàn)。NAV的實(shí)質(zhì)是一個(gè)定時(shí)器,用來預(yù)定媒介使用的時(shí)間。c) 以下詳述各字段的含義:1) Frame Control 字段此字段為幀控制字段,2個(gè)字節(jié),這個(gè)字段包含了一些幀收發(fā)時(shí)候的控制信息。2) Duration/ID 字段持續(xù)時(shí)間/標(biāo)志,2個(gè)字節(jié)。在大多數(shù)情況下,該字段被用來設(shè)定NAV。3) Address 字段地址字段包含不同類型的MAC地址,地址的類型取決于發(fā)送幀的類型。這些地址有如下不同的類型:a) 基本服務(wù)集標(biāo)識(shí)(BSSID)b) 來源地址(SA:發(fā)送數(shù)據(jù)包的MAC實(shí)體的地址)c) 目的地址(DA:數(shù)據(jù)報(bào)的最終地址)d) 接收地址(RA:接收幀的AP地址)e) 發(fā)送地址(TA:發(fā)送幀的AP地址)在Frame Control中的ToDs和FromDs的位域標(biāo)識(shí)了地址字段的具體含義,: ToDs,F(xiàn)romDs功能表功能ToDsFromDsAddress1Address2Address3Address4IBSS00DASABSSIDN/AToAP10BSSIDSADAN/AFromAP01DABSSIDSAN/AWDS11RATADASA注:,WDS只是在有WDS擴(kuò)展功能的AP上使用,DA,代表目的地址;SA,代表源地址。4) Sequence Control 字段順序控制字段,2字節(jié),由4位的片段編號(hào)(Fragment Number)和12位的順序編號(hào)(Sequence Number)組成,原來重組幀片段以及丟棄重復(fù)幀。5) Frame Body 字段此部分為幀主體,該字段內(nèi)容封裝的是上層的數(shù)據(jù)單元,長度從02312個(gè)字節(jié),從此可以看出。一些加密信息也包含在了幀主體中。d) ,分別為數(shù)據(jù)幀,控制幀和管理幀。下面詳述各種幀的結(jié)構(gòu)和用途。1) 數(shù)據(jù)幀數(shù)據(jù)幀負(fù)責(zé)最主要的數(shù)據(jù)傳送工作,負(fù)責(zé)將上層協(xié)議放置在幀主體中加以傳遞。2) 控制幀控制幀主要用于協(xié)助數(shù)據(jù)幀的傳遞,所有控制幀都使用相同的Frame Control 字段。3) 管理幀管理幀負(fù)責(zé)在工作站和AP之間建立初始的通信,提供認(rèn)證和連接服務(wù),包括了連接請求/響應(yīng)、輪詢請求/響應(yīng)、Beacon幀等。幾種重要的管理幀:a) Beacon(信標(biāo))幀:Beacon幀主要來聲明網(wǎng)絡(luò)的存在。定期傳送的信標(biāo)可讓移動(dòng)式工作站得知該網(wǎng)絡(luò)的存在, 從而調(diào)整加入該網(wǎng)絡(luò)所必需的參數(shù)?;A(chǔ)結(jié)構(gòu)網(wǎng)絡(luò)中,接入點(diǎn)負(fù)責(zé)傳送Beacon幀。IBSS網(wǎng)絡(luò)中,工作站輪流送出Beacon幀。b) Probe Request 幀:工作站通過Probe Request 。c) Probe Response 幀:若Probe Request 幀探查的網(wǎng)絡(luò)與之兼容,該網(wǎng)絡(luò)就會(huì)回復(fù)Probe Response 幀給予響應(yīng)。d) Disassociation 幀與Deauthentication 幀:Disassociation (取消關(guān)聯(lián))幀用來終結(jié)一段關(guān)聯(lián)關(guān)系,而Deauthentication(解除身份驗(yàn)證)幀則用來終結(jié)一段認(rèn)證關(guān)系。e) Association Request 幀:一旦工作站找到兼容網(wǎng)絡(luò)并且通過身份驗(yàn)證,便會(huì)發(fā)送Association Request(關(guān)聯(lián)請求) 幀以試圖加入網(wǎng)絡(luò)。f) Reassociation Request 幀:位于相同ESS中,當(dāng)在不同的BSS之間移動(dòng)的工作站若要再次使用分布式系統(tǒng)(DS),必需與網(wǎng)絡(luò)重新關(guān)聯(lián),區(qū)別于關(guān)聯(lián)請求幀的是:它包含工作站當(dāng)前所關(guān)聯(lián)的接入點(diǎn)地址。g) Association Response 幀與Reassociation Response 幀:當(dāng)工作站試圖連接接入點(diǎn)時(shí),接入點(diǎn)會(huì)回復(fù)一個(gè)Association Response 幀或Reassociation Response 幀,響應(yīng)過程中,接入點(diǎn)會(huì)指定一個(gè)Association ID(關(guān)聯(lián)標(biāo)識(shí)符)。h) Authentication 幀:工作站通過共享密鑰以及Authentication 幀進(jìn)行身份驗(yàn)證。d) ,基本上管理操作就是無線網(wǎng)絡(luò)設(shè)備在幕后進(jìn)行的所有操作,由此,無線網(wǎng)絡(luò)在連接感覺上就和其他類型的網(wǎng)絡(luò)沒什么兩樣。以下列出了最基本的管理操作:1) 掃描使用網(wǎng)絡(luò)之前,必須找出網(wǎng)絡(luò)的存在,在無線領(lǐng)域中,工作站要加入任何兼容網(wǎng)絡(luò)之前必須先經(jīng)過一番識(shí)別工作,在所在區(qū)域內(nèi)識(shí)別現(xiàn)有網(wǎng)絡(luò)的過程稱為掃描。掃描過程中會(huì)用到的幾個(gè)參數(shù):a) BSSType:指定網(wǎng)絡(luò)屬于IBSS、基礎(chǔ)結(jié)構(gòu)或是同時(shí)搜索兩者b) BSSID:工作站可以掃描所要加入的特定網(wǎng)絡(luò),也可掃描允許它加入的所有網(wǎng)絡(luò)c) SSID:原來指定某個(gè)ESS的位字符串,這些字符串通常被設(shè)定為人們易于識(shí)別的網(wǎng)絡(luò)名稱。d) ScanType:主動(dòng)掃描會(huì)主動(dòng)傳送Probe Request幀以識(shí)別該區(qū)域的網(wǎng)絡(luò)e) 被動(dòng)掃描則是被動(dòng)聆聽Beacon幀以節(jié)省電力f) ChannelList:進(jìn)行掃描時(shí),工作站通過指定所要嘗試的信道列表來對(duì)某個(gè)信道進(jìn)行探測或聆聽g) ProbeDelay:主動(dòng)探測某個(gè)信道時(shí),為了避免一直等不到Probe Response 幀而設(shè)定的延時(shí)定時(shí)器,以微妙為單位h) MinChannelTime與MaxChannelTime:指在掃描每個(gè)特定信道時(shí)所使用的最小與最大的時(shí)間量2) 身份驗(yàn)證,以取得網(wǎng)絡(luò)資源的使用權(quán),當(dāng)通過了“低級(jí)”的身份驗(yàn)證后。這里所謂的“低級(jí)”是指比較初步的身份驗(yàn)證,規(guī)范定義了如下幾種“低級(jí)”身份驗(yàn)證方法:a) 開放系統(tǒng)身份驗(yàn)證,開放系統(tǒng)身份驗(yàn)證,僅僅是一種一問一答的握手過程,所以只是一種網(wǎng)絡(luò)身份的初步表明。這種認(rèn)證方法包含了兩個(gè)管理幀,首先由移動(dòng)工作站發(fā)送authentication(身份驗(yàn)證)的管理幀,它的作用是發(fā)出身份驗(yàn)證請求。無線接入點(diǎn)收到此管理幀后,發(fā)出同類型的管理幀,回應(yīng)身份驗(yàn)證的請求。b) 舊式的共享密鑰身份驗(yàn)證,此種認(rèn)證方法,必須使用WEP的加密方式,因此只能用于實(shí)現(xiàn)了WEP的產(chǎn)品上,共享密鑰身份驗(yàn)證要求在身份驗(yàn)證之前,必須傳遞共享密鑰給工作站。3) 關(guān)聯(lián)操作一旦完成身份驗(yàn)證,工作站就可以跟接入點(diǎn)進(jìn)行關(guān)聯(lián),以便獲得網(wǎng)絡(luò)的完全訪問權(quán)。關(guān)聯(lián)只限于infrastructure(基礎(chǔ)結(jié)構(gòu)型)網(wǎng)絡(luò),在邏輯上等同于在有線網(wǎng)絡(luò)中插入網(wǎng)線,一旦完成此過程,無線工作站就可以通過分布式系統(tǒng)與整個(gè)世界連接。 和身份驗(yàn)證一樣,關(guān)聯(lián)操作是由移動(dòng)式工作站發(fā)起的。關(guān)聯(lián)過程涉及三個(gè)步驟:首先移動(dòng)工作站發(fā)送Association Request(關(guān)聯(lián)請求)幀。然后接入點(diǎn)隨后會(huì)對(duì)關(guān)聯(lián)請求進(jìn)行處理,最后接入點(diǎn)開始為移動(dòng)工作站處理幀數(shù)據(jù)。 RT73無線網(wǎng)卡linux驅(qū)動(dòng)分析由于沒有RT73無線網(wǎng)卡的詳細(xì)資料手冊,所以需要分析RT73的linux驅(qū)動(dòng)程序來明確RT2571基帶處理芯片的初始化過程,和詳細(xì)的工作流程。代碼分析的重點(diǎn)在于網(wǎng)卡的初始化過程和TCP/IP數(shù)據(jù)包的封裝和通過USB的發(fā)送過程。a) 網(wǎng)卡初始化代碼分析Linux驅(qū)動(dòng)以內(nèi)核模塊的方式裝載到內(nèi)核中,RT73網(wǎng)卡驅(qū)動(dòng)也不例外。模塊一般由module_init作為入口,module_exit作為出口。Module_init將RT73網(wǎng)卡驅(qū)動(dòng)注冊到內(nèi)核中,以下的結(jié)構(gòu)體會(huì)被注冊到內(nèi)核中。功能函數(shù)也會(huì)被內(nèi)核識(shí)別。struct usb_driver rtusb_driver = {.name=rt73, // 網(wǎng)卡驅(qū)動(dòng)標(biāo)識(shí).probe=usb_rtusb_probe, // RT73連接時(shí)調(diào)用的函數(shù).disconnect=usb_rtusb_disconnect, // RT73斷開時(shí)調(diào)用的函數(shù).id_table=rtusb_usb_id, // USB驅(qū)動(dòng)支持的設(shè)備列表ifdef CONFIG_PM.suspend = rt73_suspend, // 電源管理相關(guān)函數(shù).resume = rt73_resume,endif}。當(dāng)RT73模塊連接后,內(nèi)核會(huì)調(diào)用響應(yīng)的usb_rtusb_probe函數(shù)來完成網(wǎng)卡的探測和初始化。Usb_rtusb_probe函數(shù)會(huì)對(duì)網(wǎng)卡進(jìn)行初始化,并將一些網(wǎng)絡(luò)操作函數(shù)注冊到內(nèi)核,所以probe函數(shù)是理解網(wǎng)卡工作流程的關(guān)鍵,以下是probe函數(shù)的流程圖:圖 probe函數(shù)流程圖VID和PID是USB設(shè)備的廠商ID和產(chǎn)品ID,USB設(shè)備進(jìn)行枚舉后得到設(shè)備描述符包含有VID和PID,驅(qū)動(dòng)程序會(huì)根據(jù)VID和PID來判斷是否支持當(dāng)前插入的設(shè)備。PRTMP_ADAPTER是無線網(wǎng)卡的
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1