基于AVR Flash微控制器的电动车窗防夹系统设计的基本原理

发布者:pengbinyyy最新更新时间:2013-12-07 来源: eefocus关键字:AVR  Flash微控制器  电动车窗  防夹系统 手机看文章 扫描二维码
随时随地手机看文章

  汽车上可自动关闭的电动车窗或车门设备潜藏着卡死,挤压以及可能伤人的危险。它们必须能够反向移动以防止马达所施加的力超出正常限制。这种特性意味着必须持续监视速度、电流和玻璃的位置。

  由于成本和简化的原因,本文所描述的系统使用普通的带有霍尔效应传感器的刷式马达。基于速度和扭矩导数的检测算法已通过健壮性和容错性的验证。该算法可用于所有带有A/D 转换器和通过变化引发中断的I/O 口的AtmelAVR Flash 微控制器。本文描述的是基本原理,Atmel网站上的应用笔记有关于实现的详细描述。

现代汽车中的电动设备

  目前,在高端客用汽车中电子组件和系统在成本中已占20%以上。增加电子设备的数目可以更好的控制传感器和致动器,从而增强汽车的舒适性和安全性。可以预测,大部分的中等或高级汽车将会系统性的装备电动车窗或车门系统。这些设备中的绝大多数是全自动的,这意味着它们必须附带安全系统以防止伤人或机械故障。已有法规设立了电动系统必须遵守的规则。这一点在车窗的升起和车门的滑动上尤其正确的。这篇应用笔记介绍了如何实现一个防夹算法,该算法最初是用于电动车窗系统,但可以轻易地移植到其它可移动设备中。

标准

  汽车电动车窗受国际标准的约束,如美国的MVSS118 或欧洲的74/60/EEC。在如何降低对儿童的危险度方面,这些文档所提出的要求如下:检测区域:4mm 至200mm;最大夹物力为100N;夹住时可以反向;确定偏转角测试:5N/mm 至 20N/mm。

 

关于硬件

  对于确定关键夹物区是否有障碍物进入的不同检测策略有:

  (1)无机械接触。在夹物力施加至物体上之前就有反应。因为没有外力施加在物体上,这是最优的保护方式。它还不依赖于振动、空气动力学变化或变形。但该方法要求有集成的传感器(红外、超声波,等等)以及相关的电路模块和线路,从而导致附加成本。

  (2)有机械接触。所测到的压力传递给系统用于指示有物体被夹住。在这方面,设计者还有两种基本的技术可用:方向测量(力学传感器或接触器集成进车门密封中,这些解决方案成本一直都很高并限制了车窗/车门的样式设计),或者通过物理监测的无方向测量(这是一种整体成本上最优的解决方案)。

防夹算法详述

  夹物检测算法一开始就要符合标准(FMVSS118 & 74/60/EEC)的要求:检测区域为4 至200 毫米;最在施加力100 牛;夹住物体时反转方向;标准的确认性测试。

  必须要自适合的原因包括:– 提升系统中的机械部分将会随着时间而变化(老化、局部变形、磨损,等等);– 电子特性会有很大的变化;– 环境对磨擦力的影响(温度、湿度、结冰等);系统不应对扰动和不正确的夹物检测有反应。对于空气的磨擦、道路的振动、断电等都必须是健壮的。

使用马达的解决方案的物理参数

  必须可以通过马达的电流算出施加在玻璃上的力。在速度方面可以持续提供移动部件的位置信息。这些参数都可以用于确定是否遇到物体以及:该物体是否在检测区;所施加的力是否超限。

  本文描述了一种防夹算法,该算法通过测量电机电流和霍尔效应速度指示器来工作。只须很少的改动,就可以将该算法用于象滑动车门或蓬顶这样的系统中。

夹物检测算法

  一般情况下,夹物检测算法的运行是通过间接测量车窗提升系统的,包括电流(扭矩)和位置(速度)。与算法相关的应用笔记采用了两种技术,它们是基于:

  – 存贮在无冲突内存中的校准扭矩:执行初步学习顺序,将扭矩值存贮在内存中。这种技术很耗费内存,并要求规定校准顺序。[page]

  – 速度推导计算:很有意义的一种技术,因为它对内存要求较少,但需要更多的计算,具有两种方法的优点。

