(林在荣)一台微计算机在用于过程控制或智能测试仪器时,都要用到模数(简称A/D)转换器。就是说,要把外界的一些随时间连续变化的模拟量如电压、电流、温度、压力等参数转换为与之相应的数字量,才能送入计算机进行存储或处理。目前市场上出售的A/D变换器,其分辨率有8位、10位、12位等数种,从结构上看,又可分为两类,一类是A/D转换器芯片,另一类是A/D转换模板。前者是一块中大规模的集成电路片子。如8位字长的芯片有美国AD公司的A/D0809;12位字长的有AD574(TTL电平)和ADC1210(COMS电平)等。后者是将A/D转换器的芯片与必要的附加电路组合成一块完整的电路模板,使之更趋于实用。这种模板与微机系统的总线适当连接,就可以顺利地完成A/D转换任务。本文将通过二个例子介绍怎样将A/D模板与微机连接。
评价一个A/D转换器性能优劣的指标主要有三个:即分辨率、转换精度和转换速度。分辨率是指A/D转换器一次将模拟量转换为二进制数字量之后所得二进制数的位数。这个指标决定了一个A/D转换器的最小分辨率。例如:一个8位A/D转换器,其数码变化范围是从0~255,有256个不同数码因此它的分辨率是\(\sqrt{1;2}\)\(^{8}\)=1;256≈0.4%。转换精度是指A/D转换器的非线性误差或运算误差,通常为0.5%、0.1%或0.03%不等。转换速度是A/D转换器转换一次所需要的时间,一般中速转换器从几百微秒到25μS不等;25μS以下的称为高速转换器。
在购买单板机或微机系统时,常常可以将A/D转换模板作为选件与微机一起购买。如:购买苹果牌微机系统时,可以选购与苹果机总线兼容的A/D模板。在一些较高级的单板机中,有时附有8位的A/D转换器,看起来似乎很方便。其实不然,因为,目前市场上与普通微机配套供应的A/D模板,有一个共同的弱点,即分辨率不够高(即使是12位的A/D转换模板,其精度通常只能达到0.1%),大家知道微计算机的精度至少可以达到\(\sqrt{1;2}\)\(^{16}\)≈1.5×10-5,若配上精度在0.1%以下的A/D转换器,就不能发挥微计算机高精度的优越性了。因此,在一些要求较高的过程控制中,应当使用精度更高的A/D转换器。就是说需要自己设计高精度A/D转换模板与微机的接口电路。本文向读者介绍如何将一块高精度的12位A/D转换器模板与最常用的微计算机——苹果—Ⅱ(APPLE—Ⅱ)相连接的实用电路及其相应的软件。
高精度A/D转换器模板—M68MM15A简介
M68MM15A是美国莫托罗拉(MOTOROLA)公司生产的一种高精度中速度具有12位分辨率的A/D转换器模板。它的工作速度在30~40μS之间,系统精度可以达到0.03%(万分之三)。这个指标几乎接近它的分辨率了。因为一个12位A/D转换器的分辨率是\(\sqrt{1;2}\)\(^{12}\)=1;4096≈0.025%,再将其它(如模拟开关、采样保持器等)的误差考虑进去,整个误差还未超过0.03%,可见精度是相当高了。

图1是整个系统的方框图。其工作过程如下:由多路模拟量通道选择器U\(_{1}\)选择16个模拟量通道中的一路信号,送到前置放大器U2进行放大,该放大器的增益是可以通过软件来控制的(图1中U\(_{3}\))然后由采样保持器U4将此模拟量数值保持下来,同时,12位A/D转换器U\(_{5}\)用逐次比较法将此模拟量转换成数字量,转换完毕,形成12位的数字量,通过控制逻辑电路U6的控制送入8位字长的微机数据总线D\(_{0}\)~D7上去。
M68M15A转换模板的主要特点是:①可以对16个模拟量单端输入通道(或8个差动输入通道)进行A/D转换。②具有用软件控制增益的前置放大器,增益控制有四档:×1;×2;×4;×8。③采用单一正5V电源,通过内部的直流—直流变换器产生A/D转换过程中所需要的±15V电源,简化了电源种类。④启动A/D转换器可以有两种形式;即软件和外脉冲触发启动。⑤该模板本身具有地址选择功能,这个特点使它可以省去地址译码器而直接与微机总线相连,大大简化了接口设计。⑥对于模拟量的输入范围,可以是0~+5V;0~+10V;-5~+5V;或-10~+10V。数字量输出形式既可以是反码,又可以是补码。
对于打算应用这种A/D模板的读者,光有图1还是不够的。还应进一步了解其内部结构及工作时序图。有条件的话还可大体阅读一下它的电气原理图。这些内容在技术资料中有详细说明,这里限于篇幅不再叙述。仅择其重要者,作一些补充说明。
1、该模板的模拟量输入范围,形式和数字量输出形式,都是采用短接相应的接线端子来选择的。工作之前应先根据使用要求,按照表1将A/D转换模板的有关端子短接,就能选好一定的工作状态。表1是多端跳线器的短接表,又称跳线表。
表1
电压输入范围 短接点
0~5V 16—17 20-21
0~10V 17—18 20—21
-5V~+5V 16—17 19—20
-10V~+10V 17—18 19—20
输入方式
单 端 12—13 14—15
11—7 10—6
9—4 8—5
伪差动 12—13 11—7
10—6 9—4
8—5
真差动 4—5 5—10
11—7 7—6
13—14
输出码
补 码 23—24
反 码 22—23
2、应根据不同微机系统的地址范围,将转换模板上地址线的跳线器连接好。U\(_{1}\)0的接线表如表2所示。表2中第1栏序号表示地址码的第1~第4位。从表中可以看出第1位可以有十六种状态,即0~F。这就是说地址的第1位可以是从0~F中的任意一个16进制数码。第2位只能有两种状态即5和D,第3位也只有两种状态即0和1,第4位有4种状态即0、4、8、C。备注中给出了地址码为C500H的接线图,供读者对照使用。

