DAC并非仅仅是ADC的反向过程。DAC的最简单架构是电流导向电路。DAC被设计为将一定量的电流导入或导出负载。而欧姆定律将这一电流与输出电压联系起来。在此例中,如果DAC的满量程输出为30毫安,接入一个50欧姆的负载,那么满量程输出电压在上述例子中将是1.5伏(单端)或3.0伏(峰峰值差分)。
电流导向型数模转换器(Current-steering D-to-A converters)可以是电流吸收型或电流源型。差异在于DAC的电流来源是来自DAC电源并经由负载电阻至接地,或是来自外部上拉电源并经由负载电阻,然后再经由数字转模拟转换器后汲入至接地。
电流源型数模转换器(Current Source D-to-A Converter)通常会采用P沟道器件作为电流源,而电流吸收型DAC则通常会采用N沟道晶体管。在两种情况下,输出电压都会根据欧姆定律,通过考虑流经负载电阻的电流量来确定。
无论是电流源型还是电流同步型,一种实现DAC输出级的方法是将输出级作为电流模式驱动器的并联组合来实现,其中每个驱动器的电流能力相对于相邻驱动器按2的幂次方进行缩放。在这个简单的3位示例中,最高有效位(MSB)的驱动器具有500微安的电流容量,而下一个位(中间位)的驱动器具有250微安的容量,最低有效位(LSB)的驱动器具有125微安的容量。当所有三个驱动器都激活时,满量程输出电流为±875微安。
这种方法的优点是,对于N位的分辨率,只需要设计N个输出驱动器以并行输出。然而,其缺点是,随着位数的增加,要使输出驱动器匹配变得难以实现,因为最高有效位的容差可能会远大于最低有效位所期望的分辨率容差。除非从最高有效位到最低有效位,每个位的电流能力都严格按照2的幂次方进行缩放,并保持相应的容差,否则DAC的线性度将会受到影响。
DAC电流输出的另一种方法是使输出驱动器的电流容量相匹配。在这种方法中,更容易保持输出驱动器的容差,从而实现从一个驱动器到下一个驱动器的良好匹配。但是,对于N位的分辨率,现在需要2的N减1次方个输出驱动器。以所示的3位DAC为例,将需要七个具有相同电流容量的输出驱动器。要实现满量程输出,则需要所有驱动器并行激活。
在此例中,输入取样码会从算术码转换为温度计码,且每位的温度计码皆控制个别的输出驱动器。此结构中的输出驱动器之间可达到较佳的匹配,但对于高分辨率取样而言,需实作的驱动器数量就变得十分庞大。14位的数字转模拟转换器会需要16,535个输出驱动器并联。
为了实现更高分辨率的DAC,可以采用二进制DAC和温度计码DAC的组合。在这个例子中,一个6位的DAC可以使用采样值的高3位来控制一个温度计码DAC,这样只需要7个匹配的电流驱动器并联。然后,低3位可以用来控制另外3个电流驱动器,这些驱动器的电流大小按2的幂次方进行缩放。这样,电流缩放的匹配范围就只需要覆盖到2的4次方。对于14位到16位这样更高分辨率的DAC,很可能会采用这种编码方式的组合来实现。
以16位DAC为例,采样值的高6位被转换为63位的温度计码,以驱动63个匹配的电流源。同时,采样值的低10位被直接用来驱动另外10个按比例缩放的电流源,这些电流源也与63个匹配的电流源并联。因此,电流驱动器的总数为73个,且这10个按比例缩放的二进制电流驱动器必须在2的11次方(即从0到2047,但考虑到电流源的实际等级,是从最小电流到最大电流的2048个等级中的某10个)的范围内实现良好的匹配。
也就是说,10个二进制驱动器的电流大小在2的10次方(即从1到1024,但实际等级数为0到1023对应的电流,此处强调缩放比例范围)的范围内按比例缩放,而温度计码驱动器的电流大小都是最大比例驱动器电流的两倍。