www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]目前,以太網(wǎng)(Ethernet)協(xié)議已經(jīng)非常廣泛地應(yīng)用于各種計(jì)算機(jī)網(wǎng)絡(luò),如辦公局域網(wǎng)、工業(yè)控制網(wǎng)絡(luò)、因特網(wǎng)等場(chǎng)合,并且還不斷地在發(fā)展。單片機(jī)或微控制器(MCU)(也稱為嵌入式系

目前,以太網(wǎng)(Ethernet)協(xié)議已經(jīng)非常廣泛地應(yīng)用于各種計(jì)算機(jī)網(wǎng)絡(luò),如辦公局域網(wǎng)、工業(yè)控制網(wǎng)絡(luò)、因特網(wǎng)等場(chǎng)合,并且還不斷地在發(fā)展。單片機(jī)或微控制器(MCU)(也稱為嵌入式系統(tǒng))已經(jīng)在各個(gè)領(lǐng)域得到了廣泛的應(yīng)用。目前絕大多數(shù)系統(tǒng)都是以MCU為核心,與監(jiān)測(cè)、伺服、指示設(shè)備配合實(shí)現(xiàn)一定的功能。如果嵌入式系統(tǒng)能夠連接到Internet,則可以方便、低廉地將信息傳送到世界上的任何一個(gè)地方。因此單片機(jī)如何控制以太網(wǎng)網(wǎng)卡進(jìn)行傳輸數(shù)據(jù),如何加載TCP/IP協(xié)議連接到互聯(lián)網(wǎng),這些都是一些具有挑戰(zhàn)性的問(wèn)題[1,2]。

單片機(jī)上網(wǎng)研究最多的一個(gè)方案就是用單片機(jī)驅(qū)動(dòng)ISA總線網(wǎng)卡或者是驅(qū)動(dòng)基于ISA總線的以太網(wǎng)控制芯片。但是,近年來(lái),隨著ISA總線在臺(tái)式電腦上的消失(PC98以后的標(biāo)準(zhǔn)已經(jīng)取消了ISA總線),ISA總線的設(shè)備也不斷減少,而且很多生產(chǎn)ISA網(wǎng)卡芯片的廠家已經(jīng)停止生產(chǎn)ISA網(wǎng)卡芯片。在計(jì)算機(jī)上,多數(shù)設(shè)備用的是PCI總線,因此如何制造低成本的PCI總線的以太網(wǎng)接口設(shè)備,如何用單片機(jī)來(lái)驅(qū)動(dòng)PCI總線網(wǎng)卡,已成為目前計(jì)算機(jī)工業(yè)控制系統(tǒng)的燃眉之急。然而用只有16位地址總線、8位數(shù)據(jù)端口的8位單片機(jī)來(lái)直接驅(qū)動(dòng)有32位地址數(shù)據(jù)復(fù)用總線及其他各種信號(hào)線的PCI總線網(wǎng)卡,幾乎是不可能的。

為此,本文中采用PCI 9054接口芯片作為溝通單片機(jī)與PCI設(shè)備間的橋梁,設(shè)計(jì)實(shí)現(xiàn)了單片機(jī)與PCI網(wǎng)卡間的可靠通信任務(wù),并提供了主要硬件接口電路和主要程序原代碼。

1PCI9054芯片介紹[3]

1.1PCI9054主要特性

PCI9054是由美國(guó)PLX公司生產(chǎn)的先進(jìn)的PCI I/O加速器,他采用了先進(jìn)的PLX數(shù)據(jù)管道結(jié)構(gòu)技術(shù)。符合PCIV2,2規(guī)范的32 位33 MHz總線主控接口控制器可獲得高達(dá)132 Mb/s的PCI突發(fā)傳輸速度。通用總線主控接口配備先進(jìn)的數(shù)據(jù)流水線架構(gòu)(Data Pipe Architecture(tm)),包含2個(gè)DMA引擎,可編程目標(biāo)、起始器數(shù)據(jù)傳輸模式和PCI信息傳輸?shù)裙δ堋?/p>

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

PCI9054芯片連接的本地端總線有3種工作模式:M模式、C模式和J模式。可利用模式選擇引腳加以選擇,其中C模式時(shí)序較為簡(jiǎn)單。為此,本方案設(shè)計(jì)選擇PCI 9054工作在C模式。當(dāng)PCI9054工作在C模式時(shí),其數(shù)據(jù)傳輸采用直接數(shù)據(jù)傳輸方式,按數(shù)據(jù)傳輸?shù)目刂品绞?,他又分?種傳輸模式,如表1所示。

本方案設(shè)計(jì)采用PCI初始化器模式,通過(guò)本地端的單片機(jī)來(lái)控制PCI9054芯片,然后通過(guò)PCI9054芯片來(lái)驅(qū)動(dòng)PCI總線上的網(wǎng)卡,在這里PCI9054芯片就象一個(gè)橋梁,連接了2個(gè)不同的總線設(shè)備。其讀寫工作原理如圖1所示。

