《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > DSP與PCI網卡接口設計
DSP與PCI網卡接口設計
劉 陽 徐家愷 劉 兵
摘要: 介紹了Realtek公司生產的具有PCI接口的以太網控制芯片RTL8139的內部結構和主要寄存器,提出了利用PCI網橋實現DSP與RTL8139接口的解決方案,并給出了相應的硬件和軟件設計。
Abstract:
Key words :

  摘  要: 介紹了Realtek公司生產的具有PCI接口的以太網控制芯片RTL8139的內部結構和主要寄存器,提出了利用PCI網橋實現DSP與RTL8139接口的解決方案,并給出了相應的硬件和軟件設計。

  關鍵詞: PCI總線  RTL8139芯片  DSP  嵌入式

 

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

1 RTL8139

  RTL8139是帶PCI接口的10M/100M自適應網卡控制芯片,它提供32位PCI總線控制,支持IEEE802.3u 100Base-T和IEEE802.3x的全雙工流量控制;符合PCI 2.2標準,支持高級配置和電源接口(ACPI)和PCI對現代操作系統的電源管理(即對操作系統的直接電源管理),以提高電源管理的效率。此外,RTL8139還支持128KB的Boot ROM,提供網絡喚醒和遠程喚醒功能;含有2個2KB的收發FIFO;能夠降低網絡維護成本,消除使用障礙,而且可以很方便地使網絡由10M升級到100M,且帶寬可以達到200Mbps。RTL8139內部MAC層結構如圖1所示。

1.1 RTL8139的PCI接口

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

  (1)地址/數據信號

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

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

  (2)接口控制信號

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

  IRDYB、TRDYB:分別表示主、從設備準備好信號,二者必須配合使用,同時有效時方能進行數據傳輸。

  STOPB:目標設備請求停止數據傳輸信號。

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

  DEVSELB:設備選擇信號。

  (3)仲裁信號

  REQB:總線占用請求信號,表示RTL8139申請總線控制權。

  GNTB:總線占用允許信號,表示總線控制權已經交給RTL8139。

  主設備都必須有以上2種信號。

  (4)錯誤報告信號

  PERRB:數據奇偶校驗錯誤信號。

  SERRB:系統錯誤信號。

  (5)其他信號

  CLK:時鐘信號,最高可達33MHz。

  CLKRUNB:時鐘運行信號,這是RTL8139增設的信號,用來請求時鐘開始和表示時鐘狀態。

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

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

  在嵌入式系統中并不需要連接所有的引腳,可根據系統的實際需要進行選擇。

1.2 主要寄存器

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

  (1)Command Register

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

 

  (2)Interrupt Status Register

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

 

  (3)Receive Status Register

  該寄存器通常可以從數據包的包頭中讀出,是RTL8139芯片特有的。通過它可以知道網卡收包的狀態以便進行接收處理。其描述如表3所示。

 

2  系統設計方案

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

 

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

 

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

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

3 軟件設計

  軟件設計主要分為PCI網橋和網絡接口二部分。PCI網橋部分主要是對PCI9054進行初始化,即對它的PCI端配置寄存器和本地端配置寄存器進行正確的編程配置,以實現DSP與PCI網卡的無縫連接。網絡接口部分的編程包括對RTL8139進行復位初始化,數據包的接收和發送。

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

  簡化的網卡初始化程序如下:

  #define    CMD_RST     0x10       //復位標志

  #define    CMD_RE      0x08       //接收使能

  #define    CMD_TE      0x04       //發送使能

  #define    SUCCESS     0xFF       //網卡初始化成功標志

  Reset_init_rtl8139()

  {

              CMD=0x10;//軟復位網卡

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

                    //檢查網卡是否復位完成

              write_mac_ip();     //設定網卡的MAC地址和IP地址

              CMD=CMD_RE | CMD_TE;   //接收發送使能

              set_RxConfig();          //接收配置

              set_TxConfig();          //發送配置

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

              Rxmissed=0;              //clear 0

              CMD=CMD_RE | CMD_TE;

              return SUCCESS;

  }

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

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

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

 

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

 

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

4  結束語

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

 

參考文獻

1  Realtek Semi conductor Corp.RTL8139C Specification.2002

2  彭啟琮.TMS320C54x實用教程.北京:電子工業出版社,1999

3  張雄偉,曹鐵勇.DSP芯片的原理與開發應用.北京:電子工業出版社,2000

