林嘉茵,蒙 萌,丁 欣,秦 燕
(广西水利电力职业技术学院,广西 南宁 530000)
随着电子技术的飞速发展,工业生产中各种测量设备,控制设备逐渐增多,不同的设备都有各自的控制器,使用起来很不方便。根据这种实际情况,本文介绍了一种多路数据器,它可以避免多种数据测量设备的混淆,利用一个控制器实现对多路数据进行控制。
该方案的系统原理框架如图1 所示,使用现在应用广泛的ATmega16 单片机作为CPU,该CPU 内核具有模块化的结构,内置A/D 转换器。
信号发生器输出信号,经频率电压变换后输出直流电压,经CPU 采样处理后通过串行传输线显示。
两片CPU 均采用目前广泛应用的ATmega16。该芯片功能较强并且内置A/D 转换器,被广泛应用于测控系统中。在阅读ATmega16 数据手册时可以了解到,ATmega16 具有特殊的处理器结构。工作电压为4.5~5.5V;速度等级为0~16MHz;工作电流在正常模式下为1.1mA;空闲模式下为0.35mA[1]。
本系统可以由以下4 个模块构成:信号发生器、F/V 变换、主从CPU(内置A/D)通讯与数据处理、键盘控制与显示。
本模块工作在远距离终端,用于模拟待采样的信号源。
设计要求制作一个由可变电阻控制改变振荡频率的信号发生器,控制振荡频率在200~2000Hz 范围变化,并达到尽可能好的R/F 线性度,从而保证经F/V 变换后,使R/V 之间具有良好的线性关系。
本文采用NE555 电路。NE555 单片定时电路[4]是一个高度稳定的控制器,具有产生精确的延时或者振动的能力,也可以精确定时,脉冲宽度调制。它的转换时间少于2ms,工作频率大于500kHz,定时范围可从精确到小时,还可以运行在非稳态和单稳态模式,具有高输出电流和可调整的占空因数,兼容的晶体管-晶体管逻辑电路,温度稳定性可达0.005%每摄氏度,在延时模式下工作时,时间由一个外部寄存器和电容器控制。一个振荡器自由转动的频率和占空因数都是由两个外部的寄存器和一个电容器精确地控制;当输出下降到200mA 且位于下降沿时,电路可以被触发和复位。因此,NE555 是一个不错的选择。
由NE555 电路和阻容元件构成的多谐振荡器接通电源后,电容C4 充电,Vc 上升,当Vc 上升到2/3Vcc时,触发器复位,同时放电BJTT 导通,此时Vo 为低电平,电容 C 通过 R15 和 T 放电,使 Vc 下降。当 Vc 下降到1/3Vcc 时,触发器又被置位,Vo 翻转为高电平。电容器C 放电所需的时间为t=RCln2≈0.7RC[2]。当C 放电结束时,T 截止,Vcc 将通过 R14、R15 向电容器 C 充电,Vc 由 1/3Vcc 上升到 2/3Vcc 所需的时间为 t’=(R14+R15)Cln2≈0.7(R14+R15)C。当 Vc 上升到 2/3Vcc 时,触发器又发生翻转,如此周而复始,在输出端就得到一个周期性的波源,其频率为f=1/(t+t’)≈1.43/(R14+2×R15)C[2]。
本系统采用了精密且廉价的LM331 构成高精度的F/V 变换器。LM331 的动态范围宽,可达100dB;变换精度高,数字分辨率可达12 位;LM331 不仅用法非常普遍,且满足设计所提出的要求。由信号发生器产生的信号FIN 经R9、C2 组成的微分电路传输到输入比较器的反相输入端;输入比较器的同相输入端经电阻R7、R8分压;输出驱动器外接电阻来灵活改变输出脉冲的逻辑电平;R1、C1 组成低通滤波器与COUT 端相连;输出端将信号经运算放大器送给从CPU 的PA0 口。
2.3.1 主机电路
ATmega16 的PB0~PB3 外接按键电路,端口B 为8位双向I/O 口,具有可编程的内部上拉电阻。在复位过程中,即使系统时钟还未起振,端口B 处于高阻状态。
2.3.2 从机电路
从机部分中,利用串联电阻分压原理,通过对标准5 伏电压进行分压,然后把相应模拟信号送模拟输入端PA1~PA5。标准电压输入Vcc 为5V,分压电阻R=10kΩ。V1=1V,V2=2V,V3=3V,V4=4V。满足电压输入信号的需要。
从机部分接线如下:自制的1~5V 直流电压与PA0口相接;0V、1V、2V、3V、4V、5V 电压分别与 PA5~PA0相接;另外,从机系统还有一个RS485 接口电路。
2.3.3 数据接口电路
CPU 之间用RS-485 总线实现通信,接口芯片选用MAX487,该芯片的输入阻抗为RS-485 标准输入阻抗的4 倍。RS485 为双电气接口,双端传送信号,其中一条为逻辑0,另一条就为逻辑1,它的电压回路为双向,传输率可达20kbit/s。RS-485 接口的标准如下:传输方式是差分方式;传输介质是双绞线;传输速率为19.2kbit/s;标准节点数为32;最远通信距离可以达到1200m;共模电压最大和最小值为+12V 和-7V;差分输入范围为(-7~+12)V;接收器输入灵敏度为±200mV;接收器输入阻抗大于12kΩ。
2.4.1 键盘输入电路
键盘输入电路如图2 所示。
图2 键盘输入电路
2.4.2 数码显示
第一片显示控制芯片的输出端分别接到两个数码显示管的a~h 端;第二片芯片的输出端接到两个显示管的D1~D4 端。
在这部分的设计中,需要特别注意的是,显示管的所有输入都必须防止来自于紧接着电压和地的内部二极管产生的静电放电所带来的危害。它的静态电流低,最大为80MA。工作电压范围宽,为2V±6V。
由于从电路图到电路板,所以在进入PCB99 的编辑环境之前,要做一些准备工作,这也是电路图和电路板的接口问题,主要是ERC(电力规则检验)检查和生成网络表。
2.5.1 ERC 检查
前面的电路图在生成网络表之前,要先对电路图做ERC 检查,确认准确无误之后,才能生成网络表。启动“Tools”菜单下的“ERC”命令,屏幕出现对话框,如图3 所示。
图3 ERC 检查对话框
直接单击“OK”按钮即进行检查,检查结果显示没有错误。这说明,前面设计的电路图合格了,通过了检查,电路中没有基本的逻辑错误[3]。
2.5.2 生成网络表
通过检查后,要生成网络表,启动“Design”菜单下的“Creat Netlist”命令,当屏幕出现“Netlist Creation”后,直接点击“OK”键,程序生成网络表。在网络表中,包括元件定义及网络定义两部分,而元件定义部分则包括元件序号、元件封装、元件名称及3 个空列。接下来的PCB 程序就是靠这部分载入元件的。
2.5.3 绘制步骤
(1)完成板框。
(2)载入网络表。
(3)元件布局。启动“Tool”→“Sort and Arrange Comˉ ponents”→“Selected”命令,然后鼠标指针指向其中一个元件,按一下左键,把元件展开。然后就以拖动的方式一一移动元件[4]。根据系统原理部分中设计的原理图的连线关系,把关系密切的元件放得比较靠近,并注意元件在电路板上的位置是否符合习惯。
(4)布线。首先设定自动布线,自动布线并不能完全满足设计的需要。所以在自动布线之后再进行手工布线。完成布线之后,再整体调整,这样就基本上完成了PCB 板的设计。设计效果如图4 所示。
图4 设计效果
第一步,打印电路板。将电路板PCB 图采用A4 硫酸纸打印出来。
第二步,印制电路板。按照PCB 中设计好的尺寸选择铜板,板长13.7cm,宽10cm,多余的部分割去。将打印好的硫酸纸中电路图部分与铜板对齐,用一个大铁块将硫酸纸和铜板紧紧地压在制板机上,在制板机的高温下,硫酸纸上的打印痕迹压到铜板上,电路板的印制就这样完成了[5]。
第三步,腐蚀多余的铜。经过第二步,接下来就是要将多余的铜腐蚀去。腐蚀用三氯化铁溶液。将三氯化铁放入一个容器中,冲入滚烫的开水,然后小心地将铜板放入容器中,慢慢地晃动容器。大概半个小时以后,除了铜板上印有电路线以外的铜都被三氯化铁腐蚀掉了。在这个过程中,因为水温较高,因此,特别注意不要被烫伤。这道工序中,板上的电路线有一小地方因为压制时候的失误,铜线并不连续,断掉了。手工将其用铜焊接起来,便解决了这个问题。
第四步,钻孔。这道工序使用打孔机完成。将腐蚀后的板擦干,放置的位置与打孔机的针垂直,所有的孔都使用直径0.5mm 的针钻打。由于是单面板,因此不是很麻烦。
第五步,元件的焊接。按照电路图上的元件布局,在焊制的时候,要快速的放锡。否则很容易会将元件损坏。元件焊接好后,检查一遍,确定无误后,硬件电路板的制作就完成了。
从机程序电路如图5 所示。
图5 从机程序电路
主机系统主要负责按键处理,同时进行采样显示。
定义下列几个子程序。
voidled_list(void)显示程序,对选中的数码管进行显示。
charget_k(void)键盘扫描程序,B 口全部置0,从CPU 发出扫描信号,扫描a 点,若a=1,说明按下按键1;若a=0,继续扫描按键2。直到扫描到a=1 的按键。
通过ATmega16 实现的多路数据采集器,可以实现对温度、湿度等多路数据的采集,该采集器使用方便,成本低廉,工作可靠,可以广泛应用于工业、农业等。