1 系统概述
程控电流源具有输出电流范围宽、准确度高、功率大等特点,是组成自动测试系统和校验系统的必需仪器,广泛用于工矿企业、科研国防等军工单位的计量仪表、自动化标定等设备中。本文介绍的精密程控电流源除上述特点外,还具备USB总线通信、温度测量和输出电流非线性温度补偿功能。
系统总体结构如图1所示,精密程控电流源由微控制器(MCU)单元,USB接口单元,温度测量单元,输出电流校准单元,信号输出单元及电源单元组成。MCU单元通过USB接口单元实现与上位机的通信,从上位机获得控制命令并返回相应的数据,同时解析上位机命令来控制信号输出信号,完成最终电流输出。温度测量单元和输出电流校准单元共同完成输出电流的非线性温度补偿。电源单元向其他单元提供所需电源。精密程控电流源还包括过流检测、系统自检、继电器隔离输出等单元,进一步提高了系统的智能性和可靠性。 2 系统电路设计
2.1 USB接口单元
精密程控电流源通过USB总线与上位机接口,USB接口的热插拔、高速和即插即用特性大大简化了系统设计,方便了电流源与上位机的通信,USB接口单元电路如图2所示。 图中,FT232AM完成USB总线到MCU串口信号线的转换,以便上位机将USB虚拟成传统的串行口,从而简化了驱动程序,便于实现USB总线与MCU的通信。为了避免USB信号与信号源间的干扰,选用光耦器件(图中的U29)实现其与MCU的隔离,提高系统的抗干扰能力。
2.2 MCU及其外接单元
微控制器MCU是精密程控电流源的核心控制单元,其与温度测量单元及输出电流校准单元的接口电路如图3所示。 MCU单元选用AT89C51型单片机构建运行环境,完成对电流源系统的控制,包括外部扩展ROM、外部扩展RAM、硬件看门狗、硬件地址译码器等。 [page]
考虑到器件输出特性随温度的变化,MCU外接温度测量单元和输出电流校准单元来完成输出电流的非线性温度补偿,其原理是输出电流校准单元保存各温度范围内不同设定电流值和实际输出值之间的误差,此误差通过实际测量得到,称为修正系数。系统工作时,通过温度测量单元可得到当前工作温度,用此工作温度对应的设定电流值乘以修正系数,即可完成输出电流的非线性温度补偿,大大提高电流的输出精度。
温度测量单元的核心器件是高精度数字温度测量电路AD7416(图中的U19),它采用IC总线与AT89C51接口,测量的环境温度范围为-10℃~+50℃,设计的MCU以十六进制形式输出所测温度。
输出电流校准单元由M24C64型64k Bit EEPROM构成,用来存贮电流源修正系统数值。MCU通过I2C总线可方便地对其进行读写操作,并按照可变电流源的通信协议以8位十进制数形式写入和读出修正系数,从而保证了对输出电流的精确非线性温度补偿。
2.3 信号输出单元
信号输出单元完成精密程控电流源的电流产生与输出,包括以12位高精度DAC-HK12BGC型DAC为核心的DAC转换电路和由TI公司的精密电压/电流转换器组成的后级转换电路。MCU先译码上位机指令,然后向DAC转换电路写入特定数据以控制其输出的模拟电压值。后级转换电路接收DAC转换电路输出的模拟电压值完成电压到电流的转换,随后输出上位机设定的电流。信号输出单元电路如图4所示。 图中,AT89C51的数据线D0-B7通过二片74HC573与DAC-HK12BGC接口来控制其模拟输出,控制过程如下:AT89C51通过CS_DA与51_WR信号来启动DAC,当DAC低字节选择信号线CS_DAL与单片机写使能线51_WR构成的组合逻辑有效时,向DAC写入低8位数据,然后以相同方式写入高4位数据。为进一步提高精度,DAC输出端连有电位器W1、W2,分别用来微调满偏和零偏。
DAC输出的模拟电压信号DA_OUT接入后级转化电路XTR110,先通过其片内的金属薄膜电阻网络提供输入的缩放比例及电流偏移,完成电压到电流的转换,再通过IRF7104型场效应管输出电流。XTR110具有14位转换精度,0.005%的非线性度,确保了转换精度。电位器W3、W4分别用来微调输出电流零偏和满偏,进一步提高精度。
3 单片机控制程序设计
在电流源系统软件中设计了完整的通信协议,规定了电流源从上位机获得的控制命令字和相应的返回数据值。系统控制程序以AT89C51型单片机作为控制核心,采用汇编语言编写,分为主程序和串口中断处理程序2部分。
3.1 主程序设计
主程序主要完成系统参数初始化、系统自检、串口中断配置等,流程如图5所示。 系统上电后,MCU从地址0000H开始执行,主程序的入口地址为0050H。系统初始化包括初始化堆栈、初始化DAC、初始化串口、初始化寄存器、初始化看门狗等。部分主程序如下。
MOV SP,#58H ;初始化堆栈指针
MOV A,#00H
MOVX @DPTR,A ;初始化DAC
NOP
MOV A,#20H ;初始化定时器1,模式2
MOV A,PCON
ORL A,#80H
MOV PCON,A ;设定串口波行率19200
SETB MODE ;设定系统自检
SETB R_EN ;初始化自检继电器
MOV TX_PNT,#40H ;初始化串口发送缓冲区指针
MOV RX_PNT,#30H ;初始化串口接收缓冲区指针
CPL WDI ;初始化看门狗
SETB TR1 ;开定时器1
SETB REN
SETB ES ;开串口中断
SETA EA ;开单片机中断
MOV STATUS,#01H ;进入运行状态 [page]
3.2 串口中断处理程序
串口中断处理程序是单片机控制程序的核心部分,串口接收上位机命令字,同时解析命令来控制硬件电路工作,流程如图6所示。 以设定电流输出这个最重要的命令为例,串口中断处理程序先接收设定的电流值(以3位16进制数表示),然后由单片机通过I2C总线读取当前温度值和修正系数,再由系统软件控制设定电流值乘以修正系数得到实际值,从而完成非线性温度补偿,单片机可根据实际值设定DAC输出电压,控制最终电流输出,单片机串口中断处理程序中的主要代码如下:
;*********************;
SET_V:MOV A,37H ;得到设定电流值的最高位
ANL A,#0F0H
CJNE A,#30H,PACK1……
PACK1:MOV A,37H
CLR C
SUBB A,#37H
PACK2:MOV R2,A ;最高位存放R2
MOV A,38H
ANL A,#0F0H
CJNE A,#30H,PACK3……
PACK3:MOV A,38H
CLR C
SUBB A,#37H
PACK4:MOV R1,A ;中间位存入R1
MOV A,39H
ANL A,#0F0H
CJNE A,#30H,PACK5……
PACK5:MOV A,39H
CLR C
SUBB A,#37H
MOV R0,A ;最低位存入R0
MOV A,R1
SWAP A
ORL A,R0
MOV R0,A ;最低位与中间位合并
MOV DPTR,#CS_DAH
MOV A,R2
MOVX @DPTR,A
MOV DPTR,#CS_DAL
MOV A,R0
MOVX @DPTR,A
MOV DPTR,#CS_DA ;设定DAC输出
MOV A,#00H
MOVX @DPTR,A ;更新DAC
RET
;************************************************;
单片机通过I2C总线读取当前温度值和修正系数的程序与之相,这里只给出读取温度值程序:
;Read A Byte From AD7416 E2RPOM
ACALL RDBYTE ;读取温度值高位
MOV R1,A ;存入R1
CLR TMSDA ;ACK
NOP…… ;NOP指令
SETB TMSCL
NOP……
CLR TMSCL
NOP……
SETB TMSDA
ACALL RDBYTE ;读取温度值低位
MOV R0,A ;存入R0
SETB TMSDA ;N0 ACK
NOP……
SETB TMSCL
NOP……
CLR TMSCL
NOP……
CLR TMSDA
NOP……
SETB TMSCL
SETB TMSDA ;停止
;Read A Byte From AD7416 E2PROM
RDBYTE:MOV R0,#08H
RDBIT:SETB TMSCL ;SCL保持高电平
MOV C,TMSDA
RLC A
CLR TMSCL ;SCL保持低电平,SDA电平改变
NOP……
DJNZ R0,RDBIT ;读完结束
RET
4 结束语
以上介绍的精密程控电流源输出电流为0~20mA,编程步进电流为100μA,电流误差小于50μA,已在某机载信号调节器自动化标定系统得到很好的应用。该自动化标定系统可模拟信号调节器所需的各种输入信号,并使用采集设备信号调节器输出的调理信号,然后进行分析并完成机载信号调节器的自动检测和标定,可大大提高检测精度,检测效率和降低人员工作量。 (end)
关键字:精密程控 电流源 中断处理
引用地址:精密程控电流源的设计及应用
程控电流源具有输出电流范围宽、准确度高、功率大等特点,是组成自动测试系统和校验系统的必需仪器,广泛用于工矿企业、科研国防等军工单位的计量仪表、自动化标定等设备中。本文介绍的精密程控电流源除上述特点外,还具备USB总线通信、温度测量和输出电流非线性温度补偿功能。
系统总体结构如图1所示,精密程控电流源由微控制器(MCU)单元,USB接口单元,温度测量单元,输出电流校准单元,信号输出单元及电源单元组成。MCU单元通过USB接口单元实现与上位机的通信,从上位机获得控制命令并返回相应的数据,同时解析上位机命令来控制信号输出信号,完成最终电流输出。温度测量单元和输出电流校准单元共同完成输出电流的非线性温度补偿。电源单元向其他单元提供所需电源。精密程控电流源还包括过流检测、系统自检、继电器隔离输出等单元,进一步提高了系统的智能性和可靠性。 2 系统电路设计
2.1 USB接口单元
精密程控电流源通过USB总线与上位机接口,USB接口的热插拔、高速和即插即用特性大大简化了系统设计,方便了电流源与上位机的通信,USB接口单元电路如图2所示。 图中,FT232AM完成USB总线到MCU串口信号线的转换,以便上位机将USB虚拟成传统的串行口,从而简化了驱动程序,便于实现USB总线与MCU的通信。为了避免USB信号与信号源间的干扰,选用光耦器件(图中的U29)实现其与MCU的隔离,提高系统的抗干扰能力。
2.2 MCU及其外接单元
微控制器MCU是精密程控电流源的核心控制单元,其与温度测量单元及输出电流校准单元的接口电路如图3所示。 MCU单元选用AT89C51型单片机构建运行环境,完成对电流源系统的控制,包括外部扩展ROM、外部扩展RAM、硬件看门狗、硬件地址译码器等。 [page]
考虑到器件输出特性随温度的变化,MCU外接温度测量单元和输出电流校准单元来完成输出电流的非线性温度补偿,其原理是输出电流校准单元保存各温度范围内不同设定电流值和实际输出值之间的误差,此误差通过实际测量得到,称为修正系数。系统工作时,通过温度测量单元可得到当前工作温度,用此工作温度对应的设定电流值乘以修正系数,即可完成输出电流的非线性温度补偿,大大提高电流的输出精度。
温度测量单元的核心器件是高精度数字温度测量电路AD7416(图中的U19),它采用IC总线与AT89C51接口,测量的环境温度范围为-10℃~+50℃,设计的MCU以十六进制形式输出所测温度。
输出电流校准单元由M24C64型64k Bit EEPROM构成,用来存贮电流源修正系统数值。MCU通过I2C总线可方便地对其进行读写操作,并按照可变电流源的通信协议以8位十进制数形式写入和读出修正系数,从而保证了对输出电流的精确非线性温度补偿。
2.3 信号输出单元
信号输出单元完成精密程控电流源的电流产生与输出,包括以12位高精度DAC-HK12BGC型DAC为核心的DAC转换电路和由TI公司的精密电压/电流转换器组成的后级转换电路。MCU先译码上位机指令,然后向DAC转换电路写入特定数据以控制其输出的模拟电压值。后级转换电路接收DAC转换电路输出的模拟电压值完成电压到电流的转换,随后输出上位机设定的电流。信号输出单元电路如图4所示。 图中,AT89C51的数据线D0-B7通过二片74HC573与DAC-HK12BGC接口来控制其模拟输出,控制过程如下:AT89C51通过CS_DA与51_WR信号来启动DAC,当DAC低字节选择信号线CS_DAL与单片机写使能线51_WR构成的组合逻辑有效时,向DAC写入低8位数据,然后以相同方式写入高4位数据。为进一步提高精度,DAC输出端连有电位器W1、W2,分别用来微调满偏和零偏。
DAC输出的模拟电压信号DA_OUT接入后级转化电路XTR110,先通过其片内的金属薄膜电阻网络提供输入的缩放比例及电流偏移,完成电压到电流的转换,再通过IRF7104型场效应管输出电流。XTR110具有14位转换精度,0.005%的非线性度,确保了转换精度。电位器W3、W4分别用来微调输出电流零偏和满偏,进一步提高精度。
3 单片机控制程序设计
在电流源系统软件中设计了完整的通信协议,规定了电流源从上位机获得的控制命令字和相应的返回数据值。系统控制程序以AT89C51型单片机作为控制核心,采用汇编语言编写,分为主程序和串口中断处理程序2部分。
3.1 主程序设计
主程序主要完成系统参数初始化、系统自检、串口中断配置等,流程如图5所示。 系统上电后,MCU从地址0000H开始执行,主程序的入口地址为0050H。系统初始化包括初始化堆栈、初始化DAC、初始化串口、初始化寄存器、初始化看门狗等。部分主程序如下。
MOV SP,#58H ;初始化堆栈指针
MOV A,#00H
MOVX @DPTR,A ;初始化DAC
NOP
MOV A,#20H ;初始化定时器1,模式2
MOV A,PCON
ORL A,#80H
MOV PCON,A ;设定串口波行率19200
SETB MODE ;设定系统自检
SETB R_EN ;初始化自检继电器
MOV TX_PNT,#40H ;初始化串口发送缓冲区指针
MOV RX_PNT,#30H ;初始化串口接收缓冲区指针
CPL WDI ;初始化看门狗
SETB TR1 ;开定时器1
SETB REN
SETB ES ;开串口中断
SETA EA ;开单片机中断
MOV STATUS,#01H ;进入运行状态 [page]
3.2 串口中断处理程序
串口中断处理程序是单片机控制程序的核心部分,串口接收上位机命令字,同时解析命令来控制硬件电路工作,流程如图6所示。 以设定电流输出这个最重要的命令为例,串口中断处理程序先接收设定的电流值(以3位16进制数表示),然后由单片机通过I2C总线读取当前温度值和修正系数,再由系统软件控制设定电流值乘以修正系数得到实际值,从而完成非线性温度补偿,单片机可根据实际值设定DAC输出电压,控制最终电流输出,单片机串口中断处理程序中的主要代码如下:
;*********************;
SET_V:MOV A,37H ;得到设定电流值的最高位
ANL A,#0F0H
CJNE A,#30H,PACK1……
PACK1:MOV A,37H
CLR C
SUBB A,#37H
PACK2:MOV R2,A ;最高位存放R2
MOV A,38H
ANL A,#0F0H
CJNE A,#30H,PACK3……
PACK3:MOV A,38H
CLR C
SUBB A,#37H
PACK4:MOV R1,A ;中间位存入R1
MOV A,39H
ANL A,#0F0H
CJNE A,#30H,PACK5……
PACK5:MOV A,39H
CLR C
SUBB A,#37H
MOV R0,A ;最低位存入R0
MOV A,R1
SWAP A
ORL A,R0
MOV R0,A ;最低位与中间位合并
MOV DPTR,#CS_DAH
MOV A,R2
MOVX @DPTR,A
MOV DPTR,#CS_DAL
MOV A,R0
MOVX @DPTR,A
MOV DPTR,#CS_DA ;设定DAC输出
MOV A,#00H
MOVX @DPTR,A ;更新DAC
RET
;************************************************;
单片机通过I2C总线读取当前温度值和修正系数的程序与之相,这里只给出读取温度值程序:
;Read A Byte From AD7416 E2RPOM
ACALL RDBYTE ;读取温度值高位
MOV R1,A ;存入R1
CLR TMSDA ;ACK
NOP…… ;NOP指令
SETB TMSCL
NOP……
CLR TMSCL
NOP……
SETB TMSDA
ACALL RDBYTE ;读取温度值低位
MOV R0,A ;存入R0
SETB TMSDA ;N0 ACK
NOP……
SETB TMSCL
NOP……
CLR TMSCL
NOP……
CLR TMSDA
NOP……
SETB TMSCL
SETB TMSDA ;停止
;Read A Byte From AD7416 E2PROM
RDBYTE:MOV R0,#08H
RDBIT:SETB TMSCL ;SCL保持高电平
MOV C,TMSDA
RLC A
CLR TMSCL ;SCL保持低电平,SDA电平改变
NOP……
DJNZ R0,RDBIT ;读完结束
RET
4 结束语
以上介绍的精密程控电流源输出电流为0~20mA,编程步进电流为100μA,电流误差小于50μA,已在某机载信号调节器自动化标定系统得到很好的应用。该自动化标定系统可模拟信号调节器所需的各种输入信号,并使用采集设备信号调节器输出的调理信号,然后进行分析并完成机载信号调节器的自动检测和标定,可大大提高检测精度,检测效率和降低人员工作量。 (end)
上一篇:R&S公司矢量信号发生器SMW200A应对高端测试需求
下一篇:小型化数字测频接收机
推荐阅读最新更新时间:2024-03-30 22:37
基于单片机的数控电流源设计
1 引言
电源技术尤其是数控电源技术是一门实践性很强的工程技术,涉及了电气、电子、系统集成、控制理论、材料等诸多学科领域。计算机和通讯技术的发展,给电力电子技术提供了广阔的发展前景,同时也给电源提出了更高的要求。普通电源由于精确度不高等缺点已不能满足现实的需要。直到单片机技术及电压转换模块的出现,才使精确数控电源的发展有了可能。本文所设计的数控电流源采用PIC16F877A单片机为核心部件,键盘、显示、D/A、开关电源等模块为外围电路。
2 设计要求和总体设计思路
2.1 设计要求
本设计要求:输入220V,输出最高12V;通过键盘控制输出电流,步长为0.01A;采用LED显示输出电流,精度为0.02A;电流源
[单片机]
全桥谐振电流源的分析与设计
摘要:为提高频率、减少开关损耗覆EMI,谐振变换器得到了广泛的压用。分析了感性负载下垒桥逆变电流源的各个工作模式,重点分析了谐振等效电路,并进行了相应的仿真。根据谐振理论分析及参数选择,设计了一种新型的全桥逆变电流源,该电流源具有输出正弦波形良好,谐振器件电压、电流应力适当厦负载范围宽等特点、仿真和实验结果验证了理论分析。
关键词:交流电流源;全桥逆变;谐振;开关应力
中图分类号:TM46 文献标识码:A 文章编号:0219—271 3(2005)06-0007-05
O 引言
高频变换能有效地减小功率变换器的体积、重量。但也带来了高的开关应力、高频变压器漏感引起的电压尖峰、电磁干扰(EMI)、高频开关损耗、效率低等问题.而谐振
[电源管理]
关于调频电流源技术的研究
调频电流源是一种频率可以改变的电流源,ARM控制DDS输出一个频率以及幅度可调的正弦电压信号,DDS输出信号再经过滤波以及V/I 转换得到一个正弦电流信号,其电流幅度输出范围为0~20 mA,频率范围为0~1 MHz。详细讲述了该调频电流源实现的重要技术以及相应的公式推导。对所设计的调频电流源电路的性能进行了仿真,仿真结果表明,其输出频率0~1 MHz。幅度0~20 mA内可调,符合设计的要求。该电路精度高,稳定性好。 0 引言 调频电流源作为电流源的一种,需为负载提供稳定的电流的仪器,目前市场上,频率可调的电流源较少,多为频率固定的恒流源,在一些测量里,需要用到频率可调的电流源,例如测量人体阻抗网络,就需要用到
[电源管理]
关于ARM核异常与中断处理机制研究
一.ARM处理器异常及其对应的模式
当一个异常发生时,ARM处理器总是切换到ARM状态(即非Thumb状态)。Thumb指令集没有包含进行异常处理时需要的一些指令,因此在异常中断时,还是要使用ARM指令。
每种异常都导致内核进入一种特定的模式。此外,可以通过修改cpsr,进入任何ARM处理器模式。用户和系统模式是仅有的可不通过相应异常进入的2中模式。
当一个异常导致模式的改变时,内核自动的:
把cpsr保存到相应异常模式下的spsr
把pc保存到相应模式下的lr
设置cpsr为相应异常模式
设置pc为相应异常处理程序的入口地址
二.向量表
[嵌入式]
ARM的中断处理 [一]
前面的文章介绍了Linux的中断处理机制,而操作系统的中断处理是和硬件的中断控制器紧密相关的,本文将以ARM这样一个具体的处理器为例,讲解硬件层面对中断的支持。 ARM的中断控制器被称为GIC(Generic Interrupt Controller),最开始的v1版本最多支持8个PE和1020个中断源(interrupt source),用于ARM Cortex-A5,A9等。这里PE代表Processing Element,它是ARM架构对处理单元的抽象,为方便理解,就把它当做ARM cores好了。 v2版本增加了对虚拟化功能和TrustZone的支持,用于ARM Cortex-A7,A15,A53,A57等。
[单片机]
STM32外部中断处理流程及注意事项
STM32的外部中断是以组为单位,例如PA0、PB0、PC0、PD0、PE0、PF0、PG0共用外部中断0,我们再使用时从中选择一个座位外部中断0即可,其他中断类推。 外部中断包括EXTI0、EXTI1、EXTI2、EXTI3、EXTI4、EXTI9_5、EXTI15_10,Pin0--Pin4有各自独立的中断, Pin5--Pin9共用一个中断,Pin10--Pin15共用一个中断。 中断号 Pin脚 EXTI0 Pin0 EXTI1 Pin1 EXTI2 Pin2 EXTI3 Pin3 EXTI4 Pin4 EXTI9_5 Pin5--Pin9 EXTI15_10 Pin10--Pin15 外部中
[单片机]
可调的常量电流源的制作教程
第1步:零件清单 LM350的散热器 电路板 电位器15OHM 1W,2W或5W 电线 Unisolatet wire 工具: 焊接线圈 焊料 螺丝刀 其他: 电源 可能是10W LED或5W 2,7OHM电阻器用于测试》万用表 步骤2:电路 电路简单易用,只需连接2个电子元件和2个电子元件终端。小心使用LM350,不要混淆引脚! 第3步:装配 现在组装它,确保你有电路板和电位器的粗线,因为可能有大约3A的电流。还要确保一切都焊接良好,并且散热器与lm350连接良好!也不要忘记用“+ - 输入和输出”标记终端 步骤4:测试(yay:D) 为了测试你需要一个电源(我更喜欢那个12V),一个万用表,一个
[测试测量]
吉时利6220型直流电流源的功能特点及应用优势
6220型直流电流源和 6221型交流和直流电流源将易用性与极低的电流噪声相结合。 在测试环境中,从研发到生产,尤其是在半导体、纳米技术和超导体行业,低电流源对于应用至关重要。 6220 型和 6221 型具有高精度源和内置控制功能,非常适合使用增量模式、脉冲测量和微分电导测量的霍尔测量、电阻测量等应用。 6220和6221的特点: 源和阱(可编程负载)100fA~ 100mA 1014Ω输出阻抗确保能为各种负 载提供稳定的电流源 65000点源存储容量允许直接从 电流源执行全面测试电流扫描 内建RS-232、GPIB、触发链路和 数字I/O接口 可重配置三同轴输出,便于带防 护功能的应用需求 220型仿真模式无需对现有应用
[测试测量]