《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 用雙端口RAM實現(xiàn)與PCI總線接口的數(shù)據(jù)通訊

用雙端口RAM實現(xiàn)與PCI總線接口的數(shù)據(jù)通訊

2008-05-09
作者:姚利民,孫逢春,李軍求,張承寧

  摘 要: 采用雙端口" title="雙端口">雙端口RAM實現(xiàn)DSP與PCI總線芯片之間的數(shù)據(jù)交換接口電路。提出了一種使用CPLD解決雙端口RAM地址譯碼和PCI接口芯片" title="接口芯片">接口芯片局部總線" title="局部總線">局部總線仲裁的的硬件設(shè)計方案,并給出了PCI總線接口芯片寄存器配置實例,介紹了軟件包WinDriver開發(fā)設(shè)備驅(qū)動程序" title="設(shè)備驅(qū)動程序">設(shè)備驅(qū)動程序的具體過程。
  關(guān)鍵詞: PCI總線 雙端口RAM CPLD 設(shè)備驅(qū)動


  隨著計算機(jī)技術(shù)的不斷發(fā)展,為滿足外設(shè)間以及外設(shè)與主機(jī)間的高速數(shù)據(jù)傳輸,Intel公司于1991年提出了PCI總線概念。PCI總線是一種能為主CPU及外設(shè)提供高性能數(shù)據(jù)通訊的總線,其局部總線在33MHz總線時鐘、32位數(shù)據(jù)通路時,數(shù)據(jù)傳輸速率最高可達(dá)133Mbps。實際應(yīng)用中,可通過PCI總線實現(xiàn)主機(jī)與外部設(shè)備的高速數(shù)據(jù)傳輸,有效解決數(shù)據(jù)的實時傳輸和存儲問題,為信號的實時處理打下良好基礎(chǔ)。
  本文主要提供一種基于PCI總線的數(shù)據(jù)傳輸系統(tǒng)設(shè)計方案,其中雙口" title="雙口">雙口RAM起橋梁作用,完成上位機(jī)與外圍主控單元之間的數(shù)據(jù)握手。
1 雙端口RAM實現(xiàn)PCI總線接口方案
  本系統(tǒng)主要用于解決上位機(jī)與外圍控制單元的數(shù)據(jù)傳輸問題。上位機(jī)運行信息診斷程序,通過PCI總線與外圍控制單元以一定速率傳輸數(shù)據(jù),在主機(jī)中實時監(jiān)控并保存數(shù)據(jù)。由于實現(xiàn)高速實時數(shù)據(jù)傳輸,數(shù)據(jù)量大,所以在PCI局部總線上插入一個高速雙端口RAM。雙端口RAM一端作為PCI總線接口的本地端存儲器,一端作為DSP目標(biāo)存儲器。需要傳輸保存的數(shù)據(jù)經(jīng)DSP處理后借助雙端口RAM和PCI總線接口完成了上位機(jī)與DSP的數(shù)據(jù)握手。本文提出的雙端口RAM實現(xiàn)PCI總線接口方案如圖1。


  考慮到PCI總線接口對局部總線的控制時序比較復(fù)雜,需要譯碼和控制電路來實現(xiàn)局部總線的訪問及控制。本系統(tǒng)使用CPLD解決雙口RAM的地址訪問競爭沖突問題。需解決的主要問題有:①PCI接口電路設(shè)計;②CPLD地址譯碼和總線仲裁;③PCI總線驅(qū)動程序開發(fā)。
2 PCI接口電路設(shè)計
  PCI卡的設(shè)計一般采用兩種方案。一種是根據(jù)PCI協(xié)議在FPGA或CPLD中實現(xiàn)PCI總線接口控制器,但是由于PCI協(xié)議的復(fù)雜性,使得開發(fā)難度大、周期長;另一種使用現(xiàn)成的PCI接口芯片,用戶開發(fā)難度降低,只把重點放在PCI接口芯片局部總線的接口設(shè)計和PCI總線配置空間的初始化,而不用速度考慮PCI總線規(guī)范上眾多的協(xié)議規(guī)范,加快了開發(fā)時間。
  本數(shù)據(jù)傳輸系統(tǒng)使用PLX公司的PCI 9030總線接口芯片,以CPLD完成邏輯控制及與外設(shè)的連接,整個系統(tǒng)的硬件框圖如圖 2。其中雙端口RAM采用IDT71V321,CPLD選用XILINX公司的XC9536CPLD芯片,EEPROM選用NS公司的93CS56,控制單元DSP選用TMS 320LF2407A。
2.1 PCI 9030內(nèi)部結(jié)構(gòu)及其數(shù)據(jù)傳輸
  PCI 9030是PLX公司開發(fā)的PCI總線目標(biāo)接口芯片。其特點:低功耗,PQFP176針封裝,符合PCI V2.2規(guī)范;在PCI總線上是從設(shè)備,但在局部總線上是主設(shè)備;PCI 9030支持突發(fā)傳輸,有5個PCI總線到局部總線地址空間,9個可編程的通用I/O,4個可編程的片選,支持熱插拔。PCI 9030主要由PCI總線接口邏輯、局部總線接口邏輯、串行E2PROM接口邏輯和內(nèi)部邏輯組成,結(jié)構(gòu)框圖見圖3。

?


  PCI 9030支持PCI主設(shè)備直接訪問局部總線上的設(shè)備,數(shù)據(jù)傳輸方式分為內(nèi)存映射的突發(fā)傳輸和I/O映射的單次傳輸,并且由PCI基址寄存器設(shè)置在PCI內(nèi)存和I/O空間中的合適位置,另外局部映射寄存器允許PCI地址空間轉(zhuǎn)換到局部地址空間。
2.2 配置實例
  系統(tǒng)訪問的雙口RAM存儲空間為2KB,要求將這個存儲器空間映射到局部地址空間0,采用內(nèi)存方式映射,存儲器的數(shù)據(jù)寬度為 8位,并且不采用突發(fā)傳輸,讀寫時不可預(yù)取。下面介紹這個地址空間各個寄存器的具體配置過程。
  (1)配置地址范圍寄存器
  根據(jù)PCI配置寄存器與LAS0RR的對應(yīng)關(guān)系以及雙口RAM的地址空間800H,取7FFH的補碼得到FFFFF800H。又因為按照設(shè)計要求,要映射到內(nèi)存空間的任何位置并且設(shè)置為不可預(yù)取的,這樣LASORR寄存器后3位應(yīng)該為000H。所以LAS0RR的值應(yīng)該最終確定為FFFFF800H。
  (2)配置基址寄存器
  該寄存器的基址必須是地址空間范圍的整數(shù)倍,在本例中必須是2K的整數(shù)倍,可將基地址定為 00004000H,又由于基址寄存器位0為空間使能位,所以應(yīng)將這一位設(shè)置1;至于位 2、位3,由于是映射到內(nèi)存空間,設(shè)為00H即可。所以LAS0BA的值最終被確定為00004001H。
  (3)配置片選信號控制寄存器
  該寄存器的地址范圍和基地址必須與LAS0RR或LAS0BA所定義的范圍和空間相對應(yīng)??筛鶕?jù)PCI 9030提供的配置寄存器的方法確定CS0BASE的數(shù)值:板卡的2KB空間可以用十六進(jìn)制表示為800H,將800H右移一位得到400H,然后將基地址加到400H左邊的任何一位中。因為所采用的基地址為00004000H,所以得到的值為00004400H;又因為第1位為片選使能位,應(yīng)該設(shè)置為1。所以最終確定的數(shù)值為00004401H。
  由于局部總線采用8位的寬度,將工作方式定義在不使能突發(fā),不預(yù)取,配置總線區(qū)域描述寄存器的數(shù)值確定為400140A2H。另外,還要根據(jù)要求設(shè)置CNTRL寄存器控制PCI 9030的工作狀態(tài),確定為18784500H。當(dāng)所有這些數(shù)據(jù)都配置完成后,便可將這些數(shù)據(jù)按照加載順序?qū)懭氪蠩2PROM中,從而完成整個系統(tǒng)的配置。
  通過這幾個寄存器的配置,一個局部地址空間便可以確定下來。在系統(tǒng)上電后,系統(tǒng)BIOS根據(jù)這幾個寄存器的內(nèi)容將板卡上2KB的RAM空間重映射到PCI空間中,使主機(jī)可以像訪問自己的地址空間一樣訪問板卡上的RAM。
2.3 CPLD控制邏輯
  對于雙口RAM同一個地址單元,不能同時進(jìn)行讀或?qū)懖僮鳎珒蛇呥B接的主控芯片,都可以對其進(jìn)行讀、寫操作,因此必須解決地址競爭問題。本系統(tǒng)中,使用XILINX公司的XC9536CPLD芯片完成PCI局部總線的譯碼和控制電路。由于系統(tǒng)控制計算主要在DSP中完成,上位機(jī)只起監(jiān)控和數(shù)據(jù)保存作用,因此規(guī)定對雙口RAM的操作DSP優(yōu)先于PCI 9030;同時CPLD也參與了DSP片外程序存儲器Flash和數(shù)據(jù)存儲器RAM的地址譯碼,控制邏輯用公式表示為:
  
