<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PCI總線(xiàn)的數據轉換模塊的設計與應用

基于PCI總線(xiàn)的數據轉換模塊的設計與應用

作者: 時(shí)間:2012-02-09 來(lái)源:網(wǎng)絡(luò ) 收藏

外圍部件互連(Peripheral CompONent Interconnect),是一種先進(jìn)的高性能32/64位地址復用局部,可同時(shí)支持多組外圍設備,并且不受制于處理器,為中央處理器與高速外圍設備提供了一座溝通的橋梁,提高了吞吐量(32位時(shí)最大可達132 MB/s),是現在PC領(lǐng)域中流行的總線(xiàn)。總線(xiàn)具有嚴格的總線(xiàn)規范,這就保證了它具有良好的兼容性,符合總線(xiàn)規范的擴展卡可以插入任何PCI系統可靠地工作。

本文引用地址:http://dyxdggzs.com/article/149733.htm

1 PLX-PCI9054的結構和性能

PCI9054是PLX公司生產(chǎn)的PCI總線(xiàn)通用接口芯片,采用先進(jìn)的PLX管道結構技術(shù),符合PCIV2.1和V2.2規范。提供2個(gè)獨立的可編程DMA控制器,每個(gè)通道均支持塊和分散/集中的DMA方式,在PCI總線(xiàn)端支持32位/33 MHz,本地端可以編程實(shí)現8、16、32位的數據寬度,傳輸速率最高可達132 MB/s,本地總線(xiàn)端時(shí)鐘最高可達50 MHz支持復用/非復用的32位地址數據。

PCI9054提供了PCI、EEPROM、LOCAL總線(xiàn)3個(gè)接口。PCI9054作為一種橋接芯片在PCI總線(xiàn)和LOCAL總線(xiàn)之間提供傳遞消息,既可以作為兩個(gè)總線(xiàn)的主控設備去控制總線(xiàn),也可以作為兩個(gè)總線(xiàn)的目標設備去響應總線(xiàn)。PCI9054有6個(gè)零等待可編程FIFO存儲器,它們分別完成PCI發(fā)起讀、寫(xiě)操作,PCI目標讀、寫(xiě)操作和DMA讀、寫(xiě)操作。由于FIFO存儲器的存在,數據可以大量突發(fā)傳輸而不丟失。這樣不僅滿(mǎn)足實(shí)時(shí)性要求,同時(shí)可根據用戶(hù)的需要采用與PCI時(shí)鐘異步的本地頻率。串行EEPROM是用來(lái)在開(kāi)機時(shí)初始化配置內部寄存器的。內部寄存器(ItnternalRegis-ters)標識地址映射關(guān)系以及PCI端和本地端工作狀態(tài),包括PCI配置寄存器組、Local配置寄存器組、Runtime寄存器組、DMA寄存器組、I2O消息寄存器組。FIFO和內部寄存器在計算機主機或者本地端都是統一編址的,用戶(hù)可以從兩端通過(guò)編程訪(fǎng)問(wèn)它們的每一個(gè)字節。

2 數據實(shí)現

數據主要是為了把軟件仿真的數據通過(guò)PCI總線(xiàn)DMA傳輸,經(jīng)緩存、解碼、編碼、驅動(dòng)等處理成高速串行數據流(LNDS數據流)。本中,數據轉換的硬件組成包括:PCI接口芯片PCI9054、FIGA、EEPROM和SRAM。數據轉換模塊原理框圖如圖1所示。

數據轉換模塊設計原理框圖

圖1 數據轉換模塊設計原理框圖

2.1 PCI9054硬件接口設計

PCI9054供了3種物理總線(xiàn)接口:PCI總線(xiàn)接口、LOCAL總線(xiàn)接口和串行EPROM接口。FPGA通過(guò)專(zhuān)用接口芯片PCI9054與PCI總線(xiàn)相連,在FP-GA內部分配一塊RAM用作數據的緩沖區,可用VHDL語(yǔ)言編程實(shí)現FPGA作為RAM控制器。PCI9054專(zhuān)用接口芯片內部2個(gè)獨立DMA通道,可以實(shí)現系統數據在PC機內存與PCI板卡之間的高速傳輸,接口電路示意圖如圖2所示。

接口電路示意圖

圖2 接口電路示意圖

2.1.1 PCI9054與PCI總線(xiàn)接口

