《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 采用8位單片機驅動PCI總線網卡的設計方案
采用8位單片機驅動PCI總線網卡的設計方案
摘要: 本文中采用PCI 9054接口芯片作為溝通單片機與PCI設備間的橋梁,設計實現了單片機與PCI網卡間的可靠通信任務,并提供了主要硬件接口電路和主要程序原代碼。
Abstract:
Key words :

       目前,以太網(Ethernet)協議已經非常廣泛地應用于各種計算機網絡,如辦公局域網、工業(yè)控制網絡、因特網等場合,并且還不斷地在發(fā)展。單片機或微控制器(MCU)(也稱為嵌入式系統(tǒng))已經在各個領域得到了廣泛的應用。目前絕大多數系統(tǒng)都是以MCU為核心,與監(jiān)測、伺服、指示設備配合實現一定的功能。如果嵌入式系統(tǒng)能夠連接到Internet,則可以方便、低廉地將信息傳送到世界上的任何一個地方。因此單片機如何控制以太網網卡進行傳輸數據,如何加載TCP/IP協議連接到互聯網,這些都是一些具有挑戰(zhàn)性的問題[1,2]。單片機上網研究最多的一個方案就是用單片機驅動ISA總線網卡或者是驅動基于ISA總線的以太網控制芯片。但是,近年來,隨著ISA總線在臺式電腦上的消失(PC98以后的標準已經取消了ISA總線),ISA總線的設備也不斷減少,而且很多生產ISA網卡芯片的廠家已經停止生產ISA網卡芯片。在計算機上,多數設備用的是PCI總線,因此如何制造低成本的PCI總線的以太網接口設備,如何用單片機來驅動PCI總線網卡,已成為目前計算機工業(yè)控

 

制系統(tǒng)的燃眉之急。然而用只有16位地址總線、8位數據端口的8位單片機來直接驅動有32位地址數據復用總線及其他各種信號線的PCI總線網卡,幾乎是不可能的。

       為此,本文中采用PCI 9054接口芯片作為溝通單片機與PCI設備間的橋梁,設計實現了單片機與PCI網卡間的可靠通信任務,并提供了主要硬件接口電路和主要程序原代碼。

       1  PCI9054芯片介紹

       1.1  PCI9054主要特性


       PCI9054是由美國PLX公司生產的先進的PCI I/O加速器,他采用了先進的PLX數據管道結構技術。符合PCIV2,2規(guī)范的32 位33 MHz總線主控接口控制器可獲得高達132 Mb/s的PCI突發(fā)傳輸速度。通用總線主控接口配備先進的數據流水線架構(Data Pipe Architecture(tm)),包含2個DMA引擎,可編程目標、起始器數據傳輸模式和PCI信息傳輸等功能。  

       1.2  PCI9054本地總線工作模式介紹

       PCI9054芯片連接的本地端總線有3種工作模式:M模式、C模式和J模式。可利用模式選擇引腳加以選擇,其中C模式時序較為簡單。為此,本方案設計選擇PCI 9054工作在C模式。當PCI9054工作在C模式時,其數據傳輸采用直接數據傳輸方式,按數據傳輸的控制方式,他又分為3種傳輸模式,如表1所示。

直接數據傳輸方式

       本方案設計采用PCI初始化器模式,通過本地端的單片機來控制PCI9054芯片,然后通過PCI9054芯片來驅動PCI總線上的網卡,在這里PCI9054芯片就象一個橋梁,連接了2個不同的總線設備。其讀寫工作原理如圖1所示。

