ATmega16L的ISP技术在汽车电子差速控制中的应用
时间:03-06
来源:互联网
点击:
1 引言
当车辆行驶在转弯路面或巷道时,传统燃油汽车通过左右轮间的机械差速器保证了两侧车轮能够以不同速度旋转,虽然满足了汽车行驶运动学的要求,同时也增加了减震悬架系统的复杂度,降低了系统的效率。本文研究的电动汽车采用独立的轮式驱动方式,即每个车轮有一个直接驱动的电机。这样,汽车两个后轮都能独立提供驱动动力,可以按运行工况需求独立分配功率,该电子差速控制器是以两个驱动轮的附着系数相等为目标分配两轮的驱动转矩,从而使车辆发生滑转的可能性减小到最小,具有操作灵活,运行稳定的优点,是未来电动汽车发展的主要方向。电动汽车差速控制器的设计除了要考虑稳定性好,更要考虑在工业现场便于维护、升级。使用传统方法对CPU重新编程存在很多不便,所以,采用在系统编程(ISP技术)设计控制器系统。
2 开发模式介绍及芯片选择
本文介绍的应用系统采用了一种新的开发模式(类似于编程器开发模式)。由于利用了芯片的在系统编程(ISP)功能,因此不需要移动芯片。在软件设计时设计成:一旦代码文件被重新编过,即自动下载到芯片,并自动复位运行,是真正的“所编即所得”。
目前很多单片机都支持在系统编程。8051系列单片机支持在系统编程的也很多,但大多数是支持通过PC机的串口对单片机进行编程。这样有四个不方便的地方:一是项目本身与PC机串行通信不方便;二是要增加1片MAX232电平转换芯片;三是有的芯片要按特定的步骤进入下载模式,编程过程需要手工干预;四是有的芯片需要固件(定制的程序)的支持,如果不小心损坏了固件,则芯片的在系统编程功能也没有了。
经过比较,ATMEL公司生产的ATmega16L是一款比较理想的芯片,它的内部集成了较大容量的存储器和丰富强大的硬件接口电路,具备了AVR高档单片机的MEGE系列的全部性能和特点,适合本系统的开发。
在AVR产品中,ATmega16L具有突出特点:
(1) 高性能、低功耗的8bAVR微控制器,先进的RISC精简指令集结构,可通过SPI接口在系统串行编程与8051兼容。
(2) 片内集成了较大容量的非易失性程序和数据存储器。16KB的Flash程序存储器,可擦写寿命达10,000次;512B的EEPROM,擦写寿命达100,000次;支持可在线编程(ISP)和可应用自编程(IAP);可编程的程序加密位。
(3) 丰富强大的外部接口性能。四通道PWM,可实现任意16b以内的、相位和频率可调的PWM脉宽调制输出,为实现先进的电机控制方法提供了条件;8通道A/D转换;32个可编程的I/O口。
(4) 特殊的微控制器性能。可控制的上电复位以及可编程的欠电压检测电路;串行编程时有自动擦写周期,在调试大程序时可以分段下载,节约时间。
3 ATmega16微控制器在系统编程模式
当芯片的引脚RESET接地时,Flash程序存储器、EEPROM数据存储器、熔丝位和加密锁定位都可以通过SPI总线接口[SCK,MOSI(input),MISO(output)]来编程。当RESET引脚为低电平后,在编程/擦除操作之前必须首先发送一条编程允许命令。在串行编程模式下,芯片会在字节编程之前自动插入一个擦除周期。因此,除非芯片的代码保护位被编程,编程之前不需要执行全片擦除命令。芯片擦除指令把程序和数据存储器的每一单元都变成0xFF。而根据系统时钟源的不同,串行编程时钟SCK必须同系统时钟相配合,SCK的低电平和高电平的最小时间定义如下:Low:大于2个MCU时钟周期(fck<12MHz);High:大于2个MCU时钟周期(fck<12MHz)。
4 在系统编程技术在汽车电子差速控制中的应用
4.1 系统组成
整个车辆控制系统分两层,外层是差速控制层,根据从直流电机采集到的速度量反馈到CPU,经A/D转换、CPU内部差速算法计算后产生理想转矩值Td,内层是电机转矩控制层,根据从直流电机采集到的电流量反馈到CPU,经A/D转换、CPU内部PID算法调节后产生实际控制电流Io,CPU通过查表计算出PWM占空比,此信号通过功率转换电路输送给直流电机,一但发现电机功率转换电路内出现过流、过压、过温等异常情况时,保护电路及时通知CUP并做相应调整。系统运行情况由外部状态指示器显示。RS-485输出用于与其他车载电子设备通信。系统组成框图如图1所示:
当车辆行驶在转弯路面或巷道时,传统燃油汽车通过左右轮间的机械差速器保证了两侧车轮能够以不同速度旋转,虽然满足了汽车行驶运动学的要求,同时也增加了减震悬架系统的复杂度,降低了系统的效率。本文研究的电动汽车采用独立的轮式驱动方式,即每个车轮有一个直接驱动的电机。这样,汽车两个后轮都能独立提供驱动动力,可以按运行工况需求独立分配功率,该电子差速控制器是以两个驱动轮的附着系数相等为目标分配两轮的驱动转矩,从而使车辆发生滑转的可能性减小到最小,具有操作灵活,运行稳定的优点,是未来电动汽车发展的主要方向。电动汽车差速控制器的设计除了要考虑稳定性好,更要考虑在工业现场便于维护、升级。使用传统方法对CPU重新编程存在很多不便,所以,采用在系统编程(ISP技术)设计控制器系统。
2 开发模式介绍及芯片选择
本文介绍的应用系统采用了一种新的开发模式(类似于编程器开发模式)。由于利用了芯片的在系统编程(ISP)功能,因此不需要移动芯片。在软件设计时设计成:一旦代码文件被重新编过,即自动下载到芯片,并自动复位运行,是真正的“所编即所得”。
目前很多单片机都支持在系统编程。8051系列单片机支持在系统编程的也很多,但大多数是支持通过PC机的串口对单片机进行编程。这样有四个不方便的地方:一是项目本身与PC机串行通信不方便;二是要增加1片MAX232电平转换芯片;三是有的芯片要按特定的步骤进入下载模式,编程过程需要手工干预;四是有的芯片需要固件(定制的程序)的支持,如果不小心损坏了固件,则芯片的在系统编程功能也没有了。
经过比较,ATMEL公司生产的ATmega16L是一款比较理想的芯片,它的内部集成了较大容量的存储器和丰富强大的硬件接口电路,具备了AVR高档单片机的MEGE系列的全部性能和特点,适合本系统的开发。
在AVR产品中,ATmega16L具有突出特点:
(1) 高性能、低功耗的8bAVR微控制器,先进的RISC精简指令集结构,可通过SPI接口在系统串行编程与8051兼容。
(2) 片内集成了较大容量的非易失性程序和数据存储器。16KB的Flash程序存储器,可擦写寿命达10,000次;512B的EEPROM,擦写寿命达100,000次;支持可在线编程(ISP)和可应用自编程(IAP);可编程的程序加密位。
(3) 丰富强大的外部接口性能。四通道PWM,可实现任意16b以内的、相位和频率可调的PWM脉宽调制输出,为实现先进的电机控制方法提供了条件;8通道A/D转换;32个可编程的I/O口。
(4) 特殊的微控制器性能。可控制的上电复位以及可编程的欠电压检测电路;串行编程时有自动擦写周期,在调试大程序时可以分段下载,节约时间。
3 ATmega16微控制器在系统编程模式
当芯片的引脚RESET接地时,Flash程序存储器、EEPROM数据存储器、熔丝位和加密锁定位都可以通过SPI总线接口[SCK,MOSI(input),MISO(output)]来编程。当RESET引脚为低电平后,在编程/擦除操作之前必须首先发送一条编程允许命令。在串行编程模式下,芯片会在字节编程之前自动插入一个擦除周期。因此,除非芯片的代码保护位被编程,编程之前不需要执行全片擦除命令。芯片擦除指令把程序和数据存储器的每一单元都变成0xFF。而根据系统时钟源的不同,串行编程时钟SCK必须同系统时钟相配合,SCK的低电平和高电平的最小时间定义如下:Low:大于2个MCU时钟周期(fck<12MHz);High:大于2个MCU时钟周期(fck<12MHz)。
4 在系统编程技术在汽车电子差速控制中的应用
4.1 系统组成
整个车辆控制系统分两层,外层是差速控制层,根据从直流电机采集到的速度量反馈到CPU,经A/D转换、CPU内部差速算法计算后产生理想转矩值Td,内层是电机转矩控制层,根据从直流电机采集到的电流量反馈到CPU,经A/D转换、CPU内部PID算法调节后产生实际控制电流Io,CPU通过查表计算出PWM占空比,此信号通过功率转换电路输送给直流电机,一但发现电机功率转换电路内出现过流、过压、过温等异常情况时,保护电路及时通知CUP并做相应调整。系统运行情况由外部状态指示器显示。RS-485输出用于与其他车载电子设备通信。系统组成框图如图1所示:
图1 汽车电子差速控制系统结构图 本系统设计的ISP接口区别于通常将TTL电平转换成RS-232电平的做法,如图2所示,利用该电路图可以方便的实现电动车差速控制系统与PC机的通信。通过计算机并口与单片机SPI口连接,为了保护计算机并口,需要增加1片74HC244作为隔离。
图2 在线下载ISP硬件原理图4.2 Atmega16L微控制器的ISP技术实现
(1) Atmega16L在系统串行编程步骤
●在XTAL1和XTAL2之间连接一个8MHz的晶振;在VCC与GND之间加上电,同时将RST和SCK设置为低电平。
●等待至少20ms,由MOSI引脚送入串行编程允许命令。
●Flash是按页编程,一次操作对应一个页编程。发送写/读/擦除等命令及数据,串行数据高位在前,低位在后,数据在时钟的上升沿锁定。
●如果上一步是写命令,至少等待4.5ms。
●需要时重复③、④两步。
●将RESET引脚设置为高电平,芯片开始执行程序。
(2) Atmega16L串行编程命令
Atmega16L串行编程命令表附表所示。
附表 Atmega16L串行编程命令
注:a=高位地址,b=低位地址,H=0(低字节)/L(高字节),o=数据输出,i=数据输入,x=任意
(3) Atmega16L串行编程时序图
Atmega16L串行编程时序图如图3所示:
- 基于MMS的即时报警系统设计(01-23)
- ATmega16L驱动ILI9325/9328(11-20)
- TWI ATMEGA16L 丛机模式(11-13)
- ATmega16L学习板18B20测试程序(11-11)
- 基于Atmega16L的简单音乐制作(10-08)
- ATmega16L-----外部中断0,1中断嵌套(08-22)