網(wǎng)卡驅(qū)動程序范文
時間:2023-03-21 13:46:25
導(dǎo)語:如何才能寫好一篇網(wǎng)卡驅(qū)動程序,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
windows nt是一個功能全面的操作系統(tǒng),具有完全集成式的連網(wǎng)能力,它的網(wǎng)絡(luò)模型開始于mac子層,網(wǎng)絡(luò)接口卡(network interface card以后簡稱網(wǎng)卡或nic)驅(qū)動程序駐留在其中。通過相關(guān)的網(wǎng)卡把windows nt與網(wǎng)絡(luò)連接起來,但一直到80年代后期,許多傳輸協(xié)議的實現(xiàn)受限于mac層接口的獨特實現(xiàn),因為mac層定義了協(xié)議與網(wǎng)卡之間的轉(zhuǎn)換機制。
1989年,microsoft和3com兩公司提出了一個定義mac層與osi模型高層協(xié)議驅(qū)動程序之間的網(wǎng)絡(luò)設(shè)備接口規(guī)范(network device interface specification : ndis),ndis給數(shù)據(jù)交換提出了一個靈活的環(huán)境,它規(guī)范了軟件接口──稱為ndis接口,傳輸協(xié)議可用它與網(wǎng)卡驅(qū)動程序進行通信。因此在windows nt環(huán)境下開發(fā)核心態(tài)網(wǎng)卡驅(qū)動程序應(yīng)遵循ndis規(guī)范。
對于高速網(wǎng)絡(luò)fddi(fiber distributed data interface)網(wǎng)卡驅(qū)動程序還需要smt(station management)站管理功能的實現(xiàn),否則將不能作為一個fddi站連入環(huán)結(jié)構(gòu)中,只能實現(xiàn)點到點間的數(shù)據(jù)通信。故有必要將smt軟件移植到網(wǎng)卡驅(qū)動程序中,這將又導(dǎo)致對miniport nic驅(qū)動程序編程框架的破壞,于是有必要形成fddi網(wǎng)卡驅(qū)動程序(包含smt)與windows nt操作系統(tǒng)的良好接口──由邏輯網(wǎng)卡的注冊和mac層驅(qū)動程序的初始化來完成。
所以,本課題旨在深入研究應(yīng)用microsoft公司的ddk(device driver kit)將smt移植于windows nt的fddi網(wǎng)卡驅(qū)動程序過程中如何注冊miniport nic驅(qū)動程序。即怎樣正確注冊邏輯網(wǎng)卡和mac驅(qū)動程序的初始化。著重討論與初始化相關(guān)的上邊緣函數(shù)的使用和調(diào)用關(guān)系以及初始化過程中遇到的各種問題的具體解決。
第一章windows nt環(huán)境下fddi網(wǎng)卡驅(qū)動程序
總體結(jié)構(gòu)介紹
第一節(jié)windows nt網(wǎng)絡(luò)結(jié)構(gòu)
§1.1.1 windows nt網(wǎng)絡(luò)體系結(jié)構(gòu)
windows nt的網(wǎng)絡(luò)體系結(jié)構(gòu)是基于國際標(biāo)準(zhǔn)化(iso)制定的標(biāo)準(zhǔn)模型──開放式系統(tǒng)互連(open system interconnection:osi)參考模型分層建立的,這種方式有利于隨時擴展其它功能和服務(wù)。
windows nt網(wǎng)絡(luò)模型開始于mac子層,網(wǎng)卡驅(qū)動程序就駐留在其中。它通過相關(guān)的網(wǎng)卡把windows nt與網(wǎng)絡(luò)連接起來,圖中的多個網(wǎng)卡表明在一臺運行windows nt的計算機上能使用多種網(wǎng)卡。
這一網(wǎng)絡(luò)體系結(jié)構(gòu)包括兩個重要接口──ndis接口與傳輸驅(qū)動
程序接口(tdi)。這兩個接口把兩個層隔離開來,辦法是相鄰的部件只允許按單一的標(biāo)準(zhǔn)來寫,不允許多重標(biāo)準(zhǔn)。例如一個網(wǎng)卡驅(qū)動程序(在ndis接口的下面)就不需要特地按每個傳輸協(xié)議來寫它的代碼塊,恰恰相反,該驅(qū)動程序是寫給ndis接口的,它通過符合ndis的相應(yīng)傳輸協(xié)議來請求服務(wù)。這些接口包含在windows nt的網(wǎng)絡(luò)體系結(jié)構(gòu)中,以容納可移植、可互換的模塊。
在兩個接口之間,是傳輸協(xié)議。它在網(wǎng)絡(luò)中起著組織者的作用。一個傳輸協(xié)議規(guī)定了數(shù)據(jù)以何種方式呈遞給下一個接收層,以及如何對數(shù)據(jù)相應(yīng)地進行打包。它通過ndis把數(shù)據(jù)傳給網(wǎng)卡驅(qū)動程序,并通過tdi把數(shù)據(jù)傳給轉(zhuǎn)發(fā)程序(redirector)
tdi之上是轉(zhuǎn)發(fā)程序,它把本地的網(wǎng)絡(luò)資源申請轉(zhuǎn)送給網(wǎng)絡(luò)。
為了能和其他廠商的網(wǎng)絡(luò)互連,windows nt允許有多個轉(zhuǎn)發(fā)程序。對于每一個轉(zhuǎn)發(fā)程序windows nt計算機必須也有一個相應(yīng)的供應(yīng)者(provider)(由網(wǎng)絡(luò)廠商提供)。多供應(yīng)者路由選擇程序決定適當(dāng)?shù)墓?yīng)者,然后借助于供應(yīng)者,對應(yīng)用請求到相應(yīng)的轉(zhuǎn)發(fā)程序做出選擇。
§1.1.2 windows nt網(wǎng)絡(luò)驅(qū)動程序
windows nt支持兩種類型的網(wǎng)絡(luò)驅(qū)動程序
傳輸驅(qū)動程序
實現(xiàn)數(shù)據(jù)鏈路層中的邏輯鏈路控制子層協(xié)議和傳輸層協(xié)議。向 下與ndis接口,向上與tdi接口。
網(wǎng)卡驅(qū)動程序
實現(xiàn)對物理層的管理和數(shù)據(jù)鏈路層中介質(zhì)訪問控制子層協(xié)議,通過ndis向下管理物理網(wǎng)卡,向上與傳輸驅(qū)動程序通信。
§1.1.3 windows nt網(wǎng)卡驅(qū)動程序
windows nt環(huán)境下的網(wǎng)卡驅(qū)動程序也分為兩種:
miniport網(wǎng)卡驅(qū)動程序:miniport驅(qū)動程序只須實現(xiàn)與網(wǎng)絡(luò)硬件相關(guān)的操作(包括發(fā)送和接收)。而所有底層網(wǎng)卡驅(qū)動程序的通用操作(如同步),一般由ndis接口程序來實現(xiàn)。
full網(wǎng)卡驅(qū)動程序:full網(wǎng)卡驅(qū)動程序必須實現(xiàn)所有硬件相關(guān)和同步、排隊等操作。例如full網(wǎng)卡驅(qū)動程序為了響應(yīng)數(shù)據(jù)接收,需要保持本身的捆綁信息,而miniport就可以由ndis接口庫來實現(xiàn)。
在windows nt的早期版本中,full網(wǎng)卡驅(qū)動程序要求開發(fā)者實現(xiàn)許多底層操作,來處理多處理器的核心問題以及處理器、線程的同步,這樣不同的開發(fā)者在大量重復(fù)著許多相同的工作。
而miniport網(wǎng)卡驅(qū)動程序允許開發(fā)者僅僅寫一些與網(wǎng)絡(luò)硬件相關(guān)的代碼即可,而那些通用的函數(shù)由ndis接口庫來實現(xiàn),這樣開發(fā)出來的驅(qū)動程序減少了不必要的工作。
第二節(jié)miniport驅(qū)動程序的結(jié)構(gòu)
ndis接口規(guī)范了網(wǎng)卡驅(qū)動程序的實現(xiàn),同時也對tdi驅(qū)動程序的實現(xiàn)提出了一定的要求,在nt中,ndis約束下的網(wǎng)卡驅(qū)動程序、tdi驅(qū)動程序和系統(tǒng)的關(guān)系如下圖所示:
圖2.0 ndis約束下的網(wǎng)卡驅(qū)動程序、tdi驅(qū)動程序和系統(tǒng)的關(guān)系
miniport驅(qū)動程序包括驅(qū)動程序?qū)ο?、?qū)動程序源代碼和ndis接口庫代碼。windows nt ddk提供ndis.h作為miniport驅(qū)動程序的主要頭文件,定義了miniport驅(qū)動程序的入口點、ndis接口庫函數(shù)和通用數(shù)據(jù)結(jié)構(gòu)。
上邊緣函數(shù)的作用是網(wǎng)卡驅(qū)動與ndis接口庫進行通信,而下邊緣函數(shù)是tdi協(xié)議驅(qū)動程序與ndis通信的手段。
§1.2.1 miniport網(wǎng)卡對象
ndis用一個叫做邏輯網(wǎng)卡的軟件對象來描述系統(tǒng)中的每塊網(wǎng)卡,而邏輯網(wǎng)卡與windows nt設(shè)備對象的通信由i/o子系統(tǒng)來管理,描述網(wǎng)卡的設(shè)備對象包括相關(guān)的網(wǎng)絡(luò)信息如名字、網(wǎng)絡(luò)地址和網(wǎng)卡內(nèi)存基地址等,它還包含與硬件相關(guān)的驅(qū)動程序狀態(tài)數(shù)據(jù)(捆綁數(shù)目,捆綁句柄,包過濾數(shù)據(jù)庫等)。ndis分配一個句柄到miniportinitialize這個上邊緣函數(shù)的一個結(jié)構(gòu)中,然后miniport網(wǎng)卡驅(qū)動程序?qū)⒃谝院筇峁┻@個句柄來給ndis調(diào)用,這個結(jié)構(gòu)一直被ndis保持,并且對miniport驅(qū)動程序不透明。
當(dāng)miniport網(wǎng)卡驅(qū)動程序初始化一塊網(wǎng)卡時,它創(chuàng)立自己的內(nèi)部數(shù)據(jù)結(jié)構(gòu)來描述網(wǎng)卡,記錄需要它管理的與設(shè)備相關(guān)的狀態(tài)信息。當(dāng)miniport網(wǎng)卡驅(qū)動程序調(diào)用ndismsetatttibutes或ndismsetattributesex兩ndis庫函數(shù)時,它傳遞一個句柄給這數(shù)據(jù)結(jié)構(gòu)。這樣,當(dāng)調(diào)用miniport驅(qū)動程序入口點時,它就傳遞這個句柄來驗證驅(qū)動程序所對應(yīng)的網(wǎng)卡的正確性。這個數(shù)據(jù)結(jié)構(gòu)為miniport網(wǎng)卡驅(qū)動程序所擁有并維護。
§1.2.2網(wǎng)絡(luò)對象標(biāo)識符
miniport nic驅(qū)動程序還需要維護一組對象,這些對象是系統(tǒng)定義的對象標(biāo)識符(object idetifier:oid)來標(biāo)識,以描述驅(qū)動程序的性能和當(dāng)前狀態(tài)信息。為查詢這些信息,上層驅(qū)動程序調(diào)用ndisrequest向ndis接口庫指示oid。oid表示了調(diào)用所需的信息類型,如miniport驅(qū)動程序所支持的lookahead緩沖區(qū)大小等。ndis接到上層驅(qū)動程序的查詢請求,將oid傳遞給上邊緣函數(shù)miniportqueryinformation實現(xiàn)對oid的查詢,如果上層驅(qū)動程序請求改變狀態(tài)信息則調(diào)用miniportsetinformation實現(xiàn)對oid的設(shè)置。
§1.2.3 miniport網(wǎng)卡驅(qū)動程序代碼
典型的miniport nic驅(qū)動程序必須有一些函數(shù)來通過ndis接口實現(xiàn)上層驅(qū)動程序與硬件的通信。這些函數(shù)稱為上邊緣服務(wù)函數(shù)。
這些上邊緣服務(wù)函數(shù)由驅(qū)動程序的開發(fā)者根據(jù)驅(qū)動程序面向的特定低層網(wǎng)絡(luò)類型和硬件以及相應(yīng)環(huán)境,可以有選擇地實現(xiàn),但必須保證驅(qū)動程序最基本的功能,這些基本功能包括初始化、發(fā)送、中斷處理、重置、參數(shù)查詢與設(shè)置和報文接收。
miniportinitialize:操作系統(tǒng)根據(jù)系統(tǒng)配置信息,檢測出網(wǎng)卡已安裝時,由ndis接口在初始化時調(diào)用,主要完成低層網(wǎng)絡(luò)類型確定,對應(yīng)于物理網(wǎng)卡的邏輯網(wǎng)卡初始化,中斷信息注冊,網(wǎng)卡與主機通訊方式的確認。i/o端口的申請與注冊,內(nèi)存映像,mib的初始化,物理網(wǎng)卡的驗證與初始化等。
miniportreconfigure:支持網(wǎng)卡參數(shù)動態(tài)變化,和miniportinitilize一樣由ndis接口以初始化級別調(diào)度執(zhí)行(不能屏蔽中斷,必須由驅(qū)動程序承認并清除在此期間產(chǎn)生的中斷),支持即插即用和軟配置的網(wǎng)卡在動態(tài)改變參數(shù)時,必須提供此函數(shù)。
miniportqueryinformation:查詢網(wǎng)卡的狀態(tài)以及網(wǎng)卡驅(qū)動程序的操作或統(tǒng)計參數(shù),如是否支持組通訊、網(wǎng)卡的物理速率是否支持回環(huán)、是否支持直接拷貝等,這些參數(shù)以oid方式統(tǒng)一管理。
miniportsetinformation:ndis接口或協(xié)議驅(qū)動程序通過調(diào)用此接口改變驅(qū)動程序維護的oid庫,一些操作參數(shù)的改變也將同時改變驅(qū)動程序狀態(tài),例如組地址的設(shè)置。
miniportreset:包括網(wǎng)卡硬件重置和驅(qū)動程序軟件重置,軟件重置包括驅(qū)動程序狀態(tài)重置,以及一些相關(guān)的參數(shù)重置,還需考慮有些參數(shù)的恢復(fù),重置時不必完成所有正在活躍的外部請求,但必須釋放已占用的外部資源。
miniporthalt:掛起網(wǎng)卡并釋放該網(wǎng)卡驅(qū)動程序占用的所有資源,在此期間不屏蔽中斷。
miniportisr:高優(yōu)先級的中斷處理程序,進行的工作包括初始中斷處理類型,決定是否進行中斷轉(zhuǎn)交,對卡上中斷進行處理 等,該服務(wù)類型只在以下情況被調(diào)用:
ndis接口調(diào)用miniportinitialize和miniporthalt兩函數(shù)時。
.中斷處理類型設(shè)為每此中斷處理過程都調(diào)用時。
為使系統(tǒng)能及時響應(yīng)所有硬件中斷,高優(yōu)先級的硬件中斷處理程序應(yīng)盡可能的減少運行時間,防止長時間的屏蔽低優(yōu)先級中斷,避免造程中斷丟失。
miniporthandleinterrupt:由中斷延時處理程序在中斷延時處理時進行調(diào)用。ndis排隊所有的延時處理,該服務(wù)主要處理發(fā)送完成、報文接收、描述符用盡、溢出、網(wǎng)卡異常等中斷。
miniportsend:ndis收到上層發(fā)送請求時經(jīng)過若干協(xié)議處理再向下調(diào)用此服務(wù)過程,發(fā)送的packet已含有l(wèi)lc和mac頭,該服務(wù)過程進行邊界對齊、packet約束重整、描述符映射和報文發(fā)送、以及發(fā)送資源和packet緩沖隊列管理。
miniporttransferdata:多個已和網(wǎng)卡捆綁的協(xié)議驅(qū)動程序在接收到報文到達指示后,向網(wǎng)卡驅(qū)動程序發(fā)出傳送請求以拷貝各自所需的報文數(shù)據(jù)部分,網(wǎng)卡驅(qū)動程序根據(jù)各協(xié)議驅(qū)動程序?qū)蝹€packet是否進行多次拷貝,以決定是否暫存只允許單次拷貝的packet等。
miniportcheckhandle:ndis每秒調(diào)用此服務(wù)函數(shù)一次,驅(qū)動程序發(fā)現(xiàn)網(wǎng)卡異常時報告給ndis由ndis調(diào)用miniportreset進行硬件重恢復(fù)。
miniportenableintrrupt:中斷使能。
miniportdisableinterrupt:中斷屏蔽。
另外,每個網(wǎng)卡驅(qū)動程序必須有一個初始化入口點,由driver entry函數(shù)實現(xiàn),它和系統(tǒng)相關(guān),由操作系統(tǒng)在裝入驅(qū)動程序時調(diào)用,主要完成初始化ndis wrapper,再由wrapper初始生成驅(qū)動程序管理塊并完成相應(yīng)各種初始化工作,登錄網(wǎng)卡驅(qū)動程序所有上邊緣服務(wù)入口點,同時寫入ndis版本信息。
§1.2.4 ndis接口庫
ndis接口庫包括在ndis.sys中,它是一個核態(tài)函數(shù)庫,有一套抽象的函數(shù),無論協(xié)議驅(qū)動程序還是nic驅(qū)動程序都連接到這個庫中,以實現(xiàn)上下層之間的操作。
第二章fddi網(wǎng)卡驅(qū)動程序的加載和運行
第一節(jié) 網(wǎng)卡驅(qū)動程序的安裝
windows nt網(wǎng)卡驅(qū)動程序安裝的目的是實現(xiàn)網(wǎng)卡相應(yīng)硬件信息和驅(qū)動程序在windows nt注冊庫中的注冊,使windows nt能夠正確識別網(wǎng)卡,了解所必需的軟硬件信息并能在windows nt啟動時加載相應(yīng)驅(qū)動程序。
網(wǎng)卡驅(qū)動程序安裝時,首先在主群組的控制面板中選擇“網(wǎng)絡(luò)”,然后添加網(wǎng)卡,指定相應(yīng)信息文件──oemsetup.inf的路徑,以完成以下兩個必要的操作:
復(fù)制驅(qū)動程序到相應(yīng)的系統(tǒng)目錄(windows nt根目錄\system32\drivers\)中;
在windows nt注冊庫中存入相應(yīng)軟硬件信息。
下面主要以fddi網(wǎng)卡為例介紹安裝驅(qū)動程序所必需的工作:
§2.1.1網(wǎng)卡一般硬件參數(shù)
對于fddi網(wǎng)卡,必須在編寫其oemsetup.inf文件時確定以下硬件參數(shù):
總線類型:pci(5)……括號中的數(shù)字5表示pci總線在ndis中的總線類型代碼;
廠商代號:0x5588……系統(tǒng)加載時確定網(wǎng)卡的標(biāo)記,也是編程時確定pci槽號的標(biāo)識;
cfid: 0x01;
介質(zhì)類型:光纖(3) ……括號中的數(shù)字表示光纖在ndis中的介質(zhì)類型代碼;
是否支持全雙工:支持。
對于其它的硬件信息在此inf配置信息文件中可有可無,如若配置,則可在驅(qū)動程序的編寫時利用這些信息,方便編程,同時有利于其它應(yīng)用對其參數(shù)的確定和使用。
§2.1.2 fddi網(wǎng)卡加載時需在注冊庫登錄表里做的網(wǎng)絡(luò)配置
網(wǎng)卡驅(qū)動程序的安裝通常將創(chuàng)建登錄表中的四個不同子鍵:
software registrion鍵,對應(yīng)于驅(qū)動程序,存在于hkey_local_machine\software\company\ productname\version中。我們的fddi網(wǎng)卡驅(qū)動程序所對應(yīng)的是hkey_local_machine\software\net612\yhfddi\yhfddi1.0;
網(wǎng)卡的軟件登錄鍵,存在于hkey_local_machine\software\microsoft\ windows nt\nt3.51\networkcards\yhfddi1;
驅(qū)動程序的服務(wù)登錄鍵,存在于hkey_local_machine\system\currentcontrolset\services
網(wǎng)卡的服務(wù)登錄鍵,存在于hkey_local_machine\system\currentcontrolset\services
對于每一個網(wǎng)絡(luò)部件,一個名為netrules的特殊子鍵在鄰近的驅(qū)動程序或網(wǎng)卡登錄子鍵里創(chuàng)建,netrules標(biāo)識網(wǎng)絡(luò)部件為網(wǎng)絡(luò)整體的一部分。
fddi網(wǎng)卡驅(qū)動程序?qū)?yīng)的標(biāo)準(zhǔn)軟件登錄表項將出現(xiàn)在以下路徑:
hkey_local_machine\software\net612\yhfddi\yhfddi1.0;
驅(qū)動程序?qū)?yīng)的標(biāo)準(zhǔn)項的值為:
description =yhfddi/pci adapter controller
install date =……
……
refcount =0x01
servicename =yhfddi
softwaretype =driver
title =yhfddi/pci adapter controller
而且在yhfddi驅(qū)動程序相關(guān)的netrules子鍵下,這些值項為:
bindable =yhfddi driver yhfddi adapter non exclusiver
bindform =“yhfddisys”yes no container
class = reg_multi_sz “yhfddi driver basic”
infname =oemnad1.inf
type =yhfddisys ndisdriver yhfddidriver
use =driver
yhfddi網(wǎng)卡在如下路徑的networkcards子鍵里介紹:
hkey_local_machine\software\microsoft\
windows nt\nt3.51\networkcards\yhfddi1;
網(wǎng)卡的標(biāo)準(zhǔn)項包括以下這些值:
description =yhfddi/pci adapter controller
install date =……
manufacturer =net612
productname =yhfddi
servicename =yhfddi01
title =[01]yhfddi/pci adapter controller
§2.1.3編寫inf信息配置文件
gui inf描述語言被windows nt用以書寫系統(tǒng)所有部件的配置文件,當(dāng)然也可以用以書寫網(wǎng)絡(luò)系統(tǒng)各部件的配置文件,該配置文件描述了網(wǎng)絡(luò)部件安裝、配置、刪除的執(zhí)行過程。當(dāng)網(wǎng)絡(luò)部件進行初始安裝或二次安裝(通常通過ncpa進行)時,安裝程序讀取部件對應(yīng)的配置文件,進行解釋執(zhí)行。gui inf描述語言由節(jié)、命令、邏輯操作、變量規(guī)范、流程控制以及一套調(diào)用dll或外部程序的機制組成,其中,節(jié)是配置文件的主體,節(jié)可分為install節(jié)(類似于函數(shù)),shell節(jié)(也類似于函數(shù),但可調(diào)用insall和shell節(jié)),detect節(jié)(不包含命令),一個配置文件一般由若干不同類型的節(jié)組成。驅(qū)動程序的開發(fā)者根據(jù)需要可以在配置文件中編寫相應(yīng)代碼,使得用戶和系統(tǒng)之間能進行交互,并且由用戶決定一些配置參數(shù)。
nt網(wǎng)卡配置文件有其一套規(guī)范,驅(qū)動程序開發(fā)者必須按規(guī)范編寫配置文件,一般來說,一個配置文件至少應(yīng)該提供下面三個節(jié):
安裝入口點:[identify]shell節(jié)。該節(jié)主要功能是給出安裝部件的類型名,系統(tǒng)通過它識別該部件屬于哪一大類(display,mouse,scsi,network等)中的哪一類(網(wǎng)絡(luò)adapter,driver,transport,service,network和netprovidor),同時,還需要給出映像文件和配置文件所在的源介質(zhì)及標(biāo)識。
[returnoption]shell節(jié)。系統(tǒng)執(zhí)行安裝identify節(jié)后,執(zhí)行該節(jié)。它主要功能是檢查所需安裝的部件是否支持的硬件平臺和語言,并給出網(wǎng)卡名(有些配置文件支持多類網(wǎng)卡,此時必須讓用戶進行選擇,并獲得選擇結(jié)果)。
[installoption]shell節(jié)。該節(jié)是配置文件得主體,也是上次安裝完后再次進行配置、刪除、更新的入口點。主要功能是拷貝映像文件和配置文件,生成配置的各種選項,創(chuàng)建該部件在注冊庫中對應(yīng)的各種登錄子樹并更新重寫。
第二節(jié) 驅(qū)動程序的加載過程
§2.2.1 windows nt的啟動過程
篇2
一、
1、右擊計算機、管理、設(shè)備管理器;
2、點擊設(shè)備管理器、其他設(shè)備、以太網(wǎng)控制器、更新驅(qū)動程序軟件;
3、選擇瀏覽計算機以查找驅(qū)動程序軟件,瀏覽位置直接找到網(wǎng)卡驅(qū)動文件路徑。
二、
1、用驅(qū)動人生備份原驅(qū)動:以防止新安裝驅(qū)動和硬件不兼容,導(dǎo)致電腦運行問題。 進入驅(qū)動人生、驅(qū)動管理、選擇驅(qū)動備份,勾中網(wǎng)卡,然后開始備份;
2、用驅(qū)動人生還原驅(qū)動:當(dāng)我們發(fā)現(xiàn)新驅(qū)動還不如原始驅(qū)動時,就需要還原驅(qū)動;
篇3
1、本地連接未識別的網(wǎng)絡(luò),寬帶連接已斷開解決方法如下:右鍵點擊桌面的計算機圖標(biāo),選擇設(shè)備管理器,在設(shè)備管理器下方找到網(wǎng)絡(luò)適配器選項(確保已經(jīng)安裝匹配的網(wǎng)卡驅(qū)動程序)。
2、打開網(wǎng)卡驅(qū)動列表,找當(dāng)前網(wǎng)卡驅(qū)動右鍵點擊,選擇禁用,然后再點擊啟用(恢復(fù)網(wǎng)絡(luò)默認設(shè)置)。
3、還不行,使用疑難解答向?qū)z測、維修即可。
(來源:文章屋網(wǎng) )
篇4
關(guān)鍵詞:計算機;硬盤還原卡;局域網(wǎng);系統(tǒng)拷貝
中圖分類號:TP393文獻標(biāo)識碼:A文章編號:1009-3044(2007)04-10960-01
1 問題的提出
計算機實驗室常見的系統(tǒng)保護措施可以分為軟件保護和硬件保護兩種。軟件保護通常采用“還原精靈”進行系統(tǒng)恢復(fù),或是采用“GHOST軟件”克隆系統(tǒng)[1];硬件保護一般采用還原卡,例如“小哨兵還原卡”、“三茗保護卡”之類的硬件擴展,進行系統(tǒng)恢復(fù)。
高校計算機中心、多媒體實驗室等局域網(wǎng)絡(luò),承擔(dān)著計算機實驗教學(xué)和培訓(xùn)、計算機等級考試、以及計算機方面學(xué)術(shù)研究的多重任務(wù),系統(tǒng)維護工作很頻繁,也很繁重。上述保護措施僅能實現(xiàn)單機系統(tǒng)還原和維護,頂多利用“復(fù)制硬盤”功能進行兩塊硬盤之間的對考;卻無法對相同配置的機器進行網(wǎng)絡(luò)拷貝[2]。在機房維護和管理工作中,我們發(fā)現(xiàn)普通小哨兵還原卡經(jīng)過一定設(shè)置,也可以實現(xiàn)網(wǎng)絡(luò)拷貝功能。既可以在局域網(wǎng)內(nèi)實現(xiàn)一對多網(wǎng)絡(luò)拷貝,大量減輕系統(tǒng)維護工作量;又無需購買專門的網(wǎng)絡(luò)拷貝硬件,如“小哨兵網(wǎng)管專家”、“小特工卡”等,可以節(jié)約一定資金。
2 小哨兵還原卡的普通功能
小哨兵還原卡是南京小哨兵科技有限公司開發(fā)的硬盤保護卡,安裝在主板的PCI插槽上。它具有C盤保護、多盤保護、管理員口令設(shè)定、備份CMOS數(shù)據(jù)、更新硬盤數(shù)據(jù)、驅(qū)動軟件升級、復(fù)制硬盤、移除還原卡、直接啟動等功能[3]。啟動計算機,在BIOS自檢結(jié)束時按下CTRL+F10,輸入管理員口令(默認口令為:manager),即可進入小哨兵還原卡安裝設(shè)置界面。
快速安裝:僅保護C盤;高級安裝(或參數(shù)設(shè)置):可以設(shè)定多盤保護和數(shù)據(jù)恢復(fù)方式;設(shè)置管理員口令:初次設(shè)置或更改管理員密碼;備份CMOS數(shù)據(jù):自動分析并備份當(dāng)前CMOS數(shù)據(jù);更新硬盤數(shù)據(jù):在沒有移除還原卡的情況下,安裝新軟件后,執(zhí)行更新數(shù)據(jù)操作,可以將軟件正式安裝到硬盤中;軟件升級:升級還原卡驅(qū)動程序;復(fù)制硬盤:可以將硬盤中的數(shù)據(jù)完全復(fù)制到另一個硬盤中,此方法只適用在單機上進行一對一硬盤拷貝,并且要求硬盤磁頭數(shù)和扇區(qū)數(shù)相同;直接啟動:不調(diào)用還原功能,直接啟動計算機,系統(tǒng)處于開放狀態(tài);移除小哨兵:如果決定不再使用小哨兵,可選擇此項。
3 小哨兵還原卡的網(wǎng)絡(luò)拷貝功能及其運行條件
所謂網(wǎng)絡(luò)拷貝,就是將局域網(wǎng)內(nèi)一臺安裝好的計算機作為發(fā)射端,同時向其它作為接收機的數(shù)十臺甚至上百臺電腦發(fā)射系統(tǒng)數(shù)據(jù)。網(wǎng)絡(luò)拷貝一般可用30-50分鐘完成局域網(wǎng)內(nèi)多臺電腦的系統(tǒng)傳送,接收端計算機所有參數(shù)與發(fā)射機完全一樣。傳送完畢,逐臺重啟電腦,修改IP地址和計算機名就可以了。
小哨兵還原卡網(wǎng)絡(luò)拷貝功能的運行環(huán)境是MS-DOS系統(tǒng),網(wǎng)絡(luò)拷貝的主程序是XSBnet.exe(小哨兵網(wǎng)絡(luò)拷貝2.0測試版),軟件大小為41KB。小哨兵還原卡網(wǎng)絡(luò)拷貝的輔助程序是網(wǎng)卡驅(qū)動程序中的或 等可執(zhí)行文件。在此,集錄各種常見網(wǎng)卡對應(yīng)的Dos平臺下Pack Driver驅(qū)動文件,列表如下:
4 網(wǎng)絡(luò)拷貝的實現(xiàn)
4.1 啟動發(fā)射端
使用DOS啟動盤,將安裝好系統(tǒng)軟件和應(yīng)用軟件的發(fā)射機啟動到MS-DOS系統(tǒng)下,運行網(wǎng)卡驅(qū)動程序中的DOS驅(qū)動文件,加載網(wǎng)卡驅(qū)動程序包。例如:對于RealTek8139網(wǎng)卡,其命令語句為C:/> 0x60,如果屏幕顯示:
System:[345]86 processor, PCI bus, Two 8259s
Packet driver software interrupt is 0x60
Interrupt number is 0x9
I/O port is 0x6100
My Ethernet address Is 00:0A:E6:11:61:6B等語句行,說明網(wǎng)卡已經(jīng)識別。
在DOS下運行XSBnet.exe網(wǎng)絡(luò)拷貝程序,顯示小哨兵網(wǎng)絡(luò)拷貝主界面。選擇發(fā)送端按鈕,回車確認,等待接收端登錄到發(fā)送機。
4.2 啟動接收端
移除小哨兵還原卡,在接收端啟動MS-DOS系統(tǒng),先運行文件,加載網(wǎng)卡驅(qū)動程序包,屏幕同樣會顯示:……My Ethernet address Is 00:0A:E6:11:61:6B等類似語句;然后運行XSBnet.exe文件,選擇“接收端”并確認,將接收端連接到發(fā)送端。
4.3 數(shù)據(jù)拷貝
按同樣方法,把每一臺接收端都與發(fā)送端連接起來。這時,發(fā)送端將會顯示登錄成功的所有計算機編號(圖1)。點擊圖1中的“開始發(fā)送”按鈕,開始向接收端發(fā)送數(shù)據(jù),并在發(fā)射端隨機顯示數(shù)據(jù)發(fā)送進度。同時,接收端將同步接收發(fā)送端傳送的數(shù)據(jù),并顯示接收數(shù)據(jù)進度。
注意:只能選一臺機器作為發(fā)送端,如果接收端進度條與發(fā)送端進度條不同步,說明該接收端已經(jīng)掉線??梢缘绕渌邮斩私邮諗?shù)據(jù)完畢,再單獨對此臺計算機重新發(fā)送。
發(fā)送完畢,發(fā)送端和接收端將顯示網(wǎng)絡(luò)拷貝完成界面;選擇退出按鈕,退出網(wǎng)絡(luò)拷貝程序。
5 結(jié)束語
網(wǎng)絡(luò)拷貝功能硬件配置要求:主機CPU為PⅢ550以上,IDE、SCSI接口硬盤均可,系統(tǒng)盤剩余空間600MB以上,內(nèi)存64Mb以上,10M/100M自適應(yīng)網(wǎng)卡。
網(wǎng)絡(luò)拷貝功能軟件配置要求:適于Microsoft Windows 98,Windows 2000,Windows XP多種操作系統(tǒng)的網(wǎng)絡(luò)拷貝,支持 NTFS、FAT32文件系統(tǒng)格式。若使用多系統(tǒng)開機,必須確認多重開機系統(tǒng)沒有使用硬盤的MBR區(qū)塊;否則可能會破壞操作系統(tǒng)。
進行小哨兵還原卡網(wǎng)絡(luò)拷貝,要求發(fā)送端與接收端必須滿足:相同的硬盤參數(shù),主板相同,且主板BIOS版本號相同,并保證網(wǎng)絡(luò)連接暢通。
建議先重裝發(fā)送端計算機系統(tǒng),再進行數(shù)據(jù)發(fā)送;否則,應(yīng)先執(zhí)行磁盤碎片整理,然后再發(fā)送數(shù)據(jù),以加快網(wǎng)絡(luò)拷貝速度。
若接收端在數(shù)據(jù)拷貝中途掉線,重啟進入系統(tǒng)時發(fā)現(xiàn)磁盤容量變小??稍贒OS下運行ClrPart.exe恢復(fù)磁盤參數(shù)(ClrPart.exe是磁盤參數(shù)的修復(fù)工具,可以在網(wǎng)絡(luò)拷貝程序中找到);然后重啟計算機,進入CMOS檢測磁盤參數(shù),并保存CMOS數(shù)據(jù)的改動。
對于Windows 98操作系統(tǒng),不必安裝小哨兵還原卡驅(qū)動程序。如果是Windows 2000或Windows XP操作系統(tǒng),網(wǎng)絡(luò)拷貝結(jié)束后,必須先以管理員身份登錄計算機,安裝小哨兵還原卡驅(qū)動程序;否則,還原卡起不到系統(tǒng)保護功能。
參考資料:
[1]程玉昆,等. 局域網(wǎng)計算機的Ghost安裝[J]. 成都:西南民族大學(xué)學(xué)報,2005.3.
[2]儲德軍. 計算機實驗室系統(tǒng)維護方法比較[J]. 北京:實驗科學(xué)與技術(shù),2005.3.
篇5
2、此時可以打開計算機系統(tǒng)屬性窗口,點擊左側(cè)邊欄的“設(shè)備管理器”菜單項。
3、這時可以打開電腦的設(shè)備管理器窗口,在這里找到“網(wǎng)絡(luò)適配器”一項。
4、雙擊網(wǎng)絡(luò)適配器菜單項后,可以打開該菜單,找到我們的網(wǎng)卡驅(qū)動。
5、右鍵點擊網(wǎng)卡驅(qū)動程序,然后在彈出菜單中選擇“屬性”菜單項。
6、這時會打開網(wǎng)卡屬性窗口,點擊上面的“電源管理”標(biāo)簽。
篇6
3、打開在桌面上我的電腦,雙擊光驅(qū);4.找到并打開USB網(wǎng)卡客戶端程序和驅(qū)動程序文件夾;5.加載驅(qū)動;
6、安裝客戶端軟件;
7、配置客戶端,用無線網(wǎng)卡模擬AP;
8、打開手機設(shè)置,打開無線局域網(wǎng)設(shè)置,連接模擬AP;
篇7
一、TCP/IP體系結(jié)構(gòu)
TCP/IP協(xié)議因簡潔、實用而得到了廣泛的應(yīng)用,TCP/IP是由一組通信協(xié)議所組成的協(xié)議棧,主要由TCP協(xié)議(Transport Control Protocol,傳輸控制協(xié)議)、IP協(xié)議(Internet Protocol 因特網(wǎng)協(xié)議)協(xié)議組成。TCP/IP體系結(jié)構(gòu)模型自下向上分別為:網(wǎng)絡(luò)接口層(NetworkAccess)、互聯(lián)網(wǎng)層(Internet layer)、傳輸層(Transport layer)、應(yīng)用層(application layer)。
四層結(jié)構(gòu)中在實際的網(wǎng)絡(luò)系統(tǒng)中,有兩個明顯的分界點,即應(yīng)用層與傳輸層是各種操作系統(tǒng)與應(yīng)用軟件的分界點;互聯(lián)網(wǎng)層與數(shù)據(jù)鏈路層是邏輯網(wǎng)絡(luò)與實際互聯(lián)網(wǎng)絡(luò)的分界點。
依靠這樣的分層,使TCP/IP協(xié)議在全球范圍內(nèi)實現(xiàn)將不同硬件結(jié)構(gòu)、不同操作系統(tǒng)、不同網(wǎng)絡(luò)系統(tǒng)的互聯(lián)成為Internet。
二、基于TCP/IP模型的Web服務(wù)通信過程
目前,普通高中校園網(wǎng)接入Internet廣泛使用Web服務(wù),www服務(wù)以Http協(xié)議為網(wǎng)絡(luò)通信服務(wù)協(xié)議。校園網(wǎng)中的源主機A通過Internet的www服務(wù)訪問另一臺目的主機B上的資源,完成這樣一次通信過程抽象模式如圖1所示。
圖1 www服務(wù)通信模型
源主機A在操作系統(tǒng)的支持下通過瀏覽器啟動一個www服務(wù)進程A,通過本機的1668端口,向傳輸層的TCP協(xié)議請求;傳輸層將源端口號(1688)與需要向目標(biāo)主機請求的www服務(wù)端口號(80)連同所要傳輸?shù)臄?shù)據(jù)一起封裝在TCP報文中成為數(shù)據(jù)段(Segment),向主機A的IP層傳輸;在主機A的IP層,IP層將傳輸層的數(shù)據(jù)段看做數(shù)據(jù)(Data),與主機A的IP地址(192.168.155.166)和目標(biāo)主機的IP(192.168.155.168)地址封裝成網(wǎng)絡(luò)層數(shù)據(jù)包(Packet)傳輸?shù)较乱粚?。這樣,在主機A中,通過端口號(1688)唯一地確定了本機上的一個應(yīng)用層程序,通過主機A的IP地址(192.168.155.166)唯一地確定了Internet中的一臺主機,主機A的服務(wù)端口號(1688)與本機的IP地址(192.168.155.166),即TCP/IP模型中的套接字(Socket=IP+端口號)唯一地確定了Internet上的一個應(yīng)用層程序。通過TCP/IP的網(wǎng)絡(luò)接口層(在實際網(wǎng)絡(luò)模型中為DL和PL)傳輸?shù)街鳈CB。主機B根據(jù)對等層通信原則,將下層數(shù)據(jù)包層層解封裝以后,通過本機的端口(80)把主機A請求提交給應(yīng)用層程序,進而再利用TCP/IP模型對等層的通信原則,將服務(wù)提供給主機B,從而完成網(wǎng)絡(luò)服務(wù)。
從TCP/IP通信過程的分析和常見網(wǎng)絡(luò)通信故障可知道,在實際的網(wǎng)絡(luò)運行過程中,出現(xiàn)網(wǎng)絡(luò)故障后,可以根據(jù)事實上的網(wǎng)絡(luò)標(biāo)準(zhǔn)分層排查,確定故障點,進而排除故障,實現(xiàn)良好的網(wǎng)絡(luò)維護與管理。
三、日常網(wǎng)絡(luò)維護與管理實踐
1.網(wǎng)絡(luò)接口層維護與管理實踐
在TCP/IP體系結(jié)構(gòu)中,對網(wǎng)絡(luò)接口層沒有具體定義,但在實際應(yīng)用的網(wǎng)絡(luò)標(biāo)準(zhǔn)中,這層對應(yīng)于OSI參考模型中的物理層(PL)和數(shù)據(jù)鏈路層(DLL)。
物理層(Physical layer)在實際網(wǎng)絡(luò)層次體系結(jié)構(gòu)中,物理層是在信道上傳輸透明的比特流,規(guī)定了機械的、電氣的、功能的、規(guī)程的接口,以及相應(yīng)的傳輸介質(zhì)。對于具體物理層實體,例如:普通高中常見的PC機、集線器、交換機、路由器、Modem、光電轉(zhuǎn)換器等設(shè)備,通常在保證網(wǎng)絡(luò)傳輸介質(zhì)(注意各種介質(zhì)的最大傳輸距離限制)連通的狀態(tài)下,主要查看各網(wǎng)絡(luò)實體設(shè)備的信號燈,各設(shè)備模塊的Link(LNK)燈應(yīng)該是恒亮,Action(ACT)燈呈現(xiàn)閃爍狀態(tài)。在對物理層設(shè)備排錯的過程中,主要是確認網(wǎng)絡(luò)傳輸介質(zhì)(線序正確)及介質(zhì)與設(shè)備接口連通良好,通過檢查模塊信號指示燈確認各個電子集成模塊正常工作。
數(shù)據(jù)鏈路層(Data Link Layer)定義了將數(shù)據(jù)組裝成正確幀的規(guī)程和在網(wǎng)絡(luò)中傳輸幀(幀是指一串?dāng)?shù)據(jù),它是數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)膯挝?的規(guī)程。包含網(wǎng)絡(luò)接口卡(Internet Interface Card網(wǎng)卡)和各種設(shè)備適配卡及相關(guān)的驅(qū)動程序(目的在使各種底層硬件可以在TCP/IP網(wǎng)絡(luò)相互聯(lián)結(jié)通信)。在計算機安裝的操作系統(tǒng)中,應(yīng)根據(jù)不同的底層網(wǎng)絡(luò)接口卡配置網(wǎng)卡驅(qū)動程序。例如:我們高中教師機和學(xué)生機用的Windows Xp Ghost系統(tǒng),會自帶與機器設(shè)備相匹配的萬能網(wǎng)卡驅(qū)動,但對于較早版本的Windows系統(tǒng),則需要手動安裝所需的網(wǎng)卡驅(qū)動程序進而確保工作在這層的協(xié)議能在相關(guān)物理層設(shè)備的支持下正常運行。一般采用ping 127.0.0.1來測試loopback是否有響應(yīng);來確認是否為網(wǎng)卡驅(qū)動的故障。
路由器和交換機網(wǎng)絡(luò)接口層故障檢測,則在管理模式下檢測各網(wǎng)絡(luò)接口線路、帶寬、速率、工作模式(雙工/半雙工)是否相匹配。
篇8
2、我們在電腦的桌面上找到計算機按鈕,有的電腦上是顯示我的電腦。
3、找到后我們右鍵點擊我們的電腦,然后找到屬性按鈕。
4、進入到屬性設(shè)置頁面后我們在左邊的快捷欄中找到設(shè)備管理器按鈕,找到不到的看下面的配圖。
5、進入到設(shè)備管理器頁面后我們接著找到聲音按鈕,點擊聲音按鈕后我們就能夠看到聲卡驅(qū)動了。
6、看到聲卡驅(qū)動后我們在右鍵點擊聲卡驅(qū)動,然后點擊卸載按鈕。
7、等待幾秒聲卡驅(qū)動就能夠卸載完成。
8、上面的步驟是卸載聲卡驅(qū)動,因為要重新安裝聲卡驅(qū)動必須卸載原來已經(jīng)安裝好的驅(qū)動程序才能夠重新安裝,下面小編繼續(xù)給大家介紹聲卡驅(qū)動卸載完成后怎么重新安裝聲卡驅(qū)動。
9、我們打開搜索引擎,在搜索引擎的搜索框內(nèi)輸入360驅(qū)動大師下載,下載完成并且安裝,安裝好后打開360驅(qū)動大師。
10、打開后驅(qū)動大師會自動幫助你掃描電腦上的聲卡驅(qū)動,包括顯卡,網(wǎng)卡驅(qū)動程序,掃描完成后我們點擊安裝聲卡驅(qū)動按鈕。
篇9
引言
S1C33209是EPSON公司推出的RISC結(jié)構(gòu)的32位高性能CMOS微處理器,具有高速、低功耗、低電壓操作、精簡指令集等特點,提供乘與累加功能,既可用于辦公設(shè)備,也特別適用于需要高級數(shù)據(jù)處理的便攜設(shè)備,可以進行高速運算、靈活的I/O口控制和高效的數(shù)據(jù)操作。S1C33209具有8KB的內(nèi)部RAM,其運算速率可達60MHz,加上優(yōu)化的多數(shù)為單時鐘周期的指令集,使S1C33209吞吐量大為提高。S1C33209比常規(guī)MCU有更快的運算速度及可靠的性能、可重復(fù)編程的結(jié)構(gòu),使得精簡的TCP/IP能夠在其中可靠運行。
1 硬件平臺結(jié)構(gòu)及設(shè)計
信息家電遠程訪問時,通信數(shù)據(jù)量不大,10M以太網(wǎng)的通信速率即可滿足要求;其次信息家電對實時性的要求不高,可定位在秒級。
在這種情況下,構(gòu)造了家電網(wǎng)絡(luò)硬件平臺服務(wù)器S1C-WebServer,其結(jié)構(gòu)如圖1所示。S1C33-WebServer主要由三部分組成,即S1C33209微處理器、RTL8019AS全雙工以太網(wǎng)控制器(RealTek公司出品,100腳的TQFP封裝,最大速率10Mbps,自帶16KB的SRAM,工作在Ethernet II和IEEE802.3、10Base5、10Base2、10BasetT下,全雙工,支持8位與16位數(shù)據(jù)總線,與NE2000兼容)、可擦寫Flash(采用Intel的E28F320,容量為4MB)??紤]到Flash的擦寫在程序調(diào)試中不太方便,所以為S1C33209外圍擴展512KB的SDRAM。在S1C33209中,運行用戶程序和S1C33-Stack。在Flash中,存放S1C-WebServer的各種Web資源信息,綜可處理Web頁面、圖像文件等,與PC機上WebServer中的硬盤可以存儲大量的不同頁面。Flash的容量決定了WebServer的資源文件的大小。RTL9019AS是Ethernet控制器,負責(zé)S1C33209與Ethernet的數(shù)據(jù)傳遞。在信息家電已具備RS232或相關(guān)標(biāo)準(zhǔn)接口的條件下,使用家庭自動化總線HAB(Home Automation Bus)作為S1C33-WebServer與家庭網(wǎng)絡(luò)協(xié)議SHNP(Simple Home Networks Protocol)。家電通過RS232接口與S1C33-WebServer連接,經(jīng)由EEthernet接入Internet。
經(jīng)過分析,S1C33209與RTL8019AS讀寫時序是兼容的,而且MCU的讀寫時延比RTL8019AS小得多。MCU與RTL8019AS的連接如圖2所示。RTL8019AS的工作電壓為5V,而S1C33209的工作電壓為3.3V,所以RTL8019AS的數(shù)據(jù)線輸出需要電平的轉(zhuǎn)換。選用2個8位(采用16位數(shù)據(jù)總線)的具有雙向數(shù)據(jù)傳輸功能的74HC245來完成,由于S1C33209的輸出電平符合RTL8019AS輸入電平的要求,所以地址線可以直接相連,而不需電平轉(zhuǎn)換,RTL8019AD中斷信號(INT0)為高電平有效,在S1C33209中選用端口中斷輸入的K60端口與之相連。由于S1C33209的中斷有效方式(高、低電平或脈沖)可以根據(jù)對寄存器的設(shè)置調(diào)節(jié)),所以不用對INT0作反向或電平轉(zhuǎn)換。
2 精簡TCP/IP協(xié)議棧的實現(xiàn)
構(gòu)建的S1C33-Stack運行在以S1C33209嵌入式CPU為基礎(chǔ)的硬件平臺上,是一組可配置的多種Internet協(xié)議的組成。這些協(xié)議按照分層協(xié)議棧的方式組織,包括應(yīng)用層的HTTP、DHCP、SMTP,傳輸層的TCP、UDP,網(wǎng)絡(luò)層的IP/ICMP、ARP,通過鏈路層和物理層(如Ethernet)進行數(shù)據(jù)的交互。S1C33-Stack的結(jié)構(gòu)模型如圖3所示。S1C33-Stack利用S1C33的高速處理能力處理TCP/IP數(shù)據(jù)包,避免了在有限容量的RAM中緩存大量數(shù)據(jù),使得控制器可以處理比內(nèi)部RAM總線更多的數(shù)據(jù)包。利用嵌入的S1C33-Stack,Webserver能通過Hypertext Transfer Protocol(HTTP)與任何瀏覽器通信,能夠提供各種類型的資源,如HTML、圖片文件等。這些資源可以使用一種特殊的文件系統(tǒng)URI,被存放在容量為4MB的Flash中。這種文件系統(tǒng)可包含任意多的目錄,對URL的長度也沒有限制。
考慮到嵌入式系統(tǒng)的可用資源有限,在此采用經(jīng)過裁減的TCP/IP協(xié)議?!猽IP。uIP協(xié)議主要包括TCP/IP協(xié)議組中的四個基本的協(xié)議:ARP、IP、ICMP、TCP。鏈路層協(xié)議,如PPP,則作為設(shè)備驅(qū)動在uIP底層實現(xiàn)。應(yīng)用層協(xié)議,如HTTP、FTP、SMTP則作為應(yīng)用程序在uIP上層實現(xiàn)。
(1)地址解析協(xié)議ARP
該協(xié)議將IP地址映射成以太網(wǎng)MAC地址。在uIP中,ARP的執(zhí)行依靠維持一張表來完成IP地址和MAC的地址的映射。當(dāng)有一個IP數(shù)據(jù)包要發(fā)送到以太網(wǎng)上時,從ARP表中查詢相應(yīng)的MAC地址。如果在ARP表中找不到IP地址則送出相應(yīng)的ARP請求。當(dāng)目的主機收到ARP請求報文后,發(fā)送ARP REPLY報文將請求的MAC地址送出。當(dāng)收到ARP REPLY后,ARP表被更新。每隔10s,ARP表就被新新一次,舊的ARP表項將被刪除。每個ARP表項的生存周期是20min。
(2)網(wǎng)間協(xié)議IP
在uIP中,IP層的代碼有兩個功能:驗證到來的IP報文報頭的正確性,并且對TCP和ICMP報文實行分流。因為不考慮IP的分片和重組,uIP中IP層的代碼非常的精簡。
(3)網(wǎng)間報文控制協(xié)議ICMP
在uIP中,僅有一種類型的ICMP信息被實現(xiàn):ICMP ECHO主要用于應(yīng)用程序ping,檢查網(wǎng)絡(luò)是否連通。在uIP中,ICMP ECHO通常以一種很簡單的方式進行處理;將ICMP類型由“ECHO”改為“REPLY”,同時調(diào)整ICMP校驗,交換發(fā)送方和接收方的IP地址。
(4)傳送控制協(xié)議TCP
為了減少對內(nèi)存的使用,在uIP中,TCP并不使用滑動窗口來接收和發(fā)送數(shù)據(jù),到達的TCP報文并不進行緩沖而是立刻交給應(yīng)用程序處理。但是應(yīng)用程序本身可以對要發(fā)送的程序本身可以對要發(fā)送的數(shù)據(jù)進行緩沖,因為每次連接中通常有若干的TCP報文要發(fā)送。uIP網(wǎng)絡(luò)通信模塊結(jié)構(gòu)如圖4所示。
網(wǎng)絡(luò)通信需要要底層RTL8019AS驅(qū)動程序的支持,參考RTL8019AS與S1C33209的資料說明文檔,編寫出針對此系統(tǒng)的RTL8019AS驅(qū)動。
uIP并不緩存到達的數(shù)據(jù)包,當(dāng)網(wǎng)絡(luò)上有數(shù)據(jù)包(在這里專指出太幀)到達網(wǎng)卡時,網(wǎng)卡驅(qū)動程序?qū)捍嬖诰W(wǎng)卡緩存中的數(shù)據(jù)包,一次一個的以DMA形式傳送到目標(biāo)板上的RAM中。這時將會有一段代碼將到達目標(biāo)板RAM中的數(shù)據(jù)包復(fù)制到全局數(shù)組uip_buf[]中,uIP協(xié)議棧程序隨后對uip_buf[]中的數(shù)據(jù)進行操作。
當(dāng)上層應(yīng)用程序或協(xié)議棧程序產(chǎn)生了向網(wǎng)絡(luò)上發(fā)送的數(shù)據(jù)包時,也將數(shù)據(jù)包放入uip_buf[]。然后調(diào)用網(wǎng)卡驅(qū)動程序,將uip_buf[]中的數(shù)據(jù)讀到網(wǎng)卡的緩存中,隨后發(fā)送到網(wǎng)絡(luò)中。
在此要說明一下協(xié)議棧與網(wǎng)卡驅(qū)動程序、應(yīng)用程序之間的同步機制問題。在系統(tǒng)初始化的時候,通過操作系統(tǒng)提供的系統(tǒng)調(diào)用vcre_tsk()創(chuàng)建三個任務(wù):任務(wù)一(task1),uIP協(xié)議棧;任務(wù)二(task2),家電監(jiān)控程序;任務(wù)三(idle_task),空閑任務(wù)。而網(wǎng)卡驅(qū)動程序則作為硬件中斷,由“檢測到網(wǎng)絡(luò)上傳過來數(shù)據(jù)包”事件激發(fā)。
整個協(xié)議棧程序流程圖如圖5所示。
任務(wù)一的優(yōu)先級最高,任務(wù)二次之,任務(wù)三的優(yōu)先級最低。當(dāng)系統(tǒng)開始運行時,任務(wù)一首先進入RUN狀態(tài),在任務(wù)一中加入系統(tǒng)調(diào)用wai_flg(),由于沒有網(wǎng)絡(luò)請求,任務(wù)一隨后進入WAIT狀態(tài)。此時任務(wù)二進入RUN狀態(tài)。當(dāng)網(wǎng)絡(luò)上有數(shù)據(jù)包到達,網(wǎng)卡驅(qū)動程序作為硬件中斷開始執(zhí)行。在退出中斷前,通過系統(tǒng)調(diào)用set_flg(),將任務(wù)一期望的標(biāo)志位置位。當(dāng)中斷返回后,由于任務(wù)一的等待條件已經(jīng)滿足,任務(wù)一的優(yōu)先級又高于任務(wù)二,因此任務(wù)一進入RUN狀態(tài),即uIP協(xié)議開始處理數(shù)據(jù)。如果網(wǎng)絡(luò)上一直有數(shù)據(jù)包到達,則任務(wù)一和中斷程序不斷的切換。當(dāng)網(wǎng)絡(luò)任務(wù)完成,返回到任務(wù)二的斷點處繼續(xù)向下執(zhí)行。
由于uIP不緩存網(wǎng)絡(luò)數(shù)據(jù),因此在任務(wù)一執(zhí)行的過程中,即uip_buf[]正在作時,將關(guān)閉所有中斷。這樣可以避免數(shù)據(jù)包被破壞,缺點是實時性差了一些,但是滿足本系統(tǒng)要求。
3 操作系統(tǒng)
本系統(tǒng)使用的操作系統(tǒng)是由EPSON公司提供的ROS33V31。ROS33是為S1C33系列MCU提供的一種嵌入式實時操作系統(tǒng),符合uITRON 3.0標(biāo)準(zhǔn)。使用ROS33可以迅速、有效地開發(fā)針對打印機、PDA以及各類控制設(shè)備的嵌入式應(yīng)用程序。
ROS33具有以下特點:
*支持uITRON 3.0標(biāo)準(zhǔn)——符合該標(biāo)準(zhǔn)的S級*最大任務(wù)數(shù)為255,采用優(yōu)先級調(diào)度機制,支持9種不同的優(yōu)先級,提供信號燈、郵箱、消息緩沖等多種通信機制:
*內(nèi)核優(yōu)先并緊湊——最小可為1.7K;
*響應(yīng)快——最快調(diào)度響應(yīng)時間為7.8μS(CPU主頻為33MHz,下同),最大中斷屏蔽時間為4.3μs ;
*高級語言支持——除匯編語言外,還支持基于ANSI標(biāo)準(zhǔn)的C語言編程。
注釋:μITRON將系統(tǒng)功能分成四級。R級(必要級)只提供包括實時、多任務(wù)OS所需的基本系統(tǒng)調(diào)用;S級(標(biāo)準(zhǔn)級)提供所有標(biāo)準(zhǔn)的系統(tǒng)調(diào)用;E級(擴展級)包括附加的和擴展的系統(tǒng)功能;C級(CPU依賴級)的系統(tǒng)功能依賴于具體的CPU和系統(tǒng)實現(xiàn)方式。
ROS33基本內(nèi)核按功能劃分為6大部分:
*任務(wù)管理——負責(zé)系統(tǒng)中任務(wù)狀態(tài)的變遷;
*任務(wù)相關(guān)的同步管理——通過睡眠/喚醒、掛起/解掛等操作,處理相關(guān)任務(wù)及任務(wù)之間的同步關(guān)系;
*同步與通信——通過信號燈、事件、郵箱等通信機制,實現(xiàn)獨立任務(wù)之間的同步與通信;
*系統(tǒng)管理——對系統(tǒng)環(huán)境的管理;
*時鐘管理——日歷時鐘、定時器、定時任務(wù)等的管理;
*中斷管理——開/關(guān)中斷。
圖6給出了ROS33內(nèi)核的概念模型。
4 Web服務(wù)器及上層應(yīng)用程序框架
WEB服務(wù)器所采用的方式稱為uip_connect,比通常在設(shè)計中所使用的Socket套接字更適合于嵌入式系統(tǒng)下面即是WEB服務(wù)器的大體框架。
#include<uip.h>
void http_listen_init(void){
uip_listen(80);
} //http listen初始化
void listen_init(void){
http_listen_init();
}
void application(void){
if(uip_connected()) //如果當(dāng)前的連接狀態(tài)為connected
switch (uip_conn->lport){
case htons(80):
httpd; //如果80 PORT有數(shù)據(jù)到達,則調(diào)用HTTP處理HTML文件的傳送
}
}
首先,服務(wù)器與客戶機建立連接,再通過偵聽端口80,判斷是否有客戶請求到達,若有則將調(diào)用應(yīng)用程序httpd進行相應(yīng)處理,否則,繼續(xù)偵聽。Httpd是用于處理HTTP請求的應(yīng)用程序,具體設(shè)計在協(xié)議棧uIP中有描述。uip.h是協(xié)議uIP的一個頭文件。
在應(yīng)用軟件上實現(xiàn)簡單WEB服務(wù)器功能,其主要由兩個模塊構(gòu)成:一是用戶登陸模塊;二是家電監(jiān)控模塊。用戶登陸模塊需要解決用戶的合法性檢查,即接收用戶輸入的用戶名和密碼,進行校驗,合法則進入家單監(jiān)控頁面,非法則發(fā)出警告頁面。家電監(jiān)控模塊針對各家電的硬件情況,收集信息家電的狀態(tài)碼,并通過網(wǎng)頁形式顯示。
在兩個模塊中,有一部分相似的處理,即對輸入的數(shù)據(jù)進行解析?,F(xiàn)在定義數(shù)組htmlinputs來存放解析后的信息。對表單輸入的數(shù)據(jù)進行解析后,將其name值和value值分別存放在htmlinput_struct.name和htmlinput_struct.value里,便于以后的處理。變量htmlinputcount存放表單里輸入變量的個數(shù)。定義如下:
struct htmlinput_struct htmlinputs[100];
int htmlinputcount=0;
除此外,定義函數(shù)get_inputs()和translate()對輸入的數(shù)據(jù)進行處理。
Int get_inputs();//將從表單輸入的數(shù)據(jù)分別裝到對應(yīng)的name/value數(shù)據(jù)隊中
Void translate(char*sourcestr);//解讀編碼URL字符
具體程序代碼在此就不再多述。
整個上層應(yīng)用程序的流程圖如圖7所示。
篇10
>> 可以損害硬盤的幾款軟件 衛(wèi)星數(shù)字機的自動搜索功能 附:女巫的黑豆 技術(shù)驅(qū)動搜索營銷 一款實用的桌面端全文搜索工具:FileSearchy 搜索信息與下載文件 實時搜索將成新的搜索戰(zhàn)場 軟件搜索下載 我要快 專業(yè)搜索下載快快快 基于全文搜索的中文自動答疑系統(tǒng)設(shè)計實現(xiàn) 搜索營銷與SEO 搜索你的成績 搜索營銷的細節(jié) 搜索的眼睛 企業(yè)搜索的未來 中國的“搜索之王” 《搜索》:時代的鏡像 網(wǎng)上的整合搜索 搜索的是愛 媽媽的“搜索雷達” 常見問題解答 當(dāng)前所在位置:
軟件主頁:http:///
軟件授權(quán):免費版
軟件大?。?4417KB
驅(qū)動精靈利用先進的硬件檢測技術(shù),配合驅(qū)動之家近十年的驅(qū)動數(shù)據(jù)庫積累,能夠智能識別你的計算機硬件,匹配相應(yīng)驅(qū)動程序并提供快速的下載與安裝。你可以毫不在乎你的計算機硬件配置,徹底扔掉驅(qū)動程序光盤,忘記那些你根本也不想去了解的廠商和驅(qū)動網(wǎng)站,把驅(qū)動程序的安裝與升級交給驅(qū)動精靈來搞定。驅(qū)動精靈正式獲得“微軟Windows 7徽標(biāo)計劃”認證,兼容性和穩(wěn)定性全部符合計劃要求。
2 超級兔子驅(qū)動天使
最新版本:超級兔子驅(qū)動天使(完整版)2.75
華軍下載:/soft/75575.htm
軟件主頁:/
軟件授權(quán):免費版
軟件大小:28687KB
超級兔子驅(qū)動天使是一款功能強大的驅(qū)動下載安裝利器,可以自動識別當(dāng)前計算機硬件的驅(qū)動信息,一鍵安裝所有驅(qū)動。安裝驅(qū)動過程中,你無需任何驅(qū)動光盤,不用知道設(shè)備型號,它會自動檢測設(shè)備品牌型號,方便快捷地為你安裝設(shè)備驅(qū)動。它具備全面安全的驅(qū)動備份和還原功能,讓你無后顧之憂,即使安裝錯誤,也可以輕松恢復(fù)。
3 驅(qū)動人生
最新版本:驅(qū)動人生2.26 build 2030
華軍下載:/soft/84181.htm
軟件主頁:/
軟件授權(quán):免費版