讀寫工作原理


       1.3  PCI9054寄存器簡介

       PCI9054內部提供了5種寄存器:PCI配置寄存器,本地端配置寄存器,運行時間RUNTIME寄存器,DMA寄存器和I2O信息寄存器。在本方案設計中,我們主要用到2種配置寄存器:PCI配置寄存器和本地端配置寄存器,下面對這2種寄存器的功能做簡要介紹。

       PCI配置寄存器也就是我們常說的PCI配置空間,他提供了配置PCI的一些信息。其中VenderID,DeviceID,RevisionID,HeaderType,ClassCode用于PCI設備的識別。命令寄存器(Command)包含設備控制位,包括允許存儲器讀寫響應等。狀態(tài)寄存器(Status)用于記錄PCI總線的相關事件。PCI配置寄存器提供了6個基地址寄存器,這些基地址都是在系統(tǒng)中的物理地址范圍內,其中BASE0和BASE1都是用來訪問其他配置寄存器的基地址,BASE1是其他配置寄存器映射到PCI端內存的基地址,BASE2是其他寄存器映射到PCI端I/O的基地址。所以可以通過PCI端內存和PCI端I/O來訪問LOCAL配置寄存器與其他3種寄存器。BASE2~5四個空間提供了訪問本地端所接的4個芯片(當然可以少于4個),他們將本地端的芯片通過本地端地址(在LOCAL配置寄存器中設)翻譯成PCI的地址,也就是將本地的芯片映射到系統(tǒng)的內存或I/O口。這樣使得用程序操作這一段內存(或I/O)實際上就是對本地的芯片操作。  
       本地端配置寄存器提供了本地端的一些信息,在本方案設計中,主要是通過配置本地端配置寄存器來將本地端的單片機讀寫指令、周期轉換成PCI端的讀寫指令及周期。也就相當于將PCI端網卡上的芯片及存儲器映射到本地端,與本地端的存儲器統(tǒng)一編址,這樣單片機只要能訪問本地端的內存,那么就能用來訪問PCI總線上的網卡。

       PCI9054工作時需要一個配置芯片E?2PROM,以便在PCI卡上電的時候配置PCI 9054,主要配置PCI卡的VendorID和Devic

 

eID,這是系統(tǒng)用來標識PCI卡的。另外,還需要了其他寄存器,主要起到了對PCI 9054初始化的作用。其中本地端寄存器也可以由本地CPU讀寫,直接進行配置。

       2  RTL8029網卡簡介

       RTL8029是符合Ne2000標準的32位PCI總線網卡,遵循IEEE802.3協議。按功能可將其劃分為:接收功能模塊、CRC產生模塊、發(fā)送功能模塊、地址識別模塊、FIFO控制模塊、協議邏輯陣列模塊及DMA和緩沖控制模塊。對網卡進行編程可以實現局域網內任一站點間的通信。熟悉網卡接口電路是對網卡編程的首要條件。網卡接口電路功能可以分為2部分:一是與計算機PCI總線相連,包括數據總線讀寫、地址總線驅動、中斷控制信號的產生、存儲器讀寫信號以及I/O端口信號的引入等;二是對網卡內部的操作,包括對緩沖SRAM的讀寫、對RTL8029AS芯片的控制、讀站地址PROM及讀自舉ROM等。通過網卡工作原理的分析,可以將接口信號線減至最少。

       以太網相當于一個鏈路層連接,因此可以把以太網的傳輸單元稱為幀(Frame)。10 Mb以太網的Frame長度為64~1 518 b。其格式如表2所示。

