新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式MICREL網(wǎng)卡驅(qū)動(dòng)設(shè)計(jì)

嵌入式MICREL網(wǎng)卡驅(qū)動(dòng)設(shè)計(jì)

作者: 時(shí)間:2011-08-11 來源:網(wǎng)絡(luò) 收藏


在網(wǎng)卡發(fā)送模式正確初始化后,即可進(jìn)行數(shù)據(jù)發(fā)送操作。首先用戶層發(fā)出發(fā)送數(shù)據(jù)的請求,然后該請求通過HEROS系統(tǒng)協(xié)議棧發(fā)給層,最后發(fā)出數(shù)據(jù)。發(fā)送前要注意:
(1)此時(shí)該網(wǎng)卡沒有在接收數(shù)據(jù)包,否則會(huì)引起時(shí)序混亂,導(dǎo)致網(wǎng)卡最后失效,所以在發(fā)送的時(shí)候要去判斷信號量micrel_int_1_flag是否為0,如果為0,則可以發(fā)送,為1則表明此時(shí)正在接收數(shù)據(jù)包,不可以發(fā)送。
(2)發(fā)送長度要以四個(gè)字節(jié)對齊。GET_4BYTES_AUGNMENT(uOrgPktLen,len);
實(shí)際發(fā)送長度為len。
2.4 接收處理函數(shù)
Micrel網(wǎng)卡接收寄存器的初始化框圖如圖3所示。在網(wǎng)卡接收模式正確初始化后,即可進(jìn)行數(shù)據(jù)接收操作。首先用戶層發(fā)出接收數(shù)據(jù)的請求,然后該請求通過HEROS系統(tǒng)協(xié)議棧發(fā)給層,最后接收數(shù)據(jù)。接收時(shí)需注意:

d.jpg


(1)首先要從幀頭中獲取幀長度byte_count,最大為1518,并且必須把byte_count按4個(gè)字節(jié)對齊;
(2)其次要將Micrel芯片的接收中斷關(guān)閉,接收完畢后,再打開接收中斷。
(3)注意幀開始的2個(gè)字節(jié)和最后4個(gè)字節(jié)不要讀到接收緩沖區(qū)。

3 結(jié)束語
本文介紹了以HEROS為核心、KS8851作為網(wǎng)絡(luò)接口芯片的終端接口,通過TCP/IP協(xié)議棧與本文討論的,用ping ip地址命令可以得到ICMP reply響應(yīng)。芯片具有性價(jià)比高、連接方便等特點(diǎn),是進(jìn)行以太網(wǎng)終端時(shí)的主要控制芯片之一。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

tcp/ip相關(guān)文章:tcp/ip是什么



上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