當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]介紹了Realtek公司生產(chǎn)的具有PCI接口的以太網(wǎng)控制芯片RTL8139的內(nèi)部結(jié)構(gòu)和主要寄存器,提出了利用PCI網(wǎng)橋?qū)崿F(xiàn)DSP與RTL8139接口的解決方案,并給出了相應(yīng)的硬件和軟件設(shè)計。

基于DSP的嵌入式系統(tǒng)的以太網(wǎng)接口設(shè)計一直是熱門領(lǐng)域,目前利用的以太網(wǎng)控制器大多都是ISA接口。隨著PCI總線逐漸取代ISA總線的趨勢,使PCI接口的以太網(wǎng)控制器也成為PC機(jī)的主流,但在嵌入式領(lǐng)域中PCI總線的應(yīng)用目前并不多見。本文將介紹利用Realtek公司生產(chǎn)的具有PCI接口的以太網(wǎng)控制芯片RTL8139實現(xiàn)RTL8139與DSP接口的方案。

1 RTL8139

  RTL8139是帶PCI接口的10M/100M自適應(yīng)網(wǎng)卡控制芯片,它提供32位PCI總線控制,支持IEEE802.3u 100Base-T和IEEE802.3x的全雙工流量控制;符合PCI 2.2標(biāo)準(zhǔn),支持高級配置和電源接口(ACPI)和PCI對現(xiàn)代操作系統(tǒng)的電源管理(即對操作系統(tǒng)的直接電源管理),以提高電源管理的效率。此外,RTL8139還支持128KB的Boot ROM,提供網(wǎng)絡(luò)喚醒和遠(yuǎn)程喚醒功能;含有2個2KB的收發(fā)FIFO;能夠降低網(wǎng)絡(luò)維護(hù)成本,消除使用障礙,而且可以很方便地使網(wǎng)絡(luò)由10M升級到100M,且?guī)捒梢赃_(dá)到200Mbps。RTL8139內(nèi)部MAC層結(jié)構(gòu)如圖1所示。

1.1 RTL8139的PCI接口

  PCI總線分為主(Master)、從(Target)二種類型,Master可以控制PCI總線,Target不能控制PCI總線。標(biāo)準(zhǔn)的主設(shè)備至少有49條線與PCI總線相連;從設(shè)備至少有47條線與PCI總線相連。RTL8139所提供的PCI接口有51條引腳,其引腳簡介如下。

  (1)地址/數(shù)據(jù)信號

  AD31~0:地址、數(shù)據(jù)多路復(fù)用的輸入/輸出信號,在FRAMEB有效時,是地址期;在IRDYB和TRDYB同時有效時為數(shù)據(jù)期。

  C/BE3~0:總線命令和字節(jié)使能多路復(fù)用信號,負(fù)責(zé)傳輸總線命令。在數(shù)據(jù)期,由傳輸字節(jié)使能信號來表示數(shù)據(jù)線上哪些字節(jié)是有效數(shù)據(jù)。

  (2)接口控制信號

  FRAMEB:幀周期信號,表示訪問的開始和持續(xù)時間。

  IRDYB、TRDYB:分別表示主、從設(shè)備準(zhǔn)備好信號,二者必須配合使用,同時有效時方能進(jìn)行數(shù)據(jù)傳輸。

  STOPB:目標(biāo)設(shè)備請求停止數(shù)據(jù)傳輸信號。

  IDSEL:初始化設(shè)備選擇信號,在參數(shù)配置讀寫傳輸期間,用作片選信號。

  DEVSELB:設(shè)備選擇信號。

  (3)仲裁信號

  REQB:總線占用請求信號,表示RTL8139申請總線控制權(quán)。

  GNTB:總線占用允許信號,表示總線控制權(quán)已經(jīng)交給RTL8139。

  主設(shè)備都必須有以上2種信號。

  (4)錯誤報告信號

  PERRB:數(shù)據(jù)奇偶校驗錯誤信號。

  SERRB:系統(tǒng)錯誤信號。

  (5)其他信號

  CLK:時鐘信號,最高可達(dá)33MHz。

  CLKRUNB:時鐘運行信號,這是RTL8139增設(shè)的信號,用來請求時鐘開始和表示時鐘狀態(tài)。

  RSTB:復(fù)位信號,低電平有效,至少需要120ns的寬度。

  INTAB:中斷請求信號,它需要與RTL8139的ISR和IMR寄存器配合使用。

  在嵌入式系統(tǒng)中并不需要連接所有的引腳,可根據(jù)系統(tǒng)的實際需要進(jìn)行選擇。