標準IEEE802


       其中前導碼是網絡適配器發(fā)送MAC幀的時候為了使接收適配器辨別出MAC幀開始而加入的碼,高層的用戶不必考慮。32位CRC,即冗余校檢碼,是以太網使用的校檢機制,現在CRC的生成與檢測都可以由網絡適配器完成,因此用戶也不必考慮這一字段。幀類型,這一字段決定了以太網幀數據使用的是什么協議,如ARP是0x0806,IP是0x0800等。從另一個角度看,這一字段也可以看作以太網幀自己表明身份的字段。因此,在處理MAC幀時,需要根據這一字段的數據來決定將數據傳送給哪個上層協議。在IEEE 802?3協議中,這一字段表示以太網數據的長度。由于兩個協議在這一字段上的不同定義,所以網絡適配卡對這一字段是不做解釋的。程序員必須在軟件上編程處理這一字段。

       3  方案設計

       (1)本方案設計的硬件結構如圖2所示。

       系統(tǒng)中用到的主要芯片除了80C51單片機和PCI9054外還有MAX232(串口的電平轉換),24C02(I2C總線的E?2PROM),74HC373(8位鎖存),62256(32K的RAM),EPM7096(CPLD),93C46(E2PROM,用來初始化PCI9054)。其中62256(外部32K的RAM)可以不用,可以用網卡上的RAM來代替,但是網卡上的RAM的存取比較復雜,速度會比加62256慢。使用外部RAM的目的是提高單片機的數據傳輸速度和處理復雜的TCP/IP協議。由于以太網的數據包最大可以有1500多字節(jié),80C51單片機是無法存儲這么大的包的,只有放到外部的RAM里。同時外部的RAM也用作串行口的輸入輸出緩沖,以使單片機具有高速的吞吐數據的能力。24C02是I2C總線的E2PROM,用來存儲用戶的一些設置,比如IP地址、網關等。本方案使用CPLD的目的是,將80C51單片機的8位數據與16位地址轉換成32位的數據和地址,因為PCI9054工作在初始化器模式時,他要求本地端的總線是32位的。在這里,用CPLD實現這樣一個外部邏輯非常簡單。MAX232為串口電平轉換電路。數據可以從串口輸入到單片機,單片機再把數據通過網卡傳出去。

硬件結構


       (2) 軟件設計

       對網卡編程就是對網絡接口控制芯片RTL8029AS中各種寄存器進行編程控制,從而完成數據分組的正確發(fā)送和接收。所有單片機程序采用C51語言編制,具有可讀性強、移植性好、開發(fā)周期短的特點。代碼的使用效率也比較高。

       主程序可以分為PCI9054芯片初始化、網絡通訊和串行通訊2部分:PCI9054芯片初始化過程就是對PCI9054芯片的PCI端配置寄存器和本地端配置寄存器進行正確的編程配置,以實現本地端單片機與PCI端網卡的無縫連接,對這2個寄存器既可以通過對93 C46燒寫編程的方式,也可以通過本地CPU直接編程的方式來完成初始化。網絡通訊過程又可分為網卡初始化、發(fā)送控制和接受控制3部分。主程序框圖如圖3所示。

主程序框圖


       PCI9054芯片初始化過程就是對PCI9054芯片的相關寄存器進行初始化,這些寄存器包括DMRR、DMLBAM、PCICR、CNTRL等。

PCI9054芯片初始化過程就是對PCI9054芯片的相關寄存器進行初始化

點擊看原圖

 

 

       網卡初始化過程對網卡的初始化就是對網卡相關寄存器進行初始化。這些寄存器包括CR,DCR,RBCR PSTART,PSTOP,ISR,IMR,PAR0~PAR5,MAR0~MAR5D等。PSTART接收緩沖區(qū)的起始頁的地址。PSTOP接收緩沖區(qū)的結束頁地址(該頁不用于接收)。BNRY指向最后一個已經讀取的頁(讀指針)CURR當前的接收結束頁地址(寫指針)。 

網卡初始化過程對網卡的初始化就是對網卡相關寄存器進行初始化

       發(fā)送控制過程在網絡中,幀傳輸的過程就是發(fā)送方將待發(fā)送數據按幀格式要求封裝成幀,然后通過網卡發(fā)送到網絡的傳輸線上的工程。發(fā)送程序框圖如圖4所示。

