这一篇介绍D/A转换原理以及在TX-1C上的接线方式(实现方法),再用一个例子来加深理解。 D/A转换原理及参数指标 1.基本原理 数字量是二进制代码数位组合而来的,每位都有一定的权重,在D/A转换中,怎么样把这些权重以合适的方法表示出来是转换的关键。 为了让数字量转换成模拟量,必须将每一位代码按其权重的大小转换为相应的模拟量,然后再把这些模拟量相加。D/A转换的示意图如下: 即输入相应的二进制数,得出一个模拟量的输出,而作为一个三位的转换,模拟量与数字量的对应关系可以用下图来表示。在右图中D分别对应了相应的V0 。
下面介绍集中D/A转换器,他们思路大致相同,常用的分别有这几类: 1.权电阻D/A转换 如果一个n位二进制数用D n = d n − 1 d n − 2 d n − 3 … d 1 d 0 来表示,那它从高位到低位的权重分别为2 n − 1 ,2 n − 2 … 如果可以通过电阻阻值的不同来对各支路进行处理最后加和,应该是可以达到预期效果的。下来展示一个4位的权网络转换电路。 这其中d i 的值可以为0或1,表示开关的打开与闭合,之后通过一个求和放大器输出相应的模拟量。 因为是反相放大器,故推导过程如下: 从推导过程可发现当VREF为正电压时最后导出的结果为负值。故在运用中向VREF导入负值就可。 这个电路的问题是电阻的值之间相差可能过大,可能会引起误差,另外开关应该也是有阻值的,也会带来分压的问题。下面是基于此问题的改进版电路 2.倒T形电阻D/A 这里只用了两种电阻R/2R,但通过并联分流同样实现了电流的加和。 且此电路中的2R电阻均接地或虚地,这样做的的好处是流经2R电阻的电流与开关位置无关,是一个确定的值。通过进一步推导可得: 注意也要对模拟开关导通电阻的阻值做限制,不然会出现电流不准确的情况。 3.权电流D/A(利用电流源) 倒T型D/A中一旦开关或电阻的阻值没有保持二倍关系,电流关系就会随之变化,不太稳定。采取进一步的改进方案。 采用恒流源就可以避免电阻阻值对电路的影响。 相应分析如下,可发现输出量是正比于输入的数字量的。 4.双极性输出D/A 考虑到在实际情况中常把二进制数转换为补码的形式,则若把原码输入后对应的数再转换为转化为补码时偏移的输出就更完善了。对应关系如下。 且由于之前的电路只能单极输出,不满足现在的需求,可通过在运放负极加一个带有V B ( + ) 和R的偏置电路解决。下面引出的VREF(−) 当然是负的,这样就能实现原码转化为补码并双极输出。 电路图如下: D/A的参数指标与A/D相差不大,在此不作赘述。 DAC0832的工作原理以及实现方法 因采取电流输出方式,有IOUT1和IOUT2两个输出接口,引脚分布图如下: 出现了两个新的引脚XFER和ILE。 XFER为数据传输控制信号输入端,ILE 为锁存允许段,另外Rfb为反馈电阻端,与IOUT1端接有一电阻。看看手册上的接线,大概清楚除了数据总线外还要把哪些端口与控制总线相连。 其内部结构如下图,可看到CS和WR1相与后再和ILE相与接至锁存器,故这个输入锁存器应当拥有三态功能,且三个接口都有效时才能传送数据。关注DAC寄存器上的连接线,XFER 起到了控制另外一个写入端的作用。 TX-1C实验板上将DAC外围电路接为直通方式(其可以双缓冲,单缓冲或者直通),同样的道理,我们需要研究它的接线以及操作时序图。 操作时序图相较于A/D的改变就是将V0换为了IOUT1,且多了ILE锁存允许的引脚,其余相同。 现用一道例题来融会贯通所学知识。 分析:1.需要用sbit定义蜂鸣器,dula,wela,以及WR,CS的引脚 2.蜂鸣器的警报用高低电平控制,则发光二极管D12流程为灭→亮 →灭 两个过程各需要2.5s 3.又说是均匀点亮/熄灭,则考虑找一个步进,定义好中间变量且将系统初始化后,用大循环分别对这两种情况进行处理(灭→亮/亮→灭 ) 4.对于步进n要有一个计算,之后需要delayms(2500ms/n) 具体程序如下: (责任编辑:admin) |