PCI9054與PCI總線(xiàn)接口連接相對簡(jiǎn)單,只要將PCI9054芯片的PCI端信號線(xiàn)與PCI插槽相應的信號線(xiàn)對應連接即可。這些信號包括地址數據復用信號、接口控制信號線(xiàn)、中斷等信號線(xiàn)。在電路板制作上,需注意PCI總線(xiàn)信號的走線(xiàn),為了滿(mǎn)足反射條件,對信號走線(xiàn)有嚴格要求:普通信號長(cháng)度,從插槽連接器到PCI橋芯片不大于1.5 inch(1 inch=0.025 4 m),CLK信號走線(xiàn)長(cháng)度為2.5±0.1 inch。否則會(huì )導致信號不穩定甚至總線(xiàn)沖突,無(wú)法開(kāi)機。

2.1.2 PCI9054與LOCAL Bus接口

PCI9054與本地信號接口是相對重要的一部分。PCI9054有3種工作模式:M、C和J模式。M模式是專(zhuān)為Motorola公司的MCU設計的工作模式,主要針對Motorola公司高性能PC850/860的而設計。C模式下PCI9054芯片通過(guò)片內邏輯控制將PCI的地址線(xiàn)和數據線(xiàn)分開(kāi),方便地為本地工作時(shí)序提供各種工作方式,一般廣泛于系統設計中。J模式是一種沒(méi)有Local Master的工作模式,它的好處是地址數據線(xiàn)沒(méi)有分開(kāi),嚴格仿效PCI總線(xiàn)的時(shí)序。J模式的接口設計相對復雜,最常用的是C模式。C模式下PCI9054分為PCIInitiator操作和PCI Target操作。在PCI Initiator操作過(guò)程中,本地總線(xiàn)主控設備能夠直接通過(guò)PCI9054訪(fǎng)問(wèn)PCI總線(xiàn),發(fā)起Local-to-PCI的數據傳輸。而在PCI Target操作過(guò)程中,PCI總線(xiàn)主控設備可以以總線(xiàn)寬度和突發(fā)傳輸功能訪(fǎng)問(wèn)PCI9054的3個(gè)本地空間(空間0,空間1和擴充ROM空間),本設計就采用了C模式。

信號線(xiàn)連接主要包括:LHOLD(申請使用本地總線(xiàn),輸出信號)、LHOLDA(對LHOLD應答,輸入信號)、ADS#(新的總線(xiàn)訪(fǎng)問(wèn)有效地址的開(kāi)始,在總線(xiàn)訪(fǎng)問(wèn)firST clock設置時(shí)輸出信號)、BLAST#(表示為總線(xiàn)訪(fǎng)問(wèn)的last transfer,輸出信號)、LW/R#(高電平表示讀操作,低電平表示寫(xiě)操作,輸出信號)、LA[31:2](地址線(xiàn))、LD[31:0](數據線(xiàn))、READY#(表示總線(xiàn)上讀數據有效或寫(xiě)數據完成,用以連接PCI9054等待狀態(tài)產(chǎn)生器,輸入信號)。

2.1.3 PCI9054與EEPROM接口

PCI9054在加電啟動(dòng)時(shí),需要從外部EEPROM讀取初始化數據來(lái)配置PCI9054的內部寄存器,而且依賴(lài)于硬件板卡的硬件資源要求,以及選擇正確的PCI9054工作模式。PCI9054提供4個(gè)管腳與串行EEPROM相連接,它們分別是EEDI、EEDO、EESK和EECS。本文選擇的串行EEPROM是93L-C56,因此對應于93LC56的DI、DO、SK、CS這4個(gè)管腳。

在計算機加電自檢期間,PCI總線(xiàn)的RST#信號復位。PCI9054內部寄存器的默認值作為回應。PCI9054出本地LRESET#信號并檢測串行EEP-ROM,若串行EEPROM中的前33個(gè)bit不全為1,那么PCI9054確定串行EEPROM非空,用戶(hù)可通過(guò)向9054的寄存器CNTRL的29位寫(xiě)1來(lái)加載EEPROM的內容到PCI9054的內部寄存器。配置的信息可在P1xSdk中的PLXMON下對EEPROM進(jìn)行配置。

