網路驅動移植之簡述CS8900A網路晶元的基本原理

2021-09-07 09:23:20 字數 1454 閱讀 4592

cs8900a資料手冊:

1、概述

cs8900a是cirrus logic公司生產的低功耗、效能優越的16位乙太網控制器,整合了以下五大功能模組:

(1)、帶24毫安驅動的直接isa匯流排介面,可選擇配置4個中斷號和3個dma通道。

(2)、片內4k位元組ram,是cs8900a網路晶元的控制暫存器和資料收發緩衝器,可工作在記憶體對映模式、i/o埠模式或者擴充套件的dma模式下。

(3)、mac engine,完全相容ieee 802.3乙太網標準(iso/iec8802-3,1993),主要負責處理乙太網資料幀的傳送和接收,包括衝突檢測、資料幀頭的產生和檢測,crc校驗碼的生成和驗證,以及衝突自動重傳等功能。

(4)、序列eeprom控制器,可直接外接eeprom晶元,用於儲存相關配置資訊,並且這些配置資訊在啟動時能被自動載入cs8900a。

(5)10base-t濾波收發器以及適用於10base-2、10base-5和10base-fl等三種乙太網型別的aui收發器。

cs8900a的內部結構圖如下:

2、片上4k位元組ram的對映模式

(1)、片上4kb記憶體(被稱作packetpage)其實質是控制cs8900a執行的各種暫存器(注意它們的位數並不一樣,不像s3c2410裡的暫存器都是32位的),這些暫存器被分為五類,詳情請參考以下各表(第1列是暫存器在ram中的偏移位址,第2列是暫存器的大小,第3列是暫存器的操作許可權,第4列是暫存器的功能說明)。

匯流排介面暫存器:

狀態/控制暫存器:

其中包含16個配置/控制暫存器(每個暫存器16位)和16個狀態/事件暫存器(每個暫存器16位)。

傳送引數暫存器:

資料幀收發暫存器:

cs8900a接收的資料幀就臨時存放在以0x0404開始的位置,將要傳送的資料幀就被臨時存放在以0x0a00開始的地方。

關於這些暫存器的作用及其每位的詳細說明請參考cs8900a的資料手冊。

(2)、記憶體對映模式

當cs8900a被配置為記憶體對映模式時,片上4kb記憶體被直接對映到主機記憶體乙個連續的4kb區域中,這樣主機就可以像使用自己的記憶體一樣直接使用這個片上4kb記憶體。舉例,如下圖(memory base address暫存器設為0):

(3)、i/o對映模式(預設模式)

當cs8900a被配置為i/o模式時,主機只能通過8個被對映到主機i/o空間的16位的i/o埠來間接地訪問片上4kb記憶體。s3c2410沒有所謂的i/o空間,所以這8個16位i/o埠也被對映到其cpu可直接訪問的記憶體空間中。舉例,如下圖:

在i/o模式下,cpu可以直接訪問這8個16位的i/o埠,但訪問片上4kb記憶體時只能通過packetpage pointer和packetpage data(port 0用於16位資料,和port 1一起可用於32位資料)等埠間接地訪問。例如,先把片上4kb記憶體上的偏移位址0x0120寫入packetpage pointer埠,然後就可以通過packetpage data埠讀寫0x0120這個暫存器。

網路驅動移植之簡述CS8900A網路晶元的基本原理

cs8900a資料手冊 1 概述 cs8900a是cirrus logic公司生產的低功耗 效能優越的16位乙太網控制器,整合了以下五大功能模組 1 帶24毫安驅動的直接isa匯流排介面,可選擇配置4個中斷號和3個dma通道。2 片內4k位元組ram,是cs8900a網路晶元的控制暫存器和資料收發緩...

cs8900網絡卡驅動簡要解析 4

我們最初分析的函式是 cs8900 init 並由此展開,跟蹤到了 cs8900 probe cs8900 read cs8900 write 等,現在收回來,還是回到 cs8900 init中。在 cs8900 init 裡找到如下一行 ndev open cs8900 start 如果你之前了解...

cs8900網絡卡驅動簡要解析 7

上一次講的cs8900 receive函式是在中斷處理函式中呼叫的,也就是當中斷到來,如果判斷出是資料接收情況,則通過這個函式進行資料接收。那麼如果中斷是由於其他事件觸發的呢,當然就需要其他 了,不過那些 並不難,大家自己看就是了。中斷的內容講完後,cs8900 start函式也算告一段落,我們回到...