在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ucos的WiFi網(wǎng)卡驅(qū)動(dòng)程序的開(kāi)發(fā)

            基于ucos的WiFi網(wǎng)卡驅(qū)動(dòng)程序的開(kāi)發(fā)

            作者: 時(shí)間:2011-12-03 來(lái)源:網(wǎng)絡(luò) 收藏

            wlandrv_ProbeDevice(void){

            pcmcia_WriteMem(WI_COR_OFFSET,WI_COR_VALUE);//進(jìn)入I/O模式

            pcmcia_WriteReg(WI_HFA384X_SWSUP_PORT0_OFF,WI_PRISM2STA_MAGIC);

            Value=pcmcia_ReadReg(WI_HFA384X_SWSUPPORT0_OFF);

            if(Value==WI_PRISM2STA_MAGIC){

            已找到,此處做相應(yīng)處理

            }

            }

            wlandrv_Attach()函數(shù)用于讀取內(nèi)部的一些參數(shù),這些操作都是通過(guò)向BAP設(shè)定相應(yīng)的RID,讀取相應(yīng)緩沖區(qū)完成的:

            wlandrv_Attach (void){

            wi_read_rid(WI_RID_MAC_NODE,ic.ic_myaddr,buflen);//讀取地址

            ……類(lèi)似地讀取NIC ID,可用信道,WEP加密支持,網(wǎng)絡(luò)速率支持

            }

            wlandrv_Init()函數(shù)用于網(wǎng)絡(luò)參數(shù)的初始化設(shè)置:

            wlandrv_Init(){

            wi_write_val(WI_RID_PORTTYPE,WI_PORTTYPE_BSS);//配制為站點(diǎn)

            wi_write_ssid(WI_RID_DESIRED_SSID,ic_des_essid,7);//設(shè)置SSID

            wi_write_txrate();//設(shè)置速率

            wi_cmd(WI_CMD_ENABLE | WI_PORT0,0,0,0);//啟動(dòng)網(wǎng)卡

            }

            wlandrv_PutPacket()是被TCP/IP協(xié)議調(diào)用的函數(shù),即IP協(xié)議將發(fā)送的數(shù)據(jù)打成IP包以后,將包傳遞給該函數(shù)。函數(shù)的工作首先是計(jì)算需要發(fā)送的字節(jié)總長(zhǎng)度,然后在IP包前添加添加邏輯鏈路控制層的幀頭,幀頭為4個(gè)雙字,分別表示訪問(wèn)點(diǎn)地址、控制類(lèi)型以及幀頭類(lèi)型,最后將IEEE802.3的幀頭改成的幀頭。最后,將打好的包送入網(wǎng)卡的發(fā)送緩沖區(qū)。發(fā)送緩沖區(qū)的地址是通過(guò)設(shè)置FID管理寄存器后獲得的。

            wlandrv_PutPacket(struct pkst *TxdData){

            //TxdData為指向發(fā)送的IP包的指針

            struct wi_frame frmhdr;

            LLCS_SNAP_HEADER LLCSSNAPHeader ;

            ETHERHDR *pMAC8023Header:

            計(jì)算發(fā)送數(shù)據(jù)長(zhǎng)度len為T(mén)xdData指向的數(shù)據(jù)包添加格式為L(zhǎng)LCS_SNAP_HEADER的邏輯鏈路控制層包頭

            wi_write_bap(rid,off,TxdData,len);//發(fā)送數(shù)據(jù)包

            )

            wlandrv_Event()函數(shù)主要查詢(xún)?nèi)齻€(gè)事件,即管理消息、接收數(shù)據(jù)、發(fā)送數(shù)據(jù)。通過(guò)查詢(xún)消息代碼,可知網(wǎng)卡是否已經(jīng)找到AP并關(guān)聯(lián)起來(lái)以及何時(shí)脫離關(guān)聯(lián)。響應(yīng)接收數(shù)據(jù)事件可以接收數(shù)據(jù)幀,去掉邏輯鏈路控制層的幀頭,然后將IP包傳遞給IP協(xié)議層。對(duì)于發(fā)送數(shù)據(jù)事件可以不做響應(yīng)。這些操作都是先查詢(xún)FID寄存器后,獲取事件數(shù)據(jù)的緩沖區(qū)地址,然后訪問(wèn)該地址的緩沖區(qū)獲取相應(yīng)數(shù)據(jù) 函數(shù)如下:

            wlandrv_Event(){

            EventStatus=pcmcia_ReadReg (WI_EVENT_STAT);//讀取事件代碼

            if(EventStatusWI_EV_INFO){

            wi_info_intr();//處理信息時(shí)間

            }

            else if(EventStatus WI_EV_RX){

            wi_rx_intr():

            }

            //處理接收事件

            else if(EventStatus WI_EV_TX_EXC){

            }


            3.3 的使用

            寫(xiě)好以后,是通過(guò)TCP/IP程序調(diào)用這些API函數(shù)的,其調(diào)用過(guò)程如圖3所示。

            4 結(jié)束語(yǔ)

            通過(guò)在嵌入式終端中加入網(wǎng)卡,并編寫(xiě)vCOS II實(shí)時(shí)操作系統(tǒng)的網(wǎng)卡,實(shí)現(xiàn)了嵌入式終端與PC機(jī)之間的網(wǎng)絡(luò)通信。在實(shí)驗(yàn)中,PC機(jī)通過(guò)無(wú)線網(wǎng)卡向嵌入式終端發(fā)送彩色圖片,嵌入式終端恢復(fù)數(shù)據(jù)后在彩色LCD上顯示該圖片,證明網(wǎng)卡驅(qū)動(dòng)程序的是成功的。


            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