基于USB接口的数模转换系统设计

分享到:

 

3 电路设计

  

 

本系统采用USB控制芯片PDIUSBD12和D/A转换器AD558来实现DAC控制。计算机可以通过USB接口控制AD558输出所需的各种模拟信号。由于计算机的USB接口具有向外供电的功能,因此这里采用USB接口的电源为PDIUSBD12芯片供电。

  

 

USB接口部分的电路原理图如图2所示。

 

  

 

AD558的数据总线连接到PDIUSBD12.AD558工作于0~+10V模拟电压输出模式。电容C9和C10用于改善输出波形。AD558采用单一的12V供电,不需要外接基准电压源。数模转换部分的电路原理图如图3所示。

 

  

 

在制作PCB的时候,应遵守高速USB印刷电路板的要求。为了达到较高的信号质量,需要采用4层板甚至6层板来布线。将USB芯片放置在信号层,并尽可能离GND层近些。

  

 

USB接口中的D+和D-用于高速的USB数据传输,因此这两根信号线直接影响USB接口电路的稳定性,在印制电路板布线的时候需要仔细布置。D+和D-的走线应尽可能短且相等,并且合理设置D+和D-的导线宽度和间距。D+和D-之间的差分阻抗应该为90W±10%.保证在D+和D-信号的下面是完整的GND层。中间断开的GND层将导致差分阻抗不匹配,并增加信号的干扰。

 

4 程序设计

  

 

上位机的程序在VisualC++6.0编译环境中进行设计,分为设备初始化、USB设备检测、输出电压三个部分,程序代码分别介绍如下。

  

 

4.1 设备初始化

  

 

需要先初始化USB设备变量、控制端点变量和线程变量。主要是在OnInitDialog()函数中进行。代码示例如下:

 

 

4.2 USB设备检测

  

 

在程序中检测连接的USB设备,代码示例如下:

 

 

4.3 输出电压

  

 

用于从文本框中读取输入的电压值,然后转换为浮点数,接着转换成最接近的并行数据,最后通过自定义请求输出给USB设备。代码示例如下:

 

 

5 小结

  

 

本文通过一个完整的实例,讲解了如何使用USB接口芯片实现上位机控制D/A转换输出模拟电压。D/A转换器将数字信号转换成为模拟信号,可以利用成熟的数字电路技术实现控制,应用非常广泛。熟练掌握这种方法以后对于相关领域的设计工作十分有用。

 

 

 

 

 

 

 

 

 

 

 

 

 

论坛已做迁移,有相关技术资料和问题讨论可以到电路城对应版块(“模拟/电源”)
X