《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 用CPLD實(shí)現(xiàn)基于PC104總線的429接口板
用CPLD實(shí)現(xiàn)基于PC104總線的429接口板
摘要: PC104總線系統(tǒng)是一種新型的計(jì)算機(jī)測(cè)控平臺(tái),作為嵌入式PC的一種,在軟件與硬件上與標(biāo)準(zhǔn)的臺(tái)式PC(PC/AT)體系結(jié)構(gòu)完全兼容,它具有如下優(yōu)點(diǎn):體積小、十分緊湊,并采用模塊化結(jié)構(gòu),功耗低,總線易于擴(kuò)充,緊固堆疊方式安裝,適合于制作高密度、小體積、便攜式測(cè)試設(shè)備,因此在軍用航空設(shè)備上有著廣泛的應(yīng)用,但也正是PC104板的這種小尺寸結(jié)構(gòu)、板上可用空間少給設(shè)計(jì)帶來(lái)了一定的困難,所以本設(shè)計(jì)采用了復(fù)雜可編程器件CPLD,用CPLD完成了PC104總線與429總線通訊的主要電路,大大節(jié)省了硬件資源,本文著重介紹了C
關(guān)鍵詞: CPLD PC104總
Abstract:
Key words :

        PC104總線系統(tǒng)是一種新型的計(jì)算機(jī)測(cè)控平臺(tái),作為嵌入式PC的一種,在軟件與硬件上與標(biāo)準(zhǔn)的臺(tái)式PC(PC/AT)體系結(jié)構(gòu)完全兼容,它具有如下優(yōu)點(diǎn):體積小、十分緊湊,并采用模塊化結(jié)構(gòu),功耗低,總線易于擴(kuò)充,緊固堆疊方式安裝,適合于制作高密度、小體積、便攜式測(cè)試設(shè)備,因此在軍用航空設(shè)備上有著廣泛的應(yīng)用,但也正是PC104板的這種小尺寸結(jié)構(gòu)、板上可用空間少給設(shè)計(jì)帶來(lái)了一定的困難,所以本設(shè)計(jì)采用了復(fù)雜可編程器件CPLD,用CPLD完成了PC104總線與429總線通訊的主要電路,大大節(jié)省了硬件資源,本文著重介紹了CPLD部分的設(shè)計(jì)。

  1 系統(tǒng)總體設(shè)計(jì)

  CPLD是一種復(fù)雜的用戶可編程邏輯器件,由于采用連續(xù)連接結(jié)構(gòu),易于預(yù)測(cè)延時(shí),從而使電路仿真更加準(zhǔn)確。再加上使用方便的開(kāi)發(fā)工具,如MAX+PLUSII、Quartus等,使用CPLD器件可以極大地縮短產(chǎn)品開(kāi)發(fā)周期,給設(shè)計(jì)修改帶來(lái)很大方便。本論文描述了利用開(kāi)發(fā)工具M(jìn)AX+PLUS II實(shí)現(xiàn)CPLD處理ARINC429數(shù)據(jù)通信。系統(tǒng)設(shè)計(jì)方案如圖1所示。

  ARINC429收發(fā)電路部分,由兩組3282和3l82芯片構(gòu)成,其中每組芯片實(shí)現(xiàn)二路接收、一路發(fā)送,其中的控制信號(hào)均有CPLD編程產(chǎn)生:在CPLD部分,D[0...15]為16位雙向數(shù)據(jù)總線,實(shí)現(xiàn)AR1NC429收發(fā)電路與PC104總線接口之間的數(shù)據(jù)通信,IO16為16位芯片選擇信號(hào);在PC104總線接口部分,XD[0...15]為16位雙向數(shù)據(jù)總線,XA[1...9]為地址總線,連接CPLD,進(jìn)行選片操作,XIOR和XIOW 為IO讀寫信號(hào),XAEN 是允許DMA控制地址總線、數(shù)據(jù)總線和讀寫命令線進(jìn)行DMA傳輸以及對(duì)存儲(chǔ)器和I/O設(shè)備的讀寫。

  2 系統(tǒng)硬件組成

  429的PC104總線接口板的硬件組成框圖如圖2所示,主要包括AR1NC429收發(fā)電路(HS3282和HS3l82芯片組)、CPLD、429板與PC 機(jī)的接口總線PC104總線、與外部的429接口IDC16插座、中斷控制開(kāi)關(guān)等,其關(guān)系如圖2所示。


  本接口板元器件布局如圖3所示。


  3 CPLD內(nèi)部功能及實(shí)現(xiàn)

  3.1 開(kāi)發(fā)流程描述

  本系統(tǒng)中的CPLD使用Altera公司的MAX7000S系列可編程邏輯器件中的EPM7128SQC100-6型號(hào),從最初的電路設(shè)計(jì)思想到MAX+PLUSII的波形仿真,再到CPLD芯片編程結(jié)束要經(jīng)過(guò)的一般開(kāi)發(fā)流程如圖4所示。

  3.2 CPLD中的模塊設(shè)計(jì)

  本設(shè)計(jì)中CPLD 的功能是實(shí)現(xiàn)ARINC429收發(fā)電路與接口板的接口總線PC104總線的數(shù)據(jù)通信。其功能模塊可以分為6部分,以下逐一介紹各模塊的功能及其實(shí)現(xiàn)的方法。

  (1)產(chǎn)生AR1NC429控制器HS3282所需的TTCLK時(shí)鐘信號(hào)模塊

  TTCLK即發(fā)射器時(shí)鐘信號(hào),本設(shè)計(jì)中該信號(hào)有480 KHZ和1 MHZ兩種可選頻率,是由一個(gè)48 MHZ的晶振提供信號(hào)給CPLD,然后由CPLD編程產(chǎn)生480KHZ和1MHZ兩種信號(hào)以備選擇。該模塊用圖形編輯的方式實(shí)現(xiàn)。要產(chǎn)生3282所需要的480KHZ信號(hào)需要對(duì)輸入48MHZ信號(hào)進(jìn)行兩次10分頻,要產(chǎn)生1 MHZ信號(hào)需要對(duì)輸入信號(hào)進(jìn)行6分頻再8分頻。6分頻電路采用3個(gè)JK觸發(fā)器實(shí)現(xiàn),8分頻電路采用74393實(shí)現(xiàn),10分頻電路采用7490實(shí)現(xiàn)。

  (2)產(chǎn)生復(fù)位信號(hào)/MR和控制發(fā)射器使能信號(hào)ENTX的信號(hào)ENT模塊

  /MR是對(duì)3282的主復(fù)位信號(hào),/MR將直接送到HS3282,而ENT將送到另一模塊中,用于控制發(fā)射器使能信號(hào)ENTX的產(chǎn)生,ENTX=ENT*/TXR,其中TXR為發(fā)送緩沖區(qū)空標(biāo)志。該模塊也采用電路設(shè)計(jì)輸入方式。其電路主要由4個(gè)D型觸發(fā)器74LS74芯片來(lái)完成。輸入為總線驅(qū)動(dòng)器的前4個(gè)輸出,即D0~D3,時(shí)鐘脈沖為產(chǎn)生HS3282讀寫信號(hào)模塊的一個(gè)輸出信號(hào)/WR3,輸出為兩個(gè)HS3282的復(fù)位信號(hào)/MR1和/MR2以及ENT1和ENT2。本模塊具體實(shí)現(xiàn)電路如圖5所示。

 

   (3)產(chǎn)生片選信號(hào)/MCS的模塊 
  
 
        本模塊產(chǎn)生的/MCS信號(hào)用于驅(qū)動(dòng)雙向總線驅(qū)動(dòng)器,進(jìn)行數(shù)據(jù)傳輸,并用于選片對(duì)HS3282進(jìn)行讀寫。此模塊用一片8位判決電路74LS688來(lái)實(shí)現(xiàn)其功能。其中P5-P1接一組基址選擇開(kāi)關(guān),Q5~Q1分別接PC104總線的地址總線的XA7、XA9、XA8、XA6和XA5,G接PC104總線的地址使能信號(hào)端XAEN。只有當(dāng)XAEN輸入為低時(shí),并且P5~Pl與Q5-Q1的對(duì)應(yīng)端相等時(shí),輸出為低,才有效。 
        (4)雙向總線驅(qū)動(dòng)器模塊 
  
 
        該模塊實(shí)現(xiàn)AR1NC429收發(fā)電路與接口板的接口總線PC104總線的16位數(shù)據(jù)傳輸。該模塊設(shè)計(jì)過(guò)程為,先用VHDL設(shè)計(jì)輸入方式設(shè)計(jì)兩個(gè)單向三態(tài)數(shù)據(jù)收發(fā)器,然后用電路設(shè)計(jì)輸入方式,將兩個(gè)單向數(shù)據(jù)收發(fā)器合成為一個(gè)雙向數(shù)據(jù)收發(fā)器。雙向總線驅(qū)動(dòng)器模塊的功能表如表1所示。
 
   表1 雙向總線驅(qū)動(dòng)器模塊的功能表 使能信號(hào)E 方向DIR 操作 
 
 
  雙向總線驅(qū)動(dòng)器模塊產(chǎn)生其一個(gè)單向三態(tài)數(shù)據(jù)收發(fā)器(TRI_GATE1)的VHDL語(yǔ)言設(shè)計(jì)如下 
