国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

關(guān)于PXI總線開發(fā)的討論

2016-07-23 08:27張丕狀呂永志
山西電子技術(shù) 2016年2期
關(guān)鍵詞:狀態(tài)機(jī)

孫 吉,張丕狀,呂永志

(中北大學(xué) 信息探測與處理技術(shù)研究所,山西 太原 030051)

?

關(guān)于PXI總線開發(fā)的討論

孫吉,張丕狀,呂永志

(中北大學(xué) 信息探測與處理技術(shù)研究所,山西 太原 030051)

摘要:論述了PXI總線開發(fā)的背景以及PXI總線轉(zhuǎn)化為本地總線的具體開發(fā)過程,包括驅(qū)動(dòng)的開發(fā),硬件電路的搭建和本地總線的工作流程。

關(guān)鍵詞:PXI總線;CPLD;狀態(tài)機(jī);PCI9052

PXI(PCIeXtensions for Instrumentation)總線以其穩(wěn)定可靠的傳輸速率和堅(jiān)固的硬件連接已經(jīng)被廣泛應(yīng)用到工業(yè)數(shù)據(jù)采集中,它保持了跟個(gè)人計(jì)算機(jī)軟件的兼容性,不僅使用方便而且價(jià)格低廉,直接應(yīng)用了PCI規(guī)范定義的電氣特性,不僅有著PCI的電氣規(guī)范特性,而且有Compact PCI的堅(jiān)固耐用的物理特性。PXI總線源于Compact PCI。

PXI可以利用現(xiàn)成的大量工業(yè)標(biāo)準(zhǔn)軟件數(shù)據(jù)的存儲及處理的微機(jī)系統(tǒng)的開發(fā)。

PXI支持兩種Eurocard尺寸的模塊:3U,160*100mm;6U,233.35*160mm。3U可以有J1,J2兩個(gè)接口連接器,J1包括32位本地總線信號,J2包括64位PCI數(shù)據(jù)所需信號和用于實(shí)現(xiàn)PCI電氣特性的信號。

1PXI總線的發(fā)展過程

PXI總線技術(shù)的產(chǎn)生和發(fā)展可以分為三個(gè)主要階段:

1) PCI局部總線技術(shù)

PCI是Peripheral Component Interconnect的英文縮寫,由美國Intel公司首先推出。1991年Intel公司聯(lián)合世界上多家公司成立了PCISIG,致力于促進(jìn)PCI局部總線工業(yè)標(biāo)準(zhǔn)的發(fā)展。1992年,PCISIG發(fā)布了PCI局部總線規(guī)范1.0。經(jīng)過修改后,1993年發(fā)布了PCI總線局部規(guī)范2.0,1995年又發(fā)布了修改版2.1,PCI局部總線是微機(jī)上的處理器/存儲器與外圍控制部件、外圍附加模塊之間的互聯(lián)結(jié)構(gòu),它規(guī)定了互聯(lián)結(jié)構(gòu)的協(xié)議、電氣機(jī)械以及配置空間規(guī)范。

2) CompactPCI總線技術(shù)

CompactPCI是 Compact Peripheral Component Interconnect的縮寫,是PCI總線的電氣和軟件標(biāo)準(zhǔn)加歐式卡的組裝標(biāo)準(zhǔn)。自1993年以來,由于PCI總線在開放性、高性能、低成本、通用操作系統(tǒng)等方面的優(yōu)勢,使其得到迅速的普及和發(fā)展。這一沖擊波大大激發(fā)了工業(yè)領(lǐng)域和通信市場的制造商及用戶開始考慮如何利用PCI的成果和改造PCI總線,制造出更堅(jiān)實(shí)、模塊化、更易用、生命周期更長的嵌入式計(jì)算機(jī)產(chǎn)品,滿足工業(yè)控制通信領(lǐng)域的需要。

1994年,美國的一些工業(yè)計(jì)算機(jī)制造商建立了PCI工業(yè)計(jì)算機(jī)制造協(xié)會,簡稱PICSIG。1995年P(guān)ICSIG出版了CompactPCI規(guī)范1.0,1997年又出版了CompactPCI規(guī)范2.0。

