基于单片机的电动车控制器.docx
- 文档编号:24501702
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:21
- 大小:179.98KB
基于单片机的电动车控制器.docx
《基于单片机的电动车控制器.docx》由会员分享,可在线阅读,更多相关《基于单片机的电动车控制器.docx(21页珍藏版)》请在冰豆网上搜索。
基于单片机的电动车控制器
基于单片机的电动车控制器
摘要:
本设计介绍了一种以单片机89c51为主控芯片的电动自行车调速控制系统和测速系统的设计方案给出了系统的硬件构成和软件设计方法。
实验证明:
该系统性能可靠、成本较低,是一种实用的直流电动机调速系统。
关键词:
89c51、直流电机、pwm调速、霍尔传感器
1引言
当前,随着保护环境、节约能源的呼声日益高涨无污染、能源可多样化配置的新型交通工具引起了人们的普遍关注,同时也得到了极大的发展,电动自行车便是其中之一1。
它以蓄电池发出的电能作为驱动能源,以电动机作动力,具有无废气污染、“零排放”、无噪音、轻便美观等特点特别适合在人口较集中的大中城市中使用。
但目前市场上的电动自行车还存在着一些不够完善的地方,尤其是电机控制方面有待于进一步提高。
电动车控制器是用来控制电动车电机的启动、运行、进退、速度、停止以及电动车的其它电子器件的核心控制器件,它就象是电动车的大脑,是电动车上重要的部件。
本设计根据无刷直流电机的原理,利用美国Atmel公司推出的一款89c51单片机作为主控芯片设计了一种无刷直流电机调速控制系统,该系统具有硬件结构简单、软件设计灵活、适用面广、价格低廉等优点具有一定的实用价值。
具有超静音设计技术:
独特的电流控制算法,能适用于任何一款无刷电动车电机,并且具有相当的控制效果,提高了电动车控制器的普遍适应性,使电动车电机和控制器不再需要匹配。
自动识别电动车电机的换向角度、霍尔相位和电机输出相位,只要控制器的电源线、转把线和刹车线不接错,就能自动识别电机的输入几输出模式,可以省去无刷电动车电机接线的麻烦,大大降低了电动车控制器的使用要求。
2总体设计方案
2.1设计思路
电动车控制器,其主要的功能是能线性调节车速,最终还是直流电机调速问题,本设计采用脉宽调制(PWMM)配以单片机为中心控制元件的调速系统。
利用霍尔线性传感器实现传统的车把调速,把电压信号通过模数转换后送入单片机IO口,控制占空比,再经过信号放大控制电机转速。
速度显示利用开关型霍尔传感器采集两高点评的时间计算速度,通过串行口输出显示。
2.1.1方案确立
整个系统主要包括车轮霍尔开关器件检测电路及测速电路、调速电路、低压、过载、过流保护电路和稳压电路。
单片机小系统电是基础,模数转换以ADC0809为核心,显示电路采用74ls164和七段共阳数码管静态显示,稳压电路采用7805芯片给单片机以及显示和模数转换单元供电。
2.2设计方框图
如图1设计方框图
3设计组成及分析
3.1最小系统电路的设计
51单片机有4组并行IO口和一组全双工的串行口,有完善的中断系统,包括4k的程序存储器和的数据存储器,加上丰富的控制指令是微型控制系统的理想芯片。
采用12MHZ的晶振和辅助元件为单片机提供时钟信号,提供5V的电源就能组成最小系统了。
最小系统如图2,12MHZ的晶振提供始终信号,它是单片机工作的节拍。
复位端接电容在上电时对单片机进行复位操作。
如图2最小系统电路图
3.2PWM速度控制电路的设计
模数转换电路中ADC0809是核心,它有8个输入端口和8个输出端口,输出精度高,转换速度快,只用从线性霍尔传感器采集电压信号送进一个输入端口通过控制使能就能很快转换出一组八位二进制数据,在单片机里进行延时控制占空比就实现了脉宽调制。
PWM脉宽调制,是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。
而输出频率的变化可通过改变此脉冲的调制周期来实现。
这样,使调压和调频两个作用配合一致,且于中间直流环节无关,因而加快了调节速度,改善了动态性能。
由于输出等幅脉冲只需恒定直流电源供电,可用不可控整流器取代相控整流器,使电网侧的功率因数大大改善。
利用PWM逆变器能够抑制或消除低次谐波。
加上使用自关断器件,开关频率大幅度提高,输出波形可以非常接近正弦波。
PWM变频电路具有以下特点:
(1)可以得到相当接近正弦波的输出电压
(2)整流电路采用二极管,可获得接近1的功率因数
(3)电路结构简单
(4)通过对输出脉冲宽度的控制可改变输出电压,加快了变频过程的动态响应
现在通用变频器基本都再用PWM控制方式,所以介绍一下PWM控制的原理
脉宽调制(PWM)。
控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等的脉冲,用这些脉冲来代替正弦波或所需要的波形。
也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次斜波谐波少。
按一定的规则对各脉冲的宽度进行调制,即可改变逆变电路输出电压的大小,也可改变输出频率。
PWM是单片机上常用的模拟量输出方法,通过外接的转换电路,可以将占空比不同德尔脉冲变成不同的电压,驱动直流电机的转动从而得到不同的转速。
程序中通过调整输出脉冲占空比来调节输出模拟电压。
控制电路如图3所示。
图3调速电路
用电位器代替霍尔现行传感器调节AT89C51的PWM占空比,将A/D转换后的数据作为延时常数。
当电位器阻值发生变化时,ADC0809的输出也将发生变化,进而调节单片机输出PWM占空比,控制直流电机的转速。
控制流图如图4:
图4控制流图
3.3速度测量电路设计
74LS164是串行输入并行输出的八位移位寄存器,通过单片机串口方式一可以很简单实现速度的静态显示。
而速度的测量是通过开关霍尔传感器在车轮上采集相邻两高电平的时间(采集位置固定为一米),就能计算出瞬时速度,精确,不过速度的计算在单片机里的实现是个问题需要进行三字节除法,这个问题需要解决。
霍尔器件的原理:
霍尔传感器是利用霍尔效应实现磁电转换的一种传感器,它具有灵敏度高,线性度好,稳定性高、体积小和耐高温等特点,在机车控制系统中占有非常重要的地位。
对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间。
按要求选择或设计脉冲发生器,能够实现高性能检测。
工作方法:
当该霍尔器件处在任何极性的恒定磁场中时,其上的两个霍尔传感器将产生同样的输出信号。
无论该磁场的绝对强度有多大,它们之间的差值总为零。
然而,由于一个单元面向磁场集中的轮齿,另一个单元则面向一个齿隙,如果两个霍尔单元之间存在磁场梯度,那么将产生一个差值信号,并在芯片上放大。
实际上,这个差值体现了一个小偏移,它可由相应集成的控制电路来修正。
速度信号的检测用A44E开关器件,在车轮固定地方安装磁铁霍尔器件安在其对应地方,当磁铁经过霍尔器件时会有高电平脉冲产生。
信号送给单片机开始定时,当下一个高电平出现时就能计算出速度。
显示电路通过单片机串行口输出给串入并出的八位移位寄存器74LS164,进行显示。
由于电动车的速度不可能大于100m/s,所以只要用两个七段数码管显示即可。
图5测速电路
3.4保护电路设计
本设计只是简单实现了欠压和过流保护,保护电路如图6:
图6保护电路
本设计的保护电路是通过LM339和单片机实现的,过流保护检测电机电流,通过电阻转换成电压信号,和基准电压比较,高于基准电压则LM339给单片机送高电平,程序检测到P2.1管脚的高电平调用停止子程序停止控制信号。
欠压保护是通过检测电瓶电压和基准电压比较小于则送单片机P2.2管脚低电平,调用停止程序。
其详细的保护有一下几方面:
(1)欠压保护这里指的是电源的电压。
当放电最后阶段,在负载状态下,电源电压已经接近“放电终止电压”,控制器面板(或仪表显示盘)即显示电量不足,引起骑行者的注意,计划自己的行程。
当电源电压已经达到放终时,电压取样电阻将分流信息馈入比较器,保护电路即按预先设定的程序发出指令,切断电流以保护电子器件和电源。
(2)过流保护电流超限对电机和电路一系列元器件都可能造成损伤,甚至烧毁,这是绝对应当避免的。
控制电路中,必须具备这种过电流的保护功能,在过流时经过一定的延时即切断电流。
(3)过载保护过载保护和过电流保护是相同的,载重超限必然引起电流超限。
电动自行车都有载重能力,但有的骑行者或未注意这一点,或抱着试一下的心理故意超载。
如果没有这种保护功能,不一定在哪个环节上引起损伤,但首当其冲的就是开关功率管,只要无刷控制器功率管烧毁一只,变成两相供电后电动机运转即变得无力,骑行者立即可以感觉到脉动异常;若继续骑行,接着就烧毁第2个、第3个功率管。
有两相功率管不工作,电动机即停止运行,有刷电机则失去控制功能。
因此,由过载引起的过电流是很危险的。
但只要有过电流保护,载重超限后电路自动切断电源,因超载而引起的一系列后果都可以避免。
(4)欠速保护仍然属于过流保护范畴,是为不具备0速起步功能的无刷控制系统而设置,
(5)限速保护是助力型电动自行车独有的设计控制程序。
车速超过某一预定值时,电路停止供电不予助力。
对电动型电动自行车而言,统一规定车速为20km/h,计算速度时如果大于6m/s就停止控制信号。
4软件设计
程序流程图如图7所示:
图7程序流程图
本设计最重要的地方是pwm调节的实现,采用了单片机这个功能就能很好的实现了。
单片机的计数、中断系统很丰富,计数可以实现延时调节高低电平时间,中断时实现高低电平跳变。
再配以ADC0809模数转换器把从车把采集的电压模拟信号转换成单片机能处理的数字信号,就可以通过控制占空比来实现脉宽调制。
ORG0000H
AJMPMAIN
ORG0BH
LJMPINT_TO
ORG0023H
AJMPXSH
ORG0030H
MAIN:
MOVSCON,#00H
MOVA,#01H
MOVCA,@A+DPTR
CLRP2.0
MOVSBUF,A
LOOPSJMP,$
XSH:
SETBP2.0
ACALLDE
CLRTI
MOVA,#03H
MOVCA,@A+DPTR
CLRP2.0
MOVSBUF,A
RETI
MOVR7,#00H
tIAOSU:
ADCEQU50H
CLOCKBITP0.0
STBITP0.2
EOCBITP0.1
OEBITP0.3
PWMBITP3.3
START:
MOVTMOD,#20H
MOVTH0,#14H
MOVTL0,#00H
MOVIE,#88H
SETBTR1
WAIT:
CLRST
SETBST
CLRST
JNBEOC,$
SETBOE
MOVADC,P1
LCALLDELAY
CLRPWM
MOVA,#255
SUBBA,ADC
LCALLDELAY
INT_TO:
CPLCLOCK
RETI
DELAY:
MOVR6,#1H
D1:
DJNZR6,D1
DJNZACC,D1
RET
JBP3.1,STOP
JNBP3.0,STOP
STOP:
MOVADC,#00H
LOOP1:
JNBP3.7,LOOP1
LOOP2:
JBP3.7,LOOP2
INCR7
MOVA,R7
MOVSBUF,A
LJMPMAIN
速度的计算部分采用三字节除法,把1m转换成1000nm存进单片机中就是二进制的0F4A40H是三字节,从霍尔开关元件采集的时间变量存入三字节中,三字节除法通过减法实现。
三字节除法子程序如下:
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOV77H,#0FH
MOV78H,#42H
MOV79H,#40H
MOV7AH,#00H
MOV7BH,#03H
MOV7CH,#0E8H
LCALLDIV_MB
SJMPMAIN
;=================================================
;DIVISIONFORTHREE-BYTEDATA
;DIVIDENDFROM77H&78H&79H
;DIVISORFROM7AH&7BH&7CH
;QUOTIENTTO 77H&78H&79H
;ARITHMETICALCOMPLIMENTTO7DH&7EH&7FH
;2008_05_08BYSZCKIC
;=================================================
DIV_MB:
MOV7DH,#00H
MOV7EH,#00H
MOV7FH,#00H
MOVR7,#18H
NEXTBIT:
CLRC
MOVA,79H
RLCA
MOV79H,A
MOVA,78H
RLCA
MOV78H,A
MOVA,77H
RLCA
MOV77H,A
;Arithmeticalcompliment
MOVA,7FH
RLCA
MOV7FH,A
MOVA,7EH
RLCA
MOV7EH,A
MOVA,7DH
RLCA
MOV7DH,A
MOV5AH,7DH
MOV5BH,7EH
MOV5CH,7FH
MOV5DH,7AH
MOV5EH,7BH
MOV5FH,7CH
LCALLTDEC
JNCUPDATE
DJNZR7,NEXTBITTMP
RET
UPDATE:
INC79H
MOV7FH,5CH
MOV7EH,5BH
MOV7DH,5AH
DJNZR7,NEXTBITTMP
RET
NEXTBITTMP:
LJMPNEXTBIT
;=================================================
;Subtracterforthree-bytedata
;=================================================
TDEC:
CLRC
MOVA,5CH
SUBBA,5FH
MOV5CH,A
MOVA,5BH
SUBBA,5EH
MOV5BH,A
MOVA,5AH
SUBBA,5DH
MOV5AH,A
RET
除法程序写成了子程序形式,很方便调用,除法中要频繁用到三字节数据大小的比较,所以也写成了一个小子程序。
思路很简单,抛开我们习惯了的乘法口诀,以一个小学二年级学生的思路去做就简单了,一步一步的比较、移位,只不过这里是二进制而不是习惯了的十进制,当然二进制也有一个优点那就是:
假设A,B是两个同样位数的二进制数据(首位不为0),且A>B,则A肯定小于2倍的B,所以对于每次移位只用比较一次
程序编写是按照顺序执行的方式进行的,每一程序周期进行一次速度测量显示和一次速度调节信号检测。
而保护部分通过检测过流、欠压信号把速度控制信号置零实现的。
5总结与体会
此次设计实习对我来说既是机遇又是挑战,因为自己一直想动手做件电子产品,由于没有器件就没有进行,借着这次单片机实习我努力把自己的设计做的完美,但是第一次独立设计毕竟经验不足,很多地方都没有考虑到以致在最后编程时遇到了很多难题很多是硬件不合理,比如说串口输出单片机只有一组,但是我的输出要三组,最后只有放弃了另两个功能。
如果自己在设计、制板前有充分的考虑硬件的实现效果就会好一点了。
还有这次设计没有和老师配合好,老师是指导我们设计的而我却一意孤行,只管做自己的,最后不能改变的是坏的结果,这我感触很深。
再者,学的东西要付诸实际,首先必须的是精益求精的知识,否则一点失误可能造成很大的损失。
挑战与机遇并存是现代社会的最大特点,谁的综合素质高就能接受挑战获得机遇,在今后不长的大学学习中我要把自己的知识细化,具体化做到知其因之气果。
相信这次的努力会对以后起到启发和激励作用的。
6结束语
车用电机控制器近年来的发展速度之快,使人难以想象,操作上越来越“傻瓜”化,而显示则越来越复杂化。
比如,车速的控制已经发展到“巡航锁定”;驱动方面,有的同时具有电动性能和助力功能,如果转换到助力状态,借助链条张力测力器,或中轴扭力传感器,只要用脚踏动脚蹬,便可执行助力或确定助力的大小。
电动车控制器技术会更加成熟的。
参考文献
[1] 叶挺秀.应用电子学[M].杭州:
浙江大学出版社,1994
[2] 朱承高.电工及电子技术手册[M].北京:
高等教育出版社,1990
[3] 阎石.数字电子技术基础(第三版)[M].北京:
高等教育出版社,1989
[4] 周润景.PROTEUS在MCS-51&ARM7系统中的应用百例[M].北京:
电子工业出版社,2006
[5]李朝青.单片机原理及接口技术(第三版)[M].北京:
北京航空航天大学出版社2005
附录
(一)程序清单
程序清单如下:
ORG0000H
AJMPMAIN
ORG0BH
LJMPINT_TO;定时器0中断入口
ORG0023H
AJMPXSH;串口中断,显示车速
ORG0060H
MAIN:
MOVTMOD,#02H
MOVTH0,#00H
MOVTL0,#00H
MOVIE,#82H
LOOP1:
JNBP3.7,LOOP1
LOOP2:
JBP3.7,LOOP2;判断是否出现下降沿
SETBTR0
LOOP3:
JBCTF0,YICHU
YICHU:
INC30H
JNBP3.7,LOOP3
LOOP4:
JBP3.7,LOOP4;判断是否出现相邻的下降沿,然后定时结束
MOV31H,TL0
MOV32H,TH0
CLRTR0
LCALLSUDU;定时时间存放在30H31H32H
TIAOSU:
ADCEQU50H;PWM调制初始化
CLOCKBITP0.0
STBITP0.2
EOCBITP0.1
OEBITP0.3
PWMBITP3.3
START:
MOVTMOD,#20H
MOVTH0,#14H
MOVTL0,#00H
MOVIE,#88H
SETBTR1
WAIT:
CLRST
SETBST
CLRST
JNBEOC,$
SETBOE
MOVADC,P1;把转换后的值送给缓存单元
LCALLDELAY
CLRPWM
MOVA,#255
SUBBA,ADC
LCALLDELAY;延时单元,改变占空比
INT_TO:
CPLCLOCK;中断,给ADC0809提供时钟
RETI
DELAY:
MOVR6,#1H
D1:
DJNZR6,D1
DJNZACC,D1
RET
JBP3.1,STOP;检测欠压信号
JNBP3.0,STOP;检测过流信号
STOP:
MOVADC,#00H;保护命令
;************以下程序处理速度,三字节除法*******
SUDU:
MOV33H,#0FH
MOV34H,#42H
MOV35H,#40H
LCALLDIV_MB
DIV_MB:
MOV36H,#00H
MOV37H,#00H
MOV38H,#00H
MOVR7,#18H
NEXTBIT:
CLRC
MOVA,35H
RLCA
MOV35H,A
MOVA,36H
RLCA
MOV36H,A
MOVA,37H
RLCA
MOV37H,A
MOVA,38H
RLCA
MOV38H,A
MOVA,34H
RLCA
MOV34H,A
MOVA,33H
RLCA
MOV33H,A
MOV4AH,36H
MOV4BH,37H
MOV4CH,38H
MOV4DH,30H
MOV4EH,31H
MOV4FH,32H
LCALLTDEC
JNCUPDATE
DJNZR7,NEXTBITTMP
RET
UPDATE:
INC32H
MOV4FH,4CH
MOV4EH,4BH
MOV4DH,4AH
DJNZR7,NEXTBITTMP
RET
NEXTBITTMP:
LJMPNEXTBIT
TDEC:
CLRC
MOVA,4CH
SUBBA,4FH
MOV4CH,A
MOVA,4BH
SUBBA,4EH
MOV4BH,A
MOVA,4AH
SUBBA,4DH
MOV4AH,A;结果存放在4AH4BH4CH中
RET
MOVR0,#10H
MOVR1,#10H;初始显示延时常数
MOVSCON,#00H
MOVDPTR,#TAB
MOVA,#255;初始数码管显示
CLRP2.1
MOVSBUF,A
LOOP:
SJMP$
MOVR2,4BH;
XIANSU:
CJNER2,#00H,MA
MOVR3,4AH
CJNER3,#00H,MA
MOVA,4CH
MOVB,#0AH
DIVAB
MA:
LJMPSTOP
JZXIANSHI;判断速度是否是两位,是两位先显示高位
MOVCA,@A+DPTR
MOVSBUF,A
SJMPLOOP
XIANSHI:
MOVA,B
MOVCA,@A+DPTR
MOVSBUF,A;显示低位
SJMPLOOP
XSH:
SETBP2.1
ACALLDELAY1
CLRTI
CLRP2.1
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H;字形码存放
DB82H,0F8H,80H,6FH
RETI
DELAY1:
DJNZR0,D3;显示延时
D3:
DJNZR1,D3
RET
RET
LJMPLOOP1
END
附录
(二)总电路图
总电路图如图8
图8总电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电动车 控制器