36V智能有刷程序说明.doc
36V智能有刷程序说明
设计时间:2006年9月21日
程序功能:1、转把调速度;2、刹车;3、助力;4、欠压保护;5、限流保护、过流保护。
参数说明:
转把有效电压:1.6~4.0V
转把断线保护电压:≥4.6V
欠压值:<31.5V 重开值:>33V
限 流:<16A
程序设计思路:
单片机:PIC16F716 晶振:4M
PWM输出频率为16KHZ。PR2设为0X3B,则10位精度,调整度0~240。
转把、电池电压、电流采样AD中断循环采样。AD转换完成后,写入下次需转换的通道,TIMER1定时512uS中断一次,开启AD转换。电流采样8次,转把采样一次;转把采样64次,电池采样一次。
转把调速的实现:
转把有效电压1.6-4.0V采样82-204,差位122,为了方便期间差数120,则将转把采样的电压值减起82,在乘以2,即得到调速度的PWM值。
转把电压由AD采样中断得到,采样完一次,置TS-OK标志位,当采样电压达到开启电压1.6V时置TS-ON标志位。主程序通过检查标志为确定该处理对应的数据。
助力调速的实现:
助力是一脉宽的形式输入的。频率3.5~17HZ,正常骑行12HZ左右。通过定时对助力输入I/O进行扫描,判断电平是否发生变化,记录下相应的脉宽,变化一个周期(变化2次)再判断脉宽确定是正反助力,再有效的情况下计数加1。在一定时间内(程序里1.2S)计数的值就为助力的输入值。将输入的值通过一定的运算,转化成PWM的控制值。助力PWM值通过调整的形式去控制PWM的输出。(调整的形式:通过判断两个值大小,根据大小给另一个值进行加减)。
通过定时器1 512uS对助力输入I/O进行扫描,检查电平是否变化。脉宽计时间由定时器1 512uS计数40次形成30MS的定时间计数(30MS到计数加1)。由30MS计数50形成1.2S定时。30MS为脉宽计数,1.5S为助力的定时输出。输出值大约2,则助力有效。助力值*16
定速:30MS对定速键进行扫描,确定有键按下,通过主程序进行切换模式(电动模式与定速模式进行切换)。
程序框图:
主程序框图:
WDT:看门狗。
DC_OK,TS_OK,DL_OK,TS_YX:分别为电池电压采样完成;转把采样完成;电流采样完成;转把有效。
AD采样中断子程序
1
开 始
清WDT
I/O初始化
寄存器初始化
AD转换初始化
定时器1初始化
PWM初始化
延时20mS
清WDT
电池电压采样
电池电压>欠压重开值
中断使能配置
延时50mS
清标志位
DC_OK,TS_OK,DL_OK,TS_YX
清WDT
助力有效?
转把有效?
PWM输出有效?
PWM输出
助力信号检测完毕?
助力信号处理
PWM调整
电流采样完毕?
电池电压采样完毕?
欠压检测处理
有刹车信号?
刹车处理
需要复位?
需要复位?
Y
Y
Y
Y
N
N
N
Y
N
N
Y
N
Y
N
N
电动模式
助力模式
助力模式
定速键按有效?
清定速有效标志位
跳到定速模式
软件复位地址
复位
复位
Y
Y
N
Y
复位
Y
N
定速模式
清ADIF
Y
Y
N
转把有效?
N
N
PWM输出有效?
Y
PWM输出
转把采样完毕?
N
Y
转把信号处理
N
电流采样完毕?
Y
PWM调整
电池电压采样完毕?
N
Y
欠压检测处理
需要复位?
N
N
有刹车信号?
刹车处理
需要复位?
中断向量
是转把采样?
是电流采样?
清定速有效标志位
跳到电动模式
定速键按有效?
N
清WDT
清WDT
电动模式
清WDT
N
电流采样完毕?
Y
PWM调整
N
PWM输出有
原创力文档

文档评论(0)