基于CAN通信的卡车语音报警器的设计

发布者:BlossomJoy最新更新时间:2013-12-12 来源: 21ic关键字:CAN通信  卡车语音报警器  汽车诊断技术 手机看文章 扫描二维码
随时随地手机看文章
汽车诊断技术是汽车安全技术中不可缺少的一部分,它能在汽车发生故障时及时地进行语音报警,避免事故的发生。CAN即控制器局域网,是国际上应用最广泛的现场总线之一。由于CAN总线技术的优良特性,在汽车电气系统以及其他一些实时控制单元中得到广泛应用。一种基于CAN总线的通信网络具有速度高、抗噪性强及通用性好等优点。

我们设计的基于CAN总线技术的卡车语音报警系统能给汽车乘员提供一个安全的驾乘环境。该语音报警系统采用了摩托罗拉公司的M68HC908GZ16微控制器,该微控制器尺寸小,资源齐全,具有很高的性价比。

CAN总线位定时

CAN总线采用同步串行通信方式,数据流中的字符与字符之间、字符内部的位与位之间都同步,这就要求收/发双方必须以同步时钟来控制数据的发送和接收。要在相当长的数据流中保持位同步,接收端必须能识别每个二进制位是从什么时刻开始的,这就是位定时。通常为保证接收器时钟和发送器时钟严格一致,采用接收器通过解调器从数据流中提取同步信号,或者接收器和发送器使用统一的时钟的方法。但是即便这样,仍然很难解决总线传输延时问题。针对以上问题,CAN总线的位定时改进了位编码/解码。

CAN总线位定时由4部分组成:同步段(SYNC_SEG)、传播段(PROP_SEG)、相位段1(PHASE_SEG1)和相位段2(PHASE_SEG2)。同步段用于同步总线上的各节点,在此段等待一个跳边沿;传播段用于补偿网络内的物理延迟时间;相位段1及相位段2用做补偿相位误差。在采样点读总线电平。

M68HC908GZ16微控制器(见图1)中内置CAN控制器,提供了波特率控制寄存器;SJW(重同步跳转宽度)决定了一次重同步期间一个位时间被延长或缩短的时间量子;BRP为波特率预分频系数;Spl(采样模式位)决定对有效位采样的次数。

newmaker.com
图1 MC68HC908GZ16的内部结构

位定时主要用于定义CAN总线通信的速率,对同一总线上的各个节点应定义同一种通信速率,否则无法进行通信联系。CAN控制器的总线工作频率计算公式如下:

newmaker.com

式中:BRP为系统预分频因子,它在TSEG1域中的取值范围为0~63;TSEG1、TSEG2的值由位定时寄存器编程决定,并满足1≤TSEG1≤7,2≤TSEG2≤15。报警器中位定时的设置,定义通信频率为250KB/s。设定DSC=BRP=1,TSEG1+TSEG2=5,系统晶振频率为8MHz,即XTAL=8MHz,CAN通信频率由上式计算得到250KB/s。

最后位定时设置结果为:BRP=1,TSEG2=2,TSEG1=3。

newmaker.com
图2 语音报警系统结构

设计概述

该卡车语音报警系统的设计目标是:成本低;功能强大;适用于日常应用;能够应用于各类车辆。该系统可实现如下功能:利用CAN网络实现对卡车故障码的接收;二,通过识别CAN系统传过来的信号,并对信号进行处理得到相应的语音提示,通过与语音芯片的连接实现相应故障的语音播放报警。

该语音报警系统以摩托罗拉公司的MC68HC908GZ16处理器为核心,并利用其丰富的接口扩展使用了语音播放、CAN通信接口等外围模块,使产品设计更加人性化。MC68HC908GZ16处理器具有如下优点:

1.丰富的硬件资源

MC68HC908GZ16为闪存型MCU,内部拥有16K的FLASH存储空间和1K的RAM存储空间。内部拥有锁相环电路,能够在使用低速晶振的情况下使总线频率最高达到8MHz。同时拥有多达37个通用I/O口,可以方便地与其他外围设备相连接。

newmaker.com
图3 卡车报警器电路原理图

2.极强的抗扰能力

内部集成了CAN控制器,利用CAN通信具有很强的抗干扰这一特点,保证了产品能够在恶劣环境条件下高效而稳定地运行。 [page]

本设计采用CAN通信的方式完成卡车语音报警系统的设计,系统结构如图2所示。

通过MC68HC908GZ16上集成的MSCAN08模块实现数据通信。利用C68HC908GZ16的I/O口,我们在设计中使用了市场上常见的ISD公司的ISD4002-120数码语音芯片。该芯片采用3V直流供电,可以录制并保存2min的语音信息。其采样频率为8kHz,信息分辨率可达200ms,能够非常真实地再现语音、音乐、声调和效果音。

硬件设计

从图3可以看出,卡车报警器电路主要由三部分构成:微控制器MC68HC908GZ16(内部集成的MSCAN08模块)、语音芯片ISD4002和CAN总线收发器TLE6250、ZJYS。微控制器负责MSCAN08模块的初始化,通过CAN模块实现数据的接收和发送等通信任务。CAN通信控制模块主要完成CAN的通信协议。CAN控制模块可完成物理层和数据链路层的所有功能,适用于汽车及一般的工业环境。利用CAN通信不但可以减少导线连接,而且能增强诊断和监控能力。

CAN收发器TLE6250用于提供对总线差动发送和接收的驱动能力,具有输出信号CANH和CANL的最佳匹配、电磁辐射更低、无待机模式等优点。CANH和CANL与地之间并联两个25PF的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射作用。

