基于PC104總線的429接口板
(3)產(chǎn)生片選信號/MCS的模塊
本模塊產(chǎn)生的/MCS信號用于驅(qū)動雙向總線驅(qū)動器,進(jìn)行數(shù)據(jù)傳輸,并用于選片對HS3282進(jìn)行讀寫。此模塊用一片8位判決電路74LS688來實現(xiàn)其功能。其中P5-P1接一組基址選擇開關(guān),Q5~Q1分別接PC104總線的地址總線的XA7、XA9、XA8、XA6和XA5,G接PC104總線的地址使能信號端XAEN。只有當(dāng)XAEN輸入為低時,并且P5~Pl與Q5-Q1的對應(yīng)端相等時,輸出為低,才有效。
(4)雙向總線驅(qū)動器模塊
該模塊實現(xiàn)AR1NC429收發(fā)電路與接口板的接口總線PC104總線的16位數(shù)據(jù)傳輸。該模塊設(shè)計過程為,先用VHDL設(shè)計輸入方式設(shè)計兩個單向三態(tài)數(shù)據(jù)收發(fā)器,然后用電路設(shè)計輸入方式,將兩個單向數(shù)據(jù)收發(fā)器合成為一個雙向數(shù)據(jù)收發(fā)器。雙向總線驅(qū)動器模塊的功能表如表1所示。
表1 雙向總線驅(qū)動器模塊的功能表 使能信號E 方向DIR 操作
雙向總線驅(qū)動器模塊產(chǎn)生其一個單向三態(tài)數(shù)據(jù)收發(fā)器(TRI_GATE1)的VHDL語言設(shè)計如下
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個輸出端
end tri_gatel;
architecture behav of tri_gate1 is
begin
process
begin
if en='1' then --EN為高電平時收發(fā)器有效
b0=a0;b1=a1;b2=a2;b3=a3;b=a;
D0=a0;D1=a1;D2=a2;D3=a3;
else --EN為低時高阻狀態(tài)
b0=一Z;b1=-Z;b2=-Z ;b3='Z';b=ZZZZZZZZZZZZ;
end if
end process;
end behav;
產(chǎn)生另一個單向三態(tài)數(shù)據(jù)收發(fā)器(TRI_GATE)的VHDL語言與此類似,只是少了D0~D3的輸出部分。兩個單向三態(tài)數(shù)據(jù)收發(fā)器構(gòu)成雙向總線驅(qū)動器的電路設(shè)計如圖6所示(D0_out~D3_out作為圖5中的D0-D3輸入)
(5)產(chǎn)生HS3282讀信號與寫信號和ENTX使能信號模塊
本模塊要實現(xiàn)的功能是產(chǎn)生HS3282的讀寫信號和發(fā)送使能信號及一個送入PC104總線的輸入輸出16位芯片選擇信號/IO16。該模塊用VHDL語言輸入,其相應(yīng)的VHDL語言如下
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
評論