在AVR上的实现

  前几段详细描述的算法已经实现,并在一块AVR ATmega88 开发板上进行了测试。图2 描述的是用以实现算法的硬件。它采用了一块标准的ATmega88 以及模拟链来测量电机电流。硬件带有两个霍尔效应传感器。马达的方向是通过一个两极延迟来控制的,并通过一个场效应管来激活马达的开关。

 

系统内编程Flash

  系统内编程允许任何位于端系统内的AVR 微控制器进行编程和再编程。通过一个简单的三线SPI 接口,系统内编程器与AVR 微控制器进行串行通讯,从而重编程芯片上的所有非易失性内存。系统内编程无须将芯片从系统中物理上拿出。这样无论是在实验室的开发阶段,还是现场的软件或参数的升级,均可以节约时间和资金。在最终产品阶段将代码上传进Flash 存储器中时,在多个应用和自定义版本中使用同一个标准的AVR Flash 微控制器可以简化总量管理。

软件描述

  所有代码使用IAR EWAVR 4.1 以C 语言方式实现。基本功能(位置管理、初始化、电流管理、车窗操作、防夹监测)的实现需要2KB Flash。增加扩展功能象校准、阻塞点的检测和存储,可将代码大小扩展至4KB。软件代码可在Atmel的网站中获得,其结构如下:

  初始化脚通过一个霍尔效应传感器(对信号沿的升起和下降敏感)改变所要用的中断。它还初始化用于测量速度和马达电流的时钟和ACD。

  这个函数从EEPROM 或以初始值方式加载车窗提升参数,以初始化车窗提升器。这些参数包括车窗的大小、传感器值、夹物阈值、夹物区域、已知的最后的位置,等等。如果在位置参数上是一个缺省值,它能够请求一个下降的命令在底端限制值上初始化车窗提升器。

  这个函数是将车窗提升参数存进EEPROM。

  这个函数包含了车窗提升状态机。它通过已有的事件参数控制车窗的操作。监视车窗的位置、上升和下降端的限制以及防夹系统的状态。返回车窗提升器的状态(与get_window_state 函数的值相同)。

  这个中断子例和在霍尔传感器沿执行。它计算滚动方向、位置、推导速度和马达电流参考值。通过计算连续的方向变化,它还能够检测出霍尔效应传感器的缺省值(传感器没有连接至一个中断脚上)。

  这个函数强制车窗在一个定义好的步骤后停下来。该函数返回车窗提升状态机的状态(这个返回值用于window_ctrl 函数中)。

  建立车窗提升状态:用于强制性操作中(如停止请求…)

  计算最后8 个采样点的均值。用于过滤马达电流。

  这个函数监视启动按钮,产生操作命令事件并传递给window_ctrl 函数。

关键字:AVR  Flash微控制器  电动车窗  防夹系统 引用地址:基于AVR Flash微控制器的电动车窗防夹系统设计的基本原理

上一篇:基于AVR和FPGA数字式移相信号发生器的设计
下一篇:AVR单片机与上位机通信协议的制定

推荐阅读最新更新时间:2024-03-16 13:31

