91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 計算機技術

PCI接口擴展卡的快速開發方案

發布時間:2007/8/20 0:00:00 訪問次數:645

摘要:介紹了PCI總線擴展卡的設計思路和方法,并結合一個多功能CAN通信I/O卡的設計實例,介紹了PCI總線擴展卡的軟硬件設計流程,給出了一套快速可行的解決方案。


關鍵詞:PCI總線 PLX9052 設備驅動程序 Windriver


隨著計算機和控制技術的不斷發展,很多工程人員都選用PC機作為控制系統的操作平臺。為了能夠和外部設備通信,PC機上提供了外置的USB、串口、并口及內置的ISA、PCI等接口。PCI總線接口速度快,系統占用率低,有完備的即插即用(PnP)管理體制,是目前計算機插卡式外設總線的事實標準。


筆者設計了一塊PCI總線多功能CAN通信I/O卡,可以完成數字量I/O、CAN總線通信的功能。本文將根據筆者的實際經驗,介紹PCI接口擴展卡的軟硬件設計流程和一種快速開發方案。



1 PCI總線簡介


PCI總線標準由PCISIG(PCI Special Interest Group)制定,該組織的成員有Intel、IBM、DEC等公司。目前PC機中使用的PCI總線標準主要以PCI2.0為主,其頻率為33MHz,字寬為32bit,電源電壓為5V。新版的PCI標準向下兼容,并支持66MHz時鐘,字寬為64bit,電壓為3.3V。


PCI總線是一種時分復用的雙向應答總線,傳輸發起方稱為主設備,接收方稱為從設備。主設備用RFAME信號指示,從設備拉低它的DEVSEL線來表示響應傳輸請求。PCI總線的數據傳輸以幀為單位,每次傳輸由一個地址周期(Address Phase)和多個數據周期(Data Phase)組成,如圖1所示。AD0~AD31首先給出本次傳輸的首地址,后面緊跟一個或多個32位(4字節)寬的數據,多個數據的地址自動遞增。在地址周期,C/BE0~C/BE3這四根線的不同組合指示出在AD0~AD31上將要進行何種類型的操作,如C/BE0~C/BE3=0110表示存儲器讀,C/BE0~C/BE3=0011表示I/O寫。在數據周期,C/BE0~BE3對應AD0~AD31上四個字節的使能。IRDY和TRDY分別表示主設備準備好和從設備準備好。在傳輸過程中,只有IRDY和TRDY同時有效,傳輸才能繼續;否則插入等待周期,用于在不同速度的設備之間協調工作。


計算機的接口卡一般會用到I/O端口、存儲器空間、中斷及DMA等計算機資源。傳統ISA接口卡通過更改跳線來避免多塊卡之間的資源沖突,PCI接口卡則摒棄了硬件跳線,由軟件統籌分配資源,這被稱為即插即用。為實現此功能,PCI協議除了可以對I/O空間、存儲器空間讀寫外,還定義了對配置空間的讀寫(C/BE0~C/BE3=1010、1011)。所謂配置空間,是指映射到每塊接口卡上的256字節的特殊功能寄存器。設計者事先在配置空間的指定位置寫入需要申請使用的資源量,主板上電后,由PnP-Bios讀取各卡的配置空間,對它們所需的資源進行統籌分配,再將分配結果寫回對應的配置空間地址,完成自動配置。



2 PCI接口卡的硬件設計及調試


以筆者設計的PCI卡為例,使用SJA1000實現CAN總線通信功能,需要映射32字節的存儲器空間和一個中斷資源,在功能上屬于PCI從設備(Target-only Device)。SJA1000的對外接口電路可以直接與Intel8051、8096及ISA總線連接,但是不能與PCI總線直接連接,因此需要設備用于邏輯轉換的接口電路。