CompactPCI迅速利用PCI的優(yōu)點(diǎn),提供了滿足工業(yè)需求的高性能核心系統(tǒng)。

3) PXI總線技術(shù)

PXI總線是1997年美國國家儀器公司(NI)發(fā)布的一種高性能低價(jià)位的開放性,模塊化儀器總線,是一種專為工業(yè)數(shù)據(jù)采集與儀器儀表測量應(yīng)用領(lǐng)域而設(shè)計(jì)的模塊化儀器自動(dòng)測試平臺。他能夠提供高性能的測量,而價(jià)格不十分昂貴。PXI總線將CompactPCI規(guī)范定義的CompactPCI總線技術(shù)發(fā)展成適合于試驗(yàn),測量與數(shù)據(jù)場合應(yīng)用的機(jī)械,電氣和軟件規(guī)范,從而形成了新的虛擬儀器體系結(jié)構(gòu)。PXI這種新型模塊化儀器系統(tǒng)是在PXI總線內(nèi)核技術(shù)上增加了成熟的技術(shù)規(guī)范和要求形成的。

它通過增加用于多板同步的觸發(fā)總線和參考時(shí)鐘,用于進(jìn)行精確定時(shí)的星形觸發(fā)總線,以及用于相鄰模塊間高速通訊的局部總線來滿足試驗(yàn)和測量用戶的要求。PXI規(guī)范在CompactPCI機(jī)械規(guī)范中增加了測試環(huán)境和主動(dòng)冷卻要求以保證多廠商產(chǎn)品的互操作性和系統(tǒng)的易集成性。PXI將Microsoft Windows定義為其標(biāo)準(zhǔn)軟件框架,保證系統(tǒng)的易于集成與使用,從而進(jìn)一步降低最終用戶的開發(fā)費(fèi)用。

2PXI總線開發(fā)的具體實(shí)踐

本論文利用北京航天測控技術(shù)有限公司生產(chǎn)的基于Windows 8系統(tǒng)的PXI智能平板(產(chǎn)品代號為AMC58222)作為開發(fā)平臺,對PXI總線進(jìn)行開發(fā)。

本設(shè)計(jì)主要是把PXI總線通過橋接芯片PCI9052來轉(zhuǎn)化為本地總線以此來實(shí)現(xiàn)PXI總線對本地信號的控制。

本地總線的實(shí)現(xiàn)是由CPLD完成的。

本論文討論的是把PXI總線轉(zhuǎn)換為本地總線后通過CPLD來控制板卡上的模擬開關(guān)。PXI總線傳輸數(shù)據(jù)需要用到驅(qū)動(dòng)程序的開發(fā),這里用到的開發(fā)工具為WinDriver,該板卡的供電電壓為5 V,通過PXI總線來實(shí)現(xiàn)。開發(fā)的過程中使用的WinDriver的版本是10.21。該板卡是標(biāo)準(zhǔn)的3U模塊,總線用到了J1接口,可以提供32位的總線傳輸位數(shù),該板卡的實(shí)現(xiàn)方案如圖1所示。

圖1PXI開發(fā)總線的設(shè)計(jì)方案

本文所涉及的電路板的實(shí)物圖如圖2。

圖2 實(shí)際設(shè)計(jì)的電路板卡

在應(yīng)用PXI總線的過程中我們應(yīng)用到了50 Ω的排阻來實(shí)現(xiàn)PXI總線和PCI9052芯片的連接,其作用是為了增強(qiáng)總線的傳輸能力。

PCI9052所要實(shí)現(xiàn)的是將PXI總線轉(zhuǎn)化為本地總線,在使用PCI9052信號連接的過程中,需要注意一些問題,其中的引腳TEST和LHOLD需要接一個(gè)10 k的下拉電阻。CPLD的時(shí)鐘是由PCI9052提供的,其頻率為32 MHz,本論文用到的是PCI9052的C模式,該模式下數(shù)據(jù)總線和地址總線是分開的,下面表1是通過模擬開關(guān)控制的信號電平。