1.2 主要寄存器

  RTL8139的寄存器映射到I/O空間,I/O空間有256個地址,地址偏移量為00H~FFH。下面介紹幾個比較重要的寄存器。

  (1)Command Register

  該寄存器地址偏移量為0037H,功能為軟復(fù)位網(wǎng)卡,使能網(wǎng)卡的發(fā)送和接收。其描述如表1所示。

 

 [!--empirenews.page--] (2)Interrupt Status Register

  該寄存器地址偏移量為3EH~3FH,在INTA引腳有效時表示中斷源,與IMR寄存器配合使用,它的值影響當(dāng)前所有中斷。其描述如表2所示。

 

  (3)Receive Status Register

  該寄存器通??梢詮臄?shù)據(jù)包的包頭中讀出,是RTL8139芯片特有的。通過它可以知道網(wǎng)卡收包的狀態(tài)以便進(jìn)行接收處理。其描述如表3所示。

 

2  系統(tǒng)設(shè)計方案

  根據(jù)RTL8139的以上特點,作者設(shè)計了RTL8139與DSP之間的接口解決方案。目前DSP與PCI的接口一般有二種方案:(1)用CPLD來實現(xiàn)。優(yōu)點是可以進(jìn)行功能優(yōu)化,不必實現(xiàn)所有PCI協(xié)議的功能,節(jié)約系統(tǒng)資源。占用系統(tǒng)資源大的用戶可以做成ASIC,有利于降低成本。但由于PCI協(xié)議的復(fù)雜性,短期內(nèi)還難以做到操作穩(wěn)定。(2)用專門的PCI橋芯片。PCI芯片功能強(qiáng)大,可減少開發(fā)時間和成本并能獲得較好的傳輸特性。目前市場上有許多PCI橋芯片產(chǎn)品,最為常見的是AMCC、PLX、CYPRESS等公司的產(chǎn)品,作者選用PLX公司的PCI9054作為本系統(tǒng)的PCI接口芯片。DSP與PCI接口設(shè)計方案如圖2所示。

 

  DSP選用TI公司的TMS320VC5402,它的運算速度達(dá)100MIps,硬件接口功能強(qiáng)大(具有串行口、HPI主機(jī)接口和DMA控制器等),而且價格低廉,具有很高的性價比。接口的硬件連接如圖3所示。

 

 [!--empirenews.page--] 圖3中,DSP通過PCI9054來讀寫PCI內(nèi)存,地址空間由PCI的基地址開始。PCI9054作為DSP的從設(shè)備和RTL8139的主設(shè)備。當(dāng)PCI寫時,接收寫信號,返回ready信號直到寫FIFO滿為止,并保持ready信號到寫FIFO可用。當(dāng)PCI9054從RTL8139讀出數(shù)據(jù)時將保持ready信號,直到BALST信號(表示PCI總線上的最后傳輸)有效,讀周期被終止,沒有讀出的數(shù)據(jù)將被FIFO舍棄。

  要使嵌入式DSP系統(tǒng)要獨立運行,必須外接EPROM或Flash存儲器用于存放程序。與EPROM相比,Flash芯片功耗低,支持在工作電壓下的擦寫,可以方便地編寫自己的Flash芯片燒錄程序,通過在片方式完成對Flash芯片的寫操作。本設(shè)計采用的是SST公司生產(chǎn)的SST39VF400A,它是一款基于CMOS技術(shù)的高性能、多用途的Flash存儲芯片,其存儲容量達(dá)4Mb,功耗低,使用2.7~3.3V單電源供電。為了方便程序的調(diào)試,外接了1片64K×16b的SRAM,以用于存放發(fā)送數(shù)據(jù)和接收數(shù)據(jù),以便于對比,及時地發(fā)現(xiàn)數(shù)據(jù)傳輸?shù)恼_性。邏輯控制部分主要用于主處理器對外設(shè)(如PCI橋芯片、網(wǎng)絡(luò)適配芯片、SRAM及Flash等)的讀寫控制及地址分配。

3 軟件設(shè)計

  軟件設(shè)計主要分為PCI網(wǎng)橋和網(wǎng)絡(luò)接口二部分。PCI網(wǎng)橋部分主要是對PCI9054進(jìn)行初始化,即對它的PCI端配置寄存器和本地端配置寄存器進(jìn)行正確的編程配置,以實現(xiàn)DSP與PCI網(wǎng)卡的無縫連接。網(wǎng)絡(luò)接口部分的編程包括對RTL8139進(jìn)行復(fù)位初始化,數(shù)據(jù)包的接收和發(fā)送。

  RTL8139已經(jīng)實現(xiàn)了OSI中的物理層和數(shù)據(jù)鏈路層的功能,只需再加上高層協(xié)議即可。作為一個嵌入式系統(tǒng),為了節(jié)省系統(tǒng)資源,需要盡量使用簡化的協(xié)議。因此IP地址和本機(jī)物理地址在初始化RTL8139時設(shè)定,采用本地管理的地址方式,上層協(xié)議進(jìn)行了簡化,沒有封裝復(fù)雜的TCP協(xié)議。

  簡化的網(wǎng)卡初始化程序如下:

  #define    CMD_RST     0x10       //復(fù)位標(biāo)志

  #define    CMD_RE      0x08       //接收使能

  #define    CMD_TE      0x04       //發(fā)送使能

  #define    SUCCESS     0xFF       //網(wǎng)卡初始化成功標(biāo)志

  Reset_init_rtl8139()

  {

              CMD=0x10;//軟復(fù)位網(wǎng)卡

              while((read_cmd & CMD_RST)==0) read_cmd=CMD;

                    //檢查網(wǎng)卡是否復(fù)位完成

              write_mac_ip();     //設(shè)定網(wǎng)卡的MAC地址和IP地址

              CMD=CMD_RE | CMD_TE;   //接收發(fā)送使能

              set_RxConfig();          //接收配置

              set_TxConfig();          //發(fā)送配置

              init_rx_addr();          //初始化接收緩沖區(qū)地址

              Rxmissed=0;              //clear 0

              CMD=CMD_RE | CMD_TE;

              return SUCCESS;

  }

  程序中:CMD為RTL8139的Command寄存器,通過它來對芯片復(fù)位并檢查復(fù)位成功與否;write_mac_ip()是向IDR0~IDR5寫入MAC地址,設(shè)定IP地址;set_RxConfig()主要是對Receive Configuration Register進(jìn)行設(shè)置。此外,網(wǎng)卡初始化程序設(shè)定只接收物理地址匹配的包,不接收組播和廣播。

  RTL8139接收緩沖區(qū)的大小可選,并設(shè)定為16KB。初始化過程中根據(jù)DSP的快慢還需要加一些延時,這一點非常重要。因為許多寄存器的設(shè)置都需要時間,若時間不夠,某些寄存器的值可能會設(shè)置不正確,從而導(dǎo)致初始化失敗,RTL8139的收發(fā)功能也會受到影響。

  RTL8139數(shù)據(jù)的收發(fā)用中斷方式完成。當(dāng)主處理器要向網(wǎng)上發(fā)送數(shù)據(jù)時,先將1幀數(shù)據(jù)通過DMA通道送到控制器的發(fā)送緩沖區(qū),然后發(fā)出傳送命令,RTL8139按照PCI總線主模式將數(shù)據(jù)從發(fā)送緩沖區(qū)轉(zhuǎn)移到內(nèi)部發(fā)送FIFO中。當(dāng)FIFO中數(shù)據(jù)包完整時,RTL8139即開始包發(fā)送。控制器在數(shù)據(jù)發(fā)送完成后通過中斷方式通知主處理器;接收數(shù)據(jù)時,網(wǎng)上來的數(shù)據(jù)包首先被放在接收FIFO中,同時RTL8139要進(jìn)行組播地址過濾。當(dāng)接收FIFO中數(shù)據(jù)包已達(dá)到接收配置寄存器的要求時,RTL8139請求PCI總線按照PCI主模式將數(shù)據(jù)傳到接收緩沖區(qū),接收滿1幀后,同樣以中斷方式通知主處理器。數(shù)據(jù)的收發(fā)是通過 DMA通道來完成的。中斷子程序流程圖如圖4所示。

 

  數(shù)據(jù)包的封裝按照IEEE802.3協(xié)議、IP協(xié)議和UDP協(xié)議,其幀格式如圖5所示。

 

  封裝的過程依次在源數(shù)據(jù)前加上UDP頭、IP頭和LLC頭。LLC頭即通常所說的以太網(wǎng)包頭,但也可以根據(jù)自己的需要加上其他協(xié)議如TCP、ARP或HTTP。不過在嵌入式系統(tǒng)中,為了節(jié)省資源,應(yīng)盡量減少協(xié)議的使用。在分組語音數(shù)據(jù)傳輸中,實時語音數(shù)據(jù)可以用UDP,而控制信號可以用TCP。

4  結(jié)束語

  本文所提出的DSP與RTL8139的接口解決方案已在試驗中得到實現(xiàn),并已用于IP分組語音數(shù)據(jù)的以太網(wǎng)傳輸,效果良好。隨著ISA總線的淘汰,PCI接口的網(wǎng)絡(luò)控制器必將在嵌入式領(lǐng)域中得到更廣泛的應(yīng)用。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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