微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于CAN通信的卡车语音报警器的设计

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

时间:10-28 来源:作者:刘玥 点击:
软件描述

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

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

图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(左)所示。

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

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

  小结

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top