基于cortex-m3的高效数控恒流源设计毕业设计内容摘要:

m3[6]为主控器,并选择 Stellaris Cortexm3 中的 LM3S615 芯片。 C6 20PFC7 20P12Y16M/8MR12C522US1R111KADC1ADC0PB4 PB5 PB6 PB7 PC0/TCK PC1/TMS PC2/TDI PC3/TDOGNDGNDGND105C4GNDGNDGNDGNDLDORSTOSC0OSC1C8104C9104C10104C11104GNDOSC1OSC0RSTLDOADC01ADC12PE3/CCP13PE2/CCP44RST5LDO6VDD7GND8OSC09OSC110PC7/C211PC6/CCP3/C2+12PC5/C1o/C1+13PC4/CCP514VDD15GND16PA0/U0Rx17PA1/U0Tx18PA2/SSIClk19PA3/SSIFss20PA4/SSIRx21PA5/SSITx22VDD23GND24PWM0/PD025PWM1/PD126U1Rx/PD227U1Tx/PD328PWM2/PB029PWM3/PB130GND31VDD32I2CSCL/PB233I2CSDA/PB334PWM4/PE035PWM5/PE136SWO/TDO/PC337TDI/PC238SWDIO/TMS/PC139SWCLK/TCK/PC040TRST/PB741C0+PB642C1/PB543C0/PB444CCP0/PD445CCP2/PD546Fault/PD647C0o/PD748U2LM3S615PWM0PWM1PWM4PWM5PB0PB1PB2PB3PA0 PA1 PA2PC4PC5PC6PC7PD4PD5PD6PD7R151KR14 10KPE3PE3CONTRO12CON25VVCCGND 图 lm3s615 最小系统 如图 所示,最小系统包括晶 振部分, LM3S615 芯片,复位部分。 最小系统几部份都完整了才能正常工作。 DCDC 核心 如图 [13], 开关管导通,电感电流 iLf 由零增加到最大值 ILfmax;开关管 V关断,二极管 D 续流,电感电流 iLf 从 ILfmax 降到零;开关管 V和二极管 D 都关断(截止),在此期间电感电流 iLf 保持为零,负载由输出 滤波电容 Cf 来供电。 高效数控恒流电源 9 图 DCDC 工作 如图 , 开关管导通,电感电流 iLf 由零增加到最大值 ILfmax;开关管 V 关断,二极管 D 续流,电感电流 iLf 从 ILfmax 降到零;开关管 V和二极管 D 都关断(截止),在此期间电感电流 iLf 保持为零,负载由输出 滤波电容 Cf 来供电。 L1VLF12060T680M2R3C1470uF/35V(YXF)C4104D1SK56D2SK56D2G1S3Q1IRF3205 图 DCDC 核心 如图 ,是本系统 DCDC 核心部分。 (1) 从电路可以看出,电感 L1 和电容 C C4 组成低通滤波器,此滤波器设计的原则是使 us(t)的直流分量可以通过,而抑制 us(t) 的谐波分量通过;电容上输出电压 uo(t)就是 us(t) 的直流分量再附加微小纹波 uripple(t)。 L1 的确定上有一定要求,如公式( 1), Vi 为输入的电压,在本系统中, Vi=8~20V。 Vsat 为漏源极电压, Vo 为输出电压, Vo=10V, Ipk 取两倍的 Vo。 L= (Vi Vsat Vo)ton / Ipk (Ipk = 2Vomax,Vsat = Vds) 经过计算和实际测量, L1 = 289uH。 (2) 电路工作频率很高, 在本系统中使用 20KHz 的频率, 一个开关周期内电容充放电引起的纹波 Uripple(t) 很小,相对于电容上输出的直流电压 Uo 有: |Uripple|max Uo 10 电容上电压宏观上可以看作恒定。 电路稳态工作时,输出电容上电压由微小的纹波和较大的直流分量组成,宏观上可以看作是恒定 直流。 驱动部分 如图 , PWM 信号通过施密特反相器 74LS14[1]两次整形,得到同相的 5V 的 PWM 信号,去推动 IR2101,通过 IR2101 得到了 10V— 15V的 PWM 驱动信号, PWM信号可以直接驱动 MOSFET。 图 IR2101 驱动 高效数控恒流电源 11 采样 R515k*(%)R8100K*(%)R6*(%)/1W567U1BOPA2365R710K*(%)AVCC5Voltage12BAT_132184U1AOPA2365R4100k*(%)R315k*(%)R1100k*(%)CurrentC6104C5103C2103C3104CC104 图 输出采样 如图 , U1 选 PA2365AID,内部有两个高速高精度运放, U1A 用于输出电压采样,因为输出端 BAT_1 的电压最大值为 11V, OPA2365 是 5V供电,但是 LM3S615 内的 10Bit ADC 参考电压为 ,所以选择 R R4 为 100K,而 R R3 为 15K,这样有利于单片机进行电压数据采集,而 U1B 是对采样电阻 R6 上的电压进行采集,再转换成电流信号,电阻 R6 为 ,在电流为 200mA 时,电压为 ,信号太弱,所以放大10 倍后再进行 ADC 采样。 软件设计 本软件系统使用定时器和中断模拟高效实时多任务系统,提高单片机的作用效率。 在整个系统工作过程中,使用三个任务进行整个系统控制。 12 图 主程序流程图 开始 设置系统时钟 初始化 LCD 初始化 LED 初始化 KEY 初始化PWM 初始化 ADC 硬件检测 初始化 Tick 显示当前电流电压和设定值 主循环 开系统总中断 高效数控恒流电源 13 主程 序流程图,主程序相当于一个任务,只用于显示当前电压电流和设定值等相关信息,这些信息通过全局变量进行控制,使用下面的各个中断都能使用,让程序联系更紧密。 图 ADC 中断服务子程序 ADC0_ISR 开始 清除 ADC 中断标志 获取 ADC 采样值 计算电流电压压 判断电流与设定值的大小,大于设定值减小占空比,小于设定值增大占空比。 中断返回 调整后占空比输出 是否过压 否 是 LED 报警 设电流为 是否过流 否 是 LED 报警 设电流为 14 ADC 中断服务程序用于获取 ADC 采样值,并进行计算。 将计算的电流电压与设定值进行比较,根据具体情况进行报警、调整占空比。 由于 ADC 采频率很高,对于本设计选用的芯片,可以达到 1M,这样的速度对于电流比较控制输出已经足够。 ADC 中断服务程序相当于一个任务,主要进行 ADC 采 样和计算,从而调整输出占空比。 图 定时器 tcik 中断服务子程序 Tick 中断服务程序用于获取按键值,进行控制设定值和复位。 复位按键主要对过流、过压、开路保护进行复位。 本中断服务程序相当一个任务,主要进行按键控制,对于不同功能按键进行对应功能处理。 这样比传统的按键扫描具有更多优势,比如,可以按住“ +”键,就可以自动上调。 在本设计中,按键具有自动扫描、定时控制的特点,与其它两个任务并行,减少内核开销。 软件系统使用各种中断模拟高效实时系统,在单片机开始运行时,先进行硬件初始化并启动任务。 初始化 LCD,让 LCD 开始工作;初始化 LED,让 LED 可以正确的进Tick_ISR 开始 检测按键 KEY1 中断返回 调整设定值输出 KEY2 KEY3 KEY4 设定值 +步进 设定值 步进 复位 步进值设定 高效数控恒流电源 15 行报警;初始化按键,让按键可以使用;初始化 PWM, PWM 开始输出,去控制开关管,并为开路检测提供电源;初始化 ADC,开中断,让 ADC 开始采样,并提供反馈数字量;硬件检测 PWM, ADC 输出,开路检测; Tick 定时器并开中断,用与键盘扫描。 单片机进入死循环,显示输出瞬时电压电流值,同时另外两个任务并行运行, ADC 一直工作,采集数据并反馈调节输入电流; Tick 定时器也一直工作,为键盘扫描提供时间间隔。 硬件初始化 这部分主要进行单片机内部资源初始化 和开机检测。 Stellaris Cortexm3单片机开始运行时,内部资源都要先使能,所以单片机开始运行时,硬件初始化是必要的。 看下面程序源码: void InitHardware(void) { Lcd_init()。 InitLed()。 InitKey()。 InitPWM()。 InitADC()。 HardTest()。 InitTick()。 } 这段程序是用于对单片机硬件初始化和开机检测,开机主要检测 PWM, ADC 输出,开路检测;并在 LED 上显示相关警报,并关断 PWM,无电流 输出,只有加上负载后,按电源复位键才能让恒流源正常工作。 ADC控制 在硬件初始化之后, ADC 模块开始工作,并实时对电压电流进行采样,与设定的输出电流比较,从而去控制 PWM,稳定电流输出 [10]。 同时在 ADC 中断服务程序中还进行电压电流保护,如 图。 程序见 附录二(部分程序源码)。 16 Tick 中断函数 在硬件初始化之后, Tick 中断服务程序主要进行键盘扫描,设定输出电流,步进可以调节,最小步进为 10mA。 并调整 PWM 的占空比,从而控制输出电流。 程序见附录二(部分程序源码 ),在整个软件系统中,使用 ADC 和 tick 的中断服务程序进行多任务模拟,进行并行执行,整个过程使用 PWMPulseWidthSet()设置 PWM输出,从而自动的稳定输出电流。 系统仿真 图 DCDC 控制 matlab 仿真 如图 ,为 DCDC 的控制仿真图 [9], 20V DC 电源通过理想的开关进行控制,理想开关通过 PWM 控制,控制波形如下图 所示。 高效数控恒流电源 17 图 PWM 控制波形 通过虚拟示波器可以看出电流波形如下图 所示: 图 电流波形 通过虚拟示波器 可以看出电压波形如下图 所示: 18 图 电压波形 在同一个虚拟示波器下观察波形如下图 所示: 图 DCDC 波形 从上面的图中可以看出,恒流源基本实现,但是为了能自动跟踪用户输入信号进行自动输出需要电流。 需要进行近一步修改: 高效数控恒流电源 19 图 DCDC 自动控制 matlab 仿真 图 DCDC 自动控制 PWM 波形 20 图 恒流源设计 可以看出电流可以根据用户需要进行自动调节,对于上面这个 PWM 产生过程中,实际是在 Stellaris Cortexm3 处理器中进行计算比较输出相关占空比的 PWM。 第四章 系统测试 输出电流测试 ❶ 测试条件: 负载为 5Ω; Ui=15V。 ❷ 测试仪器: UNIT 万用表 3 个; 1~5 , 30W 功率滑动变组器; GPSX303C 系列电源; DS1102E 示波器。 ❸ 测试方法: 给电流源上电,通过按键设定输出电流值,电流源自身检测到实际输出电流值以及通过外部电流表测量的电流值。 高效数控恒流电源 21 ❹ 测试数据: 表 输出电流测试 键盘设定值 /mA 显示输出电流 /mA 万用表测量值 /A 2100 2100 2020 2020 1500 1500 1000 1000 800 800 200 200 100 100 ❺ 结果分析: 从表 可以看出。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。