简述AVR单片机定时器
AVR定时器的要点介绍 M16的T1 16位定时器一共有15种工作模式,其他2个8位定时器(T0/T2)相对简单,除了T2有异步工作模式用于RTC应用外 (可以利用溢出中断和比较匹配中断作定时功能) 分5种工作类型 1 普通模式 WGM1=0 跟51的普通模式差不多,有TOV1溢出中断,发生于TOP时 1 采用内部计数时钟 用于 ICP捕捉输入场合---测量脉宽/红外解码 (捕捉输入功能可以工作在多种模式下,而不单单只是普通模式) 2 采用外部计数脉冲输入 用于 计数,测频 其他的应用,采用其他模式更为方便,不需要像51般费神 2 CTC模式 WGM1=4,12 跟51的自动重载模式差
[单片机]
车门控制模块的电动车窗的设计
以前曾用机械方法控制的车门系统现在逐渐改成电子控制,越来越多的低端汽车也开始采用电子控制的车门控制系统,利用CAN或者LIN总线通信技术实现四个车门之间的通信。车窗防夹功能是车门控制系统的难点之一。门控系统具有多种故障诊断能力,能够及时识别出短路、断路、过热、过载等故障。 本文结合汽车车门控制模块设计的项目实践,重点介绍了电动车窗部分的硬件和软件设计。对智能功率芯片BTS7960在正常运行时的启动特性及故障检测特性进行了研究与分析,并给出了试验结果。 车门控制模块的整体设计 图1是门控模块的原理框图,其中微控制器XC164CS用于控制所有功率器件的开关动作,同时对系统状态进行定时监控,接收合适的故障反馈信号,并通过车载网络
[应用]
缺少仿真器时avr单片机的开发方法
对FLASH存贮器单片机,不要仿真机也能方便快速地开发程序。具体可以从以下几方面入手: 一、尽量使用高级语言开发系统程序 您有没有在写汇编程序时,标错一个标号而浪费您大把时间找错或跳转偏移量过大而不得不改动程序结构的经历。其实您如果使用高级语言开发程序,就不会有这样的痛苦。 在开发程序时,除了建立一个良好的开发文档外,使用语言的选择也很重要。有许多人认为使用汇编写程序比较精简,而用高级语言开发会浪费很多程序空间,其实这是一种误解。对一个有经验的,而且非常熟悉某种单片机的汇编高手而言,他是能写出比高级语言更精简的代码。而对汇编不是很熟的开发者、或突然更换了一种新的单片机,您能保证一定可以写出比高级语言更简练的代码吗? 高级语言的优越
[单片机]
建立一个AVR的RTOS(5)—完善的协作式的内核
第五篇:完善的协作式的内核 现在为上面的协作式内核添加一些OS中所必须的服务: 1、挂起和重新运行任务 2、信号量(在必要时候,可以扩展成邮箱和信息队列) 3、延时 #include avr/io.h #include avr/Interrupt.h #include avr/signal.h unsigned char Stack ; register unsigned char OSRdyTbl asm( r2 ); //任务运行就绪表 register unsigned char OSTaskRunningPrio asm( r3 ); //正在运行的任务 #define OS_TASKS 3 //
[单片机]
基于AVR单片机的智能跑步机控制器设计
1 引言 电动跑步机是目前健身器材中的主流产品,它是通过电机带动跑步带使人以不同的速度被动地跑或走,在人体用力方面,比在地面上跑、走省去了一个蹬伸动作,可使人比在地面运动消耗更多能量。但由于其功能比较单一,缺乏娱乐性和交互性,长时间锻炼会使人感到枯燥乏味。在全社会崇尚健身就是生活质量的今天,传统电动跑步机这种单调重复运动已难以满足人们对健身品质的要求,而具有虚拟现实功能的智能跑步机,以计算机虚拟的模拟环境代替现实世界的真实环境,给人身临其境的沉浸感,增加了健身的乐趣,已成为目前的研究热点。本文将传统电动跑步机与虚拟现实技术相结合,研究并设计了具备传统电动跑步机各种健身模式且具有虚拟场景漫游功能的智能电动跑步机控制系统。系统通过上
[单片机]
基于<font color='red'>AVR</font><font color='red'>单片机</font>的智能跑步机控制器设计
msp430F149单片机flash读写程序
//基于msp430F149单片机的flash读写,记录430的运行状态, //实现在复位和掉电的情况下,恢复原始运行状态。 #include msp430x14x.h #include function.h unsigned char value1=0; // 待写入段A的值 unsigned char *data =(unsigned char *)0x4080; // 段A的头指针 void write_SegA (unsigned char value1) { char *Flash_ptr; // Flash pointer Fl
[单片机]
一个avr单片机的汇编程序,注意几个宏指令
//晶振1MHz //LED接PB0 //使用定时器1,1024分频,0.5秒中断一次,LED闪烁一次 程序如下: .include m8def.inc .equ led =0 .equ flash =$60 .org $0000//中断向量表 rest: rjmp START INT0addre: ; External Interrupt0 Vector Address reti INT1addre: ; External Interrupt1 Vector Address reti OC2addre : ; Output Compare2 Interrupt Vector Address reti OVF2addre: ;
[单片机]
NRF24L01无线模块接收-AVR程序代码
#include #include #include lcd12864.h #define uint unsigned int #define uchar unsigned char #define MISO PINB.6 #define SCK PORTB.7 #define MOSI PORTB.5 #define CSN PORTC.0 #define CE PORTC.1 #define IRQ PORTC.2 #define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式 #define EN_AA 0x01//自动应答使能 #define EN_RXADDR 0x02
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved