色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于PCI總線芯片PCI9056實現機載嵌入式計算機系統的設計

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:姜運生 ? 2021-03-26 10:31 ? 次閱讀

PCI總線起源于微型計算機,已經成為微型計算機事實上的總線標準。因其眾多的功能、強大的兼容性而獨領風騷。為PCI局部總線設計的器件是針對PCI而不是針對特定的CPU處理器,獨立于處理器的升級。其目標是實現電流盡可能小的系統,功耗低。軟件透明,在和PCI設備之間通信時,軟件驅動之間使用相同的命令集和狀態定義。隨著嵌入式計算機的發展,PCI總線也越來越多地被引入到嵌入式系統中。本文介紹在“十五”預研項目中實現嵌入式PCI總線的一些經驗體會,與大家切磋。

1 PCI總線概述

PCI(Peripheral Component Interconnect)總線,即外設部件互聯總線。在PCI應用系統中,如果某設備取得了總線控制權,就稱其為“主設備”(master),而被主設備選中以進行通信的設備稱為“從設備”(slave)。

系統信號包括復位信號RST和時鐘信號CLK。仲裁信號有總線申請REQ和總線授權信號GNT。接口控制信號包括主設備啟動PCI交易的FRAME信號、主設備的交易數據有效信號IRDY和目標完成本次數據交易的信號TRDY等。PCI沒有一般數據周期的讀寫信號,而是采用命令編碼形式定義本次PCI周期的讀寫屬性。每個PCI周期由主設備啟動,在第一個時鐘周期,AD[31..0]信號承載地址信息,C/BE[3..0]的組合代表命令,定義PCI周期。第二個時鐘手,AD[31..0]由提供數據一方驅動,C/BE[3..0]的組合代表有效的字節。詳細情況可參閱參考文獻,亦即PCI規范。

基于PCI總線芯片PCI9056實現機載嵌入式計算機系統的設計

2 PCI總線設計

目前有眾多的能支持PCI總線的廠家和芯片。其中以美國PLX公司的PCI9056功能最完備,使用簡易。下面的設計以PCI9056為主要模型。

2.1 PCI系統時鐘

PIC總線的信號驅動采用反射波方式而不是傳統的入射波。這樣,對各設備采樣時刻的偏差要求很高,亦即時鐘的偏斜(skew)應盡可能小,最大的時鐘偏斜≤2ns。最好整個PCI系統各設備采用同一時刻;但同一時鐘的驅動能力有限,不可能同步驅動所有PCI設備。IDT74CT3807時鐘驅動器可以解決這個問題。它將一個時鐘源泉轉換為10個等同的時鐘,各時鐘之間的偏斜≤350ps。圖2是PCI時鐘解決方案。

o4YBAGBdSB6Ace7_AAAz0z6oQyU521.png

顯然,除去中央資源,這個PCI系統最多可以帶9個設備,對于嵌入式系統來說已經足夠了。在PCI底板上,為保證時鐘的偏斜率,各PCI時鐘必須走等長線。

2.2 中央資源和PCI適配器

在PCI系統總線中,必須存在一個PCI主橋(Host)管理整個總線。主橋提供系統信號和進行PCI部遲疑不決仲裁。PCI9056可以工作在Host方式下,也可以作為普通PCI適配器。圖3是兩種工作模式原理。

o4YBAGBdSECAD7flAAENsIXQzys756.png

當HOSTEN引腳連接地時,PCI9056工作在Host模式,亦即成為系統的中央資源,在Host模式時,PCI9056的局部復位LRESET是輸入,接收來自局部CPU等的復位,然后在RST產生PCI總線復位,去復位整個PCI總線上的其它設備。而工作在適配器模式下的PCI9056剛好相反,RST接收來自PCI總線的復位,然后通過LRESET去復位PCI設備內的其它器件。一般地,把主橋的PCI8056設置為總線仲裁器。注意二者仲裁信號REQ和GNT互換連接。

PCI9056作適配器時,仲裁信號使用REQ和GNT。當它作為總線仲裁器時,還有其它的請求應答信號對可以使用。圖3中沒有表示出來。

2.3 加電初始化

眾所周知,PCI總線的地址是可以根據系統動態調整的。各個模塊在PCI空間所占的地址和長度取決于內部配置寄存器。系統程序一般在加電時就檢測整個系統所需的空間,分配各PCI設備的基址和所需存儲器空間、I/O空間。這個初始化過程可以用三個辦法完成。

