




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
21LED驱动器参数一体化测试仪的设计与实现摘要:采用单片机设计一台能一体化一次性测试LED驱动器输出电压、电流、功率和效率等主要参数的测量装置,实现一机显示上述参数,完成相关功能的硬件电路并进行调试.关键词:单片机;LED驱动器;参数测试,显示;一体化;电路Design and implementation of integrated LED driver parameter testerZhoulan(school of optoelectronic ,university of UESTC)Yanshu(school of optoelectronic ,university of UESTC)Jiang Yiming(school of optoelectronic ,university of UESTC)Abstract: Use single-chip microcomputer to design a test device, which could measure the main parameters of voltage, current, power and efficiency of LED driver one time. To make the device display all parameters, complete and debug the relevant hardware circuit.Key words: single-chip microcomputer;led drivers;measure and display parameters;one device;circuit1 设计背景1.1 LED驱动器介绍LED驱动器(LED Driver),是指驱动LED发光或LED模块组件正常工作的电源调整电子器件.由于LED PN结的导通特性决定,它能适应的电源的电压和电流变动范围十分狭窄,稍许偏离就可能无法点亮LED或者发光效率严重降低,或者缩短使用寿命甚至烧毁芯片.现行的工频电源和常见的电池电源均不适合直接供给LED,LED驱动器就是这种可以驱使LED在最佳电压或电流状态下工作的电子组件.随着LED的应用日益广泛,LED驱动电源的性能将越来越适合LED的要求.1.2 LPC768LPC1768 是NXP 公司推出的基于ARM Cortex-M3 内核的微控制器LPC17XX 系列中的一员.LPC17XX 系列Cortex-M3 微处理器用于处理要求高度集成和低功耗的嵌入式应用.LPC1700 系列微控制器的操作频率可达100MHz(新推出的LPC1769 和LPC1759 可达120MHz).ARM Cortex-M3 CPU 具有3 级流水线和哈佛结构.LPC17XX 系列微控制器的外设组件包含高达512KB 的flash 存储器、64KB 的数据存储器、以太网MAC、USB 主机/从机/OTG 接口、8 通道DMA 控制器、4 个UART、2 条CAN 通道、2 个SSP 控制器、SPI 接口、3 个IIC 接口、2 输入和2 输出的IIS 接口、8 通道的12 位ADC、10位DAC、电机控制PWM、正交编码器接口、4 个通用定时器、6 输出的通用PWM、带有独立电池供电的超低功耗RTC 和多达70 个的通用IO 管脚.LPC1700系列ARM增加了一个专用的Flash存储器加速模块,使得在Flash中运行代码能够达到比较理想的性能.1.2.1 LPC的特性基本特性如下:第二代cortex-m3内核,运行速度高达120MHz;采用纯thumb指令集,代码存储密度高;内置嵌套向量终端控制器(NVIC),极大程度的降低了中断延迟;不可屏蔽中断(NMI)输入;具有存储器保护单元,内嵌系统时钟;全新的中断唤醒控制器(WIC);存储器保护单元(MPU);96KB片内SRAM包括:64KBSRAM可供高性能CPU通过本地代码/数据总线访问2个16KBSRAM模块;带独立访问路径,可进行更高吞吐量的操作.这些SRAM块可以用于以太网、USB、DMA存储器,以及通用指令和数据存储;具有在系统编程(ISP)和在应用编程(IAP)功能的512KB片上Flash程序存储器;最大4Kb的片上EEPROM;第二个专用的PLL可用于USB接口,增加了主PLL设置的灵活性;以太网、USBhost/OTG/device、can、I2S;快速(Fm+)I2C、SPI/SSP、UART1个8通道12位的数模转换器(ADC)速度达到400k,支持DMA传输.1个10位模数转换器(DAC),支持DMA传输;同时支持STN和TFT显示屏;可选的显示分辨率(最大支持1024*768点阵);最多支持24位真彩模式;SD卡接口;外扩存储控制器(EMC)支持SRAM,ROM,Flash,和SDRAM器件;集成 硬件CRC计算及校验模块;电机控制PWM输出和正交编码器接口;低功耗实时时钟;AHB多层矩阵上具有8通道的通用DMA控制器,结合SSP、I2S、UART、AD/DA转换、定时器匹配信号和GPIO的使用,并可用于存储器大存储器的传输;4个低功率模式:睡眠、深度睡眠、掉电、深度掉电、可通过外部中断、RTC中断、USB活动中断、以太网唤醒中断、CAN总线活动中断、NMI等中断唤醒;多层AHB矩阵内部连接,为每个AHB主机提供独立的总线.AHB主机包括CPU、通用DMA控制器、以太网MAC和USB接口.这个内部连接特性提供无仲裁延迟的通信;采用LQFP80、LQFP100、LQFP144、LQFP208、TFBGA208和TFBGA180封装LPC1700系列的选型表格如图1所示:图1 LPC1700系列器件选型图 系统整体的方框图如图2图2 LPC1700芯片系统框图1.3 AD转换器AD转换就是模数转换,也可以是整流.顾名思义,就是把模拟信号转换成数字信号.LPC系列处理器cortex-M3处理器A/D转换器的基本时钟有APB时钟提供.A/D转换器包含一个可编程的分频器,它可以讲APB时钟调整为主次逼近转换所需的时钟(最大可达12.4MHz,并且,完全满足精度要求的转换需要31个这样的时钟)1.3.1 AD的基本特性如下:基本特性如下:12位逐次逼近模数转换器;8个引脚服用为A/D输入脚;具有掉电模式;测量范围:VSSVREFP(通常为3V;不超过VDDA);12位转换速率达400KHz;一个或多个输入的Burst转换模式;可选择由输入跳变或定时器匹配信号出发转换;1.4软件编译环境Keil 是美国Keil Software公司出品的兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。Keil uVision4发布于2009年2月,Keil uVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,其编译器、调试工具实现与ARM器件的最完美匹配。1.5设计的来源结合“LED驱动器参数一体化测试”科研项目要求,在LED驱动器产品完成后,需对LED驱动器的主要性能参数进行测试.由于目前在生产线上没有一体化的参数测试仪,只能用单独的仪器进行相关测试,效率不高.为此,本项目拟设计一台能一次性测试LED驱动器输出电压、电流、功率和效率等主要参数的测量装置,实现一次性显示上述参数.2 设计思路我组的项目是基于单片机的测量系统,主要目的是测量led驱动电路的输入端与输出端的电流与电压.查阅文献,翻阅教材,到网上查询了相关资料后,我们在辅导老师的指导下做出了一个初步的系统构思,系统构思图如图3: 图3 系统图的构思2.1输入电流信号采集系统输入端测量的是220V交流电有效值以及05A交流电流有效值,需将大电压、大电流变换为小电压、电流后再测量其有效值.测量大电压常采用电阻分压,其硬件电路搭建简单,且易于改进.测量电流需在电路中串接测量电路,我们采用小电感,以减小外接电路对原电路的影响,且又保证了在大电流环境下电路的安全问题.系统的核心是测量交流电压、电流值,最精准的方法无疑是取若干周期再测其有效值,然后利用公式算其交流电压电流. 但此方法实现起来难度极大,主要是想要取精确周期在软件上实现困难重重,最后几经讨论,我们决定多次测量取最大值作为幅值的一半然后计算交流值.2.1.1输入电流信号电流的采集输入电流信号采集电路原理如图4示 图4输入电流信号采集为了安全地采集输入(市电)的电流信号,采用了一个电流互感器,将电流信号耦合出去.在点a,b之间为一个小电阻R1和由二极管D1、D2、D3、D4组成的整流桥堆.R1上的压降即为需采集的电压.整流桥堆将R1两端的有正有负的交流电压信号整流为正的交流信号,以供LPC1768采集.如图1示,Iin为采集的输入电流信号.其中:R1=100;电流互感器:DLCT03C1.0 5A/5mA2.1.2输入电流信号电压的采集输入电压信号采集电路原理如图5示图5 输入电压信号采集通过变压器将220V的交流信号变为约9V的交流信号.c、d间为一个小电阻R2和由二极管D1、D2、D3、D4组成的整流桥堆.R2上的压降即为需采集的电压.整流桥堆将R2两端的有正有负的交流电压信号整流为正的交流信号,以供LPC1768采集.如图2示,Vin为采集的输入电流信号.其中:R2=20K;R3=10 K;变压器:3317,220V/9V,50Hz2.2 输出电流信号的采集系统输出端测量直流大电压,大电流.考虑到电阻对电路的影响,用大功率小电阻采集输出端电流,电压依然采用分压原理采集多个瞬时值求出其平均值 以减小误差.输出电压电流信号采集电路原理如图6示图6 输出电压电流采集e、f之间的压降为R6上电压V1,V1/R6即为输出电流.用电阻R4、R5采集e、g之间的压降,即为输出电压.其中:R4=51.3;R5=9.8K;R6=0.532.3对于采集信号的测量鉴于本项目程序容量与测量精度的综合考虑,处理器最终选择使用NXP 公司推出的LPC1768 。信号采集完成以后,将数据送入单片机中进行处理.由单片机完成对数据的记录以及计算等过程.其中,相关输入信号的引脚设定如下所示:AD转换部分:输入电流I+ :P0.26(AD3)输入电压V+ :P0.25(AD2)输出+ :P0.23(AD0)输出- :P0.24(AD1)其他 : GNDLCD显示部分:VSS : GNDVDD : +5VVO : 通过电位器后接GNDRS : P0.17RW : P0.16E : P2.9串口D0D7 :P2.0P2.7A : +5VK : GND按键部分:A : P2.8B : P2.12C : P2.13D : P2.21PRESS : P1.20具体单片机运行以及操作程序见附录.2.4总体设计通过以上设计以及仿真测试,最终我们得到以下的电路,系统完整整体设计,如图7图7 系统完整整体设计3 硬件电路的构思3.1 硬件的选择经过精度计算及成本考虑,我们完成了对硬件电路主要器件的选择,其中包括微控制器LPC1768;LCD显示模块ssd1289,相关硬件如导线,电阻,电感等.3.1.1LPC1768LPC1768 是NXP 公司推出的基于ARM Cortex-M3 内核的微控制器.该微控制器自身带有8通道12位逐次逼近式A/D转换器,可在8个引脚实现多路复用,转换速率高达400KHz,精度可达到1mv.3.1.2 液晶显示模LCM2004A显示模块采用控制芯片为SPLC780D的液晶显示模LCM2004A,其引脚图如下图8:图8液晶显示模块LCM2004A引脚字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵型液晶显示模块.该模块显示内容为4行,每行显示20个字符,每个字符大小为58点阵.其封装参数如下图9:型号 LCM2004A 封装 COB 外型尺寸 98.0mm60.0mm 连接方式 导电胶条 视域尺寸 77.0mm25.2mm 接口方式 单排并口 点尺寸 0.55mm0.55mm 背光类型 LED 字符尺寸 29.5mm47.5mm 背光颜色 黄绿/白光/红光等 显示内容 20个字符4行 工作电压 +5V/+3.3V 显示屏面 黄绿/蓝屏/黑白屏 工作温度 -20+70 控制器 SPLC780D 储存温度 -30+80 图9 液晶显示模LCM2004A的封装参数3.1.3其余硬件电路配件的选择测量交变电流用大小1mH电感,电感是闭合回路的一种属性,即当通过闭合回路的电流改变时,会出现电动势来抵抗电流的改变,因此采集电感两端的电压值,从而由LPC1768计算出原电路的电流值.电感越小对电路影响越小,但是考虑到要采集其两端压降,电感不宜过小,仿真结果显示1mH可达到比较好的效果.真实测量会有偏差,我们将在调试过程中进行适当改进以减小误差.直流电流范围03A,须要小阻值,大功率的水泥电阻,考虑到测量范围及电路安全,采用阻值0.5欧,额定功率5瓦的电阻.考虑到LPC1768自带的A/D转换器能达到1mv的精度,因此,输入端交变电压用220k/50电阻分压进行衰减,输出端直流电压用10K/10进行衰减,衰减到mv级后可进行比较精确的采集. 4 最终成果利用开发板辅助完成了整个设计,下图位开发板实体图,其除了LPC基本功能以外,还包含了很多扩展模块.图10 LPC1768开发板实体图整体设计图如下所示,包括硬件电路设计模块与软件,即开发板模块.图11 整体设计实体图由于资源有限,我们选取了少量实物进行数据测试,比对我们的理想设计与实际测量,测试结果如下图表所示:表1 多次实际测量数据值 信号值测量次数输入电压Vi(V)输入电流Ii(mA)输出电压Vo(V)输出电流Io(mA)输入功率Pin输出功率Pout效率EFF1221.402.39402.6760170.98517.14457.920.88222221.402.39402.69102.6970517.14460.480.88283221.402.3940172.64172.64517.14459.970.8827(其中输入信号值都是交流信号的有效值)对数据的分析及结论:5. 遇到的困难以及解决办法5.1硬件电路中设计时遇到的问题:5.1.1问题一:解决办法:5.1.2问题二:解决办法:5.2软件设计中遇到的问题5.2.1问题一: 输入输出分开测试的问题. 解决办法: 早先想通过对I/O端口的通断来进一步控制采集信号通道的选择,但限于电路原理以及输入端幅值过大,此种方法不但技术上实现较困难而且随时有烧坏单片机及待测试LED的隐患,最后经小组严肃讨论决定采用开关式逐个测量的方案,收效甚好。5.2.2问题二: 显示的问题解决办法:本项目要求测出输入电压电流,输出电压电流,输入输出功率以及效率共七项内容。然而这七项的单位以及保留位数均存在差异,不得不分别用各自的显示函数,这无疑增大了工作量,程序容量过大可能会拖缓其反应速率,但效果却是显示十分稳定。5.2.3问题三: 最重要的就是精确度问题.解决办法:本项目使用的lpc1768拥有自带12位A/D数模转换器,其精度可以说足够满足题目要求。主程序中无论输入或输出均采用多次采样取平均值的方法,基本解决了采样不准确及个别坏数据对整体显示的极端影响。6 经验及收获从最开始的不明不白到后来渐渐领悟再到最后做出成品,我们经历了极其漫长的学习与提高过程。其中免不了无数次的出错与改正,感谢这些错误让我们对ARM系列单片机尤其是lpc系列的原理及c语言的应用有了更加深刻的了解,一步一步提高自己薄弱的水平,丰富自己的知识与技巧。当然,程序部分也并非不存在问题。如由于编程能力及经验有限,许多本能合并的函数只能做成重复的导致程序过于庞大繁冗,运行速度缓慢;定时器中断服务程序与主函数大循环之间的冲突会导致显示偶尔出现乱码的情况;程序中缺少自校准部分,如发生显示错误只能靠人工复位来解决;无错误反馈机制,只期望所测量驱动器性能完好否则无法识别错误;无换挡电路,测量范围狭小,仍不适于普遍led驱动器的测试.等等。有些问题由于资金以及时间的有限,我们并不能将其做的十分好,只能说在老师的帮助下勉力解决一部分.但是我们依然能通过学习,在一点点完善设计的过程中,学到很多东西.养成一种良好的思维习惯.我想这是我们本次设计项目的最大收获.附录.程序模块的相关:引脚初始化及按键设定void GPIO_Init(void) FIO2DIR |= (0x2FF 0); FIO2CLR |= (0x2FF 0); FIO0DIR |= (3 16); FIO0CLR |= (3 16); FIO1SET |=(320);FIO2SET |=(18)|(312);void keypress (void)long i;if(PRESS)for(i=0;i1000;i+); /- 按键去抖 -if(PRESS)while(PRESS);pswitch=0;if(A)for(i=0;i1000;i+); if(A)while(A);pswitch=1;if(B)for(i=0;i1000;i+); if(B)while(B);pswitch=2;if(C)for(i=0;i1000;i+); if(C)while(C);pswitch=3;if(D)for(i=0;i1000;i+); if(D)while(D);pswitch=4; 3.4 A/D初始化void ADC_Init(void) PCONP |= (1 12); PINSEL1 = (PINSEL1 (0xFF 14) | (0x55 14); PINSEL3 = (PINSEL3 (0xF 28) | (0xF 28); PINMODE1 |= (PINMODE1 (0xFF 14) | (0xAA 14); PINMODE3 |= (PINMODE7 (0xF 28) | (0xA 28); PINMODE_OD0 |= (0x0F 23); PINMODE_OD3 |= (0xC 28); AD0CR = (0x01 0) | (0x7F 8) | (1 21) | (1 24); 3.5 计时器初始化void TIMER1_Init(void)T1CTCR=0;T1PR=0;T1PC=0;T1TC=0;T1MR0=PCLK0/1000-1;T1MCR=0X03;T1TCR=1;ISER0|=(12);3.6 延时函数void delay(uint x) uint i,j; for(i=1;ix;i+) for(j=1;j500;j+); 3.7 显示模块#include LPC17xx.H#include LPC17xx_Sun.h#include TS1602Driver.h#define uint unsigned int#define uchar unsigned char#define DATA FIO2SET #define DATACLR FIO2CLR|=0XFF #define RSON FIO0SET|=(117)#define RSOFF FIO0CLR|=(117)#define EON FIO2SET|=(19) #define EOFF FIO2CLR|=(19) uchar num;/lcd延时函数void delay_1ms(uint x) uint i,j; for(i=1;ix;i+) for(j=1;j12000;j+); / 写命令void write_cmd(uchar com) RSOFF; EOFF; DATACLR; DATA|=(com0); delay_1ms(2); EON; delay_1ms(2); EOFF;/ 写数据void write_data(uchar chardata) RSON;EOFF;DATACLR; DATA|=(chardata0); delay_1ms(2); EON; delay_1ms(2); EOFF; / EN 由高变低时显示工作 /lcd初始化void LCD_Init(void) write_cmd(0x38); delay_1ms(3); write_cmd(0x06); delay_1ms(3); write_cmd(0x0c); delay_1ms(3);write_cmd(0x01); delay_1ms(3);/ 地址函数void set_xy(uchar x,uchar y) uchar add; if(x=0) add=0x80+y; else if(x=1) add=0xc0+y; else if(x=2) add=0x94+y; else if(x=3) add=0xd4+y; write_cmd(add);/在lcd屏上显示内容坐标void LCD_DisplayStr(uchar x,uchar y,uchar lcd) set_xy(x,y);num=0;while(lcdnum!=0)write_data(lcdnum);num+;/lcd 上显示内容 (由于各数据单位及保留为属不同,故其显示函数需分别作出,这里只用VO为例)void Temp_Display_VO(void) TempStr0 = (temp / 10000) % 10) + 0x30; TempStr1 = .; TempStr2 = (temp / 1000) % 10) + 0x30; TempStr3 = (temp / 100) % 10) + 0x30; TempStr4 = (temp /10) % 10) + 0x30; TempStr5 = (temp /1) % 10) + 0x30;3.8主函数由于输入为交流信号,而输出为直流信号,故采用两种不同的采样方法。对于交流我们采取的是多次密集取样,比较后取最大值从而得出幅值的方法,对于直流则直接多次取样取平均值。输入与输出采样的选择则通过按键来得以控制输出部分if(0=ADCCounter) while(ADCCounter100)for(ADCounter=0;ADCounter100;ADCounter+)for(a=0;a2;a+) AD0CR = (1 a) | (0xFF 8) | (1 21) | (1 24); while(0=(AD0GDR 0x80000000); temp = (AD0GDR 4) 0xFFF; temp = temp * 33000; temp = temp / 4095;switch(a)case 0:tx1=temp;break;case 1:tx2=temp;break;TX1=TX1+tx1;TX2=TX2+tx2; TX1 =TX1/100;TX2 =TX2/100;TXM =TX1-TX2;IO +=TXM;VO +=TX1; ADCCounter+;VO =VO/100;IO =IO/100; delay(5);输入部分if(0=ADCCounter) while(ADCCounter100)for(ADCounter=0;ADCounter100;ADCounter+)If(0=keyswich)/选择输入端口a=2;elsea=3; AD0CR = (1 a) | (0xFF 8) | (1 21) | (1 24); while(0=(AD0GDR 0x80000000); temp = (AD0GDR 4) 0xFFF; temp = temp * 33000; temp = temp / 4095;tx3=temp;If(tx3TX3)TX3=tx3; TX3 =TX3/100;if(0=keyswich)Vi +=TX3;elseIi +=TX3; ADCCounter+;VO =VO/100;IO =IO/100; delay(5);3.9定时器中断服务程序此模块主要提供采集的数据显示输出功能,输出内容的选择由按键控制void TIMER1_IRQHandler(void)T1IR|=(10); Timecounter+; keypress ();if(2000=Timecounter)/ 每隔两秒刷新一次 Timecounter=0;VO=VO/33;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于“计数单位”的小学数学整体性教学研究-以苏教版教材为例
- 解析卷-人教版八年级物理上册第5章透镜及其应用定向测试试题(含答案解析)
- 19.《社交媒体内容策划与用户数据分析技能考核试卷》
- 2024年环境监测实验室人员授权管理考核试卷
- 补交社保合同(标准版)
- 板房拆除合同(标准版)
- 惠阳购房合同(标准版)
- 跨越时代的艺术之旅
- 渭南高新区白杨卫生院招聘考试真题2024
- 2025年2月湖北省公路水运工程施工单位安管人员考试建筑施工企业复习题及答案
- 《最后一片叶子》课件 2024年高教版(2023)中职语文基础模块上册
- 预防校园欺凌二年级主题班会
- 英语四级700核心词汇【含音标】
- 近场光学显微技术原理及应用
- 中车贵阳车辆有限公司木颗粒增强复合地板制造项目环境影响报告
- 机械类外文文献翻译(中英文翻译)
- 液压支架修理的工艺流程图
- 支局一点一策
- 麻风病防治知识课件
- 工程项目管理(第五版)丛培经 第一章
- 中药制剂检验的程序
评论
0/150
提交评论