library ieee; 
use ieee.std_logic_1164.all; 
entity tri_gate1 is 
port(a0,al,a2,a3:in std_ logic; 
a:in std_logic_vector(15 downto 4); 
en:in std_logic; 
b0,b1,b2,b3:out std_logic; 
b:out std_logic_vector(15 downto 4): 
D0,D1,D2,D3:out std_logic); 
--向模塊2中送數(shù)據(jù)的4個(gè)輸出端 
end tri_gatel; 
architecture behav of tri_gate1 is 
begin 
process 
begin 
if en='1' then --EN為高電平時(shí)收發(fā)器有效 
b0<=a0;b1<=a1;b2<=a2;b3<=a3;b<=a; 
D0<=a0;D1<=a1;D2<=a2;D3<=a3; 
else --EN為低時(shí)高阻狀態(tài) 
b0<=一Z;b1<=-Z;b2<=-Z ;b3<='Z';b<="ZZZZZZZZZZZZ"; 
end if 
end process; 
end behav; 
 
       產(chǎn)生另一個(gè)單向三態(tài)數(shù)據(jù)收發(fā)器(TRI_GATE)的VHDL語(yǔ)言與此類似,只是少了D0~D3的輸出部分。兩個(gè)單向三態(tài)數(shù)據(jù)收發(fā)器構(gòu)成雙向總線驅(qū)動(dòng)器的電路設(shè)計(jì)如圖6所示(D0_out~D3_out作為圖5中的D0-D3輸入)
 
  (5)產(chǎn)生HS3282讀信號(hào)與寫信號(hào)和ENTX使能信號(hào)模塊 
