电感器软件系统设计_第1页
电感器软件系统设计_第2页
电感器软件系统设计_第3页
免费预览已结束,剩余5页可下载查看

下载本文档

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

文档简介

1、电感器软件系统设计木糸统软件在KeilForAnn肌片机E谙言编理环疑编杵.ARM7TDM结构的Mil幵发蛊件采用垠新址计的11讪班切3蚩或开发环境*内怅C编像器加编器/调试器導功能模块*足一款稳定f可靠阳tf效的开发丁/L适用F不同层次的用户,完全满足从专业的应用开发工理曲到初学嵌入式软件开发的螟生的所有使用要求.KeiluVision谓试器可以柄師用户准确地调试ARM器件的片内外围功Sfc(12C.CAN.L'ART.SPL中断O口、A/D转挽器、DAX转换器利PW'M模块導功能hJLKUSB-JTAG转换卷将PC机的USB端口与用户的日标硬件相il(MiiJTAGIOCD

2、).使川户可在目标蝶仲上岡试代码.通过使用KeilLiVisionIDE/lWfUIJNKLJSBJTAG用户可以很片便地編酣、F戟和在实际的日标理件上测试嵌入的稈序*本疋遼计的软件部分在斛文己肓略述.系绽软件包梏监控主程序"系址划始化管理模块和索址迄帝到存个阶段所需的子程序模块本卓将介绍程序的测城阂了心和打真现及用户自定文环节.4LM3S9B96初始化为了使系统正常工作.倉先要对单片机进厅初始化设賞*其中包折GPIO端口初始化、ADC定时麗初始化零*(Tnput/Output)搖口是一个徹控制器必须具备的绘革本外讹功能=通常在ARMfft(所fjl/O都是通用的,称阳GP1O(Ge

3、neralPurposeInpuOutput).毎个GP【O端口包含8个管脚,如PA端口PA0-PA7.GPIO摸块支持多个可編程输入F输血皆脚【堆体収决丁-打GP1O复用的外设的便绍情况人LM3S9B96的GP1O竹卿类业可以民世成高阻输入、推挽输出、开聲输出三大类,毎一类马中迩耐上扭.下拉的区别.对于配置出件输入端口的管脚端【1可按歟舉求设置,但是对输入唯-真疋有影响的是上拉或卜担终端的配胃*开漏愉Hl能够力便迪实现不同逻組电平2间的转(J1H33V到5V之间人只需外接一个上担电阳而不需要魏外的转换电路.在根粥电路対GP1O的使用惜况,需先将鲜鸣器以及hED所在的帶脚PA1和P典2设为推挽

4、舖出,按键组所在管卿PA0.PA6PA?配彗沟拓阴输入,桥开关电斑所在管謀PCXAPD3设讹为捋挽输曲输出使能信号卩卜4BF1以婭SDA.曲斤時陶的I七骨也PFGPF7配屋为卄淅轴出*ADC1肝在许脚PD7为高阻输入,液晶显乐管脚PB4-PB6为播挽输出.踹幷初始化耗序Portjnit()iirF:onlnittGPOPinTypeCPlOOutpnt(LCDPORT.VRS);f楚义咸推挽输出模式GP!OPnTpcGPOOutpul(LCD_PORT,P_RW);"定义成推挽辅出模式GPlOPinTypeGPTOOutput(LCDEPORT.匕E);"定丈成推挽输出坝式

5、GPlOPinTypcGPlOOutpuKLED-PORT,LED!);/定文LED灯列愉出线GPIOPinTypeGPIOOutput(LEDPORT,FMQ);/定义蜂鸣签为输出口线GPIOPinTypeGPIOInput(KEYPORT,K|K_2|K_3|K_4);设置KEY的GP【O端口为输入GPIOPinTypeGPIOOutput(SW_PORT,S1|S2|S3|S4);II桥开关所在的GPIO端口成输岀模式GPIOPinTypeGPIOOutputOD(EoutPORT,EI|E2);定义成开漏输出模式GPIOPinTypeGPIOOutputOD(I2C_PORT,SDA|

6、SCL);/定义I2C接口开漏输出模式)在测量电感直流内阻时,利用到了LM3S9B96芯片的ADC1通道。Stellaris系列ARM内部集成有一个10位的ADC模块,支持8个输入通道,以及一个内部温度传感器.ADC模块含有个可编程的序列发生器,可左无需控制器干涉的悄况卜对多个模拟输入源进行采样.毎个采样序列均对完全可配宜的输入源、触发爭件、中断的产生和序列优先级捉供灵活的編程转换器采用内部的3V参考电压,因此测金范国只能国圧在0-3VZ间通过前文的介绍,可知电感内祁:Sift内131股都从儿mQ到儿十d所测电密(IpH1H)在充电稳定状亦下相对应的直流电乐一般都在3V以下,足够满足测址的需耍

