引 言
数/模转换(D/A)电路,是数字系统中常用的电路之一,其主要作用是把数字信号转换成模拟信号,通常是利用专用的数/模转换(D/A)芯片来实现的。AD7543是Analog Device公司生产的的12位数/模转换(D/A)芯片,它采用串行数据输入形式,即数字信号被一位一位地写入AD7543数/模转换(D/A)芯片中,因此,AD7543要与一个控制器配合使用才能发挥作用。常规的方法,是以CPU作为控制部件,通过软件编程的方式来控制AD7543,从而实现数/模转换功能的。软件实现法虽然简单,但必将会占用大量的CPU时间,削弱了CPU实时处理能力,降低了系统的可靠性。针对以上情况,在此设计了基于可编程逻辑器件(FPGA)数/模转换电路,利用可编程逻辑器件(FP-GA)直接控制模转换(D/A)芯片AD7543进行数/模(D/A)转换,取代传统的“CPU+专用的数/模转换(D/A)芯片”设计结构,有利于提高系统的抗干扰能力和可靠性。
1 AD7543简介
1.1 AD7543主要特性
AD7543主要特性为:
分辨率:12位;
非线性误差:±1/2 LSB;
输入方式:串行正或负选通;
初始化:异步输入清零方式;
工作电压:+5 V;
最大功耗:40 mW。
1.2 封装形式和引脚功能
AD7543有三种封装形式:16引脚的DIP和20引脚的PCCC与PLCC,其封装形式如图1所示,设计者可根据实现需求进行选择,其引脚功能说明如下:
OUT1:数/模转换(D/A)器电流输出端,通常接到放大器正输入端;
OUT2:数/模转换(D/A)器电流输出端,通常接到模拟地;
AGND:模拟地端,接到模拟地;
STB1:寄存器A选通1信号输入端;
LD1:寄存器B装人选通1输入端,LD1和LD2都为低电平时,寄存器A的内容被装入到寄存器B中;
N/C:悬空;
SRI:串行数据输入端,与寄存器A低位相连;
STB2:寄存器A选通2信号输入端;
LD2:寄存器B装入选通2输入端,LD1和LD2都为低电平时,寄存器A的内容被装入到寄存器B中;
STB3:寄存器A选通3信号输入端;
STB4:寄存器A选通4信号输入端;
DGND:数字地端;
CLR:异步清寄存器B输入端,当为低电平时,清寄存器B内容,寄存器A内容不变;
VDD:5 V供电输入端;
VREF:参考电压输入端;
RBF:反馈输入端。
1.3 数/模转换芯片AD7543器件工作原理
在AD7543器件内部,有两个寄存器:寄存器A和寄存器B。寄存器A是12位串行输入并行输出的移位寄存器,其低位与SRI引脚相连。在STB1,STB2和STB4上升沿或STB3下沿作用下,移位寄存器A发生移位,SRI引脚上的串行数据被装进寄存器A中,当要写入数据全部被装进寄存器A时,再给AD7543一个装载负脉冲(LD1和LD2均为低电平),把移位寄存器A的内容装到寄存器B中,通过后续电路完成D/A转换。当CLR为低电平时,寄存器B的数据被清零,输出的电压为零,简化初始化过程。图2为AD7543数/模转换(D/A)的工作时序图。
2 基于AD7543的数/模转换器电路设计
图3为基于AD7543数/模转换芯片的数/模转换器电路,由于AD7543的内部无运算大器,输出为电流形式,在应用中,必须外接一个运放器,因此,AD7543的第1和2脚分别接在LM324运放的反向输入口与同相输入口,AD7543的第15脚(参考电压输入端)接在-10 V的电源上,当寄存器B的位数全为高电平时,输出电平接近10 V。AD7543的输入时序信号CLR,STB2,LD和SRI由外接的可编程逻辑器件(FPGA)产生。AD7543的第8脚和11脚接地。运放器LM324正负电源引脚分别接在正负12 V的电源上。
3 AD7543工作时序FPGA实现
AD7543是串行输入数/模转换芯片,被转换数据是逐位写进AD7543中,因此,AD7543工作时,要有正确的工作时序,工作时序在QuartusⅡ开发环境中利用硬件描述语言Verilog HDL描述。QuartusⅡ是Altera公司的EDA开发工具,它是集设计输入、编译、逻辑综合、器件引脚管理、功能仿真、定时分析、编程下载等于一体的可编程逻辑器件设计环境。
在设计中,为了降低设计成本,FPGA采用Altera公司的Cyclone系列的EP1C6Q240C8芯片。。EP1C6Q240C8芯片,不仅集成了5 980个逻辑单元 (LEs),还集成了20个4 KB双口存储单元(M4KRAM BLock)和92 160 b的普通高速RAM等资源。
打开Quartus II软件,新建一个工程管理文件。在工程管理文件中,新建一个Verilog HDL源程序文件,用硬件描述语言Verilog HDL编写程序,实现控制功能,其代码如下:
4 FPGA时序模块仿真
为了进一步的验证FPGA控制器模块的正确性,在下载到目标器件之前,可以对此模块进行时序仿真。在工程文件中,首先要新建一个以vwf结尾的波形文件。在弹出的对话框中添加要观察的引脚,然后再设定时钟相关参数和保存波形文件,最后在编译顶层文件之后,可对此模块进行仿真。如图4为FPGA控制器模块仿真波形,CLOCK为此模块的工作时钟,时间周期设为40 ns;ida为并行输入数据,STI为串行输出,STB1为选通脉冲信号。由图可知,STB1的上升沿把STI引脚上的数据装入寄存器A中,装满寄存器A后,LOD设为低电平,把寄存器A的内容装入寄存器B中。仿真时序与图1的时序一致,满足设计要求。
5 结 语
针对采用软件控制AD7543数/模转换芯片所具有的缺点的基础上,采用硬件(FPGA)直接对AD7543转换芯片进行控制的方式来设计数/模转换电路,给出具体的硬件实现电路和控制器的Verilog HDL实现代码。因为FPGA控制器是一个独立单元,它几乎不需要CPU的干预就能工作,在电路中分担了CPU的工作量,这不仅提高CPU实时处理信号能力,还会提高系统的可靠性,具有一定的实用价值与参考价值。在此设计了基于FPGA与AD7543转换芯片的数/模转换电路,AD7543的工作时序全部用FPGA器件产生,提高系统的可靠性。