本模塊要實(shí)現(xiàn)的功能是產(chǎn)生HS3282的讀寫信號(hào)和發(fā)送使能信號(hào)及一個(gè)送入PC104總線的輸入輸出16位芯片選擇信號(hào)/IO16。該模塊用VHDL語(yǔ)言輸入,其相應(yīng)的VHDL語(yǔ)言如下 
library ieee; 
use ieee.std logic_1164.all; 
entity gal4243 is 
port(MCS,XIOW,XIOR,A1,A2,A3,A4,ENT1, 
ENT2,TXR1,TXR2: in std_logic; 
WR0,W Rl,WR2,W R3,WR4,W R5,W R6: 
out std_logic; 
RD0,RD1,RD2,RD3,RD4:out std_logic; 
IO16,ENTX1,ENTX2:out std_logic); 
end gal4243; 
architecture behav of gal4243 is 
begin 
process 
begin 
WR6<=XIOW or MCS or A4 or(not A3) or(not A2)or A1; 
WR5<=XIOW or MCS or A4 or(not A3) or A2 or(not A1); 
WR4<=XIOW or MCS or A4 or(not A3) or A2 or A1; 
WR3<=XIOW or MCS or A4 or A3 or(not A2)or(not A1); 
WR2<=XIOW or MCS or A4 or A3 or(not A2)or A1; 
WR1<=XIOW or MCS or A4 or A3 or A2 or(not A1); 
WR0<=XIOW or MCS or A4 orA3 or A2 or A1; --產(chǎn)生寫信號(hào) 
if MCS='0' then 
IO16<=MCS; 
else 
IO16<='Z'; 
endif; 
RD4<=XIOR or MCS or(notA4)orA3 or A2; 
RD3<=XIOR or MCS or A4 or(not A3)or(not A2); 
RD2<=XIOR or MCS or A4 or(not A3)or A2; 
RDI<=XIOR or MCS or A4 or A3 or(not A2) 
RD0<=XIOR or MCS or A4 or A3 orA2;--產(chǎn)生讀信號(hào) 
ENTX1<=ENT1 and(not TXR1); 
ENTX2<=ENT2 and(not TXR2);--產(chǎn)生發(fā)送使能信號(hào) 
end process; 
end behav; 
 
       (6)中斷控制模塊 
 
        本模塊用于實(shí)現(xiàn)中斷控制操作,有一個(gè)接收器滿便產(chǎn)生中斷,產(chǎn)生中斷時(shí)亦能判斷出中斷源。該模塊是用VHDL輸入方式產(chǎn)生的,其相應(yīng)的VHDL程序如下 