3 設(shè)備驅(qū)動程序設(shè)計
  設(shè)備驅(qū)動程序開發(fā)工具通常有DDK、VtoolsD、WinDrvr等。為加快開發(fā)速度,采用JUNDO公司的WinDrvr開發(fā)設(shè)備驅(qū)動程序。其使用簡單,支持多種操作系統(tǒng)。
  采用Windrvr開發(fā)PCI橋接設(shè)備的驅(qū)動程序有兩種方法。一種Wizard開發(fā)向?qū)亲詣由沈?qū)動程序框架代碼,然后根據(jù)實際需要,加入定制功能。這種方法生成的代碼較多,程序較復(fù)雜。另一種是在Vc++創(chuàng)建工程中直接利用Windrvr的API函數(shù)生成驅(qū)動程序,比在Wizard生成的框架代碼上修改更為靈活。本文采用后一種方法。以下是用Windrvr開發(fā)PCI9030橋芯片的驅(qū)動代碼,只要稍加改動就可以作為其他PCI芯片驅(qū)動程序的一部分,例如PCI9050、PCI9052等。程序中出現(xiàn)的變量名都由其名稱反映含義,具體可以參見Windrvr設(shè)計文檔說明。
  PCI9030_RegisterWinDrvr();         //注冊WinDrvr
  hWD=W_Open();                //打開Windrv設(shè)備,每次使用前要調(diào)用
  pciSan.searchId.dwVendoId=0x10b5;      //供貨號
  pciSan.searchId.dwDevice.Id=0x9030;     //設(shè)備號
  WD_pciScanCards(hWD,&pciScan);       //枚舉設(shè)備
  pciSlot=pciScan.cardSlot[0];         //得到設(shè)備槽號
  pciCardInfo.pciSlot=pciSlot;
  WD_PciGetCardInfo(hWD,&pciCardInfo);     //得到設(shè)備槽上的設(shè)備信息
  Card=pciCardInfo.Card;            //PCI卡上資源結(jié)構(gòu)
  cardReg.Card=Card;
  WD_CardRegister(hWD,&cardReg)        //鎖定卡上資源
  Item=Card.Item[2];              //資源賦給Item
  If(Item.item==ITEM>MEM0RY)
  { regAddr=Item.I.Mem.dwUserDirectAddr;
                          //得到PCI卡上內(nèi)存映射到用戶態(tài)地址
  }
  至此獲得了本地端映射到用戶的內(nèi)存地址,調(diào)用讀寫函數(shù)就可以對本地芯片進(jìn)行操作。