7、.ADC初始化聊序没迓了ADC的工作方式(处理器触发中所)、转换启动方式和采样速率等参数.根塀系统工作要求,编写ADC部分的初始化程序ad:Init(void):voidadclnit(void)SysCtlPeripheralEnable(SYSCTL_PERlPHADC);使能ADC莫块SysCtlPeripheralEnable(SYSCTL_PER!PHGPiOE);/使能GPIOE端口SysCtlADCSpeedSet(SYSCTLADCSPEED_125KSPS);/设置ADC采样速率ADCSequcnccDisable(ADC_BASE.0);/配辻前先祭止采样序列GPIOPin

8、TypeADC(GPIO_PORTEBASE,ADC1);设置GP1OE瑞口第6管脚为ADC功能采样序列配M:ADC基址,采样序列编号,鮭发爭件,采样优先级ADCSequenceConfigure(ADCBASE,0,ADCTRIGGER_PROCESSOR,0);采样步进汝養?ADC茶址,采样序列編号,步侑,通道设盘ADCSequenceConfigure(ADCBASE,0,0.ADC_CTL.CH1|ADC_CTL_FND|ADC一CTIE);ADCProcessorTrigger(ATX?_BASE,0);/处理器倉发采样序列ADCIntEnable(ADC_BASE.0);便能ADC

9、中断IntEnable(INT_ADC0);使能ADC采样序列中断IntMasterEnable();使能处理器中断ADCSequenceEnable(ADCBASE,0);使能采样序列圧ARM内部通常集成有24个通用定时器模块,分别称为TimerO、TimerkTimer2和Timer3»它们的用法是相同的:毎个Timer模块都可以配胃为一个32位淀时掘或-个32位RTC泄时器:也可以拆分为两个16位的定时川数器TimerA和TimerB,它们可以被配曽为独立运行的定时器、爭件计数28或PWMO根据仪器定时控制开关组和倍号使陡端的要求,编写定时器初始化initjimer(void)

10、如下:voidinittimcr(void)SysCllPeripheralEnable(SYSCTL_PERIPH_TIMERO);/使能定时器0模块lntMasterEnable();/使能全局中断TimerConfigure(TlMEROBASE,TIMER_CFG_32_B1T_PER);设置定时器为周期辿发模式TimerLoadSet(TIMERO_BASE,TlMER.A.SysCtIClockGetO/1000);定时器装找值lOOps获取当前的Timer计数值(在16位输入边沿定时捕获模式下,获取的是捕获值)ulValuc*TimerValucGct(TIMEROBASE,TI

11、MERA);lntEnablc(INT_T!MEROA);Z/能定时器0外设TimerlntEnable(TIMEROBASEtTlMERTlMATlMEOUT)y/设貧定时器为超时中断TimerEnable(TIMERO_BASE,T1MER_A);使能定时器0外设4.2软件控制及测量轶件控制及熒虽部分包拈了定时器中断控制、外部倫入中斷控制以及处理器中断触发ADC采样在定时器初始化中已经TimcrO配遡为32位周期定时器,每次执行时间为100",设定时间为递减计数,当时间递减为0时定时器貶新加載初值100“。定时器控制开关组匸作共分5个状态,每个状态持续时间为IOOjis,分别为正

12、向充电、正向充电ADC检测、正向放电.反向充电和反向放电.瓦流程图如41所示.图41定时器中断流釋图Fig.4丨Theflowchartofthetimerinterrupt任正向与反向放电时控制使能信号EkE2允许外部信号输入,此时外部借号即是二极管导適与裁止时所对应的电平由低到高:在其余情况FEl、E2使能禁止,外部输入信号会一直序续高电平.利用16位输入边沿计数捕获,在该模式中,TimerA或TimerB被配置为自由运行的16位递必计数器.允许在输入他号的上升沿或下降沿捕获出件.该模式的工作过円是:讪置装战值、捕获边沿类型:计数器被便能后开始自白运行,从装诚值开始递减计数,计数到0时窥装

13、初值,继续计数:如果从CCP管脚上出现有效的输入脉冲边沿那件,则当前计数值被自动复制到一个特定的寄存器里,该值会一直保存不变,直至遇到卜一个有效输入边沿时被刷新.为了能够及时读取捕获到的计敌值,应半使能边沿爭件捕获中断,并在中断服务用数里读取.通过这种方式就能对检测出电感对二极管放电,二极诗导通对应的低电平所持续的时间.定时器控制中斯及ADC采样程序如下:voidTimer01ntHandler(void)staticchars_ptr=O;TimerIntClear(TIMEROBASE,TIMER_TIMA_T1MEOUT);/瀰除TimerO的中断switch(sptr)case0:正向

14、充电GPIOPinWrite(SW_PORT,V3JV2,OxfY);V3V2闭介开关S2S3断开GPIOPinWrile(SW_PORT,V1|V4.0x00);/V4VI断开开关SIS4闭合GPIOPinWritc(Eout_PORT,El|E2,0x00);封锁break;case1:正向充电十ADC触发GPIOPinWrite(SW_PORl;V3|V2.Oxfl);V3V2闭合开关S2S3断开GPIOPinWrite(SWPORT,VI|V4.0x00);/V4VI断开开关SIS4闭合GPIOPinWrite(EoutPORT.E1|E2.0x00);封锁/DCProcessorTr

