基于单片机的电动自行车控制器的设计内容摘要:

7 的输入输出之间的电压差不致太高,减小器件本身的功耗。 C102 为滤波电容,滤除电源输入的尖峰电压。 +5V 电压直接从 +15V 经 LM7805 得到,此处因后端的功率不是很大,LM7805 可以满足要求,不必使用 LM317。 图中电容 均为滤波电容,滤除输入电压中的高频成分,使输出电压平 滑,纹波小。 功率驱动电路 功率驱动电路由 分立元件构成,具有功率放大、自举升压、硬件互锁、过流快速切断的功能。 如图 所示 [12], +C 1 021 00 U F /5 0 VC 1 031 04+C 1 042 20 U F /2 5 V+C 1 094 70 U F /1 6 VC 1 051 04+ 5V+ 15 VIN _ 4 8V4 8V _ SR 1 012 K 2R 1 021 K 2R 1 031 5KV O L T A G E _ 2R 1 261 50R 1 271 50C 1 011 04V in1GND2V o ut3U3L M 7 8X XR 1 055 k1R 1 065 10R 1 070R 1 081kR 1 09 1kC 1 061 04C 1 071 04C 1 081 04V in3ADJ1V o ut2U2L M 3 17+C 1 112 20 U F /1 6 V+C 1 102 20 U F /1 6 V邵阳学院毕业设计(论文) 10 图 功率驱动电路 电流检测电路 对于两相导通三相六状态无刷直流电动机,任一时刻,只有两相绕组导通,电流从一相绕组流进,从另一相绕组流出,电流大小与直流侧电流大小相等。 这样,只要在直流侧串联一个采样电阻就可以检测导通相的相电流。 常见的无刷直流电动机的电流检测方法有:电阻法,霍尔电流传感器法,电流互感器法。 这三种方法的对比如表 所示。 表 三种常见的电流检测方法对比 电流检测方法 电阻法 霍尔电流传感器法 电流互感器法 精确度 好 好 中等 温度影响 小 大 小 费用 最低 最高 中等 隔离程度 不隔离 隔离 隔离 大电流检测能力 差 好 好 直流偏置问题 存在 无 无 存在饱和 /滞后 无 有 有 耗能情况 高 低 低 是否接入电路中 是 否 否 直流 /交流检测 都可以 都可以 交流检测 + 15 VV T 4P 75 N F 7 5V T 3P 75 N F 7 54 8V+E2 4 7U F /5 0 VR 3 01 0KC51 04V _ P O I N TT 110 80 5T 128 55 0D44 14 8R 2 11KR 2 32 K 2R 2 25 10T 138 55 0D54 14 8R 2 54 K 7C61 02T 148 05 0R 2 62 K 2 R 2 73 K 3R 2 91 00T 168 05 0T 158 55 0+ 5VR 2 42 K 2R 2 85 10+ 15 VC71 02P W M _ VC O N T R O L _ VD64 14 8R 3 151 C81 08VV邵阳学院毕业设计(论文) 11 由表 可以看出,电阻法具有检测精度高、价格低廉等优点,因此广泛应用检测电流不高于 20 安培 的场合,电阻器既可以 接在母线高压侧,也可以接在母线低压侧,两种接法各有利弊。 本系统采用电阻器接在母线低压侧方式,如图 所示。 图 电流检测电路 霍尔位置检测电路 如图 所示,霍尔位置检测电路在系统中的作用主要有两个:一是检测电机定、转子的相对位置并提供驱动换相信号;二是通过检测某一路脉冲信号的个数,经软件计算后转换为速度信号 ,构成速度的反馈环节。 图中位置传感器为电机内置的三个霍尔传感器,根据其安装位置的不同可分为60176。 电机和 120176。 电机, 60176。 电机输出的霍尔位置状态有 000 和 111 状态 ,而120176。 电机中没有。 霍尔传感器由于安装在电机内部,与电机转子一起运动而产生抖动,同时电机的绕组也会对其产生干扰,输出信号中含有很多杂波,因此采用电容滤除,同时为了防止单片机控制电路对霍尔传感器的影响,中间用二极管隔离,二极管采用IN4148 可以满足要求。 1O1121+3GND4262O7V C C82+5U6 L M 3 5 8+ 5 VC _ IN T _ 2C 1 41 0 1+ 5 VR 1 2 82 0 KR 1 2 91KR 1 3 11KR 1 3 41 K 8R 1 3 22 0 KR 1 3 3 1 0 KC U R R E N TC U R R E N TC U R R E N T _ O U TR 1 3 5R E SR 1 3 61 0 K邵阳学院毕业设计(论文) 12 图 霍尔位置检测电路 手把电压输入电路 手把电压输入电路如图 所示。 电动自行车的手把为一个霍尔传感器,其输出电压为 0~4V 的模拟信号,经过手把输入电路送入单片机的 AD 口,转换为数字信号,作为速度的给定信号。 图 手把电压输入电路 刹车输入电路 刹车输入电路如图 所示。 电动自行车的刹车输入信号有两种:低电平和高电平,有的厂商采用低电平刹车,有的厂商采用高电平刹车。 为了满足所有需要,本系统兼容低电平和高电平刹车。 低电平刹车时,通过一个隔离二极管,把信号直接送入刹车信号检测 I/O 口;高电平刹车时,通过一个取反电路,把高电平转换为低电平。 同时软件检测到 I/O电平为低时,判定为有刹车信号。 12345J4C O N 5+ 5VR 1 13 3 K 3R 1 14 3 K 3R 1 15 3 K 3D E T E C T _UD E T E C T _VD E T E C T _WR 1 16R E SR 1 17R E SR 1 18R E S1234J5C O N 4+ 5 VR 1 3 84 K 7R 1 3 9 4 K 7A D C _ TE M P邵阳学院毕业设计(论文) 13 图 刹车输入电路 + 5VL IM TS P D _ INB R E A KR 1 113 K 3R 1 10 4 K 7R T 11 03S P E E D _ O U T+ 5VR 0 7 4 K 7123456789J7C O N 9+ 5V邵阳学院毕业设计(论文) 14 第 4 章 电动自行车控制器软件设计 主程序设计 主程序要完成系统初始化 (如设置 PWM、 ADC 等单元 [13]),中断设置,变量初始化和电机的软起动过程。 为了在初始化的过程中,防止中断的意外到来,应在主程序的开始处先关闭中断,完成初始化后,再打开中断。 完成软起动后,主程序进入一个查询操作的循环过程,程序不断地查询判断换相更新标志是否为真,若为真则调用换相服务子程序以给电机相应定子绕组馈电。 若为假则等待换相更新标志在 ADC 转换结束中断子程序中置为真。 主程序的流程图如图 所示。 图 主程序流程图 ( 1) 系统主程序如下: void main(void) { Reset_Initial()。 while(1) { 邵阳学院毕业设计(论文) 15 Monitor_ADC()。 if(PWM_REQ==1) { PWM_REQ=0。 PWM_ADJ()。 } speed()。 } } ( 2) 系统初始 化程序的设计 系统初始化主要包括 I/O 口初始化,定时器的初始化, PWM 的设计以及 ADC的初始化设计。 初始化程序如下: void Reset_Initial(void) //上电初始化程序 { P1M1=0x3c。 //3f。 P1M2=0xc3。 //c0。 P1=0xc0。 P0M1=0x7c。 P0M2=0x83。 P0ID=0x78。 P0=3。 P2M1=0x01。 P2M2=0x02。 P2=00。 TH0=0Xba。 TL0=0Xba。 TH1=0x00。 TL1=0x00。 TMOD=0x22。 // timer 0 work in mode1 CKCONamp。 =0X00。 // time source as clk/12 ET0=1。 // enable timer0 interrupt TR0=1。 邵阳学院毕业设计(论文) 16 TR1=1。 ET1=1。 PWMCON1=0Xc0。 PWMPH=0X01。 // 设置 PWM 的状态 PWMPL=0X77。 PWM0H=0X00。 PWM0L=0Xcc。 PWM1H=2。 PWM1L=0X00。 PWM2H=2。 PWM2L=0X00。 PWM3H=2。 PWM3L=0X00。 PWMCON1=0Xc0。 AUXR1|=0x04。 // 打开 ADC 电路 EADC=1。 // 允许 ADC 中断 Error_Type=0。 PWM_Duty_H=0。 PWM_Duty_L=0。 ADC_Point=0。 ADC_SUM1=0。 ADC_REQ=0。 ADC_RD=0X55。 ADC_SUM2=0。 PWM_REQ=0。 PWM_TMR=0。 PWM_MAX_H=0。 PWM_MAX_L=0。 PWM_0_Duty=1。 PowerOff=0。 ADC_SUM_tmp=0x630。 邵阳学院毕业设计(论文) 17 DS_Flag=0。 DZ_Flag=0。 CYJ_TM=0。 EA=1。 //设置程序开始运行标志,超静音用 PG_start=1。 ADC_H=0XFF。 while(ADC_H0x50) { ADCCON=1。 ADCCONamp。 =0xef。 ADCCON|=0x08。 while(ADC_RD==0X55)。 } EA=0。 while(P02==0) { PWM1H=0。 PWM2H=0。 PWM3H=0。 PWM1L=0。 PWM2L=0。 PWM3L=0。 PWMCON1=0Xe0。 Vstep=P1。 Vstep=Vstep2。 Vstepamp。 =0x07。 switch(Vstep) { case 3://6 BT=0。 AT=0。 CT=1。 break。 case 1: //4 BT=0。 AT=0。 CT=1。 break。 邵阳学院毕业设计(论文) 18 case 5: //5 case 0: //0 BT=0。 CT=0。 AT=1。 break。 case 4: //1 BT=0。 CT=0。 AT=1。 break。 case 6: //3 AT=0。 CT=0。 BT=1。 break。 case 2: //2 case 7: //7 CT=0。 AT=0。 BT=1。 default: break。 } } } 中断服务程序设计 定时中断服务程序是整个控制器的灵魂,是软件部分的核心,采用“时间片”分时思想,完成了控制器所有的功能设计、保护模块以及驱动换相。 定时中断服务程序一方面接受外部输入的按键操作信号,执行各个功能模块,例如,按下巡航按键,电动自行车进入巡航模式,按下刹车按键,进入柔性电子刹车模式;另一方面根据检测得到的电压、电流值,当电源电压低于某个值时进入欠压保护,当电流高于某个值时,进入过流保护。 编程时,把各个功能模块当。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。