PC104总线体系是一种新式的计算机测控渠道,作为嵌入式PC的一种,在软件与硬件上与规范的台式PC(PC/AT)体系结构彻底兼容,它具有如下长处:体积小、非常紧凑,并选用模块化结构,功耗低,总线易于扩大,紧固堆叠办法装置,适合于制造高密度、小体积、便携式测验设备,因此在军用航空设备上有着广泛的运用,但也正是PC104板的这种小尺度结构、板上可用空间少给规划带来了必定的困难,所以本规划选用了杂乱可编程器件CPLD,用CPLD完结了PC104总线与429总线通讯的首要电路,大大节省了硬件资源,本文侧重介绍了CPLD部分的规划。
1 、体系总体规划
CPLD是一种杂乱的用户可编程逻辑器材,因为选用接连衔接结构,易于猜测延时,从而使电路仿真愈加精确。再加上运用便利的开发工具,如MAX+PLUSII、Quartus等,运用CPLD器材能够极大地缩短产品开发周期,给规划修正带来很大便利。本论文描绘了运用开发工具MAX+PLUS II完结CPLD处理ARINC429数据通讯。体系规划方案如图1所示。
ARINC429收发电路部分,由两组3282和3l82芯片构成,其间每组芯片完结二路接纳、一路发送,其间的操控信号均有CPLD编程发生:在CPLD部分,D[0.。.15]为16位双向数据总线,完结AR1NC429收发电路与PC104总线接口之间的数据通讯,IO16为16位芯片挑选信号;在PC104总线接口部分,XD[0.。.15]为16位双向数据总线,XA[1.。.9]为地址总线,衔接CPLD,进行选片操作,XIOR和XIOW 为IO读写信号,XAEN 是答应DMA操控地址总线、数据总线和读写指令线进行DMA传输以及对存储器和I/O设备的读写。
2、 体系硬件组成
429的PC104总线接口板的硬件组成框图如图2所示,首要包含AR1NC429收发电路(HS3282和HS3l82芯片组)、CPLD、429板与PC 机的接口总线PC104总线、与外部的429接口IDC16插座、中止操控开关等,其联系如图2所示。
本接口板元器材布局如图3所示。
3、 CPLD内部功用及完结
3.1 开发流程描绘
本体系中的CPLD运用Altera公司的MAX7000S系列可编程逻辑器材中的EPM7128SQC100-6类型,从开始的电路规划思想到MAX+PLUSII的波形仿真,再到CPLD芯片编程完毕要通过的一般开发流程如图4所示。
3.2 CPLD中的模块规划
本规划中CPLD 的功用是完结ARINC429收发电路与接口板的接口总线PC104总线的数据通讯。其功用模块能够分为6部分,以下逐个介绍各模块的功用及其完结的办法。
(1)发生AR1NC429操控器HS3282所需的TTCLK时钟信号模块
TTCLK即发射器时钟信号,本规划中该信号有480 KHZ和1 MHZ两种可选频率,是由一个48 MHZ的晶振供给信号给CPLD,然后由CPLD编程发生480KHZ和1MHZ两种信号以备挑选。该模块用图形修正的办法完结。要发生3282所需求的480KHZ信号需求对输入48MHZ信号进行两次10分频,要发生1 MHZ信号需求对输入信号进行6分频再8分频。6分频电路选用3个JK触发器完结,8分频电路选用74393完结,10分频电路选用7490完结。
(2)发生复位信号/MR和操控发射器使能信号ENTX的信号ENT模块/MR是对3282的主复位信号,/MR将直接送到HS3282,而ENT将送到另一模块中,用于操控发射器使能信号ENTX的发生,ENTX=ENT*/TXR,其间TXR为发送缓冲区空标志。该模块也选用电路规划输入办法。其电路首要由4个D型触发器74LS74芯片来完结。输入为总线驱动器的前4个输出,即D0~D3,时钟脉冲为发生HS3282读写信号模块的一个输出信号/WR3,输出为两个HS3282的复位信号/MR1和/MR2以及ENT1和ENT2。本模块详细完结电路如图5所示。
(3)发生片选信号/MCS的模块
本模块发生的/MCS信号用于驱动双向总线驱动器,进行数据传输,并用于选片对HS3282进行读写。此模块用一片8位判定电路74LS688来完结其功用。其间P5-P1接一组基址挑选开关,Q5~Q1别离接PC104总线的地址总线的XA7、XA9、XA8、XA6和XA5,G接PC104总线的地址使能信号端XAEN。只有当XAEN输入为低时,而且P5~Pl与Q5-Q1的对应端持平时,输出为低,才有用。
(4)双向总线驱动器模块
该模块完结AR1NC429收发电路与接口板的接口总线PC104总线的16位数据传输。该模块规划进程为,先用VHDL规划输入办法规划两个单向三态数据收发器,然后用电路规划输入办法,将两个单向数据收发器组成为一个双向数据收发器。
双向总线驱动器模块发生其一个单向三态数据收发器(TRI_GATE1)的VHDL言语规划如下
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中送数据的4个输出端
end tri_gatel;
architecture behav of tri_gate1 is
begin
process
begin
if en=‘1’ then –EN为高电平时收发器有用
b0《=a0;b1《=a1;b2《=a2;b3《=a3;b《=a;
D0《=a0;D1《=a1;D2《=a2;D3《=a3;
else –EN为低时高阻状况
b0《=一Z;b1《=-Z;b2《=-Z ;b3《=‘Z’;b《=“ZZZZZZZZZZZZ”;
end if
end process;
end behav;
发生另一个单向三态数据收发器(TRI_GATE)的VHDL言语与此相似,仅仅少了D0~D3的输出部分。两个单向三态数据收发器构成双向总线驱动器的电路规划如图6所示(D0_out~D3_out作为图5中的D0-D3输入)
(5)发生HS3282读信号与写信号和ENTX使能信号模块
本模块要完结的功用是发生HS3282的读写信号和发送使能信号及一个送入PC104总线的输入输出16位芯片挑选信号/IO16。该模块用VHDL言语输入,其相应的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
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; –发生写信号
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;–发生读信号
ENTX1《=ENT1 and(not TXR1);
ENTX2《=ENT2 and(not TXR2);–发生发送使能信号
end process;
end behav;
(6)中止操控模块
本模块用于完结中止操控操作,有一个接纳器满便发生中止,发生中止时亦能判别出中止源。该模块是用VHDL输入办法发生的,其相应的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;
–发生中止时用来判别哪个接纳器满
D4《=TXR1;
D5《=TXR2;
–用来判别哪一个发送缓冲区空
else
D0《=‘Z’;D1《‘Z’;D2《=‘Z’;D3《=‘Z’;D4《=‘Z’;D5《=‘Z’;
endif;
INT《=not(DR11 and DR12 and DR21 and DR22); –有一个接纳器满便发生中止
end process;
end behav;
3.3 CPLD程序的下载
各输入模块通过编译处理,依据其相互联系连接,再通过功用仿真和时序仿真承认无误后,对各输入输出端口进行管脚分配。当整个规划完结时,MAX+PLUSII将生成一个文件(.pof),该文件通过下载电缆从JTAG口传送到PC104板上的CPLD芯片内部。这样就可将CPLD构形成自己的专用芯片,由此便能够对规划的PC104板卡进行调试。调试进程中CPLD的规划部分还可依据需求进行修正,仅仅修正后要从头发生.pof文件,从头将文件加载到芯片中。
4、 完毕语
针对PC104接口板的尺度小的特色,本论文介绍了用CPLD完结根据PC104总线的429接口板,CPLD大大节省了硬件资源,一起也节省了板卡上的可运用空间,彻底解决了PC104 板卡的小尺度给规划带来的困难。且CPLD修正简略,给调试作业带来了便利。该板卡通过调试后试验,可安稳作业。试验结果表明:运用CPLD简化了体系结构,缩短了规划周期,提高了体系的可靠性。
责任修正:gt