




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第第頁網(wǎng)卡底層驅(qū)動(dòng)程序的編寫
網(wǎng)卡底層驅(qū)動(dòng)程序的編寫
實(shí)踐與經(jīng)驗(yàn)
網(wǎng)卡底層驅(qū)動(dòng)程序的編寫
劉海波
!柳瑞禹,鄭桂林
(武漢大學(xué)電氣工程學(xué)院,武漢#$%%’)
網(wǎng)卡底層驅(qū)動(dòng)程序的編寫
實(shí)踐與經(jīng)驗(yàn)
功能通常都是用1234器件來實(shí)現(xiàn)的。不同的以太網(wǎng)卡所用的器件有所不同。
在本文中所采用的網(wǎng)卡上的1234器件是
下幾個(gè)基本部分:
!硬件初始化!發(fā)送初始化
!接收和發(fā)送的中斷服務(wù)程序
(硬件初始化.)
硬件的初始化為網(wǎng)絡(luò)控制器在當(dāng)前的系統(tǒng)中正確運(yùn)行提供了配置參數(shù)。這其中包括主機(jī)將適當(dāng)?shù)闹导虞d到配置寄存器和地址寄存器中,并使網(wǎng)絡(luò)控制器在網(wǎng)絡(luò)上正常工作,以下一些參數(shù)是在網(wǎng)絡(luò)控制器能夠工作前所必須初始化的:
+25-.673!89:;8=::?$@:8A%;B8CD8;(ED;CE:E8CF。
,以太網(wǎng)控制器+25-.673
它+25-.673是高度集成的以太網(wǎng)控制器,
的全雙工功能能使網(wǎng)卡通過雙絞線同時(shí)接收、發(fā)送數(shù)據(jù),它內(nèi)置有.0G37。它有以下的一些主要特點(diǎn):
!遵守%;B8CD8;44、4%%%5-,/H、.-I9J8K、.-I9J8,、.-I9J8+等標(biāo)準(zhǔn)
!與’%,--軟件兼容
以使通道的帶寬加!支持全雙工以太網(wǎng)功能,
倍
!數(shù)據(jù)總線的寬度!物理地址!中斷服務(wù)的類型!接收緩沖區(qū)的大小
!=4=#門檻值
!可能接收的數(shù)據(jù)包類型
應(yīng)該注意的是,數(shù)據(jù)結(jié)構(gòu)寄存器!$(F必須在其他所有寄存器!除了命令寄存器!(F之外F之前初始化,對(duì)初始化的順序也有一定的要求。
(驅(qū)動(dòng)程序的編寫,)
發(fā)送驅(qū)動(dòng)程序一般分為兩個(gè)部分,第一部分
!支持*+)、7*4和I’(的自動(dòng)檢測功能
自動(dòng)改正極性!在.-I9J8+網(wǎng)絡(luò)中,
!5條中斷線
!提供可選擇的.0個(gè)4L#口基地址!內(nèi)置.0G的37
H主機(jī)和控制器之間的數(shù)據(jù)傳遞
主機(jī)和控制器之間通常采用兩種方式進(jìn)行數(shù)
!$COM8CJ8DPF使上層軟件無論何時(shí)傳送一個(gè)數(shù)據(jù)包
到驅(qū)動(dòng)程序時(shí),都能為其初始化一個(gè)傳輸過程。如果驅(qū)動(dòng)程序不能立即發(fā)送這個(gè)數(shù)據(jù)包!也就是說發(fā)送器很忙F,則將該數(shù)據(jù)包送入在緩沖區(qū)內(nèi)的未發(fā)送數(shù)據(jù)包隊(duì)列中,當(dāng)初始化完數(shù)據(jù)包或者將數(shù)據(jù)包送到隊(duì)列中后,$COM8CJ8DP返回。$COM8C38DP是和中斷服務(wù)程序!$COM8C43F一起協(xié)同工作的,當(dāng)發(fā)送完成后,網(wǎng)絡(luò)控制器向主機(jī)發(fā)出中斷請(qǐng)求表示發(fā)送完成,同時(shí)使發(fā)送狀態(tài)寄存器的!+3F相應(yīng)位置位。
由上面的討論可知,發(fā)送驅(qū)動(dòng)程序包括兩部分,$COM8C38DP和$COM8C43,同時(shí),$COM8C43中還包括接收驅(qū)動(dòng)程序。中斷服務(wù)程序!$COM8C43F(如圖H)與由接收、發(fā)送產(chǎn)生的中斷有關(guān)。$COM8C43由兩部分組成,一部分是數(shù)據(jù)包發(fā)送程序,另一部分是數(shù)據(jù)包接收程序。
發(fā)送驅(qū)動(dòng)程序.)
發(fā)送驅(qū)動(dòng)程序由兩部分組成。第一部分是$COQ當(dāng)被上層調(diào)用時(shí),對(duì)發(fā)送進(jìn)行初始M8C38DP!見圖NF,
化。$COM8C38DP通過讀取命令寄存器!(F中的內(nèi)容!+R)位是否為-F來檢查控制器是否為發(fā)送作好了
據(jù)的交換,一種是內(nèi)存共享模式,一種是4L#端口所以主模式。在本文中所采用的是4L#端口模式,要對(duì)這種方式進(jìn)行討論。
如圖,所示為4L#端口方式,這種方式用于在該方式下,控制器的內(nèi)存是通’EM8::的’%,。
過系統(tǒng)的4L#空間中的一個(gè)端口來訪問的,一次只能讀寫一個(gè)字節(jié)或一個(gè)字。以太網(wǎng)控制器通過用戶編程來控制它的內(nèi)存和4L#端之間的數(shù)據(jù)傳遞??刂破鞯膬?nèi)部寄存器和內(nèi)存訪問端口在主機(jī)系統(tǒng)的4L#端口表中,主機(jī)系統(tǒng)通過訪問這些端口
來設(shè)定相應(yīng)的內(nèi)部寄存器以及訪問控制器的內(nèi)存。
現(xiàn)
代計(jì)算機(jī)
!
圖,4L#端口
N網(wǎng)絡(luò)控制器驅(qū)動(dòng)程序的編寫
一個(gè)正確的以太網(wǎng)控制器驅(qū)動(dòng)程序應(yīng)包括以
!
$%’(#)*+
,--./0
總第一一七期!
)
網(wǎng)卡底層驅(qū)動(dòng)程序的編寫
實(shí)踐與經(jīng)驗(yàn)
準(zhǔn)備。如果控制器已作好準(zhǔn)備,#123415467用控制器的遠(yuǎn)程#!8通道將數(shù)據(jù)包從主機(jī)內(nèi)存發(fā)送到發(fā)送緩沖區(qū)中,然后發(fā)出發(fā)送命令并返回。否則,如果控制器忙的話0*9(位為-:,#123415467將數(shù)據(jù)包送到待發(fā)送數(shù)據(jù)包隊(duì)列,然后返回。
#12341=5%為控制器提出的中斷服務(wù)并且記錄
發(fā)送狀態(tài)寄存器0*5%:中的內(nèi)容,發(fā)送在未發(fā)送數(shù)據(jù)包隊(duì)列中的下一數(shù)據(jù)包。因此,對(duì)于發(fā)送中斷,
#12341=5%執(zhí)行下面幾步:
!恢復(fù)中斷寄存器0=5%:中的(*9位;
通過讀發(fā)送狀態(tài)寄存器0*5%:檢查是否正確
發(fā)送;
發(fā)送#如果還有更多的數(shù)據(jù)包在未發(fā)送隊(duì)列,下一數(shù)據(jù)包,否則到第步;
檢查是否還有未處理$讀取中斷狀態(tài)寄存器,的中斷。
接收驅(qū)動(dòng)程序+)
因?yàn)榻邮镇?qū)動(dòng)程序只能是一個(gè)中斷服務(wù)程序,所以它完全包含在#12341=5%之中。當(dāng)產(chǎn)生接收中斷,一個(gè)或多個(gè)數(shù)據(jù)包由控制器存入緩沖環(huán)中,
#12341=5%將這些數(shù)據(jù)包從緩沖環(huán)中移走然后送入
到主機(jī),直到緩沖環(huán)中空為止。接收數(shù)據(jù)包驅(qū)動(dòng)程序步驟如下:
!恢復(fù)中斷狀態(tài)寄存器中的(9*位;
讀取數(shù)據(jù)包”命令讀出緩沖環(huán)中通過發(fā)出“
的下一個(gè)數(shù)據(jù)包;
#檢查接收緩沖環(huán)是否為空:%?寄存器是
否等于’))%寄存器;
則到第-步,否則讀取中斷狀$若環(huán)不為空,
態(tài)寄存器以處理其他中斷。
網(wǎng)卡底層驅(qū)動(dòng)程序的編寫
實(shí)踐與經(jīng)驗(yàn)
12*345678912*:56;:93%’==:565?
(@:A4?*?5BCDE5F;9@:A4?GH--I,(A5?4)
J7EFD4KF:@5FAFACLCBC8MNC?F8O%FACD?CF9PCP4?FF8Q?8PN8DC478:FFAC?CFP8DQK4DL/+A5EM4MCD5?FD8L:KCEFAC
EFD:KF:DC4?LFAC8MCD4F58?MD5?K5MC8OK4DL/+ACM4MCD4E8M:FECNMA4E5E8?FAC8MCD4F58?MD5?K5MC4?LA4DLP4DC5?5F545R4F58?8O+1S-.TJU/+ACM4MCD5?FD8L:KCEA8PF8PD5FCLD5BCDO8DFACK4DL5?FACC?L/
VC;P8DLE:’CFP8DQK4DL;$D5BCD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北京考貨運(yùn)資格證考試內(nèi)容
- 產(chǎn)品技術(shù)服務(wù)合同
- 信貸業(yè)務(wù)審批流程詳述
- 全新顧問聘用協(xié)議
- 《數(shù)據(jù)可視化技術(shù)應(yīng)用》2.2 揭示商品庫存數(shù)據(jù)動(dòng)態(tài)-教案
- 2025年遼陽道路貨運(yùn)駕駛員從業(yè)資格證考試
- 營林生產(chǎn)松林擇間伐改造提升承攬合同6篇
- 《藥物分析》課程標(biāo)準(zhǔn)
- 駕校合伙投資合同范本
- 單位食堂聘用合同范本
- 人教版(2025新版)七年級(jí)下冊數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- 汽輪機(jī)輔機(jī)培訓(xùn)
- DB37-T 5026-2022《居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)》
- DN900鋼管dn800E管定向鉆穿越京杭大運(yùn)河施工方案
- 全套IECQ QC080000-2017 有害物質(zhì)過程管理體系程序文件
- 冀教版三年級(jí)數(shù)學(xué)下冊《第二單元第2課時(shí) 兩位數(shù)乘兩位數(shù)(進(jìn)位)的乘法》教學(xué)課件PPT小學(xué)公開課
- 成都市入戶申請(qǐng)表
- 主題班會(huì):預(yù)防流行性感冒課件
- 對(duì)外援助成套項(xiàng)目管理辦法(試行)
- 管道吹掃、試壓檢驗(yàn)批質(zhì)量驗(yàn)收記錄表
- 教學(xué)教案、作業(yè)、記錄檢查記錄表
評(píng)論
0/150
提交評(píng)論