PCI接口電路的設計一般有兩類方法:一類是使用FPGA/CPLD等可編程器件開發邏輯轉換電路。根據實現功能的多少,所需的等效門密度約為5000~15000門,可自行編程或者購買已有“軟核”(IPCORE)的產品實現;另一類是使用標準接口芯片對PCI總線邏輯信號解碼。第一種方法開發成本高、難度大、周期長、測試設備昂貴,但是批量生產成本很低,適合大規模全定制或半定制ASIC的生產。第二種方法相對簡單、開發周期短、性價比合理,適合本方案采用。市場上的接口芯片供應商有PLX、AMCC、TI等公司。其中,PLX公司的接口芯片PLX9052價格便宜、供貨渠道暢通、功能適用,因此這里選用PLX9052。


采用PLX9052的接口卡在邏輯上可分成三個功能模塊:PCI接口部分、EEPROM部分和局部總線部分,如圖2所示。


PLX9052提供完備的PCI從設備支持,PCI接口部分的47根信號線可以直接與PCI連接器(俗稱金手指)連接。PCI連接器上有兩根特殊的引線PRSNT1#和PRSNT2#,它們不參與PCI協議操作,只用來告知主板該卡消耗的電功率。


PLX9052將PCI總線上的操作轉換為對局部總線的操作,即通過LAD0~LAD7、RD、WR、CS等對SJA1000的寄存器進行訪問。舉例來說,如果系統上電后分配給本卡的存儲器地址空間為F680 0000~F680 001F,那么當系統通過PCI總線訪問這個區域時,PLX9052會應答,并將其轉換為局部地址0x0000~0x001F,對應于SJA1000的32個內部寄存器。另外,PLX9052自身也有一些內部寄存器,它們被自動映射到另一片內存區域,可通過PCI總線直接訪問。


PLX9052提供三種類

摘要:介紹了PCI總線擴展卡的設計思路和方法,并結合一個多功能CAN通信I/O卡的設計實例,介紹了PCI總線擴展卡的軟硬件設計流程,給出了一套快速可行的解決方案。


關鍵詞:PCI總線 PLX9052 設備驅動程序 Windriver


隨著計算機和控制技術的不斷發展,很多工程人員都選用PC機作為控制系統的操作平臺。為了能夠和外部設備通信,PC機上提供了外置的USB、串口、并口及內置的ISA、PCI等接口。PCI總線接口速度快,系統占用率低,有完備的即插即用(PnP)管理體制,是目前計算機插卡式外設總線的事實標準。


筆者設計了一塊PCI總線多功能CAN通信I/O卡,可以完成數字量I/O、CAN總線通信的功能。本文將根據筆者的實際經驗,介紹PCI接口擴展卡的軟硬件設計流程和一種快速開發方案。



1 PCI總線簡介


PCI總線標準由PCISIG(PCI Special Interest Group)制定,該組織的成員有Intel、IBM、DEC等公司。目前PC機中使用的PCI總線標準主要以PCI2.0為主,其頻率為33MHz,字寬為32bit,電源電壓為5V。新版的PCI標準向下兼容,并支持66MHz時鐘,字寬為64bit,電壓為3.3V。


PCI總線是一種時分復用的雙向應答總線,傳輸發起方稱為主設備,接收方稱為從設備。主設備用RFAME信號指示,從設備拉低它的DEVSEL線來表示響應傳輸請求。PCI總線的數據傳輸以幀為單位,每次傳輸由一個地址周期(Address Phase)和多個數據周期(Data Phase)組成,如圖1所示。AD0~AD31首先給出本次傳輸的首地址,后面緊跟一個或多個32位(4字節)寬的數據,多個數據的地址自動遞增。在地址周期,C/BE0~C/BE3這四根線的不同組合指示出在AD0~AD31上將要進行何種類型的操作,如C/BE0~C/BE3=0110表示存儲器讀,C/BE0~C/BE3=0011表示I/O寫。在數據周期,C/BE0~BE3對應AD0~AD31上四個字節的使能。IRDY和TRDY分別表示主設備準備好和從設備準備好。在傳輸過程中,只有IRDY和TRDY同時有效,傳輸才能繼續;否則插入等待周期,用于在不同速度的設備之間協調工作。


