电动自行车控制设计项目方案 下载本文

.

图5.1 主程序流程图

2、中断服务程序设计

ATmega48总共有26个中断向量,编号从1~26,编号越小,优先级越高,不支持中断嵌套。本系统使用的中断向量为:定时器/计数器O溢出中断(以下称定时中断)和ADC转换结束中断(以下称AD中断)。应用C语言编程,在进入中断处理时,C编译器会自动进行中断保护和恢复、清除中断标志。同时为了避免中断嵌套,在进入中断程序时,首先关闭总中断,退出中断时再打开总中断。两个中断同时发生时,定时中断向量号比AD中断向量号小,首先执行,AD中断等定时中断退出后再执行。

Word 资料

.

定时中断服务程序是整个控制器的灵魂,是软件部分的核心,采用“时间片”分时思想,完成了控制器所有的功能设计、保护模块以及驱动换相。定时中断服务程序一方面接受外部输入的按键操作信号,执行各个功能模块,例如,按下巡航按键,电动自行车进入巡航模式,按下刹车按键,进入柔性电子刹车模式;另一方面根据检测得到的电压、电流值,当电源电压低于某个值时进入欠压保护,当电流高于某个值时,进入过流保护。编程时,把各个功能模块当作一个事件,定时中断服务程序就是一个事件调度器,它根据事件的轻重缓急来决定事件执行的先后,同时保证不发生冲突或者堵塞。事件调度器的调度原则就是“时间片”分时思想,为了保证实时性,“时间片”取128us,定时中断服务程序的流程图如图5.2所示。

AD中断完成电源电压、相电流和手把电压的采集任务,把采集得到的电压电流值经过软件滤波后存储在缓冲器中,供主程序和定时中断服务程序调用。在AD中断服务程序中,根据电源电压、相电流和手把电压的速度要求,采用不同的采样速度,相电流的采样速度最快,手把电压次之;电源电压最慢。软件设计中三者的采样速度关系为,每采集20次相电流采集一次手把电压,每采集128次手把电压采集一次电源电压。其中,相电流的采样速度为AD转换的速率(大约为13个AD时钟周期)。如此,既保证了电流采集的实时性,又保证了电源电压采集的平稳性。

AD转换时,向ADC启动转换位ADSC位写“1”可以启动单次转换,在转换过程中此位保持为高,直到转换结束,然后被硬件清零。如果在转换过程中改变了转换通道,ADC会在通道改变前完成这一次转换。工作于单次转换模式时,总是在启动转换之前选定通道,需要选择新的转换通道时,最简单的办法是在等待转换结束后再改变通道。本系统是在ADC转换结束产生的中断中先读取转换结果,再改交通道,并启动下一次新的转换。AD中断服务程序的流程图如图5.3所示。

Word 资料

.

图5.2 定时中断服务程序流程图

Word 资料

.

图5.3 AD中断服务程序流程图

二、功能模块程序设计

1、驱动换相模块

无刷直流电动机需要根据位置传感器输出的信号(HA,HB,HC)进行换相,才能正常运转。(HA,HB,HC)总共有八种组合:(000)、(OOl)、(OlO)、(0ll)、(100)、(101)、(110)、(111),其中6种为有效组合,剩余2组为无效组合;在120°电机中,(000)、(111)

Word 资料