參考文獻(xiàn)
1 鄧曉勇,韓 燮,毛 明.利用FPGA實現(xiàn)與PCI總線接口的數(shù)據(jù)通信[J].華北工學(xué)院學(xué)報,2002;23(6):436~439
2 陳利學(xué),孫 彪,趙玉連等.微機(jī)總線與接口設(shè)計[M].成都:電子科技大學(xué)出版社,1998
3 PLX公司.PCI 9030 Data Book.Version 1.4.May,2002
4 劉 巍.一種快速開發(fā)PCI橋設(shè)備驅(qū)動程序的方法.現(xiàn)代雷達(dá),2002;(2):39~40
5 黃 殉,孫政順.利用WinDriver開發(fā)PCI設(shè)備驅(qū)動程序.電子技術(shù)應(yīng)用,2001;27(3):15~16

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久亚洲一区| 国产精品久久久久永久免费观看 | 欧美人成在线| 免费日韩av| 久久躁日日躁aaaaxxxx| 久久久久国产一区二区三区四区| 欧美在线免费| 久久国产精品一区二区三区四区 | 亚洲三级影片| 日韩午夜av| 99视频精品全部免费在线| 日韩视频中午一区| 日韩视频精品在线观看| 日韩视频在线一区二区| 洋洋av久久久久久久一区| 夜夜爽夜夜爽精品视频| 一本一道久久综合狠狠老精东影业 | 久久av一区二区三区| 亚洲欧美日韩专区| 亚洲欧美在线一区二区| 香蕉av777xxx色综合一区| 欧美在线亚洲| 久久视频一区二区| 免费在线日韩av| 欧美极品aⅴ影院| 欧美视频在线观看免费| 国产精品嫩草影院av蜜臀| 国产欧美日韩亚洲| 国产在线播精品第三| 1000部国产精品成人观看| 亚洲国产99| 一区二区三区久久精品| 亚洲欧美一级二级三级| 亚洲电影免费观看高清| 一本久道久久久| 亚洲欧美经典视频| 久久久久久久久久久成人| 欧美大片一区二区| 欧美日韩一区免费| 国产欧美一级| 亚洲国产精品传媒在线观看| 日韩视频一区二区三区在线播放免费观看 | 狼狼综合久久久久综合网| 欧美国产第一页| 国产精品va| 国内精品久久久久久影视8| 亚洲电影有码| 中日韩美女免费视频网址在线观看 | 亚洲图片欧洲图片日韩av| 欧美一区二区三区四区在线| 久久久综合视频| 欧美日韩国产美| 国产区亚洲区欧美区| 在线精品视频免费观看| 99在线|亚洲一区二区| 欧美怡红院视频| 亚洲精品韩国| 欧美一区二区精美| 欧美精品123区| 国产乱子伦一区二区三区国色天香| 伊大人香蕉综合8在线视| 一本色道久久综合亚洲精品按摩 | 一区二区国产日产| 久久精品国产一区二区三区免费看| 欧美sm极限捆绑bd| 国产精品亚洲综合| 亚洲激情一区二区| 欧美亚洲在线视频| 一区二区三区日韩| 久久久久久久网| 欧美视频在线一区| 在线成人激情| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲国产精品黑人久久久 | 国产婷婷色一区二区三区在线| 亚洲精品1234| 性欧美暴力猛交另类hd| 中文在线资源观看网站视频免费不卡| 久久久久一区二区三区| 国产精品女主播在线观看| 亚洲激情在线| 久久精品亚洲国产奇米99| 亚洲欧美激情四射在线日 | 亚洲午夜精品久久久久久浪潮| 亚洲黄色在线| 欧美一区二区三区视频免费| 欧美精品成人| 一区免费在线| 欧美一区二区三区免费观看| 亚洲一级免费视频| 欧美精彩视频一区二区三区| 伊人成年综合电影网| 欧美一二三视频| 亚洲综合首页| 欧美日韩精品免费观看视频完整| 在线不卡视频| 久久精品国内一区二区三区| 亚洲欧美综合精品久久成人| 欧美日韩福利| 亚洲激情一区二区| 亚洲欧洲综合| 麻豆91精品91久久久的内涵| 国产亚洲午夜高清国产拍精品| 亚洲视频国产视频| 一区二区日韩| 欧美久久久久久久久| 亚洲国产mv| 亚洲精品日韩在线| 另类酷文…触手系列精品集v1小说| 国产偷国产偷亚洲高清97cao| 亚洲一区二区久久| 午夜精品福利视频| 国产精品嫩草99a| 亚洲一区精品电影| 亚洲欧美国产制服动漫| 国产精品久久久久久久久久免费看| 一区二区三区 在线观看视频| 正在播放亚洲| 欧美日韩一区三区| 亚洲天堂黄色| 午夜在线精品| 国产日韩久久| 欧美亚洲午夜视频在线观看| 久久精品视频在线免费观看| 国产区精品在线观看| 欧美在线啊v| 农村妇女精品| 亚洲黑丝在线| 宅男噜噜噜66一区二区66| 欧美三级在线视频| 亚洲一级网站| 久久国产手机看片| 国产一区再线| 亚洲国产裸拍裸体视频在线观看乱了| 看欧美日韩国产| 亚洲国产精品女人久久久| 日韩亚洲欧美成人| 欧美日韩在线直播| 亚洲字幕一区二区| 久久精品一区二区三区中文字幕 | 久久理论片午夜琪琪电影网| 黄色成人免费观看| 亚洲狼人综合| 欧美亚洲成人精品| 亚洲欧美日韩久久精品| 久久香蕉国产线看观看av| 亚洲高清不卡在线观看| 99视频超级精品| 国产精品国产三级国产a| 午夜精品久久久久久久蜜桃app | 在线观看不卡av| 日韩一区二区精品在线观看| 欧美日韩精品一区二区三区四区| 亚洲深夜激情| 久久九九国产| 亚洲欧洲日夜超级视频| 亚洲视频1区| 国产亚洲成av人片在线观看桃| 亚洲国产一区二区精品专区| 欧美日韩精品一区| 午夜免费电影一区在线观看| 免费成人你懂的| 一区二区欧美日韩视频| 久久国产免费| 亚洲精品综合| 久久成人综合网| 91久久国产综合久久| 欧美一级一区| 亚洲国产99| 欧美自拍偷拍| 亚洲精品免费在线观看| 欧美一级视频精品观看| 亚洲大胆视频| 午夜精品偷拍| 亚洲国产日本| 欧美一区二视频| 最近看过的日韩成人| 欧美一区久久| 亚洲久色影视| 久久琪琪电影院| 在线一区视频| 麻豆成人在线观看| 亚洲一区二区在线免费观看视频| 欧美 日韩 国产精品免费观看| 亚洲一级在线观看| 欧美精品在线看| 久久国产精品毛片| 欧美午夜片在线免费观看| 亚洲国产天堂久久国产91| 国产精品日本一区二区| 亚洲三级影院| 国产欧美婷婷中文| 在线亚洲成人| 在线精品国产成人综合| 欧美一区三区二区在线观看| 日韩亚洲在线观看| 欧美xx69| 久久精品二区三区| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲卡通欧美制服中文|