15、igger(ADC_BASEf0);break;case2:正向放呵*GPIOPinWritc(EouLPORLEl,Oxff);/El输出允许GPlOPinWrite(SW_PORT,V3|V2|V1,Oxfi);/V3V2VI闭合开关SIS2S3断开GPlOPinWritc(SWPORT,V4t0x00);/V4断开开关S4闭合break;default:s_ptr=O;break;if(s_ptr=4)sptr=O;elses_ptr+;程序中首先设讶静态变Ssptr的初始状态为0.当第一个loops到来时,系统进入中断后先将TimerO的中断控制位清除.便下一次定时器中断开始.程序开始

16、执行下一条语句即switcho在switch(sptr)中,s_ptr的初始状态为0,所以先执行case0的操作,控制开关组对电感正向充电,此时使能端El、E2输出为零,外部输入信号“"、切2会一宜持续高电平(见逻辑波形图3-7),变fis_ptr自动加1.当第二个100“到来时,再一次进入中断并清除中断标志位,此时程序进入第二状态,同第一状态相同只是在此时测皐电感上的自流电压即ADC采样,计算后便可得到电感直流内阻",变虽s_ptr自变成2第三个100声到来时,程序执行case2语句,控制开关对电感放电,同时使能端El、E2输出为1,外部输入信号“”、ul2电平会发生跳变

17、,从高电平变为低电平(二极管导通)再变为高电平(电感能就不足导通二极管而截至),此时设置外部中断信号为双边沿触发定时捕获,当高变低即下降沿时,於片机此时捕获时间值S当低变高电平对应的上升沿时,系统乂抢获另一时间值4其中捕获时间为递减计数的,将“与"相减就可得到电感对二极管放电使其导通的稳定时间段。同上,第四、第五状态与第一、第三状态相同,为电感的反向充电(case3)与反向放电状态(casc4),在第五状态结束后,str变成0,系统乂开始熏复对电感执行上述五个状态.程序执行状态如图42所示.RIGOLr0fn1.20UL«Q>93.UWrim*图4-2交替充放电波形图

18、Fig.4-2Alternatingchargeanddischargewaveformfigure在电路中将被测电感换成电阻,测最其两端的电压信号用示波器可得到上图波形。在图中可看出A、B、C、D、E区持续的时间是相等的,可将其视作单片机控制恒流源对电阻充放电的五个阶段。在A区和B区为电感正向充电的两个阶段,测得两端的电压为高电平,C区为放电阶段,因为电阴元件不存储电能,所以放电阶段两端电压为0在D区为电阻的反向充电阶段,因此再有恒流游通过时两端电压为负电压即低电平。E区为反向放电阶段,测得两端电圧为0分析图形可看出,穆序执行情况正确,符合对电感充放电以及直流内阻的检测过程.在软件控制及测虽

19、过程中可以得到将电感主要因数放电时间Tq和吃测量出,此后通过MATLAB软件进行曲线拟合(拟合过程将会在MATLAB拟合及数据分析中详细介绍),得到电感投据和d的计舁关系式为厶=a°+a刀+6%,在上控程序中根据不同电感类型,调用各白的如、参数,即在上控程序中通过计算关系戒可得到垠终的电感值。4.3液晶显乔考遑到引脚限制,使用所需引脚较少的串口调试來控制VGLSI2864T液晶显示模块,系统要求主页显示待测电膳的直流内阻、正向充电时间、反向充电时间以及电感呈,在笫二屏显示电感的种类对应的编号,用户通过编兮来选择对应电感的类型,第三屏卜显示对应类型以及参数a。、a八,用户通过训用参数后

20、回到主屏慕中计笄电感量,应用程序要能实现上述功能。这里主要介绍软件实现。MGLS12864T液品显示模块白带汉字库,便丁用户编写汉字显示程序,MGLS12864T液胡显示模块毎个屏强町显示4行8列共32个16*16点阵的汉字,一个汉字占两个字节空间,字符址示在液晶模块RAM中的地址80H-9FH,字符显示的RAM地址与32个字符显示区域有看对应的关系,其关系如下图4-3所示.«0H81H8211831184H851186H87H90H91H921193H94H95H961197H88H89H8All8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH图4-3RAM地址与显示区域关系Fig.4-3RelationsbetweenRAM'saddressandexplicitregio丙此显示宇符、数字或汉字需要写入显示字符的区域和显示的内容,其流程图如图4-4所示.图44显示流程图Fig.4-4Displayflowchart庄编写完相应的程序后,用户只需通过一条指令即可实现如dis_str(2,l/正向:”);该指令实现功能为从第二行第一列将“”里的内容显示出来。其屏显示如图45

温馨提示

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

评论

0/150

提交评论