3、在编制A/D转换应用软件时,应仔细阅读该模板上的几个内部寄存器用途及定义。以指导正确编制程序。它们是:①增益/通道地址寄存器(GMAR)它是一个可读写寄存器,其地址为基本地址+0。它的各位定义如表3所示。最高两位(B\(_{7}\)6)用作选择对某一通道进行A/D转换时的前置放大器增益,例如B\(_{7}\)6为11,则增益为×8。其余六位用来选择相
表3
二进制位 B\(_{7}\) B6 B\(_{5}\) B4 B\(_{3}\) B2 B\(_{1}\) B0
GMAR G2 G1 CH32 CH16 CH8 CH4 CH2 CH1
意 义 增 益 通 道 选 择
0 0 =×1
0 1 =×2
1 0 =×4
1 1 =×8
例:将八位、二进制数 01001001写入GMAR,则表示
选择通道9,增益为2
应的通道。②命令状态寄存器。地址为:基本地址+1。其各位定义如表4所示。③数据输出寄存器(DR)共有两个,它们的地址分别是:基本地址+2(代号DRH)和基本地址+3(代号DRL)。它们用来暂存A/D转换完毕之后的数字量。微机就从这两个寄存器中读取转换结果。表5是这两个寄存器所存数的各位数码的意义。其中寄存到DRL的低字节的最低四位自动置零。
表4
位 名称 意义或用途
B\(_{7}\) 中断标志 只读,当中断允许位置位后,一旦转换结果,或产生外触发脉冲,它=1,表示向微机
(IRQF) 请求中断。
B\(_{6}\) 中断允许 当它=1时,一旦转换结束则使中断标志置位B7=1。
(IRQE)
B\(_{5}\) 外触发中断允许 当它=1时,表示允许外触发脉冲使中断标志置位B7=1。
(XIRQE)
B\(_{4}\) 外触发允许 当它=1时,允许由外触发脉冲信号来启动A/D转换。
(ETE)
B\(_{3}\) 错误触发 只读,当某次转换结束,但低位字节数据被读取之前,又来第二个触发命令时,它=1,
(MET) 此时数据无效
B\(_{2}\) 忙位标志 当它=1时,立即启动模板进行A/D转换。
(BUSY)
B\(_{1}\) 暂停允许 当它=1时,可使程序停止执行,直到转换结束。
(HLTE)
B\(_{0}\) 外触发记忆 只读,当一个外部触发脉冲被检测到并存贮起来时,它=1。
(ETI)

M68MM15A模板与苹果Ⅱ微机系统的连接
苹果—Ⅱ型微计算机在我国有很大市场。该机的CPU是6502,它与莫托罗拉公司的6800系列微机及其支持软件硬件都是兼容的。因此,M68MM15A模板与苹果Ⅱ的连接就比较简单。图2是它们的联接电路图。

在苹果—Ⅱ微机系统的主机中,有8个插槽专供给机外扩展联接使用,每个插槽都是一个如图3所示的50芯总线,它们的输入输出片选地址(IO SELECT)如表6所示。对照表6,并根据M68MM15A模板的地址跳线器选择范围(见表2),可以发现选择C500H作为该模板的基本地址比较合适。使用时将此板插入5号槽中。由图2及图4可见,模板与主机之间,需要一根30芯的扁电缆连接。其中除了16根地址线、8根数据线,1根地线之外,还有5根控制线,这5根控制线的作用如表7所示。其中模板片选VUA是高电平有效。因此,它与5号槽中的输入输出选择线(IOSELECT低电平有效)连接时,要加接一个反相器U\(_{n}\)。另外,由于A/D模板的工作电流较大(约1.2A),所以不能用主机的+5V电源,它应单独供电。图4是种参考安装示意图,其中反相器将在插槽板A上。(待续)


表6
插槽号 16进制地址
0 (机内扩展用)
1 C 100
2 C 200
3 C 300
4 C 400
5 C 500
6 C 600
7 C 700
表7
名称 代号 意 义 或 用 途
时钟 φ\(_{2}\) 提供A/D模板工作时钟
读写线 R/W- 表示数据是读出或写入A/D模板
中断请求线 IRQ 当模板向微机请求中断时,它变低。
复位线 RESET 当它=0时,所有内部寄存器清0
有效用户 VUA 当它=1时,本模板才使地址线门
地址 信号开启