第二节 应用单片机ht46r47构成的直流电机控制器虽然由专用芯片tl494构成的控制器,线路简洁,可靠性高,但功能单一,无法实现智能化的高要求,因此,必须借助单片机,采用数字技术来实现。图1-7是用单片机ht46r47(台湾和泰产)构建的控制器原理图,它是一个成熟的产品图,是由天津宏塔电子生产的,型号为zk3615d,我们以此为典例介绍如下:
1、性能要求
(1)高可靠性功能防水、防腐、防震,采用环氧树脂全灌封工艺;能确保在极限条件下安全可靠的工作,可抗拒线路之间的任何相互短路。
(2)智能辅助功能:①定速:调速转把停留在任意角度(任意车速)且12秒内保持不变时,能将车速锁定(也称“巡航”)即为定速,其方式分为自动和选择定速两种。同时要求在刹车、转把二次归零、响应各种保护功能后能够解除定速。②速度(tempo)助力:在骑行时,脚踏轴的转动速度(tempo),通过传感器送给控制器,控制器控制电机给出一定的电压,即助力行使;同时要求转把和速度(tempo)助力控制可自动切换。③欠压保护:当电池电压下降到预定的欠压值时,控制器能自动侦测,同时关闭pwm输出。④分段限流保护:在骑行状态下,控制器能自动侦测电池电压,当电池电压下降到预定的电压值时,控制器的最大输出电流值,会随之逐渐减少一定的量,直至到欠压点。⑤堵转保护:在任何情况下而导致电机停转时,控制器能侦测到,且在2秒后自动停止电机供电,以防止烧坏电路。⑥上电自检保护:控制器初始上电时,对转把、刹车开关、助力传感器等进行安全检测,控制飞车等不安全故障的出现;同时仪表板能显示故障点。⑦智能显示:控制器通过数字传输给译码电路通过led管显示出当前电池电量及当前控制器工作状态(电动、助力、定速、发电)、速度(tempo)、故障点等。
(3)主要参数指标(以36v为例)①调速占空比:转把电压为5v时,输出1.3~3.8v,0~100%连续可调②限流保护值:不大于额定工作电流的2.5倍(15a)③输出短路保护响应时间:≤12μs④欠压保护值:41±0.5v(同时要求有5v的滞回宽度)⑤定速:转把停顿15s后自动定速或选择定速⑥工作环境温度:-20~45℃⑦堵转保护:堵转2秒后进入保护
2、线路原理说明
(1)线路原理如图1-7:
(2)单片机ht46r47的外部接口及内部逻辑功能简介
①单片机ht46r47的外部接口如图1-8:
②单片机ht46r47的内部结构逻辑如图1-9:
③单片机ht46r47的基本功能a、hald和唤醒功能可降低功耗b、在vdd=5v,系统频率为8mhz时,指令周期为0.5μsc、欠压监控保护、刹车关闭电路d、终端功率斩波电路e、一个8位的pwm(脉宽可调)输出通道,与输入/输出口共用引脚f、位操作指令g、查表指令,表格内容字长14位h、63条指令i、指令执行时间为1或2个指令周期j、低电压复位功能(3)单片机ht46r47各脚的定义,如图1-10:
(4)线路设计说明ht46r47有2k×14的程序空间,比业内很多品牌的mcu多1k程序,可有更多的程序空间实现辅助功能。用a/d转换完成:转把采样、电流采样、电池电压测量、pwm输出控制电机转速、巡航定速(手动、自动)、助力功能、制动断电、故障自检、防飞车、显示故障点等诸多功能。利用内部振荡器,只要在osci上接电阻r11、c10即可产生8mhz时钟。①欠压保护:由r3、r4、c5构成分压电路,电源经r3、r4所分得的电压输入到mcua/d口适时监控电源电压,一旦低于所设定的电压值mcu便产生中断,进入欠压保护状态。②助力:助力脉冲信号给mcu5脚。③转把、限速:转把电压1~4v信号,输入给mcu6脚a/d口,外部限速经一下拉电阻,将转把电压下拉一定的幅值(r5、r6分压)。④显示电路:由mcu的2、3、4脚输出指令数据,与外设译码电路串口联结,构成显示电路,实时显示电动自行车的运行状态。⑤刹车:mcu的18脚接刹车信号,当18脚电压为低电平时,即刹车接地,mcu产生中断,pwm输出停止。⑥模式选择:mcu的1脚接模式选择信号,当1脚电压为低电平时,即模式选择。⑦电流闭环控制回路由外设ic6a、r28、r29构成的同相放大器、检测信号电阻r26、及r42、c17构成的rc滤波电路、和mcu(内部9位a/d)的8脚输入口构成电流闭环控制回路。工作过程是:从r26上获取压降,既电流检测信号,rc滤波后输入到放大电路的输入端,再经放大后为mcu(8脚)a/d提供电流检测信号,形成电流回路的闭环控制。⑧pwm终端功率斩波电路主要由mos功率开关管t5、快恢复二极管d3、电机m、施密特放大器(t1、t2、t3、d2、)等构成,工作过程是:mcu的pwm信号为高电平时,经三级开关放大为mos管栅极电压,使mos管导通;pwm信号为低电平时,t1截止、t2导通,mos管栅极电压为低,使mos管关断。快恢复二极管d3的作用是:将电机关断时所产生的反电势续流。⑨输出短路中断保护电路由外设ic6b及r42、r43基准分压电路构成比较器与mcu的内部中断口17脚构成,检测信号从功率斩波电路中r26上取得,短路电流超过预设值后,比较器的输出由原来的低电平转为高电平到17脚,使mcu产生中断,实现输出短路保护。⑩稳压电路由降压电阻r1、集成稳压块ic3构成。电源电压经r1降压后,稳压管z1将电压钳位在15v,再经稳压块78l05稳压在5v。3、软件设计软件设计主要包括以下几个功能模块(1)上电自检(2)面板显示通讯程序(3)助力信号测量(4)转把控制(5)电机速度(tempo)控制(6)电池电压测量(7)定速刹车等控制4.软件运行流程,如图1-11:5.软件部分源代码(c语言)注:单片机ht46r47资源定义部分,可结合ht46r47资料阅读。voidinitial(){//mcu初始化#asmmova,40hmov[01h],aclrram:clr[00h]inc[01h]mova,0ffhsuba,[01h]snz[0ah].2jmpclrram#endasm_pwm=0x00;_pdc=0x00;//0000,0000_pd=0x00;_pac=0x78;//0111,1000_pbc=0x0f;//0000,1111_pa=0x00;//_pb=0x00;_intc=0x06;_tmr=0x00;//初始化一下定时器0,和定时器1_tmrc=0x83;//0x83;//1000,0011;8分频1m4us*256=2ms}voidisr_8()//定时哭中断{tmr*ptmr;//;为记时器处理*int8ui;ptmr=&tmrtbl[0];for(i=0;i<tmr_max_tmr;i++){if(ptmr->tmren==true){if(ptmr->tmrctr>0){ptmr->tmrctr--;if(ptmr->tmrctr==0){ptmr->tmren=false;ptmr->tmrend=true;}}}ptmr++;}}voidledscan()//74ls164显示驱动{int8uj;if((dispsegen[0]=1)|(dispsegen[1]=1)){for(dispsegtblix=0;dispsegtblix<2;dispsegtblix++){dispscan=dispsegtbl[dispsegtblix];for(j=0;j<8;j++){scl_164=0;if(dispscan&0x80){sda_164=0;}else{sda_164=1;}scl_164=1;dispscan<<=1;}}dispsegen[0]=0;dispsegen[1]=0;}}voidhandcheck()//转把计算if(handvol>hand_vol_min){if((handvol-hand_vol_min)>127){pwmvalhand=0xff;}else{pwmvalhand=(handvol-hand_vol_min)<<1;//pwm输出}if(pwmvalhand>=pwm_out_max){pwmvalhand=pwm_out_max;}}else{pwmvalhand=0;}}voidisr_4(){//短路保护pwm_out_io=0;runerr=true;}voidmain(){_pwm=0x00;if(_to==0){initial();}_clrwdt();tmrinit();//记时器初始化tmrsett(0,0x03);//24ms测一次手柄tmrstart(0);tmrsett(1,0x50);//自检时测手柄间隔tmrstart(1);tmrsett(2,0x02);//4ms测助力tmrstart(2);while(1){_clrwdt();keymenu();hlppower();//助力handcheck();//手柄采样batcheck();//电池测量pwmvalcu();……