EEPROM配置信息主要包括以下兩部分:1)PCI配置寄存器,填寫(xiě)生產(chǎn)商ID號、器件ID號、類(lèi)碼子系統ID號和子系統生產(chǎn)商ID號。對于PCI-9054,其生廠(chǎng)商ID號為1OB5,器件ID號為9054,子系統號為9054,子系統ID號為10B5,類(lèi)碼號為0680,表示其為橋設備中的其他橋設備類(lèi)。 2)本地配置寄存器的配置,即對本地地址空間及其本地總線(xiàn)屬性的配置。這些配置要根據實(shí)際開(kāi)發(fā)的硬件板卡的硬件資源進(jìn)行配置。設備人員配置寄存器的任務(wù)就是要把某一段本地地址映射為PCI地址,也就是當主機CPU要訪(fǎng)問(wèn)本地地址空間時(shí),要知道其對應的PCI總線(xiàn)地址。

2.2 數據緩存器設計

數據緩存器由兩組SRAM組成,在模擬數據時(shí),主機從磁盤(pán)陣列上讀取要模擬的數據,通過(guò)PCI總線(xiàn)的DMA傳輸給FPGA,首先存到SRAM-A里,SRAM-A存儲滿(mǎn)時(shí),開(kāi)始以一定的速率讀SRAM-A里的數據,并串轉換成串行數據,用LVDS信號形式發(fā)送,在讀的同時(shí)主機啟動(dòng)第二次DMA傳輸數據給FPGA,再存到SRAM-B,SRAM-A讀完、SRAM-B寫(xiě)滿(mǎn)就開(kāi)始以一定的速率讀SRAM-B的數據,并串轉換成串行數據,用LVDS信號形式發(fā)送,這樣輪番交替形成“乒乓機制”,有效克服了數據流不連續的現象,解決了形成不間斷數據流和兩次DMA傳輸之間的數據間斷問(wèn)題。

3 工作流程

在設計中,PCI端的數據傳輸主要是利用PCI9054的BLOCK DMA模式。PCI9054集成了2個(gè)相互獨立的DMA通道,每個(gè)通道都支持Block DMA和Scatter/Gather DMA,通道0還支持Demand DMA傳輸方式。

Block DMA要求PCI主機或Loeal主機提供PCI和Local的起始地址、傳輸字節數、傳輸方向。主機設定DMA開(kāi)始位啟動(dòng)DMA數據傳輸,一旦傳輸完成,PCI9054設定DMA“傳輸結束位”結束DMA。如果啟動(dòng)中斷允許位,在傳輸結束時(shí)PCI9054將向主機(PCI主機或LOCAL主機)產(chǎn)生中斷。在DMA傳輸中,PCI9054既是PCI總線(xiàn)的主控器又是Loeal總線(xiàn)的主控器。

Scatter/Gather DMA要求主機在PCI空間或Local空間設定Descriptor模塊,模塊包括PCI和Local的起始地址、傳輸字節數、傳輸方向和下一個(gè)Descriptor模塊的地址。PCI9054載人第1個(gè)Descriptor模塊并發(fā)起傳輸,連續加載下一個(gè)模塊,直到它偵測到“鏈結束位”有效,PCI 9054設置“傳輸結束位”,或者申請PCI或Local中斷。這種模式下,PCI9054也可以在每個(gè)模塊加載時(shí)有效中斷信號,結束DMA傳輸。若Desc-riptor模塊在本地存儲空間,可以編程使DMA控制器在每次DMA傳輸結束后清除傳輸字節數。具體工作流程如圖3所示。

數據轉換流程圖

圖3 數據轉換流程圖

通過(guò)設置其DMA控制器內部的寄存器即可實(shí)現兩總線(xiàn)之間的數據傳輸。PCI9054的DMA傳輸過(guò)程可由以下幾個(gè)步驟實(shí)現:

1)設置方式寄存器:設置DMA通道的傳輸方式,寄存器DMAMODE0或者DMAMODE1;

2)設置PCI地址寄存器:設置PCI總線(xiàn)側的地址空間起始地址;

3)設置LOCAL地址寄存器:設置LOCAL總線(xiàn)側的地址空間起始地址;

4)設置傳輸計數寄存器:以字節位單位設置每次DMA數據傳輸量;

5)設置描述寄存器:設置DMA傳輸的方向,0表示數據從PCI總線(xiàn)到Local總線(xiàn),1表示數據從Local總線(xiàn)到PCI總線(xiàn);

6)設置命令/狀態(tài)寄存器:?jiǎn)?dòng)或停止DMA操作。