發(fā)送程序框圖


       接收控制過程幀的接收過程分為2步[3]:

       第1步有本地DMA將幀存入接收緩沖區(qū)中;

 


       第2步由遠程DMA將接收緩沖區(qū)中的幀讀入內存。即將網絡上的數據幀接收并存在網卡的接收緩沖區(qū)中,然后由主機程序將緩存區(qū)中的幀讀走并存入內存中。幀的接收工作由網卡自動完成,只需對相關的寄存器和PSTART,PSTOP,CURR和BNRY進行適當的初始化即可。幀讀入之前,必須初始化相應的寄存器RSAR,RBCR,然后再啟動遠程DMA讀操作和主機程序的讀端口操作。為了獲得數據長度,先讀入18 B的數據,然后根據有效數據的長度將幀完整的讀入。啟動遠程DMA讀操作,應該令CR=0AH,遠程DMA將從接收緩沖區(qū)的DMA地址處讀入1 B并送往I/O數據端口,由主機程序讀入內存。

       這一過程將一直持續(xù)到RBCR寄存器為0。

       4  結語

       本文提出了一種用8位單片機80C51和PCI總線主控I/O加速器芯片9054來驅動PCI總線網卡,實現RS232串行設備與以太網的連接以傳送控制信令和數據文件,實現單片機上網的設計方案,設計了相關硬件,編制了相應的驅動程序。整個方案結構簡單,實現方便,縮短了開發(fā)周期,降低了系統(tǒng)開發(fā)成本。

