• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ucos的WiFi網卡驅動程序的開發

    基于ucos的WiFi網卡驅動程序的開發

    作者: 時間:2011-12-03 來源:網絡 收藏

    wlandrv_ProbeDevice(void){

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

    pcmcia_WriteReg(WI_HFA384X_SWSUP_PORT0_OFF,WI_PRISM2STA_MAGIC);

    Value=pcmcia_ReadReg(WI_HFA384X_SWSUPPORT0_OFF);

    if(Value==WI_PRISM2STA_MAGIC){

    已找到,此處做相應處理

    }

    }

    wlandrv_Attach()函數用于讀取內部的一些參數,這些操作都是通過向BAP設定相應的RID,讀取相應緩沖區完成的:

    wlandrv_Attach (void){

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

    ……類似地讀取NIC ID,可用信道,WEP加密支持,網絡速率支持

    }

    wlandrv_Init()函數用于網絡參數的初始化設置:

    wlandrv_Init(){

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

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

    wi_write_txrate();//設置速率

    wi_cmd(WI_CMD_ENABLE | WI_PORT0,0,0,0);//啟動網卡

    }

    wlandrv_PutPacket()是被TCP/IP協議調用的函數,即IP協議將發送的數據打成IP包以后,將包傳遞給該函數。函數的工作首先是計算需要發送的字節總長度,然后在IP包前添加添加邏輯鏈路控制層的幀頭,幀頭為4個雙字,分別表示訪問點地址、控制類型以及幀頭類型,最后將IEEE802.3的幀頭改成的幀頭。最后,將打好的包送入網卡的發送緩沖區。發送緩沖區的地址是通過設置FID管理寄存器后獲得的。

    wlandrv_PutPacket(struct pkst *TxdData){

    //TxdData為指向發送的IP包的指針

    struct wi_frame frmhdr;

    LLCS_SNAP_HEADER LLCSSNAPHeader ;

    ETHERHDR *pMAC8023Header:

    計算發送數據長度len為TxdData指向的數據包添加格式為LLCS_SNAP_HEADER的邏輯鏈路控制層包頭

    wi_write_bap(rid,off,TxdData,len);//發送數據包

    )

    wlandrv_Event()函數主要查詢三個事件,即管理消息、接收數據、發送數據。通過查詢消息代碼,可知網卡是否已經找到AP并關聯起來以及何時脫離關聯。響應接收數據事件可以接收數據幀,去掉邏輯鏈路控制層的幀頭,然后將IP包傳遞給IP協議層。對于發送數據事件可以不做響應。這些操作都是先查詢FID寄存器后,獲取事件數據的緩沖區地址,然后訪問該地址的緩沖區獲取相應數據 函數如下:

    wlandrv_Event(){

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

    if(EventStatusWI_EV_INFO){

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

    }

    else if(EventStatus WI_EV_RX){

    wi_rx_intr():

    }

    //處理接收事件

    else if(EventStatus WI_EV_TX_EXC){

    }


    3.3 的使用

    寫好以后,是通過TCP/IP程序調用這些API函數的,其調用過程如圖3所示。

    4 結束語

    通過在嵌入式終端中加入網卡,并編寫vCOS II實時操作系統的網卡,實現了嵌入式終端與PC機之間的網絡通信。在實驗中,PC機通過無線網卡向嵌入式終端發送彩色圖片,嵌入式終端恢復數據后在彩色LCD上顯示該圖片,證明網卡驅動程序的是成功的。


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 都安| 南部县| 皋兰县| 邵武市| 保亭| 曲阜市| 峨眉山市| 土默特右旗| 五河县| 抚松县| 大荔县| 永宁县| 定边县| 辽宁省| SHOW| 新平| 抚州市| 青冈县| 思茅市| 莱西市| 泾阳县| 屏南县| 镇远县| 长宁区| 余姚市| 克东县| 虞城县| 二手房| 南陵县| 五原县| 乌拉特中旗| 信丰县| 尉氏县| 原平市| 抚顺县| 梅州市| 彰武县| 甘德县| 阳泉市| 吉水县| 普宁市|