计算机应用研究
APPLICATION RESERCH OF COMPUTERS
2000  Vol.17　No.1　P.109-110，108




用GAL器件实现数据的单线传输
石振华　许丹　石新智
摘 要 介绍利用现场可编程逻辑器件GAL，生成地址译码器、数据选择器、数据分配器，然后用这些器件设计一个单线数据传输电路，给出设计数据和调试程序。
关键词 GAL16V8 地址译码器 数据选择器 数据分配器 单线数据传输
1 引言
　　在高频地波雷达中，收发无线阵离控制中心有一定的距离，为了实现对天线系统的控制，同时又想节约大量的电缆，需要将控制指令、数据单线传送。图1是一个用可编程逻辑器件GAL组成的单线数据传送方框图。由图可知，在发送端，将并行数据变成串行数据传送，在接收端再将串行数据转变成并行数据输出，然后再进行处理。
　　GAL器件是一种高性能、高可靠性的理想的PLD产品。由于它具有设计灵活，使用方便，成本低，并且可以加密等优点，使得GAL器件在许多电子产品中获得了广泛的应用 [1,2,3]，得到了广大用户的青睐。本文介绍用GAL16V8设计一个单线数据传输电路。
2 电路设计
　　GAL芯片选用GAL16V8，管脚分配是：2～9脚固定输入；12～14，17～19脚既可作输出，又可作输入；15～16脚只能作输出；引脚1和11根据不同应用，可以是脉冲CLK和三态控制OE的专用输入端。
2.1 发送端并―串转换的设计
　　发送端并―串转换选用1片GAL16V8。地址译码器用计数器担任，并―串转换用八选一数据选择器完成。计数器状态表1所示。
　　根据状态表可写出逻辑表达式如下：

　　八选一数据选择器的真值表如表2所示。
表 1 计数器状态表
输入脉冲输出
Y3Y2Y1
0000
1001
2010
3011
4100
5101
6110
7111

表 2 8 : 1数据选择器真值表
输入地址码输出
Y3Y2Y1Aout
000A0
001A1
010A2
011A3
100A4
101A5
110A6
111A7

　　由表2得逻辑表达式如下：
　　
　　由于GAL16V8工作在寄存器模式，在该模式下，用于组合逻辑输出的引脚所对应的OLMC最多只能使用7个乘积项，无法实现上式的8个乘积项逻辑表达式，为此，我们把它变换成下面的形式。
　　
　　我们把计数器和八选一数据选择器编程并固化在一片GAL16V8芯片中。具体源程序如下所示。
　　pld16v8
designed by xu
90-9-1998
pindef
clk a0 a1 a2 a3 a4 a5 a6 a7 gnd
oe y1 y2 y3 bout cout aout nc nc vcc
equation
y1:=/y1
y2:=/y1*y2+yl*/y2
y3:=/y1*y2*y3+y1*/y2*y3+y1*y2*/y3+/y1*/y2*y3
bout=/y1*/y2*/y3*a0+yl*/y2*/y3*a1+/y1*y2*/y3*a2+
　　y1 *y2*/y3*a3
cout=/y1*/y2*y3*a4+yl*/y2*y3*a5+/yl*y2*y3*a6+y1*y2*y3*a7
aput=bout*/y3+cout*y3
aout.oe=vcc
bout.oe=vcc
cout.oe=vcc
end
2.2 接收端串―并转换的设计
2.2.1 数据分配器的设计
　　发送端的GAL16V8把数据从并行输入变成串行输出，并传送到接收端，接收端需要把串行输入变为并行输出，这就涉及到如何把公共数据线上的数据按要求传送到不同的数据输出端，即对数据如何进行分配，因此需要设计一个1:8数据分配器。1:8数据分配器真值表如表3所示。
表 3 1 : 8数据分配器
地址码输出
Y3Y2Y1Aout
000B0
001B1
010B2
011B3
100B4
101B5
110B6
111B7

　　由真值表可写出源程序如下。
c:\XU>tppe x2.1st
pld16v8
designed by xu
09-9-1998
pindef
nc aout y1 y2 y3 nc nc nc nc gnd
nc b0 b1 b2 b3 b4 b5 b6 b7 vcc
equation
b0=/y3*/y2*/yl*aout;
b1=/y3*/y2*yl*aout;
b2=/y3*y2*/yl*aout;
b3=/y3*y2*yl*aout;
b4=y3*/y2*/yl*aout;
b5=y3*/y2*/yl*aout;
b6=y3*y2*/yl*aout;
b7=y3*y2*yl*aout;
end
2.2.2 地址译码器的设计
　　在前面并―串转换的设计中，已经介绍了地址译码器的原理。这里由于串―并转换电路占用了8个输出端，因此无法把地址译码器设计在同一片GAL16V8中，所以再用一块GAL芯片专门作地址译码器(多余的脚可作其它用)。
　　源程序如下所示。
pld16v8
designed by xu
09-9-1998
pindef
clk nc nc nc nc nc nc nc nc gnd
nc yl y2 y3 nc nc nc nc nc vcc
yl:=/y1
y2:=/y1*y2+yl*/y2
y3:=/yl*y2*y3+y1*/y2*y3+yl*y2*/y3+/yl*/y2*y3
equation
end
3 调试及防干扰处理
　　源程序设计完成后，就可上机调试，首先用GAL计算机辅助设计软件包进行模拟调试。限于篇幅，这里只给出并―串转换的调试波形图。如图2所示。

图2　并―串转换波形图
　　模拟正确无误后，就将编译后的FPM文件固化在GAL芯片中。上述两个步骤完成后，电路设计已完成，最后可安装电路，连线进行现场综合调试。
　　在现场调测时，串―串转换是放在由16根中馈天线构成的天线阵内，每根天线馈入200瓦高频功率。为了使系统能正常工作，我们采取了以下措施：
　　①直流电源进线加了3节低通滤波器，防止高频从电源进入，加一节双T网络，如图3所示，消除50Hz工频干扰。

图3　双T网络滤波器
　　该网络的频率特性为：

　　当时，
　　②利用光电耦合使传输电缆处于浮置状态，如图4所示。

图4　传输线的光耦浮置
　　这样做有如下几点好处：
　　(1)由于没有公共地线，有效的消除了各逻辑电路的电流流经公共地线所产生的噪声电压相互干扰。
　　(2)干扰噪声虽有较大的电压幅度，但能量小，只能形成微弱电流，而光耦输入部分的发光二极管是在电流状态下工作的，因此可以抑制这种窄脉冲干扰。
　　③合理的设计屏蔽装置。
　　经上述处理后，系统进入正常运转。
国家863计划818-01-02课题资助
石振华（武汉大学电子信息学院 武汉 430072）　
许丹（武汉大学电子信息学院 武汉 430072）　
石新智（武汉大学电子信息学院 武汉 430072）
参考文献
1，孙涵芳, 徐爱卿. 可编程逻辑器件PAL和GAL. 北京航空航天大学出版社, 1990.2
2，杨 宾, 毛俊华, 白荣光. 同步地址信号发生器的设计实现. 计算机应用研究, 1999.4 p44～47
3，赵元平. 采用GAL器件的电子密码锁. 电子报, 1995. 09. 25. No.37 P294
收稿日期：1999年8月27日
