基于DSP28335的飞控计算机DAC扩展电路设计
扫描二维码
随时随地手机看文章
摘要:为了实现UAV的舵机和油门调节控制的需要,飞控计算机系统采用BURR—BROWM公司的D/A芯片DAC7725N来设计D/A扩展模块。使用CPLD实现接口逻辑,简化了电路设计,后续的系统调试验证表明,D/A转换通道在1 000 Hz的刷新频率下,精度能够达到5.8 mV,完全能够满足UAV飞行控制系统实际应用的要求,具有较高的实用性。
关键词:数模转换;DAC7725N;DSP28335;复杂可编程逻辑器件
模拟量控制和PWM控制是当前无人机舵机控制系统最常用的两种控制方式。其中模拟量控制作为一种传统控制方式,至今仍被广泛应用,绝大多数的飞行控制计算机都提供模拟量输出通道,因此,D/A转换模块是飞行控制计算机中必备的功能模块之一。DSP28335片上没有DAC模块,所以必须使用片外扩展。
DAC模块设计涉及D/A转换芯片的选择、参考电压源的配置、数字输入码与模拟输出电压的极性等问题,而其中最核心的问题是D/A转换芯片的选择与应用问题,主要需要考虑的技术指标有分辨率和建立时间等。本文选用BURR—BROWM公司的D/A转换芯片DAC7725N实现此功能。
DAC7725是一款高输出电压和低功耗的D/A转换器件,产品功耗低(最多250 mW)、建立时间快(10μs)、线性度和单调性为12 bit,接收12位并行输入数据,采用双缓冲输入逻辑,提供数据回读模式。DAC的低功耗,小体积使DAC7725特别适合于闭环伺服控制系统。
1 总体设计方案
本系统采用TI公司的高性能数字信号处理器TMS320F28335(DSP28335)作为中央处理单元。该款DSP芯片提供高性能并行外设扩展接口XINTF,对外提供具有标准时序的片选、读/写控制信号;同时提供32位数据总线、20位地址总线,并且提供3个独立的片选信号,扩展能力强,使用方便。
因为单片DAC7725N提供4通道模拟量输出,本系统使用两片DAC7725N扩展得到8路模拟量输出通道。DSP将代表舵面位置的数字量通过并行数据接口送至DAC7725N,DAC7725N将其转换成相应的模拟电平信号后送至舵控电路,从而完成本次舵面刷新操作。结构图如图1所示。
2 DAC转换精密基准电路设计
基准电路具有稳定性好,对系统的操作环境(如电源电压、工作温度、输出负载)变化不敏感的特点,可以为其它电路模块提供较为精确的参考点,因此它是模拟集成电路和数模混合电路中不可缺少的基本单元电路。DAC7725N精密基准电路如图2所示。
3 DSP与DAC7725N接口电路的设计
比较DSP的XINTF接口与DAC7725N的并行端口可知,两接口具有良好的兼容性,只需少量接口逻辑电路的配合即可建立起DSP与DAC7725N之间的通信连接。为提高逻辑电路设计的灵活性和可靠性,所有的逻辑电路全部使用1片CPLD实现。DSP与DAC7725N接口电路如图3所示。
图3给出了1片DAC7725N与DSP实现通信连接的电路原理图。本系统共使用2片DAC7725N,另一片使用相同的接口电路,这里不再重复给出。
3.1 DAC7725N片选译码逻辑设计
1#DAC7725N芯片提供第1#~4#模拟量输出通道,2#DAC7725N芯片提供第5#~8#模拟量输出通道,DSP要选通某一通道,首先要通过CPLD的片选译码逻辑选通提供该通道的DAC7725N芯片。本系统中采用部分译码的方式提供每个DAC7725N芯片的片选信号。逻辑电路如图4所示。
地址分配情况如表1所示。
3.2 DAC7725N写使能信号R/W的逻辑设计
DAC7725N使用R/W信号使能本次写操作。写操作是D/A转换芯片的基本操作,DSP将待转换的数字量写入DAC7725N,在DAC7725N的模拟量输出端即可得到相应幅值的模拟信号。读操作是DAC7725N的特色之一,DAC7725N支持数字量回读功能,使得DSP能够方便地获取当前正在参与转换的数字量的值。下面以D/A转换芯片的写操作为例,详细分析芯片DAC7725N写操作时序设计,由于读操作与写操作时序设计类似,这里不再累述。
DAC7725N执行写操作时对R/W信号和CS信号的时序关系有一定的要求,如图5所示。
只要DSP在对DAC7725N执行写操作时,以CPLD为核心的接口电路能够提供符合上述标准的逻辑时序,就能确保DSP对DAC7725N的写操作正确执行。
XINTF在执行写操作时XR/W信号时序图示如下:
通过对DAC7725N与XINTF的接口时序作定性对比可知,令
保持一致,总体上可满足DAC7725N的接口时序要求。
4 D/A转换驱动程序设计
4.1 转换通道刷新的程序设计
刷新操作是指该D/A转换通道能够及时锁存来自CPU的数字量输入,并输出相应幅值的模拟信号。刷新操作是D/A转换通道的基本操作。对于本系统来讲,DSP想要刷新某一D/A转换通道的模拟量输出,只需向相应的端口地址写入数据即可。以DAOUT1通道为例,给出示例代码如下:
unsigned int*DAOUT1=(unsigned int*)(0x004000;
*DAOUT1=daout_w[0];
上例中,首先为DAOUT1通道定义一个指针变量,指向该通道所分配的地址,也就是0x004000;数组元素daout_w[0]存放该通道参与转换的数字量。DSP执行上述写指令时,XINTF的地址总线会送出0x004000,将DAOUT1通道选通,工作于直通模式;控制信号XR/W会送出低有效脉冲,使能本次写操作;数据总线会送出daout_w[0]里存放的数字量。至此,DAOUT1通道的刷新操作全部完成。
4.2 转换通道数据回读的程序设计
数据回读功能是DAC7725N芯片的特色之一。DAC7725N允许在转换过程中读出当前正参与转换的数字量,DSP据此可以获取所有D/A转换通道输出的模拟信号的幅值,而无需使用额外的传感器和A/D转换电路。与数据给定(刷新)操作类似,数据回读操作只需从相应的端口地址读出数据即可。以DAOUT1通道为例,给出示例代码如下:
daout_r[0]=*DAOUT1;
上例中,存入数组元素daout_r[0]中的数据,即是该通道当前正在参与转换的数字量。DSP执行上述写指令时,XINTF的地址总线会送出0x004000,将DAOUT1通道选通;控制信号XR/W保持高电平,使能本次读操作;DAC7725N将该通道当前正参与转换的数字量送至数据总线,供XINTF读取。至此,DAOUT1通道的数据回读操作全部完成。
5 系统性能验证
D/A转换通道在飞行控制系统中负责给出代表舵面位置的模拟信号。刷新速率不低于50 Hz,精度不低于200 mV。图7是DAC扩展模块实物图。
D/A转换通道的验证方案设计如下:
每一路D/A转换通道均要求输出正弦波信号,使用定时器定时刷新的方式,将定时器的定时周期设为1 ms,刷新频率可达1 000 Hz;将-10~+10 V的输出幅值离散为1 000个点,这样,理论上的转换精度可达20 mV;用示波器实时监测每一通道的输出信号,看输出正弦波的频率是否稳定为1 000 Hz,波形是否有明显的异常抖动,每隔一段时间读取正弦波的振幅值,从而验证在1 000 Hz的刷新频率下,转换精度是否满足要求。参考以上论述,先以通道E—D/A1参与测试,结果显示,E—D/A1通道能够输出预期的正弦波信号,证明此D/A转换通道能正常工作。剩余7通道也按相同方式验证,在确知所有的D/A通道已调通之后,对各通道的转换精度进行了静态测试,测试方案如下。
在程序中向每路D/A转换通道写入相同且固定的数字量,并以20 ms为周期进行刷新。使用高精度直流电压表对各通道输出的模拟信号进行测量。由于数字量固定且已知,可由相关公式计算得到理论上输出模拟量幅值,将其作为基准参考与实际测得的模拟信号幅值进行比较,可较为准确地得到各路D/A转换通道的转换精度。测试结果表明,所有D/A转换通道精度能够达到5.8 mV,可满足无人机飞行控制系统的应用需求。
6 结论
文中以DSP作为中央处理单元(CPU),使用两片DAC7725N扩展得到8路模拟量输出通道。DSP使用XINTF接口实现对DAC7725N的驱动,驱动程序简单,接口逻辑可靠。使用CPLD实现DSP与TL16C754之间的接口逻辑,简化了电路设计,进一步提高了系统的可靠性。实验证明,所有D/A转换通道在1 000 Hz的刷新频率下,精度能够达到5.8 mV,完全能够满足飞控系统实际应用的要求。