1.3PCI9054寄存器簡(jiǎn)介

PCI9054內(nèi)部提供了5種寄存器:PCI配置寄存器,本地端配置寄存器,運(yùn)行時(shí)間RUNTIME寄存器,DMA寄存器和I2O信息寄存器。在本方案設(shè)計(jì)中,我們主要用到2種配置寄存器:PCI配置寄存器和本地端配置寄存器,下面對(duì)這2種寄存器的功能做簡(jiǎn)要介紹。

PCI配置寄存器也就是我們常說(shuō)的PCI配置空間,他提供了配置PCI的一些信息。其中VenderID,DeviceID,RevisionID,HeaderType,ClassCode用于PCI設(shè)備的識(shí)別。命令寄存器(Command)包含設(shè)備控制位,包括允許存儲(chǔ)器讀寫響應(yīng)等。狀態(tài)寄存器(Status)用于記錄PCI總線的相關(guān)事件。PCI配置寄存器提供了6個(gè)基地址寄存器,這些基地址都是在系統(tǒng)中的物理地址范圍內(nèi),其中BASE0和BASE1都是用來(lái)訪問(wèn)其他配置寄存器的基地址,BASE1是其他配置寄存器映射到PCI端內(nèi)存的基地址,BASE2是其他寄存器映射到PCI端I/O的基地址。所以可以通過(guò)PCI端內(nèi)存和PCI端I/O來(lái)訪問(wèn)LOCAL配置寄存器與其他3種寄存器。BASE2~5四個(gè)空間提供了訪問(wèn)本地端所接的4個(gè)芯片(當(dāng)然可以少于4個(gè)),他們將本地端的芯片通過(guò)本地端地址(在LOCAL配置寄存器中設(shè))翻譯成PCI的地址,也就是將本地的芯片映射到系統(tǒng)的內(nèi)存或I/O口。這樣使得用程序操作這一段內(nèi)存(或I/O)實(shí)際上就是對(duì)本地的芯片操作。

本地端配置寄存器提供了本地端的一些信息,在本方案設(shè)計(jì)中,主要是通過(guò)配置本地端配置寄存器來(lái)將本地端的單片機(jī)讀寫指令、周期轉(zhuǎn)換成PCI端的讀寫指令及周期。也就相當(dāng)于將PCI端網(wǎng)卡上的芯片及存儲(chǔ)器映射到本地端,與本地端的存儲(chǔ)器統(tǒng)一編址,這樣單片機(jī)只要能訪問(wèn)本地端的內(nèi)存,那么就能用來(lái)訪問(wèn)PCI總線上的網(wǎng)卡。

PCI9054工作時(shí)需要一個(gè)配置芯片E?2PROM,以便在PCI卡上電的時(shí)候配置PCI 9054,主要配置PCI卡的VendorID和DeviceID,這是系統(tǒng)用來(lái)標(biāo)識(shí)PCI卡的。另外,還需要了其他寄存器,主要起到了對(duì)PCI 9054初始化的作用。其中本地端寄存器也可以由本地CPU讀寫,直接進(jìn)行配置。

2RTL8029網(wǎng)卡簡(jiǎn)介

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

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

其中前導(dǎo)碼是網(wǎng)絡(luò)適配器發(fā)送MAC幀的時(shí)候?yàn)榱耸菇邮者m配器辨別出MAC幀開(kāi)始而加入的碼,高層的用戶不必考慮。32位CRC,即冗余校檢碼,是以太網(wǎng)使用的校檢機(jī)制,現(xiàn)在CRC的生成與檢測(cè)都可以由網(wǎng)絡(luò)適配器完成,因此用戶也不必考慮這一字段。幀類型,這一字段決定了以太網(wǎng)幀數(shù)據(jù)使用的是什么協(xié)議,如ARP是0x0806,IP是0x0800等。從另一個(gè)角度看,這一字段也可以看作以太網(wǎng)幀自己表明身份的字段。因此,在處理MAC幀時(shí),需要根據(jù)這一字段的數(shù)據(jù)來(lái)決定將數(shù)據(jù)傳送給哪個(gè)上層協(xié)議。在IEEE 802?3協(xié)議中,這一字段表示以太網(wǎng)數(shù)據(jù)的長(zhǎng)度。由于兩個(gè)協(xié)議在這一字段上的不同定義,所以網(wǎng)絡(luò)適配卡對(duì)這一字段是不做解釋的。程序員必須在軟件上編程處理這一字段。

3方案設(shè)計(jì)

(1)本方案設(shè)計(jì)的硬件結(jié)構(gòu)如圖2所示。

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

(2) 軟件設(shè)計(jì)

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