library ieee; 
use ieee.std logic_1164.all; 
entity U32 is 
port(TXR1,DR11,DR12,TXR2,DR21,DR22,RD4:in std_logic; 
D0,D1,D2,D3,D4,D5,INT:out std_logic); 
end U32; 
architecture behav of U32 is 
begin 
process 
begin 
if RD4='0' then 
D0<=not DR11: 
D1<=not DR12; 
D2<=not DR21; 
D3<=not DR22; 
--產(chǎn)生中斷時(shí)用來(lái)判斷哪個(gè)接收器滿 
D4<=TXR1; 
D5<=TXR2; 
--用來(lái)判斷哪一個(gè)發(fā)送緩沖區(qū)空 
else 
D0<='Z';D1<'Z';D2<='Z';D3<='Z';D4<='Z';D5<='Z'; 
endif; 
INT<=not(DR11 and DR12 and DR21 and DR22); --有一個(gè)接收器滿便產(chǎn)生中斷 
end process; 
end behav; 
 
       3.3 CPLD程序的下載 
  
 
        各輸入模塊經(jīng)過(guò)編譯處理,根據(jù)其相互關(guān)系連結(jié),再通過(guò)功能仿真和時(shí)序仿真確認(rèn)無(wú)誤后,對(duì)各輸入輸出端口進(jìn)行管腳分配。當(dāng)整個(gè)設(shè)計(jì)完成時(shí),MAX+PLUSII將生成一個(gè)文件(.pof),該文件通過(guò)下載電纜從JTAG口傳送到PC104板上的CPLD芯片內(nèi)部。這樣就可將CPLD構(gòu)造成自己的專用芯片,由此便可以對(duì)設(shè)計(jì)的PC104板卡進(jìn)行調(diào)試。調(diào)試過(guò)程中CPLD的設(shè)計(jì)部分還可根據(jù)需要進(jìn)行修改,只是修改后要重新產(chǎn)生.pof文件,重新將文件加載到芯片中。
 
       4 結(jié)束語(yǔ) 
  
 
        針對(duì)PC104接口板的尺寸小的特點(diǎn),本論文介紹了用CPLD實(shí)現(xiàn)基于PC104總線的429接口板,CPLD大大節(jié)省了硬件資源,同時(shí)也節(jié)省了板卡上的可利用空間,徹底解決了PC104 板卡的小尺寸給設(shè)計(jì)帶來(lái)的困難。且CPLD修改簡(jiǎn)單,給調(diào)試工作帶來(lái)了方便。該板卡經(jīng)過(guò)調(diào)試后實(shí)驗(yàn),可穩(wěn)定工作。實(shí)驗(yàn)結(jié)果表明:應(yīng)用CPLD簡(jiǎn)化了系統(tǒng)結(jié)構(gòu),縮短了設(shè)計(jì)周期,提高了系統(tǒng)的可靠性。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 免费看成人毛片 | 成人免费在线播放视频 | 亚洲免费色视频 | 最近2019年最中文字幕视频 | 深夜福利动态 | 最近中文字幕在线播放 | 免费永久观看美女视频网站网址 | 亚洲九九视频 | 男女www视频| 夜夜春精品视频 | 三级黄色片日本 | 亚洲精品在线免费观看视频 | 国产成人亚洲精品91专区高清 | 一个人免费看的视频 | 欧美香蕉在线 | 青草综合 | 久久99精品国产麻豆不卡 | 亚洲综合在线成人一区 | 最近2019年中文字幕大全视频 | 波多野结衣中文一区二区免费 | 狠狠香蕉 | 中文字幕一二区 | 久久精品视频16 | 丝袜脚在线 | 一个人在线观看免费视频www | 精品视频在线播放 | 亚洲欧洲日韩综合 | 怡红院成人在线 | 天堂在线资源网 | 午夜在线看 | 国产网站免费看 | 日韩免费精品 | 黄色片香蕉视频 | 免费观看的毛片 | 奇米成人网 | 国产精品亚洲精品日韩动图 | 成人国产亚洲 | 96日本xxxxxxxxx18| 欧美一区二区视频在线观看 | 精品国偷自产在线视频99 | 午夜影院a级片 |