《基于can总线的倒车报警系统资料.doc》由会员分享,可在线阅读,更多相关《基于can总线的倒车报警系统资料.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、检测与传感综合应运设计报告 题 目: 基于CAN总线的倒车报警系统 学 院:专 业:班 级:姓 名:学 号: 摘 要随着汽车产业的发展和人们生活水平的提高,汽车的保有量逐年增加。新手司机、技术不过关的司机越来越多。由于视野受限和固定的盲区使得倒车对大多数驾驶员来说还是一个难题,据统计由汽车倒车引起的事故所占比列不可小视,倒车的问题日益受到驾驶员和相关厂商的关注。汽车倒车报警系统是一种智能电子监控系统,在驾驶员驾驶车辆进行停车或倒车时,检测车辆侧面和后面的障碍物距离并输出方向盘转向提示,当障碍物与车之间的距离超过设定的域值及安全驾驶距离时倒车会发出声音报警,提醒驾驶员控制汽车与障碍物保持一定的安
2、全距离。这样一来即使驾驶员视野处于盲区也能使车辆有效躲避障碍物,避免发生碰撞,从而实现安全倒车。 本文对基于CAN总线的汽车倒车报警系统的研制进行了深入探讨和研究。测距控制器通过CAN与超声波测距机进行数据交换,并利用CAN总线将障碍物距离信息实时传给主控制器。主控制器结合所有超声波测距机的距离值,利用模糊控制算法求解出汽车转向并输出给显示器,同时驱动蜂鸣器报警。CAN总线是一套开放式多主串行总线通讯协议。单个电子设备作为CAN总线中的一个普通节点,所有节点构成整个网络,共享数据信息。在本系统中,6个测距控制器和1个主控制器分别作为节点组成了整个CAN通讯网络,每个节点控制器均以STM-32f
3、103VET6微处理器为核心,TJA1050为收发器,设计硬件电路。节点控制器的软件系统是在Keil-uVision5集成开发环境中,利用C语言编写、调试和烧录的。这其中,模糊控制算法程序、显示器和蜂鸣器的驱动程序全在主控制器中实现。论文最后,在我们搭建的硬件平台上对汽车倒车报警系统进行测试实验并得出结论,CAN总线通讯网络稳定、安全、实时性好。倒车模糊控制方法实现简单、可靠,能为驾驶员提供有效的操作指示,整个系统的性能满足设计目标。关键词:CAN总线 超声波 测距报警一、 设计名称基于CAN总线的倒车报警系统二、设计目的及思路汽车倒车报警系统既是俗称的倒车雷达,是汽车的泊车辅助装置。在汽车倒
4、车时,倒车雷达采用超声波测距原理探测汽车尾部里障碍物的距离,当汽车尾部离障碍物的距离达到探测范围时,倒车雷达通过串口打印实时动态显示距离。当汽车尾部离障碍物的距离达到设定的安全警告时,倒车系统发出报警声,以警示驾驶员,辅助驾驶员安全倒车,为驾驶员的倒车安全提供保证和方便。本课题为“基于CAN总线的倒车报警系统”。首先需要明确倒车雷达的概念及大体的发展状况,从而给出适当的设计方案。本课题主要研究超声波测距的原理、性能特点及作用、基于网络的功能及作用。思路:该倒车报警系统主要通过单片机来控制,软件采用C语言进行编程,主要通过C语言实现相应的测距算法和中断、计时及单片机与其他各器件的串口通信,从而进
5、行障碍物与汽车距离的测量,实现数据的显示。目前要解决的主要问题是如和编程实现超声波测距过程的中断、计算以及单片机与显示器与其他外围电路的串口通信的实现。三、设计方案利用can总线传输技术将测的的数据分段报警0-10cm,流水灯闪烁同时蜂鸣器报警10-50cm,流水灯较缓慢闪烁50-100cm,流水灯缓慢闪烁100cm,灯常亮四、设计内容介绍4.1 CAN总线介绍4.1.1CAN是Controller Area Network的缩写(以下为CAN),是ISO*1国际标准化的串行通信协议。 在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。
6、由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。此后,CAN通过ISO11898及ISO11519进行了标准化,现在在欧洲已是汽车网络的标准协议。 现在,CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。4.1.2 CAN的特点(1) 多主控制 在总线空闲时,所有的单元都可以发送消息(多主控制)。最先访问总线的单元可获得发送权。多个单元同时开始发送时,发送高优
7、先级ID消息的单元可获得发送权,所有的消息都以固定的格式发送。(2) 系统的柔软性 与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。(3) 通信速度 根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。4.2硬件电路设计 4.2.1超声波发生电路 超声波发送器包括超声波发生电路和超声波发射控制电路两个部分超声波探头可选用CSB40T。超声波产生既可用软件发生法也可用硬件发
8、生法,前者利用软件产生40kHz的超声波信号通过输出引脚输入至驱动器经驱动器驱动后推动探头产生超声波。这种方法的特点是充分利用软件灵活性好但需要设计一个驱动电流在100mA以上的驱动电路,后者是利用超声波专用发生电路或通用发生电路产生超声波信号,并直接驱动换能器产生超声波。这种方法的优点是无须驱动电路,但缺乏灵活性。本设计采用第一种方法产生超声波40kHz的超声波是利用555定时电路振荡产生电路设计如图1所示。 其振荡频率计算式为,将R10设计为可调电阻的目的是为了调节信号频率使之与换能器的40kHz固有频率一致。为保证555时基具有足够的驱动能力宜采用+12V电源。CNT为超声波发射控制信号
9、由单片机进行控制。单片机端口输出功率不够,40kz方波脉冲信号凤城两路,送给一个由74HC04组成的推挽式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发射换能器以声波形式发射到空气中。发射部分的电路如图一所示。图中输出端上拉电阻一方面可以提高反向器74HC04输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间。从图中可知,当输入的信号为高电平时,上面经过两级反向CSB40T的1引脚为高电平,下面经过一级反向后为低电平:当输入信号为低电平,正好相反,实现了振荡的信号驱动CSB40T,只要控制信号接近40kHz,j就能产生超声波。图一 超声波
10、发射电路图74HC04芯片介绍:该74HC04是高速的硅栅CMOS器件,并兼容低功耗肖特基的TTL。74HC04提供的6个颠倒缓冲器。其管脚图如图二所示图二 74HC04管脚图 4.2.2超声波接收电路 超声波接收电路使用集成电路CX20106A可用来完成信号的放大、限幅、带通滤波、峰值检波和波形整形等功能具有高灵敏度和强抗干扰能力电路如图1所示。其中的前置放大器具有自动增益控制功能可以保证在超声传感器接收到较远微弱信号时放大器有较高的增益而在近距离输入信号强时放大器不至于过载其带通滤波器中心频率可由芯片5脚的外接电阻调节需要外接电感可避免外磁场对电路的干扰可靠性较高。 接收器将接收到不同方向
11、来的超声波回波信号转换成电压信号波再经过两级放大后送电压比较器进行比较电压比较器输出的方波信号直接输入INTO中断口该低电平作为AT89C51外部中断0的中断信号使AT89C51产生中断在中断服务程序中停止计数器T0的计时,并计算出相关数据。使用CX20106A集成电路对接收收探头收到的信号进行放大、过滤。其总放大增益80db。以下是CX20106A的引脚注释。1脚;超声信号输入端,该脚的输入阻抗约为4000。2脚:该脚与地之间连接RC串联网络,他们是负反馈串联网络的一个组成部分,改变他们的数值能改变前置放大器的增益和频率特性。增大电阻R4或减小C4,将使负反馈量增大,放大倍数下降,反之则放大
12、倍数增大,但C4的改变会影响到频率特性,一般在实际使用中不必改动,推荐选用参数为R4=4.7,C4=1F.3脚:该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.34脚:接地端。5脚:该脚与电源间接入一个电阻,用以设置带通滤波器的中心频率f0,阻值越大,中心频率越低。6脚:该脚与地之间接一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。7脚:遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,推荐阻值为22k,没有接受信号是该端输出
13、为高电平,有信号时则产生下降。8脚:电源正极,4.5到5v.4.2.3报警部分采用一个蜂鸣器,输出一定频率的信号,在连接到蜂鸣器之前,经过一个三极管9012的放大。报警部分的连线,如图四所示图四 报警电路图通过单片机软件产生3KHZ的信号从P3.7口送到三极管9013的基极,控制着电压加到蜂鸣器上,驱动蜂鸣器发出声音。五、代码1、接收端主程序#include pbdata.hvoid RCC_Configuration(void);int main() RCC_Configuration();LED_Config();USART_Config();CAN_Config(); CAN1_RX(&
14、RxMessage); while(1)if(Flag=1) Flag=0; switch(RxMessage.Data0) case 12:Beep_Ararm(200); LED_Rse(50);break; case 13: LED_Rse(200);break; case 14: LED_Rse(500);break; case 15: LED_Flash();break; void RCC_Configuration(void) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RC
15、C_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);RCC_APB2Pe
16、riphClockCmd( RCC_APB2Periph_AFIO,ENABLE);2、检测端主程序#include pbdata.hvoid RCC_Configuration(void);int main() RCC_Configuration();LED_Config();USART_Config();CAN_Config(); Tim2_Init();delay_ms(5);GPIO_ResetBits(GPIOD,GPIO_Pin_3); while(1) CSB_Test(); void RCC_Configuration(void) RCC_APB2PeriphClockCmd(
17、RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); RCC_
18、APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);六、结果截图七、参考文献 1、Cortex-M3开发技术与实验教材2、HC-SR04-超声波数据手册3、STM32103数据手册及其开发板原理4、百度文库资料八、设计心得本文在分析了汽车业现状的基础上,提出了汽车倒车防撞系统设计及其重要性。文中对超声波测距的原理和实现进行了详细描述,并详细介绍了CAN总线的内部结构及各管脚的功能。在此理论只是基础上,本文利用STM32单片机对系统发射与接受、显示报警等硬件电路进行了设计,并对设计电路作了分析。通过掌握了系统的工作流程,设计了该系统的主流程、显示子程序和蜂鸣报警程序。文中对基于CAN总线的倒车报警系统的设计可应用于汽车倒车等场合,用于提醒驾驶员在倒车时能有效的避开可能对倒车造成危害和障碍物和行人,具有较强的实用性。当测距障碍物斜对面或是其他复杂界面也会影响测量的精确性,以上不足需要进一步改进,相信未来随着科学的不断完善发展,倒车报警系统可完美的实现在驾驶工作中。