如果PCI9056設計為系統的主橋(北橋),亦即中央資源(Host),則在它的局部總線一側都存在CPU。寄存器的初始化可以由CPU進行,也可以由存入EEPROM的內部參數自動裝入。如果PCI9056作為一般PCI設備的適配器,一般沒有CPU,可以由初始化過的主橋通過PCI配置周期來設置內部寄存器,也可以由EEPROM在加電時自動載入。圖4中的EEPROM采用仙童公司的FM93C56或FM93CS56皆可。由局部CPU可設置內部所有寄存器,控制邏輯應產生CCS片選。若不采用EEPROM加電自動載入初始化參數時,應該在DI/DO引腳下拉1kΩ的電阻。除由局部CPU初始化和EEPROM加電自動初始化外,更多的PCI設備由主橋通過PCI總線來動態初始化。系統軟件要保證各個設備的PCI空間不重疊。

pIYBAGBdSCaAfN4lAABGQKWxNq0783.png

3 軟件設計

PCI總線不易調試,不但在于硬件設計復雜,還在于驅動軟件有相當的難度。但只要把幾個基本概念和功能巧妙地體現在軟件中,整個驅動軟件就很清晰了。以下代碼是在TMS320C6701環境下的一些成熟的驅動函數。

3.1 配置主橋作為PCI總線的主設備

在初始化PCI總線其它設備時,中央資源作為PCI總線的主設備。此時由局部CPU設置所有寄存器,并不產生任務PCI周期,亦即局部邏輯必須譯碼產生CCS信號。

//功能:配置中央資源的PCI9056作為主設備時的參數

//入口參數

//Range: 映像范圍長度

//PCIBAddr: PCI基址

//LocBAM:局部存儲器基址

//LocBAMI: 局部I/O配置基址

void ConfigHostMaster(UINT Range,UINT PCIBAddr,UINT LocBAM,UINT LocBAMI)

{UINT Aword;

//PCI命令碼寄存器CNTRL

//D3..0=PCI Read Command Code for DMA

// 缺省1110b:Memory Line Read,存儲器行讀

//D7..4=PCI Write Command Code for DMA

// 缺省0111b:MemoryWrite, 存儲器寫

//D11..8=PCI MemoryRead Command Code for Direct Master,

// 缺省0110b:MemoryRead 存儲器讀

//D15..12=PCI MemoryWrite Command Code for Direct Master.

// 缺省1110b:MemoryWrite, 存儲器寫

//D30=1:復位PCI方

//就用這個缺省值,即000F.767EH

*(int *)LOC_CNTRL=*(int *)LOC_CNTRL|0x400000000;

Aword=0x000FFFFF;

While(Aword--); //復位持續

*(int *)LOC_CNTRL=*(int*)LOC_CNTRL & 0xBFFFFFFF;

//清掉軟件復位

//PCI仲裁控制器PCIARB

*(int *)LOC_PCIARB=0x00000001;//中央資源要當PCI總線仲裁器

//---Direct Master-to-PCI地址映射--

//局部基址+Range-->PCI地址映射。--

//局部基址+Range-->PCI基址+Range

//1.范圍寄存器DMRR

//長度范圍值DMRR

//長度范圍值應該是64KB的倍數,亦即D15..0=0000H

//而填入值應該是長度值的被碼,即變反+1,如

//64KB=0001.0000H-->FFFE.FFFFH+1=FFFF.0000H

//1MB=0010.0000H-->FFEF.FFFFH+1=FFF0.0000H

*(int *)LOC_DMRR=(~Range)+1;//映像范圍

//2.局部存儲器基址DMLBAM(P11-29)

//D15..0:Reserved.

//D31..16:基址高16位,必須是范圍值的倍數

*(int *)LOC_DMLBAM=LocBAM;

//3.局部I/O Configuration基址DMLBAI

//當配置訪問使能時,對這個寄存器所指的基址進行訪問,將在產生PCI配置周期

*(int *)LOC_DMLBAI=LocBAMI;

//4.PCI基址寄存器DMPBAM(P11-30)*(int *)LOC_DMPBAM=PCIBAddr|0xE3;

*(int *)LOC_DMCFGA=0x00000000;//暫時不產生配置周期

*(int *)LOC_DMDAC=0x0; //高32位地址始終為0,需要雙地址

//5.命令寄存器PCICR(P11-8)

//D0=IO Space=“1:要響應I/O周期”。

//D2=Master Enable=“1:允許做Master”。

*(int *)PCI9056_PCICR|=0x00000007;

return;

}

當PCI總線上的其它設備需要訪問中央資源時,主橋就成為從設備,所以應該配置其PCI空間到局部空間映射的參數。這個過程是一個逆變換,代碼在此省略。