計算機的接口卡一般會用到I/O端口、存儲器空間、中斷及DMA等計算機資源。傳統ISA接口卡通過更改跳線來避免多塊卡之間的資源沖突,PCI接口卡則摒棄了硬件跳線,由軟件統籌分配資源,這被稱為即插即用。為實現此功能,PCI協議除了可以對I/O空間、存儲器空間讀寫外,還定義了對配置空間的讀寫(C/BE0~C/BE3=1010、1011)。所謂配置空間,是指映射到每塊接口卡上的256字節的特殊功能寄存器。設計者事先在配置空間的指定位置寫入需要申請使用的資源量,主板上電后,由PnP-Bios讀取各卡的配置空間,對它們所需的資源進行統籌分配,再將分配結果寫回對應的配置空間地址,完成自動配置。



2 PCI接口卡的硬件設計及調試


以筆者設計的PCI卡為例,使用SJA1000實現CAN總線通信功能,需要映射32字節的存儲器空間和一個中斷資源,在功能上屬于PCI從設備(Target-only Device)。SJA1000的對外接口電路可以直接與Intel8051、8096及ISA總線連接,但是不能與PCI總線直接連接,因此需要設備用于邏輯轉換的接口電路。


PCI接口電路的設計一般有兩類方法:一類是使用FPGA/CPLD等可編程器件開發邏輯轉換電路。根據實現功能的多少,所需的等效門密度約為5000~15000門,可自行編程或者購買已有“軟核”(IPCORE)的產品實現;另一類是使用標準接口芯片對PCI總線邏輯信號解碼。第一種方法開發成本高、難度大、周期長、測試設備昂貴,但是批量生產成本很低,適合大規模全定制或半定制ASIC的生產。第二種方法相對簡單、開發周期短、性價比合理,適合本方案采用。市場上的接口芯片供應商有PLX、AMCC、TI等公司。其中,PLX公司的接口芯片PLX9052價格便宜、供貨渠道暢通、功能適用,因此這里選用PLX9052。


采用PLX9052的接口卡在邏輯上可分成三個功能模塊:PCI接口部分、EEPROM部分和局部總線部分,如圖2所示。


PLX9052提供完備的PCI從設備支持,PCI接口部分的47根信號線可以直接與PCI連接器(俗稱金手指)連接。PCI連接器上有兩根特殊的引線PRSNT1#和PRSNT2#,它們不參與PCI協議操作,只用來告知主板該卡消耗的電功率。


PLX9052將PCI總線上的操作轉換為對局部總線的操作,即通過LAD0~LAD7、RD、WR、CS等對SJA1000的寄存器進行訪問。舉例來說,如果系統上電后分配給本卡的存儲器地址空間為F680 0000~F680 001F,那么當系統通過PCI總線訪問這個區域時,PLX9052會應答,并將其轉換為局部地址0x0000~0x001F,對應于SJA1000的32個內部寄存器。另外,PLX9052自身也有一些內部寄存器,它們被自動映射到另一片內存區域,可通過PCI總線直接訪問。


PLX9052提供三種類

相關IC型號

熱門點擊

 

推薦技術資料

電源變壓器制作
    鐵心截面積S=34mm×60mm, &nbs... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
方正县| 开原市| 昌江| 黔西| 乐都县| 黄石市| 淳化县| 上栗县| 军事| 张家港市| 天水市| 孟津县| 田阳县| 织金县| 彩票| 泽普县| 保定市| 大石桥市| 宣武区| 北票市| 鄂伦春自治旗| 洞口县| 丹棱县| 西畴县| 宣威市| 商丘市| 桦甸市| 夏河县| 池州市| 无极县| 渝北区| 佳木斯市| 鄂托克旗| 昆明市| 嘉善县| 仲巴县| 呼伦贝尔市| 右玉县| 桐梓县| 侯马市| 天津市|