基于VUSB的数控直流稳压电源的设计_第1页
基于VUSB的数控直流稳压电源的设计_第2页
基于VUSB的数控直流稳压电源的设计_第3页
基于VUSB的数控直流稳压电源的设计_第4页
基于VUSB的数控直流稳压电源的设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、0 引 言数控直流稳压电源是电子技术中常用的设备之一,目前所使用的大多是通过旋钮开关调节电压值,调节精度不高,而且经常出现跳变,使用起来极不方便。本数控直流稳压电源通过上位机设置输入到DAC的数字量,输出步进可调的电压。上位机与下位机通过软件模拟的USB进行通信。传统的单片机与计算机进行USB通信,需要使用专用的接口芯片进行USB 协议转换,如CP2101、FT232、CH342、PDIUSBD12、SL811等。像CP2101、FT232这样的芯片使用起来虽然简单,但是功能比较单一;而PDIUSBD12、SL811功能较强,但是使用复杂。并且这些专用芯片的价格都相对较高,增加了系统的成本。而

2、VUSB简单易用,成本低廉,只需要一个普通的低成本AVR单片机以及很少的几个外部元件,就可以组成一个USB系统。1 系统硬件设计系统组成框架如图1所示,主要由8路串行输入DACMAX522、稳压输出电路、VUSB接口电路、信号调理电路、单片机Atmega8及其他外围元件组成,可以输出012V的电压,步进精度为0.1V,电流可达2A.同时可以通过上位机设置输出的电压值。 图1 数控直流稳压源组成1.1 模数转换。D/A 转换主要是利用MAX522 芯片来实现的。MAX522芯片内有2路8位电压缓冲输出D/A 转换器(DAC A和DAC B),8脚节省封装和DIP封装,DAC A端缓冲器工作电流可

3、达5mA,DAC B端缓冲器工作电流可达500A,MAX522工作在单向电压+2.7V+5.5V.MAX522具有3线串行接口,可直接与SPITM、QSPITM,MicrowireTM 兼容。它有一个16位输入移位寄存器,包含8位DAC输入数据和8位DAC选择和关断控制。在/CS的正边沿数据能够存入到DAC寄存器。模数转换模块电路如图2所示。单片机的PB0端口接串行数据输入口DIN、PB1接片选信号 、PB2端口接时钟信号SCLK.选择DAC A作为输出,输出和参考电压输入端分别接上一个0.1F的电容,提高电路输出稳定性。芯片的VDD与参考电压端均由5.12V稳压电路提供。 图2 模数转换及稳

4、压电路LM336集成电路是精密的5V稳压器,其工作相当于一个低温度系数的、动态电阻为0.2的5V齐纳二极管,其中微调端(G)可以使基准电压和温度系数得到微调。通过调节可调电阻调节LM336的输出电压为5.12V.所以MAX522输出电压的分辨率为5.12/256=0.02V,也就是说MAX522数字输入量每增加1,电压就增加0.02V.由于电源输出电压范围为012V,步进精度为0.1V,则最大输入数据为120(二进制值为11110000),此时MAX522输出值为2.4V.即MAX522的输出电压在02.4V变化。1.2 电压电流放大由于MAX522输出的电压范围为02.4V,而要求的电压输出

5、范围为012V,所以需要将MAX522输出放大5倍。同时,为了提高电源的驱动能力,在放大电路后面加入了一个射极输出器。电压电流放大电路如图3所示。主要包括2个A741高增益运算放大器组成的放大部分及三极管ZTX453组成的射极输出部分。第一级A741AN 为负反馈缓冲电路,用以减小输出电阻并使放大频率频宽增大。第二级A741ANA构成电压正向比例放大电路。放大后的电压信号接入射极输出器ZTX453,放大输出信号的电流。注意,此部分电路发热量比较大,需要再扩接散热片进行散热。 图3 电压电流放大电路。1.3 VUSB接口VUSB是用普通的通用AVR单片机,配以较高频率的晶振(12MHz或16MH

6、z),模拟产生USB所需信号,从而模拟出标准的USB HID设备(鼠标、键盘、简单通信)的解决方案,构成一个低成本的USB设备。USB共有4根线,2根5V电源,两根差分信号线D+、D-.由于是低速设备,D-必须要有1.5k的上拉电阻。VUSB接口电路如图4所示,单片机的PD1和PD2通过68的限流电阻分别接入标准USB接口的D-、D+.需要注意的是D+必须接上单片机的外部中断0管脚,在此为了简化连接直接将PD2(INT0)接入作为其中的一根信号线使用。由于USB信号线的电压最大为3.6V,所以在D-和D+上分别并接了一个3.6V的稳压二极管。 图4 VUSB接口电路。2 系统软件设计软件设计包