4  Texas Instrument.TMS320VC54x DSP Reference Set.1999

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一区二区性| 亚洲欧美另类中文字幕| 亚洲一区一卡| 一本一本a久久| 日韩亚洲一区二区| 亚洲裸体视频| 日韩写真视频在线观看| 亚洲精品国产精品国产自| 亚洲国产精品va在线观看黑人| 一区二区三区自拍| 在线观看日韩国产| 亚洲国产成人久久| 亚洲国产婷婷香蕉久久久久久99| 亚洲大黄网站| 亚洲国产日日夜夜| 亚洲人成网站色ww在线| 亚洲精品一区二区网址| 亚洲美女免费精品视频在线观看| 亚洲日韩欧美一区二区在线| 99国产精品| 亚洲一区二区三区精品在线观看 | 亚洲国产美女| 亚洲欧洲日韩综合二区| 亚洲国产三级在线| 日韩视频永久免费| 国产精品99久久99久久久二8 | 亚洲人成人77777线观看| 亚洲人成网站精品片在线观看| 亚洲精品乱码久久久久久日本蜜臀 | 欧美一区网站| 久久精品日韩欧美| 久久亚洲欧美| 欧美国产综合视频| 欧美三级网址| 国产麻豆视频精品| 樱花yy私人影院亚洲| 亚洲国产日韩欧美| 一区二区欧美国产| 亚洲主播在线播放| 久久国产免费| 亚洲免费高清| 香蕉久久一区二区不卡无毒影院| 久久久91精品国产| 欧美高清视频一区二区三区在线观看 | 欧美日韩在线播放三区四区| 国产精品入口尤物| 狠狠入ady亚洲精品经典电影| 亚洲第一级黄色片| 一区二区三区国产盗摄| 欧美亚洲系列| 亚洲日本中文字幕免费在线不卡| 一区二区三区视频在线看| 亚洲欧美一区二区视频| 裸体女人亚洲精品一区| 欧美精品一二三| 国产精品一区二区三区乱码| 伊人久久噜噜噜躁狠狠躁| 日韩一级二级三级| 欧美在线视频免费播放| 夜夜狂射影院欧美极品| 欧美一区二区三区视频在线观看| 蜜桃av噜噜一区二区三区| 欧美三级午夜理伦三级中文幕| 国产偷自视频区视频一区二区| 亚洲人成人77777线观看| 篠田优中文在线播放第一区| 亚洲人精品午夜| 欧美一级专区| 欧美另类videos死尸| 国产区亚洲区欧美区| 亚洲欧洲精品一区二区三区不卡| 亚洲一区国产视频| 亚洲精品乱码久久久久久久久| 先锋亚洲精品| 欧美日韩妖精视频| 国内精品福利| 国产精品99久久久久久宅男| 亚洲激情自拍| 久久国产综合精品| 欧美日韩视频在线一区二区观看视频| 国产主播一区| 中文国产成人精品| 亚洲乱码国产乱码精品精98午夜| 久久国产婷婷国产香蕉| 国产精品mv在线观看| 亚洲欧洲精品一区二区精品久久久 | 久久狠狠久久综合桃花| 亚洲欧美日韩综合aⅴ视频| 欧美成人自拍视频| 国产日韩欧美高清| 一区二区三区欧美激情| 亚洲日本va午夜在线影院| 久久久久欧美精品| 国产精品中文在线| 一区二区精品国产| 99ri日韩精品视频| 欧美成人有码| 1024成人网色www| 欧美一区二区三区的| 欧美一区二区三区在| 欧美新色视频| 日韩视频一区| 亚洲精品一区中文| 美玉足脚交一区二区三区图片| 国产色产综合产在线视频| 亚洲一区二区免费看| 亚洲一区二区欧美日韩| 欧美片网站免费| 亚洲激情中文1区| 亚洲人成啪啪网站| 免费欧美在线| 一区二区在线视频播放| 久久激情视频| 老鸭窝91久久精品色噜噜导演| 国产一区二区视频在线观看| 午夜日韩在线观看| 亚洲欧美怡红院| 国产精品美女www爽爽爽视频| 一本一本久久a久久精品牛牛影视| 一区二区激情小说| 欧美日韩国产区一| 99精品国产在热久久下载| 一区二区三区成人| 欧美日韩成人综合在线一区二区 | 在线亚洲一区二区| 欧美日韩精品高清| 日韩网站在线看片你懂的| 在线性视频日韩欧美| 欧美日韩免费观看一区三区 | 欧美成人午夜| 亚洲精品乱码| 在线综合视频| 国产精品xxx在线观看www| 亚洲一区国产视频| 久久精品30| 伊人天天综合| 亚洲免费成人av电影| 欧美日韩国产在线| 一区二区三区四区国产精品| 午夜精品福利视频| 国产欧美日韩一区二区三区| 性色av一区二区怡红| 久久夜色精品一区| 亚洲国产色一区| 亚洲一区二区三区精品视频| 国产精品呻吟| 久久国产黑丝| 欧美激情精品久久久久| 夜夜精品视频| 欧美一区二区精品| 国产原创一区二区| 亚洲日韩中文字幕在线播放| 欧美日本在线| 亚洲午夜久久久久久久久电影网| 久久国产视频网| 亚洲国产免费| 亚洲免费视频观看| 国产一在线精品一区在线观看| 亚洲开发第一视频在线播放| 欧美三级网址| 久久成人在线| 欧美日韩大片一区二区三区| 亚洲一二三级电影| 久久米奇亚洲| 99国产欧美久久久精品| 久久国产欧美| 亚洲欧洲在线视频| 欧美一级理论片| 亚洲国产美女| 欧美亚洲综合在线| 亚洲国产日韩在线一区模特| 午夜激情一区| 亚洲国产岛国毛片在线| 亚洲欧美日韩在线高清直播| 影音先锋中文字幕一区| 亚洲在线成人| 在线欧美日韩| 香蕉乱码成人久久天堂爱免费| 亚洲第一色在线| 午夜视频在线观看一区| 在线播放中文一区| 亚洲女人天堂成人av在线| 在线观看亚洲精品视频| 亚洲欧美一区二区三区久久 | 欧美激情91| 亚洲欧美在线网| 欧美日韩国产成人高清视频| 羞羞答答国产精品www一本| 欧美精品亚洲精品| 欧美在线一级va免费观看| 欧美日韩午夜精品| 亚洲第一精品影视| 国产精品麻豆成人av电影艾秋| 91久久线看在观草草青青| 国产精品亚洲一区| 在线一区二区三区四区| 精品91在线| 欧美专区亚洲专区| 中文在线不卡| 欧美日本中文|