此內容為AET網站原創(chuàng),未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一区观看| 一个色综合av| 亚洲观看高清完整版在线观看| 亚洲国产婷婷香蕉久久久久久| 国产亚洲网站| 国产精品福利在线| 欧美成年人视频网站| 久久福利电影| 亚洲欧美日韩一区二区三区在线观看 | 尤妮丝一区二区裸体视频| 国产精品一区在线播放| 国产精品福利影院| 欧美性猛交99久久久久99按摩 | 亚洲美女av在线播放| 久久精品国产999大香线蕉| 亚洲午夜未删减在线观看| 艳妇臀荡乳欲伦亚洲一区| 日韩视频免费观看| 一区二区三区www| 一区二区三区精品在线| 亚洲视频狠狠| 亚洲永久在线观看| 亚洲欧洲av一区二区| 新狼窝色av性久久久久久| 欧美一区观看| 亚洲激情网站免费观看| 久久精品视频一| 亚洲韩国日本中文字幕| 91久久中文| 亚洲免费激情| 一区二区三区欧美在线| 亚洲一区二区三区精品在线 | 蜜臀av性久久久久蜜臀aⅴ| 噜噜噜躁狠狠躁狠狠精品视频| 在线一区亚洲| 亚洲一区二区三区乱码aⅴ| 亚洲在线中文字幕| 欧美亚洲综合网| 久久久综合香蕉尹人综合网| 狼人社综合社区| 欧美精品 国产精品| 欧美日韩综合视频网址| 国产精品女同互慰在线看| 国产日产亚洲精品系列| 在线精品国产欧美| 日韩一级在线| 亚洲欧美日韩精品在线| 亚洲电影网站| 一区二区三区四区五区在线| 亚洲欧美日韩在线一区| 久久人人爽人人| 欧美另类女人| 国产精品资源| 亚洲电影免费在线观看| 在线视频一区观看| 久久高清免费观看| 一级成人国产| 欧美一区二区三区在线免费观看| 亚洲午夜在线观看| 欧美在线视频播放| 欧美激情一区二区三区全黄 | 欧美日韩成人一区| 国产精品va| 国内视频一区| 99视频精品全国免费| 欧美一级免费视频| 一本一本久久a久久精品综合妖精| 日韩视频中午一区| 午夜免费在线观看精品视频| 久久综合中文字幕| 欧美午夜不卡| 伊人久久婷婷| 亚洲免费在线精品一区| 亚洲精品国产精品国产自| 亚洲欧美日韩精品一区二区| 免播放器亚洲| 国产嫩草一区二区三区在线观看| 国产精品综合色区在线观看| 在线免费观看欧美| 亚洲欧美一区二区激情| 日韩一级视频免费观看在线| 久久精品视频va| 欧美午夜精品伦理| 亚洲国产精品传媒在线观看 | 亚洲一区二区四区| 亚洲精品美女免费| 欧美在线播放高清精品| 欧美理论片在线观看| 精品白丝av| 亚洲欧美www| 99视频超级精品| 狼人天天伊人久久| 国产欧美精品一区aⅴ影院| 亚洲精品国产精品国产自| 久久精品一级爱片| 欧美一级专区免费大片| 欧美日韩一区二区视频在线| 亚洲国产精品ⅴa在线观看 | 久久免费的精品国产v∧| 欧美色欧美亚洲另类七区| 亚洲第一精品影视| 羞羞色国产精品| 午夜精品免费在线| 欧美日韩在线三区| 亚洲精品黄网在线观看| 亚洲国产一区二区a毛片| 久久九九热re6这里有精品| 国产精品videosex极品| 亚洲伦理一区| 日韩亚洲一区在线播放| 免费不卡亚洲欧美| 一区二区亚洲精品国产| 欧美一区二区免费视频| 香蕉久久夜色精品国产使用方法| 久久亚洲一区二区| 国产精品一区二区三区四区五区 | 欧美日韩xxxxx| 亚洲国产二区| 亚洲国产精品嫩草影院| 久久久人成影片一区二区三区观看| 男男成人高潮片免费网站| 国内外成人免费激情在线视频网站| 在线观看欧美黄色| 欧美有码在线观看视频| 欧美一级视频免费在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 国产中文一区二区| 午夜精品福利在线| 欧美尤物巨大精品爽| 国产精品夜夜嗨| 亚洲一区免费看| 亚洲欧美日产图| 国产精品嫩草影院一区二区| 亚洲免费在线视频一区 二区| 亚洲美洲欧洲综合国产一区| 免费欧美在线视频| 亚洲高清三级视频| 日韩午夜av| 欧美区视频在线观看| 亚洲毛片在线免费观看| 亚洲小视频在线| 国产精品美女诱惑| 欧美一区二区三区成人| 久久精品国产2020观看福利| 国模精品一区二区三区| 亚洲国产日韩欧美一区二区三区| 性欧美xxxx大乳国产app| 国产精品成人国产乱一区| 亚洲亚洲精品三区日韩精品在线视频| 亚洲日本va午夜在线电影| 噜噜爱69成人精品| 最新国产成人在线观看| 中文av一区二区| 国产精品乱码人人做人人爱| 午夜国产精品视频免费体验区| 亚洲午夜电影网| 国产精品久久久久av| 欧美一区二区三区视频免费播放| 亚洲图色在线| 国产精品视频久久| 久久国产一二区| 欧美高清在线视频| 99精品视频免费| 欧美在线在线| 影音先锋中文字幕一区| 一区二区欧美日韩视频| 国产麻豆午夜三级精品| 久久精品导航| 欧美日韩国产91| 香蕉亚洲视频| 欧美精品乱码久久久久久按摩| 亚洲成人原创| 在线亚洲观看| 国产欧美日韩综合一区在线播放| 亚洲午夜激情网页| 久久久久久久91| 亚洲乱码国产乱码精品精可以看| 亚洲毛片在线| 国产精品一区毛片| 亚洲日本va在线观看| 国产精品午夜在线观看| 亚洲精品国产精品国产自| 国产精品久久综合| 亚洲黄色在线| 国产精品亚洲一区二区三区在线| 亚洲无限av看| 久久精品一区二区| 一本色道久久综合精品竹菊| 久久久久九九九| 一二三四社区欧美黄| 美女黄网久久| 亚洲专区一区| 欧美伦理a级免费电影| 欧美一级视频精品观看| 欧美视频一区二区三区…| 亚洲国产精品va在看黑人| 国产精品亚洲欧美| 一本色道久久综合精品竹菊 | 亚洲精品之草原avav久久| 久久丁香综合五月国产三级网站|