7、括下位机和上位机2部分。下位机主要负责接收上位机的设置电压值,并经过转换后输入到MAX522,从而输出设置电压。上位机则通过VUSB与下位机连接,并通过模拟的USB协议向下位机写入数据。2.1 下位机软件下位机软件流程图如图5所示。其中设备初始化包括单片机端口初始化、DAC初始化及VUSB端口初始化。在初始化之后,程序进入主循环,在其中加入了USB轮询函数usbPoll(),用来侦测USB事件。一旦侦测到上位机有USB通信请求时,usbdrv就会调用usbFunctionSetup()函数来处理请求。在此请求函数中接收上位机传来的数据并将此数据转换后写入MAX522数据端口,启动DAC输出电压

8、。 图5 下位机软件流程。设计中需注意以下几点:1)单片机方面的VUSB 底层驱动函数使用AVRUSB,最新版本的AVR-USB为C语言编写并有详细的注释。开发平台为WinAVR.GCC项目文件夹中需包含驱动文件(usbdrv文件夹),并对usbconfig.h中的部分宏定义做一些修改。#define USB_CFG_IOPORTNAME D/这个接口连接USB总线。当配置为"D"时,寄存器PORTD,PIND and DDRD将有效。#define USB_CFG_DMINUS_BIT 1/位配置,是在USB_CFG_IOPORT 中连接USB D-的线。可以配置为接口的

9、任何位。#define USB_CFG_DPLUS_BIT 2/位配置,是在USB_CFG_IOPORT 中连接USB D+的线。也可以连接到任意口,但是注意D+一定要连接都中断口INT02)单片机在接收到读取数据命令时会自动调用usbFunctionSetup(uchar data8),在函数内把全局指针*usbMsgPtr指向所要发送的数据首地址,然后返回(函数返回值)所发送数据的长度就可以了。由于采用的是命令包方式传输数据,每次只能接收4个字节的有效数据,存储在data2data4中。3)初始化时需要将MAX522的输出置为关闭状态。写入MAX522时首先写入8位控制字,然后写入8位DA

10、C数据。2.2 上位机软件上位机用C# 语言进行编写,驱动采用一款名为LibUsbDotNet的开源USB上位机驱动库文件。此驱动库文件还提供了供。NET平台调用的USB接口函数。使用时需包含相应的动态链接库文件。上位机软件主要包括显示设备连接状态、写入电压值及读取当前电压值等功能。上位机软件流程图如图6所示。 图6 上位机软件流程。只有在总线请求为用户自定义类型(Vendor)时单片机才会调用usbFunctionSetup(uchar data8)这个函数,所以传输数据是通过发送用户自定义类型的Setup数据包来实现的。读数据时设置此数据包为IN,同时写入需要读取的字节数。写入数据时设置数据包为OUT,4字节的有效数据则包含在所建立的8字节Setup数据包的data2data4之中。3 实验验证与分析本数控直流稳压电源在使用之前需进行校零。在初始状态下,调节集成运放A741的外接调零电阻使集成运放输出为0,调节射极输出器偏置电阻R13使输出电压为0.在输出最大的情况下,调节输出集成运放的比例放大电阻R14,使得输出电压为12V.校零之后将上位机设置电压值与实际输出电压进行对比实验,实验数据如表1所示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论