3.2 配置PCI總線從設備

當中央資源作為主設備訪問其它PCI設備時,必須對從設備進行適當的初始化。一般選用PCI配置周期設置PCI橋的關鍵配置寄存器,然后用普通PCI存儲器周期設置其它寄存器。

Void ConfigPCISlave(UINT And,UINT Range,UINT PCIBAddr,UINT LRegPBA,UINT LocBAddr)

//功能:通過主橋產生PCI配置周期,去配置PCI總線上作為從方的PCI9056

//入口參數:

//ADn:設備號,亦即和被配置設備的IDSEL#相連的PCI地址

//Range:范圍長度

//PCIBAddr:PCI基址

//LRegPBA:內部寄存器的PCI存儲器基址(范圍512B),

//亦即PCIBAR0值

//LocBAddr:局部基址

{UINT Abit32W,LROffset;

//------用配置周期-----------------------

//設置命令寄存器PCICR

//D0=IO Space=“1:要響應I/O周期”

//D1=Memory Space=“1:要響應Memory周期”

//D2=Master Enable=“1:允許做Master”

ABit32W=GetConfigReg(ADn,PCI9056_PCICR)|0x07;

//讀原值并置位

SetConfigReg(and,PCI9056_PCICR,ABit32W);

//PCIBAR0:其它寄存器的PCI基址。

SetConfigReg(ADn,PCI9056_PCIBAR0,LRegPBA);

//設置PCI基址,以便能訪問其它寄存器

SetConfigReg(ADn,PCI9056_PCIBAR2,PCIBAddr);

//-----以下用PCI存儲器周期-----------

//1.Space0的局部地址范圍LAS0RR

LROffset=LRegPBA&0x001FFFFF;//取局部寄存器PCI基址的位移

ABit32W=~Range+1; //計算范圍值的補碼

SetPCIReg(LROffset,PCI_LAS0RR,Abit32W);

//2.Space0的局部基址LAS0BA

SetPCIReg(LROffset,PCI_LAS0BA,LocBAddr|1);

SetPCIReg(LROffset,PCI_EROMBA,0x38);

//4.Space 0/ROM的局部總線描述符LBRD0(P11-27)

//D1D0=11:Space 0-32Bit數據寬度。(復位缺省)

//D5..2=內部等待狀態計數器。

//D6=1:需要READY#信號。(復位缺?。?/p>

//D7=1:允許連續Burst

//D7=0:Burst-4 Mode (復位缺?。?/p>

//D8=0:Space 0允許預取

//D9=0:擴展ROM允許預取

//用缺省值40430043H

SetPCIReg(LROffset,PCI_LBRD0,0x40430043);

ABit32W=GetPCIReg(LROffset,PCI_LBRD0);

if(ABit32W!=0x40430043)

printf(“局部總線描述符LBRD0缺省值出錯=%8x”,ABit32W);

return;

}

PCI總線上的其它設備身份是動態變化的,所以對有能力做PCI主設備的,應該配置其局部空間到PCI空間映射的參數。

結語

PCI局部總線規范也在更新,向更快更強更省電的方向邁進。時鐘速率由最初的33MHz提高到66MHz,數據寬度也由32位擴展到可支持64位,工作電壓從5V轉變為3.3V,使功耗更小??梢灶A計,嵌入式PCI總線將極大提高機載嵌入式計算機系統的總體性能。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    455

    文章

    50714

    瀏覽量

    423147
  • 計算機
    +關注

    關注

    19

    文章

    7488

    瀏覽量

    87850
  • 總線
    +關注

    關注

    10

    文章

    2878

    瀏覽量

    88052
收藏 人收藏

    評論

    相關推薦

    FPGA和PCI9056接口問題求助!

    小弟最近在做FPGA和PCI9056的接口,PCI9056工作在C模式(從模式和DMA模式)下;數據手冊上說PCI9056每次突發讀寫的數據數量是可以設置的,分為1次發送1個32bit、1次發送4個
    發表于 09-12 20:43

    嵌入式計算機性能怎么評測?

    嵌入式計算機的設計不同于通用的計算機設計,它的設計過程較復雜。對于嵌人計算機的設計,是針對具體的應用問題,通過對問題的描述、建模,分解嵌入式
    發表于 09-23 06:34

    嵌入式計算機性能怎么評測?

    嵌入式計算機的設計不同于通用的計算機設計,它的設計過程較復雜。對于嵌人計算機的設計,是針對具體的應用問題,通過對問題的描述、建模,分解嵌入式
    發表于 03-09 07:35

    嵌入式計算機系統怎么降低功耗?

    綠色環保節能是全球化的熱潮,而嵌入式計算機系統被廣泛應用于便攜和移動性較強的產品,低功耗設計不僅是綠色環保的要求,也是嵌入式計算機系統體積和質量的約束。隨著市場對嵌入式計算機系統在體
    發表于 03-31 07:39

    嵌入式系統是什么?嵌入式計算機系統有哪些特點?

    什么是嵌入式系統?嵌入式微處理器有哪些特點?與通用型計算機系統相比,嵌入式計算機系統具有哪些特點?
    發表于 04-26 07:21

    什么是嵌入式計算機

    嵌入式計算機系統無處不在。如果你去過一家超級市場,并且注意到墻上有售貨亭機,那么這些售貨亭很有可能由嵌入式計算機供電。本文將介紹有關嵌入式PC和計算機所需的一切知識。什么是
    發表于 10-27 08:05

    什么是嵌入式計算機

    什么是嵌入式計算機時間:2012-2-26顧名思義,嵌入式計算機嵌入在宿主系統中使用的計算機,如嵌入
    發表于 10-27 06:02

    嵌入式系統計算機系統的區別是什么?

    原標題:嵌入式系統計算機系統有什么不同近段時間很多學習單片機或者傳統計算機的人員參加嵌入式培訓的比例在不斷增大,這部分同學可能以前對于
    發表于 10-28 08:54

    嵌入式計算機系統概述

    嵌入式計算機系統概述:定義:以應用為中心、以計算機技術為基礎,軟件硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統
    發表于 12-22 06:08

    討論幾種類型的嵌入式計算機系統

    型的嵌入式PC今天,我們將討論幾種類型的嵌入式計算機系統,其中包括:堅固的工業PC,車載計算機,物聯網網關,嵌入
    發表于 12-23 07:38

    嵌入式計算機系統相關資料推薦

    嵌入式計算機系統~
    發表于 12-23 06:00

    嵌入式計算機系統相關資料下載

    嵌入式計算機系統
    發表于 12-23 07:51

    PCI9056 pdf datasheet

    PCI9056 pd
    發表于 10-13 11:12 ?93次下載

    PC機與嵌入式計算機系統串行通訊的硬軟件實現

    【摘 要】 介紹了微機(PC)與嵌入式計算機系統的串行通訊的方法,敘述了嵌入式計算機在溫控系統中的應用和硬件結構,給出了Windows98下的串行通訊程序。
    發表于 05-15 21:41 ?828次閱讀
    PC機與<b class='flag-5'>嵌入式計算機系統</b>串行通訊的硬軟件<b class='flag-5'>實現</b>

    什么是嵌入式計算機?

    嵌入式計算機是一種專門設計用于特定功能的計算機系統,通常被嵌入到其他設備中,以執行特定的任務。這種計
    的頭像 發表于 01-15 15:10 ?1389次閱讀
    什么是<b class='flag-5'>嵌入式計算機</b>?
    主站蜘蛛池模板: 大陆老熟女60岁| 久久精品国产久精国产果冻传媒 | 色在线视频亚洲欧美| 国产一区在线观看免费| 欧美精品一区二区在线电影| 一级毛片皇帝 宫女| 国产精品卡1卡2卡三卡四| 欧美精品九九99久久在观看| 怡春院院日本一区二区久久| 亚洲午夜久久久久中文字幕| 动漫美女禁区| 女人高潮时一吸一夹| 涩涩伊人久久无码欧美| 99久久久无码国产AAA精品| 九九九色成人网| 日本精品久久久久中文字幕2 | 国产精品人妻无码久久久蜜桃| 女教师公车痴汉在线播放| 欲香欲色天天天综合和网| 国产一区二区不卡老阿姨| 视频一区精品自拍亚洲| 99久久国产综合色| 老奶奶50p| 真实处破女全过程完免费观看 | 墨西哥美女主播| 樱花动漫成人隐藏入口| 黑人开嫩苞| 日本亚洲中文字幕无码区| 99久久免费只有精品| 麻豆精品一卡2卡三卡4卡免费观看 | 99精彩免费观看| 久久中文字幕人妻熟AV女蜜柚M| 色翁荡熄月月| 草久久久久| 日韩精品无码久久一区二区三| 扒开美女下面粉嫩粉嫩冒白浆| 欧美高清一区二区三| aaa级黄影片| 欧美乱子YELLOWVIDEO| 99午夜视频| 欧美不卡一区二区三区|