孫 吉,張丕狀,呂永志
(中北大學 信息探測與處理技術(shù)研究所,山西 太原 030051)
?
關(guān)于PXI總線開發(fā)的討論
孫吉,張丕狀,呂永志
(中北大學 信息探測與處理技術(shù)研究所,山西 太原 030051)
摘要:論述了PXI總線開發(fā)的背景以及PXI總線轉(zhuǎn)化為本地總線的具體開發(fā)過程,包括驅(qū)動的開發(fā),硬件電路的搭建和本地總線的工作流程。
關(guān)鍵詞:PXI總線;CPLD;狀態(tài)機;PCI9052
PXI(PCIeXtensions for Instrumentation)總線以其穩(wěn)定可靠的傳輸速率和堅固的硬件連接已經(jīng)被廣泛應用到工業(yè)數(shù)據(jù)采集中,它保持了跟個人計算機軟件的兼容性,不僅使用方便而且價格低廉,直接應用了PCI規(guī)范定義的電氣特性,不僅有著PCI的電氣規(guī)范特性,而且有Compact PCI的堅固耐用的物理特性。PXI總線源于Compact PCI。
PXI可以利用現(xiàn)成的大量工業(yè)標準軟件數(shù)據(jù)的存儲及處理的微機系統(tǒng)的開發(fā)。
PXI支持兩種Eurocard尺寸的模塊:3U,160*100mm;6U,233.35*160mm。3U可以有J1,J2兩個接口連接器,J1包括32位本地總線信號,J2包括64位PCI數(shù)據(jù)所需信號和用于實現(xiàn)PCI電氣特性的信號。
1PXI總線的發(fā)展過程
PXI總線技術(shù)的產(chǎn)生和發(fā)展可以分為三個主要階段:
1) PCI局部總線技術(shù)
PCI是Peripheral Component Interconnect的英文縮寫,由美國Intel公司首先推出。1991年Intel公司聯(lián)合世界上多家公司成立了PCISIG,致力于促進PCI局部總線工業(yè)標準的發(fā)展。1992年,PCISIG發(fā)布了PCI局部總線規(guī)范1.0。經(jīng)過修改后,1993年發(fā)布了PCI總線局部規(guī)范2.0,1995年又發(fā)布了修改版2.1,PCI局部總線是微機上的處理器/存儲器與外圍控制部件、外圍附加模塊之間的互聯(lián)結(jié)構(gòu),它規(guī)定了互聯(lián)結(jié)構(gòu)的協(xié)議、電氣機械以及配置空間規(guī)范。
2) CompactPCI總線技術(shù)
CompactPCI是 Compact Peripheral Component Interconnect的縮寫,是PCI總線的電氣和軟件標準加歐式卡的組裝標準。自1993年以來,由于PCI總線在開放性、高性能、低成本、通用操作系統(tǒng)等方面的優(yōu)勢,使其得到迅速的普及和發(fā)展。這一沖擊波大大激發(fā)了工業(yè)領(lǐng)域和通信市場的制造商及用戶開始考慮如何利用PCI的成果和改造PCI總線,制造出更堅實、模塊化、更易用、生命周期更長的嵌入式計算機產(chǎn)品,滿足工業(yè)控制通信領(lǐng)域的需要。
1994年,美國的一些工業(yè)計算機制造商建立了PCI工業(yè)計算機制造協(xié)會,簡稱PICSIG。1995年P(guān)ICSIG出版了CompactPCI規(guī)范1.0,1997年又出版了CompactPCI規(guī)范2.0。
CompactPCI迅速利用PCI的優(yōu)點,提供了滿足工業(yè)需求的高性能核心系統(tǒng)。
3) PXI總線技術(shù)
PXI總線是1997年美國國家儀器公司(NI)發(fā)布的一種高性能低價位的開放性,模塊化儀器總線,是一種專為工業(yè)數(shù)據(jù)采集與儀器儀表測量應用領(lǐng)域而設(shè)計的模塊化儀器自動測試平臺。他能夠提供高性能的測量,而價格不十分昂貴。PXI總線將CompactPCI規(guī)范定義的CompactPCI總線技術(shù)發(fā)展成適合于試驗,測量與數(shù)據(jù)場合應用的機械,電氣和軟件規(guī)范,從而形成了新的虛擬儀器體系結(jié)構(gòu)。PXI這種新型模塊化儀器系統(tǒng)是在PXI總線內(nèi)核技術(shù)上增加了成熟的技術(shù)規(guī)范和要求形成的。
它通過增加用于多板同步的觸發(fā)總線和參考時鐘,用于進行精確定時的星形觸發(fā)總線,以及用于相鄰模塊間高速通訊的局部總線來滿足試驗和測量用戶的要求。PXI規(guī)范在CompactPCI機械規(guī)范中增加了測試環(huán)境和主動冷卻要求以保證多廠商產(chǎn)品的互操作性和系統(tǒng)的易集成性。PXI將Microsoft Windows定義為其標準軟件框架,保證系統(tǒng)的易于集成與使用,從而進一步降低最終用戶的開發(fā)費用。
2PXI總線開發(fā)的具體實踐
本論文利用北京航天測控技術(shù)有限公司生產(chǎn)的基于Windows 8系統(tǒng)的PXI智能平板(產(chǎn)品代號為AMC58222)作為開發(fā)平臺,對PXI總線進行開發(fā)。
本設(shè)計主要是把PXI總線通過橋接芯片PCI9052來轉(zhuǎn)化為本地總線以此來實現(xiàn)PXI總線對本地信號的控制。
本地總線的實現(xiàn)是由CPLD完成的。
本論文討論的是把PXI總線轉(zhuǎn)換為本地總線后通過CPLD來控制板卡上的模擬開關(guān)。PXI總線傳輸數(shù)據(jù)需要用到驅(qū)動程序的開發(fā),這里用到的開發(fā)工具為WinDriver,該板卡的供電電壓為5 V,通過PXI總線來實現(xiàn)。開發(fā)的過程中使用的WinDriver的版本是10.21。該板卡是標準的3U模塊,總線用到了J1接口,可以提供32位的總線傳輸位數(shù),該板卡的實現(xiàn)方案如圖1所示。
圖1PXI開發(fā)總線的設(shè)計方案
本文所涉及的電路板的實物圖如圖2。
圖2 實際設(shè)計的電路板卡
在應用PXI總線的過程中我們應用到了50 Ω的排阻來實現(xiàn)PXI總線和PCI9052芯片的連接,其作用是為了增強總線的傳輸能力。
PCI9052所要實現(xiàn)的是將PXI總線轉(zhuǎn)化為本地總線,在使用PCI9052信號連接的過程中,需要注意一些問題,其中的引腳TEST和LHOLD需要接一個10 k的下拉電阻。CPLD的時鐘是由PCI9052提供的,其頻率為32 MHz,本論文用到的是PCI9052的C模式,該模式下數(shù)據(jù)總線和地址總線是分開的,下面表1是通過模擬開關(guān)控制的信號電平。
表1 控制模擬開關(guān)所需要的電平
在開發(fā)過程中,需要對驅(qū)動程序進行編寫,本論文采用的是WinDriver,該軟件的特點是支持ISA,EISA,PCI,Plug & Play和DMA。不需要牽扯到很低層的東西即可在短時間里編出驅(qū)動程序。使用WinDriver的優(yōu)點是:開發(fā)者并不需要熟悉任何內(nèi)部操作系統(tǒng)或kernel programming或DDK及任何驅(qū)動程式。WinDriver同時允許開發(fā)者在自己所熟悉的開發(fā)環(huán)境下,利用使用者模式(User Mode)如使用MSDEV Visual C/C++,Borland C++Builder,Delphi或者任何Win32編譯器。使用WinDriver所開發(fā)的驅(qū)動程序均可用于Windows 9x,NT/2000,NT Embedded,CE Linuxand Solaris等平臺。
該軟件可以縮短開發(fā)驅(qū)動程序的周期,它本身已經(jīng)建立了一個關(guān)于PCI9052驅(qū)動開發(fā)的基本框架,可以在此基礎(chǔ)上進行適合自己功能的驅(qū)動的開發(fā)。
首先要進行軟件的安裝,由于PLX9050的庫文件和PLX9052完全兼容,因此,可以使用plx/9050來對PCI9052芯片進行開發(fā)。安裝好軟件后依次打開軟件WinDriver目錄下的PXI,9050(該文件夾里包含Projects,Win32,X86文件夾各一個,file.txt文件,p9050.inf文件,和p9050_diag.c文件),安裝該文件下的p9050.inf文件,該文件夾里是一個PCI9050芯片的診斷程序,為總線的調(diào)試提供了簡單的驅(qū)動程序,我們可以在此基礎(chǔ)上對其進行修改,來滿足實際的需要。
打開該文件夾里的p9050_diag.exe,就可對我們開發(fā)的板卡進行測試,該測試程序包括以下幾個功能:
1) 掃描PCI總線
2) 找到和打開一個PLX芯片。
3) 讀/寫芯片上的存取器和IO口地址
4) 讀/寫芯片上的配置空間
5) 讀/寫run-time寄存器
6) 使能/禁止芯片的中斷
7) 使能/禁止即插即用和電源管理事件
8) 訪問板卡上的串行EEPROM
9) 退出
通過實際的測試后驗證發(fā)現(xiàn)板卡可以被電腦找到,并且可以正常讀取,我們在設(shè)計時用了四個LED燈來判斷是哪個開關(guān)在工作。
在設(shè)計本地總線的時候要用到CPLD,通過閱讀PCI9052的數(shù)據(jù)手冊,進行數(shù)據(jù)傳輸時需要對CPLD編寫狀態(tài)機來實現(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;
參考文獻
[1]任勇峰,彭巧君,劉占峰.基于FPGA的CPCI高速讀數(shù)接口設(shè)計[J].電子器件,2015(1):148-151.
[2]張艷.PXI總線技術(shù)綜述[J].電子世界,2013,24:15-16.
[3]趙明陽,朱巖,張建東,等.基于PCI局部總線的1553B總線接口卡設(shè)計[J].現(xiàn)代電子技術(shù),2012(10):47-49+52.
[4]陳琦.PCI9052芯片在話音處理單元中的應用[J].現(xiàn)代導航,2015(1):58-64.
[5]王亞曉,李平,王建華.基于PCI9052的CNC齒輪測量中心CAMAC機箱控制器的研制[J].工具技術(shù),2010(4):87-90.
[6]楊新友,鄒嵐,鐘建軍.基于WinDriver的USB驅(qū)動程序開發(fā)[J].電腦知識與技術(shù),2015(11):231-232.
收稿日期:2015-12-17
作者簡介:孫吉(1988- ),男,山西太原人,碩士研究生,主要從事通信與信息系統(tǒng)的研究。
文章編號:1674- 4578(2016)02- 0086- 03
中圖分類號:TP273
文獻標識碼: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