表1 控制模擬開關(guān)所需要的電平

在開發(fā)過程中,需要對驅(qū)動(dòng)程序進(jìn)行編寫,本論文采用的是WinDriver,該軟件的特點(diǎn)是支持ISA,EISA,PCI,Plug & Play和DMA。不需要牽扯到很低層的東西即可在短時(shí)間里編出驅(qū)動(dòng)程序。使用WinDriver的優(yōu)點(diǎn)是:開發(fā)者并不需要熟悉任何內(nèi)部操作系統(tǒng)或kernel programming或DDK及任何驅(qū)動(dòng)程式。WinDriver同時(shí)允許開發(fā)者在自己所熟悉的開發(fā)環(huán)境下,利用使用者模式(User Mode)如使用MSDEV Visual C/C++,Borland C++Builder,Delphi或者任何Win32編譯器。使用WinDriver所開發(fā)的驅(qū)動(dòng)程序均可用于Windows 9x,NT/2000,NT Embedded,CE Linuxand Solaris等平臺。

該軟件可以縮短開發(fā)驅(qū)動(dòng)程序的周期,它本身已經(jīng)建立了一個(gè)關(guān)于PCI9052驅(qū)動(dòng)開發(fā)的基本框架,可以在此基礎(chǔ)上進(jìn)行適合自己功能的驅(qū)動(dòng)的開發(fā)。

首先要進(jìn)行軟件的安裝,由于PLX9050的庫文件和PLX9052完全兼容,因此,可以使用plx/9050來對PCI9052芯片進(jìn)行開發(fā)。安裝好軟件后依次打開軟件WinDriver目錄下的PXI,9050(該文件夾里包含Projects,Win32,X86文件夾各一個(gè),file.txt文件,p9050.inf文件,和p9050_diag.c文件),安裝該文件下的p9050.inf文件,該文件夾里是一個(gè)PCI9050芯片的診斷程序,為總線的調(diào)試提供了簡單的驅(qū)動(dòng)程序,我們可以在此基礎(chǔ)上對其進(jìn)行修改,來滿足實(shí)際的需要。

打開該文件夾里的p9050_diag.exe,就可對我們開發(fā)的板卡進(jìn)行測試,該測試程序包括以下幾個(gè)功能:

1) 掃描PCI總線

2) 找到和打開一個(gè)PLX芯片。

3) 讀/寫芯片上的存取器和IO口地址

4) 讀/寫芯片上的配置空間

5) 讀/寫run-time寄存器

6) 使能/禁止芯片的中斷

7) 使能/禁止即插即用和電源管理事件

8) 訪問板卡上的串行EEPROM

9) 退出

通過實(shí)際的測試后驗(yàn)證發(fā)現(xiàn)板卡可以被電腦找到,并且可以正常讀取,我們在設(shè)計(jì)時(shí)用了四個(gè)LED燈來判斷是哪個(gè)開關(guān)在工作。

在設(shè)計(jì)本地總線的時(shí)候要用到CPLD,通過閱讀PCI9052的數(shù)據(jù)手冊,進(jìn)行數(shù)據(jù)傳輸時(shí)需要對CPLD編寫狀態(tài)機(jī)來實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)換。該狀態(tài)轉(zhuǎn)換如圖3所示。

圖3 狀態(tài)轉(zhuǎn)換圖

3結(jié)論

以下是開發(fā)過程中編寫的部分CHDL程序:

begin

en_y<=en_n(1 downto 0);

lclk<= clk;

clk_out<= clk;

data_out_a<=reg1;

ads_n_o<=ads_n;

lwr_n_o<=lwr_n;

wr_n_o<=wr_n;

blast_n_o<=blast_n;

yima: process(addr_in)

begin

caseaddr_in is

when "00000000"=>en_n<="1110";

when "00000100"=>en_n<="1101";

when "00001000"=>en_n<="1011";

when "00001100"=>en_n<="0111";

