| 由于網(wǎng)絡(luò )技術(shù)的飛速發(fā)展,網(wǎng)卡在計算機內部輸入輸出的總線(xiàn)位數己由8位提高到16位、32位乃至64位,網(wǎng)絡(luò )端口的數據速率也由10Mbps升至 100Mbps,1Gbps。但網(wǎng)卡的基本功能仍然是:提供與站點(diǎn)主機的接口電路,數據緩存器的管理,數據鏈路管理,編碼和譯碼以及網(wǎng)絡(luò )信息的收發(fā)。上述功能在網(wǎng)卡內由不同的模塊完成,盡管實(shí)現時(shí)都己集成在一片或幾片集成電路中了。圖2-20是描述以太網(wǎng)卡各模塊之間關(guān)系的結構原理圖?!?br> 圖2-20中的接口控制器是一塊門(mén)陣列芯片,包含著(zhù)網(wǎng)卡的多個(gè)端口寄存器和相應的控制電路。網(wǎng)卡板上設置了相當容量的收發(fā)緩存器,其作用十分重要。數據鏈路控制器EDLC是執行鏈路層協(xié)議CSMA/CD的核心部件?!?br> (1)接口控制器
接口控制器負責網(wǎng)卡和主機的信息交互,同時(shí)也負責網(wǎng)卡上各個(gè)模塊的協(xié)調和管理。因此,站點(diǎn)接口控制器電路包含兩部分,一部分是提供與站點(diǎn)主機相連的匹配電路,另一部分是網(wǎng)卡的卡內控制電路,從而能接收、解釋和執行來(lái)自主機的控制命令,進(jìn)行端口地址的譯碼,實(shí)現數據在I/O總線(xiàn)上的雙向傳送。從主機角度看,網(wǎng)卡是它的一個(gè)外設,所以主機通過(guò)I/O總線(xiàn)對網(wǎng)卡進(jìn)行控制。相對應的是接口控制器內包含多個(gè)寄存器和鎖存器,如網(wǎng)卡控制命令寄存器和狀態(tài)寄存器等,負責網(wǎng)卡與主機交換命令、狀態(tài)、地址和數據?!?br> (2)地址緩存計數器ARC1
地址緩存計數器存放了主機讀寫(xiě)數據的地址。當主機要從網(wǎng)卡數據緩存器中讀寫(xiě)數據時(shí),采用兩種方式,一種方式是程序讀寫(xiě),主機CPU先把讀寫(xiě)首地址寫(xiě)入ARC1,然后用IN/OUT命令讀寫(xiě)。CPU每讀一個(gè)單元,ARC1自動(dòng)加1,指向數據緩存器下一單元地址
另一種方式是直接存儲器存取(DMA)方式。這時(shí),主機的DMA控制器將一路通道分配給網(wǎng)卡,作為網(wǎng)卡數據的輸入/輸出通道。主機把網(wǎng)卡數據緩存器的首地址寫(xiě)入ARC1,在DMA控制電路配合下,使主機內存與網(wǎng)卡數據緩存器的直接成塊地交換數據。ARC1還用作數據鏈路控制器(EDLC)的地址指針寄存器。當EDLC向網(wǎng)上發(fā)送數據幀時(shí),也從數據緩存器讀取數據,每發(fā)送一個(gè)單元,ARC1就自動(dòng)加1?!?/font>
(3)地址鎖存計數器(ARC2)
數據鏈路控制器是網(wǎng)卡向網(wǎng)絡(luò )收發(fā)數據的控制中心,當EDLC從網(wǎng)上接收數據幀時(shí)ARC2是EDLC的計數器,每接收一個(gè)單元,ARC2加1。ARC2R 的初值必須置為0,即收到的數據必須從數據緩存器0單元開(kāi)始存放。若接收過(guò)程正常完成,則ARC2中存放的是接收數據的實(shí)際長(cháng)度。若接收過(guò)程出錯,EDLC將 ARC2清零,后面數據的接收仍然從數據緩存器0單元開(kāi)始存放?!?br> (4)網(wǎng)卡控制命令寄存器(LCC)和狀態(tài)寄存器(LCS)
LCC是一個(gè)8位寄存器,用于存放主機發(fā)至網(wǎng)卡的控制命令。主機直接把命令寫(xiě)在LCC中,以實(shí)現主機對網(wǎng)卡的控制。接口控制器將讀取、解釋和執行這些命令?!?br> LCS是一個(gè)8位寄存器,用來(lái)存放網(wǎng)卡的各種工作狀態(tài),例如發(fā)送狀態(tài)、接收狀態(tài)、測試狀態(tài)、DMA傳輸狀態(tài)、中斷狀態(tài)等。接口控制器根據網(wǎng)卡的當前狀態(tài)填寫(xiě)LCS,主機可以直接讀取LCS的狀態(tài)內容,了解網(wǎng)卡的工作情況?!?br> LCC和LCS是一對雙向交互的寄存器,構成了主機和網(wǎng)卡間的控制信息通道?!?br> (5)網(wǎng)卡站地址寄存器(REA)
網(wǎng)卡站地址寄存器存放了網(wǎng)卡和站地址。以太網(wǎng)中的站點(diǎn),都有一個(gè)標識自己的6B的站地址。站地址是惟一的,無(wú)論是網(wǎng)卡,還是交換機、路由器的站地址,沒(méi)有一個(gè)設備具有相同的物理地址。站地址又稱(chēng)為物理地址,前三個(gè)字節由IEEE統一分配給各家廠(chǎng)商,后三個(gè)字節由廠(chǎng)商自行編號,發(fā)送時(shí)它是源地址,接收時(shí)它就是目標地址。有了REA后,在收發(fā)過(guò)程中就可以隨時(shí)讀取站地址了?!?br> (6)數據緩沖器
網(wǎng)卡中的數據緩沖存儲器是主機與網(wǎng)卡交換數據的中轉站。這是一個(gè)雙向存儲器,主機通過(guò)程序方式或DMA方式對數據緩存器進(jìn)行讀寫(xiě),同時(shí)網(wǎng)卡向網(wǎng)絡(luò )收發(fā)數據時(shí)也要從數據緩存器讀寫(xiě)數據。后者的操作由EDLC直接控制緩存器進(jìn)行快速收發(fā),在此期間,不允許主機訪(fǎng)問(wèn)數據緩存器,以確保EDLC能在規定時(shí)間內讀寫(xiě)數據緩存器RAM。這樣,網(wǎng)絡(luò )上的數據收發(fā)一方面不需要主機的直接干預,同時(shí)也不會(huì )產(chǎn)生斷流或溢出,保證了CSMA/CD協(xié)議的實(shí)現。網(wǎng)卡數據緩存器的容量一般在64K字節以上。
(7)數據鏈路控制器(EDLC)
數據鏈路控制器是一個(gè)大規模集成電路芯片,基本實(shí)現了CSMA/CD媒體接入協(xié)議。EDLC按工作流程可分為數據幀發(fā)送和數據幀接收兩部分?!?br> 在數據幀發(fā)送過(guò)程中,EDLC的第一件工作是組織幀。EDLC先將來(lái)自主機的數據包中的目標地址、源地址、類(lèi)型及數據信息放入數據緩存器的發(fā)送RAM中,而發(fā)送之前自動(dòng)傳輸64位前導碼,使網(wǎng)絡(luò )接口電路達到穩定狀態(tài),并在數據信息之后加上32位CRC校驗碼,準備好發(fā)送內容。數據緩沖接口部分有一個(gè)先進(jìn)先出 (FIFO)的16字節發(fā)送器隊列。發(fā)送器從數據緩存器逐字節讀取數據,然后利用串并轉換器把字節轉成串行位流后逐位發(fā)送?!?br> 在數據發(fā)送之前和發(fā)送過(guò)程中,EDLC隨時(shí)執行載波偵聽(tīng),按照CSMA/CD的協(xié)議要求“先聽(tīng)后說(shuō)”和“邊說(shuō)邊聽(tīng)”。在開(kāi)始發(fā)送之前,EDLC至少要等待9.6μs時(shí)間,確定網(wǎng)絡(luò )上無(wú)其他站點(diǎn)在發(fā)送,才開(kāi)始發(fā)送,這就是載波偵聽(tīng)。在發(fā)送過(guò)程中,如果發(fā)現有其他站點(diǎn)發(fā)送,EDLC自動(dòng)停止FIFO內容的發(fā)送,立即發(fā)出一個(gè)32位長(cháng)的010101序列阻塞位串,以強化**,使所有站點(diǎn)都能檢測到**的存在。同時(shí),EDLC告訴主機數據幀發(fā)送時(shí)發(fā)送**,需等待一段隨機時(shí)間后,再重新發(fā)送。主機接到請求后執行后退算法,隨機等待一段時(shí)間,再重新啟動(dòng)發(fā)送。若一個(gè)數據信息字段傳送完畢,EDLC在最后一個(gè)字節送入FIFO后,發(fā)出32位CRC校驗碼。整個(gè)數據幀發(fā)送完畢,即修改發(fā)送狀態(tài)寄存器?!?br> 在EDLC數據接收部分,EDLC通過(guò)譯碼器接口輸入端隨時(shí)監聽(tīng)網(wǎng)絡(luò )狀態(tài)。在網(wǎng)絡(luò )平靜狀態(tài)下,當收到一個(gè)串行位流是連續的62位“010101”花樣的位串后接著(zhù)是兩位連續的“1”時(shí),這表示了另外一站點(diǎn)發(fā)送的前導碼。為了使譯碼器產(chǎn)生鎖相實(shí)現同步,EDLC等待8位時(shí)間才尋找“11”,即前導碼的最后兩位。如果收到的不是“11”,則不是正確的數據幀,不接收后面的數據。如果收到了最后兩位“11”,則說(shuō)明收到了正確的前導碼,并繼續接收數據幀的數據。接下來(lái)收到的應該是目標地址,由EDLC的地址檢查器檢查是否與REA中的地址值匹配如果地址不匹配,則說(shuō)明是發(fā)往其他站點(diǎn)的數據幀,立即停止接收數據操作;如果目標地址與本站地址相同,則繼續接收發(fā)給本站的數據,執行串并轉換,送往接收緩沖隊列FIFO。當EDLC收完一個(gè)數據幀后,再進(jìn)行CRC校驗。如果校驗不正確,則取消收到的 數據緩沖區中的數據幀;如果校驗正確,則設置狀態(tài)寄存器中有關(guān)接收狀態(tài)的各位。最后 EDLC發(fā)出接收結束信號,清除DMA接收控制,并發(fā)出INT信號通知主機接收己完成?! ?br> (8)曼切斯特編碼譯碼器
以太網(wǎng)卡采用曼徹斯特編碼技術(shù)對發(fā)送的數據進(jìn)行編碼后再發(fā)送,接收方收到數據信息后需譯碼還原。網(wǎng)卡上由編碼譯碼器實(shí)現編碼和譯碼功能。編碼的目的是為了有效地實(shí)現**檢測和載波監聽(tīng),有利于數據信號在線(xiàn)路上的正確傳送,有利于收發(fā)雙方保持同步。
|