无刷直流电机在汽车系统的设计
时间为16 - 17μs,能快速完成电池电压监测任务;出错信号输入,用于发生在过流或过热的情况下产生中断,进而封锁PWM输出;特有的快速8位乘法和16位除法指令,使得它具有较高的运算能力,能完成较为复杂的控制算法; 768B 片内RAM 和16kB 片内Flash存储器,具有在线编程能力和保密功能;系统保护特性,包括看门狗复位、低电压禁止复位等增强了程序的稳定性和可靠性。
3.3 前置驱动模块
前置驱动模块的核心是PC33896,它是新推出的专用于汽车电子42V /12V 系统的三相FET前置驱动器。片内含有DC /DC降压电路、电流采样放大器、SPI 通信口及各种保护电路等。PC33896直接接收来自单片机的6路PWM逻辑信号,将其转换成用来驱动6个FET栅极的驱动信号。若汽车系统供电电压是新的42V电系,片内的DC /DC将之降到大约15V 左右用于FET栅极电路驱动,节省了开通和关断FET所耗散的功率;若汽车电源供电电压采用的是现行的12V电系,某些场合电源电压会不足以驱动FET栅极,此时电荷泵电路将之提升到至少10V左右,确保FET的正常驱动。内部电流采样放大器用来测量直流母线电流。单片机能通过SP I口发送指令,配置PC33896 (如DC /DC和电荷泵的工作与否、电流放大器的放大倍数等)以及诊断其故障。
3.4 LIN物理层通信模块
MC33399是面向汽车电子应用的LIN收发器芯片,它和单片机的SCI口构成LIN通信的物理基础。它有正常和睡眠两种工作模式,总线上的唤醒帧可将其从睡眠模式唤醒。
4、控制器的软件设计
由于单片机的内嵌硬件模块和PC33896功能较强,使单片机有足够的资源完成较为复杂的控制策略,从而使控制器的性能大大提高。
4.1 主程序结构
系统的程序采用前后台结构。前台是中断级,后台是任务级。任务级由一个死循环和一个LIN通信服务程序构成。死循环内包含一个有限状态机和一个10ms服务程序,有限状态机如图3所示。系统上电,完成初始化任务后进入死循环。一旦发生SCI接收中断,中断服务程序判断接收到的是否为同步间隔场。若为同步间隔场,程序在退出中断服务时并不返回到死循环中,而是进入LIN通信服务程序,进行报文帧的接收和处理。完成通信服务后,程序重新返回死循环。依据接收的报文帧,有限状态机切换到相应的状态。为保护电机,图中正转态和反转态之间的转换强制经历了中间的停止态过渡。当发生过流或者低电压等出错事件时,控制器进入出错态,它关断所有PWM输出,并记录错误代码。控制器接收到总线的睡眠帧后,进入睡眠态,总线的唤醒信号将重新激活控制器。在正转态或反转态时,死循环内的10ms服务程序每间隔10ms执行一次,完成电机转速计算、PI控制算法、电池电压读取等任务。
图3 主程序有限状态机
4.2 LIN通信报文帧的定制
LIN总线是一种主从机通信模式,报文帧的定制在LIN网络软件总体设计时进行。文中的无刷直流电机控制器是总线上的一个从节点,它响应的报文帧如表1所示。标志符“0x3C”是下载命令帧,用于主节点向所有从节点广播命令和数据,其中第一个数据字节为“00”的是睡眠帧。标志符“0x3D”是上传命令帧,它触发一个从节点(由一个优先的下载帧编址)向主机上传数据。标志符“0x20”是无刷电机控制帧,用于控制器接收主节点的控制信息,第一个数据字节为“01”要求电机正转,为“02”是反转,为“04”是停止,第三、第四两个数据字节是电机转速的给定值。标志符“0x21”是电机状态帧,用于控制器向主节点传输信息,第一、第二两个数据字节是电机的实际转速,第三、第四两个字节表示电池电压。
表1 控制器响应的LIN报文帧
4.3 软件中的中断服务程序
4.3.1 定时器A0、A1、A2输入捕捉中断( inputcap2ture ISR1)
当定时器A0、A1、A2监测到位置信号有跳变沿时,引起输入捕捉中断inputcap ture ISR1。中断程序中通过读取3个引脚的当前电平,并结合前一次中断中读入的值,查询换向表完成换向。
4.3.2 定时器A3输入捕捉中断( inputcap ture ISR2)
定时器A3监测到A2 通道的位置信号有上升沿跳变时,引起输入捕捉中断inputcap ture ISR2。中断程序读取定时器A3通道捕捉寄存器的当前值,结合前一次中断中读入的值和定时器A的溢出次数,算出一个位置脉冲周期内对定时器A的高频时钟脉冲的计数,结果用于速度的计算。
4.3.3 定时器B溢出中断(TIMERB ISR)
定时器B每隔10ms溢出中断一次,中断程序中置位标志位timerflag,从而使得主程序死循环内的10ms服务程序能被执行。
定时器A3、定时器B的中断允许在LIN通信服务程序中被关
无刷直流电机汽车系统单片 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)