软件描述

软件编程主要实现两大功能:利用总线进行故障码接收;通过转换故障码实现相应的语音故障报警。语音播放根据其功能设计,整个程序大部分操作在主程序中完成,而CAN接收是在中断中完成。

主程序中的操作是初始化各寄存器、I/O端口,然后在死循环中根据标志位进行相应的处理,具体流程如图4所示。

newmaker.com
图4 主程序流程图

1.语音模块软件设计

语音模块使用了ISD4002芯片。单片机通过I/O接口与ISD4002建立连接,并通过命令字的方式控制语音播放的地址,实现语音播放的控制。

2.CAN通信模块软件设计

在CAN总线编程时,需要定义一系列的控制字配置,并要在装置上进行配置。其具体步骤包括:定义CAN控制寄存器、定义位定时、定义信息体屏蔽方式、信息体的初始化、信息体发送数据和信息体接收数据。

(1)MSCAN08模块的初始化

MSCAN08模块的初始化主要是定义通信速率。配置位定时寄存器以确定CAN的通信速率、配置全域屏蔽寄存器以确定滤波策略、初始化每个信息体。初始化信息体需要确定信息体类型(发送还是接收),设定符合CAN协议的ID、SRR、IDE和RTR。CAN通信首先要进行初始化。在完成MSCAN08模块的初始化以后,MSCAN08模块就可以回到工作状态,进行正常的通信任务。

(2)数据的接收与发送

报文的发送由CAN控制器独立完成,微控制器只要将发送的数据传送到发送MSCAN08模块相应的发送信息体中,然后将命令寄存器中的“发送请求”标志置位即可。报文发送流程图如图5所示,在发送之前先做判断。发送程序分为发送远程帧和数据帧两种。远程帧无数据场,其程序流程图如图5(左)所示。

newmaker.com
图5 CAN发送和接收流程图(左为发送流程,右为接收流程)

MSCAN08模块的接收非常灵活。如果根据CAN总线应用层协议规定好ID的含义,就可以通过设定3个屏蔽寄存器(1个全局的,2个特殊的)将需要的数据接收到消息缓冲区,将不需要的过滤掉,再通过读当前消息缓冲区的ID确定数据所代表的含义。AN82527报文接收主要有两种方式:中断方式和查询方式,在该系统中采用了中断方式。报文接收流程图如图5(右)所示。

小结

该卡车语音报警系统已经在台架上进行了实验,并在与其他控制器的台架实验中取得了良好的通信效果,能实现良好的语音报警功能。此外,该设计还需进行进一步的实车验证,其基本设计思路也可应用于轿车中。 (end)
关键字:CAN通信  卡车语音报警器  汽车诊断技术 引用地址:基于CAN通信的卡车语音报警器的设计

上一篇:基于ATmega8的超声波倒车雷达实现方案
下一篇:一种寻迹小车中分布式控制系统的设计与应用

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

AT90CAN的CAN通信模块驱动设计及C编程
  CAN总线通信较之一般的通信总线而言,其数据通信具有突出的可靠性、实时性和灵活性,应用范围也早已不再局限于汽车行业,而是扩展到了机器人、数控机床、家用电器等领域。CAN控制器用来实现统一的CAN通信协议。CAN控制器分为两种: 一种是独立的控制芯片,如SJA1100;另一种是将其集成在微控制器内部,例如Atmel公司最新推出的AT90CAN系列单片机。与使用独立的CAN控制器相比,自身集成了CAN接口的微控制器在简化硬件电路设计的同时,提高了软件开发的效率。   1  AT90CAN单片机CAN控制器特性   AT90CAN单片机的CAN控制器能够兼容CAN2.0A和CAN2.0B通信协议,内部设有120字节的邮箱空间,它由
[嵌入式]
基于OZ890的电池管理模块的研制
0 引 言 电池管理模块(Battery Management Module)是电动汽车必不可少的核心部件。它能够对蓄电池组进行安全监控和有效管理,提高蓄电池的使用效率和可靠性,延长电池的使用寿命。电池管理模块可以检测混合动力电动汽车电池的充放电电流、总电压、单体电压,估算电池荷电状态(State of Charge)在汽车启动和加速时提供能量,刹车时电池组能回收能量。电池管理技术是电动汽车发展的关键技术之一。 电池管理模块的功能 电池管理模块具有数据采集、电池荷电状态和可用功率估算、电池组均衡控制、热管理、各种通信以及故障诊断功能。 1.1 数据采集 单体电压的采集使用凹凸科技公司的电池专用采集转换芯片OZ890,它
[单片机]
基于OZ890的电池管理模块的研制
cubemx+stm32f407+双Can通信
最近几天在用CUBEMX实现stm32f407zgt6的双can通讯,中间走了一些弯路,记录下来供需要的人参考借鉴,希望可以帮助大家节省开发周期。 准备工作: 一、硬件 使用启明高配版开发板,因为启明的板子上有两个can可以使用,在调试之前,需要先将can1_H连接can2_H,can1_L连接can2_L,并且需要将P15和P21跳线帽连接好。 二、软件工具 1.我使用的软件版本是CUBEMX4.27,使用的库为fw_f4_v1210。 2.keil版本 程序编写 can在网上有很多介绍,可以在网上搜索一些基础介绍,之前调试can主要是卡在了新的库包里对滤波器以及FIFO和回
[单片机]
cubemx+stm32f407+双<font color='red'>Can通信</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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