<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ucos WiFi網(wǎng)卡驅動(dòng)程序的開(kāi)發(fā)

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

作者: 時(shí)間:2010-01-25 來(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){

已找到,此處做相應處理

}

}

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

wlandrv_Attach (void){

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

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

}

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

wlandrv_Init(){

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

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);//啟動(dòng)網(wǎng)卡

}

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

wlandrv_PutPacket(struct pkst *TxdData){

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

struct wi_frame frmhdr;

LLCS_SNAP_HEADER LLCSSNAPHeader ;

ETHERHDR *pMAC8023Header:

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

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

)

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

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程序調用這些API函數的,其調用過(guò)程如圖3所示。

4 結束語(yǔ)

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


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

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>