采用8位單片機驅(qū)動PCI總線網(wǎng)卡的設(shè)計方案
發(fā)布時間:2007/8/29 0:00:00 訪問次數(shù):787
目前,以太網(wǎng)(Ethernet)協(xié)議已經(jīng)非常廣泛地應(yīng)用于各種計算機網(wǎng)絡(luò),如辦公局域網(wǎng)、工業(yè)控制網(wǎng)絡(luò)、因特網(wǎng)等場合,并且還不斷地在發(fā)展。單片機或微控制器(MCU)(也稱為嵌入式系統(tǒng))已經(jīng)在各個領(lǐng)域得到了廣泛的應(yīng)用。目前絕大多數(shù)系統(tǒng)都是以MCU為核心,與監(jiān)測、伺服、指示設(shè)備配合實現(xiàn)一定的功能。如果嵌入式系統(tǒng)能夠連接到Internet,則可以方便、低廉地將信息傳送到世界上的任何一個地方。因此單片機如何控制以太網(wǎng)網(wǎng)卡進行傳輸數(shù)據(jù),如何加載TCP/IP協(xié)議連接到互聯(lián)網(wǎng),這些都是一些具有挑戰(zhàn)性的問題[1,2]。單片機上網(wǎng)研究最多的一個方案就是用單片機驅(qū)動ISA總線網(wǎng)卡或者是驅(qū)動基于ISA總線的以太網(wǎng)控制芯片。但是,近年來,隨著ISA總線在臺式電腦上的消失(PC98以后的標(biāo)準(zhǔn)已經(jīng)取消了ISA總線),ISA總線的設(shè)備也不斷減少,而且很多生產(chǎn)ISA網(wǎng)卡芯片的廠家已經(jīng)停止生產(chǎn)ISA網(wǎng)卡芯片。在計算機上,多數(shù)設(shè)備用的是PCI總線,因此如何制造低成本的PCI總線的以太網(wǎng)接口設(shè)備,如何用單片機來驅(qū)動PCI總線網(wǎng)卡,已成為目前計算機工業(yè)控制系統(tǒng)的燃眉之急。然而用只有16位地址總線、8位數(shù)據(jù)端口的8位單片機來直接驅(qū)動有32位地址數(shù)據(jù)復(fù)用總線及其他各種信號線的PCI總線網(wǎng)卡,幾乎是不可能的。
為此,本文中采用PCI 9054接口芯片作為溝通單片機與PCI設(shè)備間的橋梁,設(shè)計實現(xiàn)了單片機與PCI網(wǎng)卡間的可靠通信任務(wù),并提供了主要硬件接口電路和主要程序原代碼。
1 PCI9054芯片介紹
1.1 PCI9054主要特性
PCI9054是由美國PLX公司生產(chǎn)的先進的PCI I/O加速器,他采用了先進的PLX數(shù)據(jù)管道結(jié)構(gòu)技術(shù)。符合PCIV2,2規(guī)范的32 位33 MHz總線主控接口控制器可獲得高達(dá)132 Mb/s的PCI突發(fā)傳輸速度。通用總線主控接口配備先進的數(shù)據(jù)流水線架構(gòu)(Data Pipe Architecture(tm)),包含2個DMA引擎,可編程目標(biāo)、起始器數(shù)據(jù)傳輸模式和PCI信息傳輸?shù)裙δ堋?
1.2 PCI9054本地總線工作模式介紹
PCI9054芯片連接的本地端總線有3種工作模式:M模式、C模式和J模式。可利用模式選擇引腳加以選擇,其中C模式時序較為簡單。為此,本方案設(shè)計選擇PCI 9054工作在C模式。當(dāng)PCI9054工作在C模式時,其數(shù)據(jù)傳輸采用直接數(shù)據(jù)傳輸方式,按數(shù)據(jù)傳輸?shù)目刂品绞剑址譃?種傳輸模式,如表1所示。
本方案設(shè)計采用PCI初始化器模式,通過本地端的單片機來控制PCI9054芯片,然后通過PCI9054芯片來驅(qū)動PCI總線上的網(wǎng)卡,在這里PCI9054芯片就象一個橋梁,連接了2個不同的總線設(shè)備。其讀寫工作原理如圖1所示。
1.3 PCI9054寄存器簡介
PCI9054內(nèi)部提供了5種寄存器:PCI配置寄存器,本地端配置寄存器,運行時間RUNTIME寄存器,DMA寄存器和I2O信息寄存器。在本方案設(shè)計中,我們主要用到2種配置寄存器:PCI配置寄存器和本地端配置寄存器,下面對這2種寄存器的功能做簡要介紹。
PCI配置寄存器也就是我們常說的PCI配置空間,他提供了配置PCI的一些信息。其中VenderID,DeviceID,RevisionID,HeaderType,ClassCode用于PCI設(shè)備的識別。命令寄存器(Command)包含設(shè)備控制位,包括允許存儲器讀寫響應(yīng)等。狀態(tài)寄存器(Status)用于記錄PCI總線的相關(guān)事件。PCI配置寄存器提供了6個基地址寄存器,這些基地址都是在系統(tǒng)中的物理地址范圍內(nèi),其中BASE0和BASE1都是用來訪問其他配置寄存器的基地址,BASE1是其他配置寄存器映射到PCI端內(nèi)存的基地址,BASE2是其他寄存器映射到PCI端I/O的基地址。所以可以通過PCI端內(nèi)存和PCI端I/O來訪問LOCAL配置寄存器與其他3種寄存器。BASE2~5四個空間提供了訪問本地端所接的4個芯片(當(dāng)然可以少于4個),他們將本地端的芯片通過本地端地址(在LOCAL配置寄存器中設(shè))翻譯成PCI的地址,也就是將本地的芯片映射到系統(tǒng)的內(nèi)存或I/O口。這樣使得用程序操作這一段內(nèi)存(或I/O)實際上就是對本地的芯片操作。
本地端配置寄存器提供了本地端的一些信息,在本方案設(shè)計中,主要是通過配置本地端配置寄存器來將本地端的單片機讀寫指令、周期轉(zhuǎn)換成PCI端的讀寫指令及周期。也就相當(dāng)于將PCI端網(wǎng)卡上的芯片及存儲器映射到本地端,與本地端的存儲器統(tǒng)一編址,這樣單片機只要能訪問本地端的內(nèi)存,那么就能用來訪問PCI總線上的網(wǎng)卡。
PCI9054工作時需要一個配置芯片E?2PROM,以便在PCI卡上電的時候配置PCI 9054,主要配置PCI卡的VendorID和DeviceID,這是系統(tǒng)用來標(biāo)識PCI卡的。另外,還需要了其他寄存器,主要起到了對PCI 9054初始化的作用。其中本地端寄存器也可以由本地CPU讀寫,直接進行配置。
2 RTL8029網(wǎng)卡簡介
RTL8029是符合Ne2000標(biāo)準(zhǔn)的32位PCI總線網(wǎng)卡,遵循IEEE802.3協(xié)議。按功能可將其劃分為:接收功能模塊、CRC產(chǎn)生模塊、發(fā)送功能模塊、地址識別模塊、FIFO控制模塊、協(xié)
目前,以太網(wǎng)(Ethernet)協(xié)議已經(jīng)非常廣泛地應(yīng)用于各種計算機網(wǎng)絡(luò),如辦公局域網(wǎng)、工業(yè)控制網(wǎng)絡(luò)、因特網(wǎng)等場合,并且還不斷地在發(fā)展。單片機或微控制器(MCU)(也稱為嵌入式系統(tǒng))已經(jīng)在各個領(lǐng)域得到了廣泛的應(yīng)用。目前絕大多數(shù)系統(tǒng)都是以MCU為核心,與監(jiān)測、伺服、指示設(shè)備配合實現(xiàn)一定的功能。如果嵌入式系統(tǒng)能夠連接到Internet,則可以方便、低廉地將信息傳送到世界上的任何一個地方。因此單片機如何控制以太網(wǎng)網(wǎng)卡進行傳輸數(shù)據(jù),如何加載TCP/IP協(xié)議連接到互聯(lián)網(wǎng),這些都是一些具有挑戰(zhàn)性的問題[1,2]。單片機上網(wǎng)研究最多的一個方案就是用單片機驅(qū)動ISA總線網(wǎng)卡或者是驅(qū)動基于ISA總線的以太網(wǎng)控制芯片。但是,近年來,隨著ISA總線在臺式電腦上的消失(PC98以后的標(biāo)準(zhǔn)已經(jīng)取消了ISA總線),ISA總線的設(shè)備也不斷減少,而且很多生產(chǎn)ISA網(wǎng)卡芯片的廠家已經(jīng)停止生產(chǎn)ISA網(wǎng)卡芯片。在計算機上,多數(shù)設(shè)備用的是PCI總線,因此如何制造低成本的PCI總線的以太網(wǎng)接口設(shè)備,如何用單片機來驅(qū)動PCI總線網(wǎng)卡,已成為目前計算機工業(yè)控制系統(tǒng)的燃眉之急。然而用只有16位地址總線、8位數(shù)據(jù)端口的8位單片機來直接驅(qū)動有32位地址數(shù)據(jù)復(fù)用總線及其他各種信號線的PCI總線網(wǎng)卡,幾乎是不可能的。
為此,本文中采用PCI 9054接口芯片作為溝通單片機與PCI設(shè)備間的橋梁,設(shè)計實現(xiàn)了單片機與PCI網(wǎng)卡間的可靠通信任務(wù),并提供了主要硬件接口電路和主要程序原代碼。
1 PCI9054芯片介紹
1.1 PCI9054主要特性
PCI9054是由美國PLX公司生產(chǎn)的先進的PCI I/O加速器,他采用了先進的PLX數(shù)據(jù)管道結(jié)構(gòu)技術(shù)。符合PCIV2,2規(guī)范的32 位33 MHz總線主控接口控制器可獲得高達(dá)132 Mb/s的PCI突發(fā)傳輸速度。通用總線主控接口配備先進的數(shù)據(jù)流水線架構(gòu)(Data Pipe Architecture(tm)),包含2個DMA引擎,可編程目標(biāo)、起始器數(shù)據(jù)傳輸模式和PCI信息傳輸?shù)裙δ堋?
1.2 PCI9054本地總線工作模式介紹
PCI9054芯片連接的本地端總線有3種工作模式:M模式、C模式和J模式。可利用模式選擇引腳加以選擇,其中C模式時序較為簡單。為此,本方案設(shè)計選擇PCI 9054工作在C模式。當(dāng)PCI9054工作在C模式時,其數(shù)據(jù)傳輸采用直接數(shù)據(jù)傳輸方式,按數(shù)據(jù)傳輸?shù)目刂品绞,他又分?種傳輸模式,如表1所示。
本方案設(shè)計采用PCI初始化器模式,通過本地端的單片機來控制PCI9054芯片,然后通過PCI9054芯片來驅(qū)動PCI總線上的網(wǎng)卡,在這里PCI9054芯片就象一個橋梁,連接了2個不同的總線設(shè)備。其讀寫工作原理如圖1所示。
1.3 PCI9054寄存器簡介
PCI9054內(nèi)部提供了5種寄存器:PCI配置寄存器,本地端配置寄存器,運行時間RUNTIME寄存器,DMA寄存器和I2O信息寄存器。在本方案設(shè)計中,我們主要用到2種配置寄存器:PCI配置寄存器和本地端配置寄存器,下面對這2種寄存器的功能做簡要介紹。
PCI配置寄存器也就是我們常說的PCI配置空間,他提供了配置PCI的一些信息。其中VenderID,DeviceID,RevisionID,HeaderType,ClassCode用于PCI設(shè)備的識別。命令寄存器(Command)包含設(shè)備控制位,包括允許存儲器讀寫響應(yīng)等。狀態(tài)寄存器(Status)用于記錄PCI總線的相關(guān)事件。PCI配置寄存器提供了6個基地址寄存器,這些基地址都是在系統(tǒng)中的物理地址范圍內(nèi),其中BASE0和BASE1都是用來訪問其他配置寄存器的基地址,BASE1是其他配置寄存器映射到PCI端內(nèi)存的基地址,BASE2是其他寄存器映射到PCI端I/O的基地址。所以可以通過PCI端內(nèi)存和PCI端I/O來訪問LOCAL配置寄存器與其他3種寄存器。BASE2~5四個空間提供了訪問本地端所接的4個芯片(當(dāng)然可以少于4個),他們將本地端的芯片通過本地端地址(在LOCAL配置寄存器中設(shè))翻譯成PCI的地址,也就是將本地的芯片映射到系統(tǒng)的內(nèi)存或I/O口。這樣使得用程序操作這一段內(nèi)存(或I/O)實際上就是對本地的芯片操作。
本地端配置寄存器提供了本地端的一些信息,在本方案設(shè)計中,主要是通過配置本地端配置寄存器來將本地端的單片機讀寫指令、周期轉(zhuǎn)換成PCI端的讀寫指令及周期。也就相當(dāng)于將PCI端網(wǎng)卡上的芯片及存儲器映射到本地端,與本地端的存儲器統(tǒng)一編址,這樣單片機只要能訪問本地端的內(nèi)存,那么就能用來訪問PCI總線上的網(wǎng)卡。
PCI9054工作時需要一個配置芯片E?2PROM,以便在PCI卡上電的時候配置PCI 9054,主要配置PCI卡的VendorID和DeviceID,這是系統(tǒng)用來標(biāo)識PCI卡的。另外,還需要了其他寄存器,主要起到了對PCI 9054初始化的作用。其中本地端寄存器也可以由本地CPU讀寫,直接進行配置。
2 RTL8029網(wǎng)卡簡介
RTL8029是符合Ne2000標(biāo)準(zhǔn)的32位PCI總線網(wǎng)卡,遵循IEEE802.3協(xié)議。按功能可將其劃分為:接收功能模塊、CRC產(chǎn)生模塊、發(fā)送功能模塊、地址識別模塊、FIFO控制模塊、協(xié)
熱門點擊
- 在PC上運行的實時操作系統(tǒng)LabVIEW R
- Keil C動態(tài)內(nèi)存管理機制分析及改進
- ARM內(nèi)核的中斷技術(shù)
- 交流異步電動機矢量控制系統(tǒng)的嵌入式設(shè)計
- 視頻采集卡Windows95驅(qū)動程序設(shè)計
- Microwindows在遠(yuǎn)程紅外抄表器中的
- 8051單片機在線升級軟件的方法
- 采用8位單片機驅(qū)動PCI總線網(wǎng)卡的設(shè)計方案
- 基于ARM和FPGA的多功能車輛總線嵌入式系
- 基于I2C總線的MSP430單片機應(yīng)用系統(tǒng)設(shè)
推薦技術(shù)資料
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究