when others=>en_n<="1111";

end case;

end process yima;

process(rst_n,clk,next_state)

begin

if rst_n='0' then

current_state<=idle;

else if clk'event and clk='1' then

current_state<=next_state;

end if;

end if;

end process;

process(current_state,ads_n,blast_n,wr_n,lwr_n)

begin

casecurrent_state is

when idle =>

if ads_n='0' then

next_state<=w_state;

else

next_state<=idle;

end if;

lrdyi_n<='1'; s_lwr_n<='1';

when w_state=>

if blast_n='1' then

next_state<=w_state;

else

next_state<=idle;

end if;

ifwr_n='0' and lwr_n='1' then

lrdyi_n<='0'; s_lwr_n<='0';

else

lrdyi_n<='1'; s_lwr_n<='1';

end if;

--when others null;

end case;

end process;

process(clk,s_lwr_n,en_n)

begin

if clk'event and clk='1' then

if s_lwr_n='0' then

case en_n is

when "1110" => reg1<=data_in;

-- when "1101" => reg2<=data_in;

--when "1011" => reg3<=data_in;

--when "0111" => reg4<=data_in;

when others=> reg1<="00000000";

--reg2<="00000000";

--reg3<="00000000";

--reg4<="00000000";

end case;

end if;

end if;

end process;

end Behavioral;

參考文獻(xiàn)

[1]任勇峰,彭巧君,劉占峰.基于FPGA的CPCI高速讀數(shù)接口設(shè)計(jì)[J].電子器件,2015(1):148-151.

[2]張艷.PXI總線技術(shù)綜述[J].電子世界,2013,24:15-16.

[3]趙明陽,朱巖,張建東,等.基于PCI局部總線的1553B總線接口卡設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012(10):47-49+52.

[4]陳琦.PCI9052芯片在話音處理單元中的應(yīng)用[J].現(xiàn)代導(dǎo)航,2015(1):58-64.

[5]王亞曉,李平,王建華.基于PCI9052的CNC齒輪測量中心CAMAC機(jī)箱控制器的研制[J].工具技術(shù),2010(4):87-90.

[6]楊新友,鄒嵐,鐘建軍.基于WinDriver的USB驅(qū)動(dòng)程序開發(fā)[J].電腦知識與技術(shù),2015(11):231-232.

收稿日期:2015-12-17

作者簡介:孫吉(1988- ),男,山西太原人,碩士研究生,主要從事通信與信息系統(tǒng)的研究。

文章編號:1674- 4578(2016)02- 0086- 03

中圖分類號:TP273

文獻(xiàn)標(biāo)識碼:A

The Discussion on the Development of PXI Bus

Sun Ji1, Zhang Pizhuang2, Lv Yongzhi

(TheInstituteofSignalCapturing&ProcessingTechnology,NorthUniversityofChina,TaiyuanShanxi030051,China)

Abstract:The article discusses the background of PXI bus development and the specific development process from PXI bus into the local bus, including the driver development, the construction of hardware circuit and the working process of local bus.

Key words:PXI bus; CPLD; state machine; PCI9052

猜你喜歡
狀態(tài)機(jī)
FPGA狀態(tài)機(jī)綜合可靠性探究 ①
基于有限狀態(tài)機(jī)的交會對接飛行任務(wù)規(guī)劃方法
在硬件課程設(shè)計(jì)中引入Quartus Ⅱ狀態(tài)機(jī)編輯器的探索與實(shí)踐
基于Spring StateMachine的有限狀態(tài)機(jī)應(yīng)用研究
三段式狀態(tài)機(jī)在單片機(jī)中的實(shí)現(xiàn)
基于單片機(jī)運(yùn)行的多線程任務(wù)狀態(tài)機(jī)
基于量子平臺狀態(tài)機(jī)的橋式起重機(jī)控制系統(tǒng)軟件設(shè)計(jì)
雙口RAM讀寫正確性自動(dòng)測試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法
基于有限狀態(tài)機(jī)的雷達(dá)狀態(tài)模型建立
基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)