嵌入式MICREL網卡驅動設計
在網卡發送模式正確初始化后,即可進行數據發送操作。首先用戶層發出發送數據的請求,然后該請求通過HEROS系統協議棧發給MICREL網卡驅動層,最后發出數據。發送前要注意:
(1)此時該網卡沒有在接收數據包,否則會引起時序混亂,導致網卡最后失效,所以在發送的時候要去判斷信號量micrel_int_1_flag是否為0,如果為0,則可以發送,為1則表明此時正在接收數據包,不可以發送。
(2)發送長度要以四個字節對齊。GET_4BYTES_AUGNMENT(uOrgPktLen,len);
實際發送長度為len。
2.4 接收處理函數
Micrel網卡接收寄存器的初始化框圖如圖3所示。在網卡接收模式正確初始化后,即可進行數據接收操作。首先用戶層發出接收數據的請求,然后該請求通過HEROS系統協議棧發給MICREL網卡驅動層,最后接收數據。接收時需注意:
(1)首先要從幀頭中獲取幀長度byte_count,最大為1518,并且必須把byte_count按4個字節對齊;
(2)其次要將Micrel芯片的接收中斷關閉,接收完畢后,再打開接收中斷。
(3)注意幀開始的2個字節和最后4個字節不要讀到接收緩沖區。
3 結束語
本文介紹了以HEROS為核心、KS8851作為網絡接口芯片的終端接口,通過TCP/IP協議棧與本文討論的網卡驅動,用ping ip地址命令可以得到ICMP reply響應。MICREL芯片具有性價比高、連接方便等特點,是進行嵌入式以太網終端設計時的主要控制芯片之一。
tcp/ip相關文章:tcp/ip是什么
評論