程序啟動(dòng)開(kāi)始模擬后,驅動(dòng)程序收到應用程序開(kāi)始模擬的命令后,同時(shí)填寫(xiě)PCI9054的門(mén)鈴寄存器(PCI端偏移地址:60H)產(chǎn)生LO-CAL端的中斷通知硬件接收DMA的數據,FPGA收到中斷后,清除中斷,同時(shí)判斷收到開(kāi)始模擬的命令。硬件準備好以后發(fā)中斷告訴主機已經(jīng)準備好,同時(shí)填寫(xiě)PCI9054的門(mén)鈴寄存器(PCI端偏移地址:64H)產(chǎn)生PCI端的中斷通知硬件已經(jīng)準備好,主機收到中斷后,清除中斷,填寫(xiě)啟動(dòng)DMA開(kāi)始寄存器,把計算機內存空間的數據通過(guò)PCI總線(xiàn)傳輸到PCI9054的LOCAL端,FPGA接收LOCAL端的數據存入數據緩沖區,同時(shí)由FPGA控制讀取緩沖區中的數據經(jīng)并串轉換用LVDS信號形式發(fā)送。當DMA結束后產(chǎn)生主機PCI中斷,主機收到中斷后清除中斷,并等待硬件準備好中斷來(lái)后清中斷填寫(xiě)下一個(gè)DMA開(kāi)始,直到模擬數據模擬完為止。

4 WDM驅動(dòng)程序設計

4.1 WDM驅動(dòng)程序簡(jiǎn)介

WDM驅動(dòng)程序是一種PnP驅動(dòng)程序,它同時(shí)還遵循電源管理協(xié)議,并能在Windows 98和Windows 2000間實(shí)現源代碼級兼容。WDM驅動(dòng)程序還細分為類(lèi)驅動(dòng)程序(class driver)和迷你驅動(dòng)程序(minidriver),類(lèi)驅動(dòng)程序管理屬于已定義類(lèi)的設備迷你驅動(dòng)程序向類(lèi)驅動(dòng)程序提供廠(chǎng)商專(zhuān)有的支持。在WDM驅動(dòng)程序模型中,每個(gè)硬件設備至少有兩個(gè)驅動(dòng)程序。其中一個(gè)驅動(dòng)程序稱(chēng)為功能(function)驅動(dòng)程序,了解使硬件工作的所有細節,負責初始化I/O操作,處理I/O操作完成時(shí)所帶來(lái)的中斷事件,為用戶(hù)提供一種設備適合的控制方式。另一個(gè)驅動(dòng)程序稱(chēng)為總線(xiàn)(bus)驅動(dòng)程序,它負責管理硬件與計算機的連接。例如,PCI總線(xiàn)驅動(dòng)程序檢測插入到PCI槽上的設備并確定設備的資源使用情況,它還能控制設備所在PCI槽的電流開(kāi)關(guān)。

4.2 驅動(dòng)程序開(kāi)發(fā)環(huán)境及設計

項目開(kāi)發(fā)中選擇的是Numega公司的Driverstudio驅動(dòng)程序開(kāi)發(fā)工具包,它是建立在Windows Driver Development Kit之上的驅動(dòng)程序開(kāi)發(fā)工具,包含了VtoolsD、DriverWorks、DriverNetWorks和SoftICE等開(kāi)發(fā)工具。DriverWorks用于開(kāi)發(fā)普通設備的WDM驅動(dòng)程序,SoftICE提供了強大的調試工具。在安裝Driverstudio之前,還需要安裝相應操作系統的DDK,如XPDDK和VC6.0工具。

在Driverstudio驅動(dòng)程序向導里可以輕易方便地建立起PCI9054的驅動(dòng)程序框架,而且Driverstudio還提供了PCI9054驅動(dòng)程序中大量類(lèi)函數的接口,降低了開(kāi)發(fā)難度,縮短了程序編寫(xiě)時(shí)間。調試程序可以使用SoftICE和Driver Moniter,極為方便查錯及優(yōu)化程序設計。

5 結束語(yǔ)

本文通過(guò)介紹PCI總線(xiàn)接口協(xié)議芯片PCI9054的性能、特點(diǎn),分析Windows的WDM驅動(dòng)程序的特點(diǎn),對所設計的數據轉換模塊結構進(jìn)行了詳細說(shuō)明,提出了雙SBAM結構數據緩存器的應用方案。應用結果表明,該設計可滿(mǎn)足數字視頻帶寬20 MHz以?xún)鹊母咚俅袛祿鳎↖NDS數據流)的轉換與傳輸,保證了硬件內存大容量讀取的高速、實(shí)時(shí)性。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>