主程序可以分為PCI9054芯片初始化、網(wǎng)絡(luò)通訊和串行通訊2部分:PCI9054芯片初始化過(guò)程就是對(duì)PCI9054芯片的PCI端配置寄存器和本地端配置寄存器進(jìn)行正確的編程配置,以實(shí)現(xiàn)本地端單片機(jī)與PCI端網(wǎng)卡的無(wú)縫連接,對(duì)這2個(gè)寄存器既可以通過(guò)對(duì)93C46燒寫編程的方式,也可以通過(guò)本地CPU直接編程的方式來(lái)完成初始化。網(wǎng)絡(luò)通訊過(guò)程又可分為網(wǎng)卡初始化、發(fā)送控制和接受控制3部分。主程序框圖如圖3所示。[!--empirenews.page--]

PCI9054芯片初始化過(guò)程就是對(duì)PCI9054芯片的相關(guān)寄存器進(jìn)行初始化,這些寄存器包括DMRR、DMLBAM、PCICR、CNTRL等。

(1) PCICR[2∶0]=111B。允許PCI初始化器(本地端)訪問(wèn)PCI總線。PCI9054能夠響應(yīng)I/O訪問(wèn)。

(2) DMPBAM[1∶0]=11。允許PCI初始化器訪問(wèn)PCI9054存儲(chǔ)器和I/O端口。

(3) DMRR = FFF00000H。設(shè)定PCI初始化器端

(4) 可訪問(wèn)的存儲(chǔ)器范圍是1MB。

(5) DMLBAI = 40000000H。為PCI InitiatortoPCI I/O Configuration寄存器設(shè)定本地端基地址

(6) DMPBAM[1]=1。允許本地端I/O端口訪問(wèn)PCI InitiatortoPCI I/O Configuration寄存器

DMCFGA[23∶0]=005010,DMCFGA[31]=1。

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

(1) CR=0x21:選擇頁(yè)0寄存器,將RTL8029芯片處于離線狀態(tài);

(2) DCR=0x8:32位內(nèi)存訪問(wèn);

(3) RBCR0=0,RBCR1=0:遠(yuǎn)程DMA操作時(shí)傳遞字節(jié)數(shù)清零;

(4) RCR=0xc0,接受到的幀存入緩沖區(qū);

(5) TCR=oxe2:環(huán)路測(cè)試狀態(tài);

(6) PSTART=0x4C,PSTOP=0x80;構(gòu)造緩沖區(qū);

(7) ISR=0xff;中斷寄存器清零;

(8) CR=0x61:選擇頁(yè)1;

(9) 設(shè)置網(wǎng)卡地址PAR0~PAR5

(10) 設(shè)置多址寄存器MAR0~ MAR5;

(11) CURR=0x4d:初始化當(dāng)前頁(yè)寄存器;

(12) TCR=0xE0:發(fā)送器正常工作狀態(tài)。

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

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

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

第2步由遠(yuǎn)程DMA將接收緩沖區(qū)中的幀讀入內(nèi)存。即將網(wǎng)絡(luò)上的數(shù)據(jù)幀接收并存在網(wǎng)卡的接收緩沖區(qū)中,然后由主機(jī)程序?qū)⒕彺鎱^(qū)中的幀讀走并存入內(nèi)存中。幀的接收工作由網(wǎng)卡自動(dòng)完成,只需對(duì)相關(guān)的寄存器和PSTART,PSTOP,CURR和BNRY進(jìn)行適當(dāng)?shù)某跏蓟纯?。幀讀入之前,必須初始化相應(yīng)的寄存器RSAR,RBCR,然后再啟動(dòng)遠(yuǎn)程DMA讀操作和主機(jī)程序的讀端口操作。為了獲得數(shù)據(jù)長(zhǎng)度,先讀入18 B的數(shù)據(jù),然后根據(jù)有效數(shù)據(jù)的長(zhǎng)度將幀完整的讀入。啟動(dòng)遠(yuǎn)程DMA讀操作,應(yīng)該令CR=0AH,遠(yuǎn)程DMA將從接收緩沖區(qū)的DMA地址處讀入1 B并送往I/O數(shù)據(jù)端口,由主機(jī)程序讀入內(nèi)存。

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

4結(jié)語(yǔ)

本文提出了一種用8位單片機(jī)80C51和PCI總線主控I/O加速器芯片9054來(lái)驅(qū)動(dòng)PCI總線網(wǎng)卡,實(shí)現(xiàn)RS232串行設(shè)備與以太網(wǎng)的連接以傳送控制信令和數(shù)據(jù)文件,實(shí)現(xiàn)單片機(jī)上網(wǎng)的設(shè)計(jì)方案,設(shè)計(jì)了相關(guān)硬件,編制了相應(yīng)的驅(qū)動(dòng)程序。整個(gè)方案結(jié)構(gòu)簡(jiǎn)單,實(shí)現(xiàn)方便,縮短了開(kāi)發(fā)周期,降低了系統(tǒng)開(kāi)發(fā)成本。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