首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于ARM 和Qt/E的车载HMI终端的设计方案
来源:本站整理  作者:佚名  2012-04-27 16:55:00



3.1CAN/RS232协议转换器的硬件设计

CAN/RS232协议转换器主要有主控制器、CAN接口模块与RS232接口模块组成,其中主控制器采用STC89C52单片机负责处理CAN总线与RS232总线的数据接收与发送,实现两种不同协议数据帧的透明转换与传输。

CAN接口模块采用Philips公司的CAN控制器SJA1000和CAN收发器PCA82C250芯片组成,主要实现CAN协议的物理层和数据链路层功能。其中CAN控制器完成数据链路层功能,实现与主控制器的信息读写操作,物理层通过CAN收发器实现电平转换和传输。SJA1000的AD0~AD7与单片机P0口连接,实现地址/数据复用;片选/CS与P2.7相连,则基地址为0x7F00;/RD、/WD、ALE引脚依次与单片机各引脚相连;中断/INT接单片机/INT0,因此可通过中断方式对SJA1000进行实时访问。SJA1000的MODE引脚用于选择CAN控制器在Intel模式还是在Motorola模式工作。由于STC89C52属于Intel系列微控制器,故MODE引脚接+5V高电平设置为Intel模式,以满足89C52的读写时序要求。为了增强节点的抗干扰能力,以及避免当CAN收发器失效时出现过流导致CAN控制器击穿,SJA1000的TX0和RX0引脚通过光耦N6137后与PCA82C250的TXD和RXD连接,以此实现总线上节点间电器隔离;收发器CAN_H和CAN_L引脚通过5Ω电阻与CAN总线端口连接起到限流作用;同时两端接120Ω终端匹配电阻。

RS232接口电路采用MAX232芯片,实现单片机串口TTL电平与RS232电平相互转换,完成HMI终端UART口的信息传输。STC89C52串口端(P3.0和P3.1)与MAX232的T1IN和R1OUT连接,T1OUT与R1IN接九针串口,然后通过交叉线与HMI终端连接实现数据通信。
 

3.2车载HMI触控平台的设计

HMI触控平台以ARM为处理器,接7.0寸LCD触摸屏来实现,可取代传统的(如图2A)机械按键与表盘显示的中控平台。HMI触控平台如图2B所示,由车灯、车窗、后视镜、多媒体、空调、导航以及状态参数显示菜单组成。将该终端嵌入到方向盘,驾驶员可点击触控菜单进入车灯、车窗等控制界面(如图2C和D)实现车灯、车窗等设备的触摸控制,也可实时采集与显示设备状态参数如:车速、故障码等。其中,触控与显示数据需调用ARM底层串口驱动来实现读写操作,触控界面通过Button控件的信号与槽机制来实现数据的发送,状态参数的采集与显示通过事件驱动方式实现。终端可外接GPS模块实现导航功能,设计了Qt媒体媒体播放器实现娱乐功能,也可接入无线网卡来实现无线上网功能。

图2车载HMI终端

4车载HMI终端的软件设计

4.1CAN/RS232网关软件设计

主程序中首先要完成初始化操作,包括单片机、SJA1000、RS232通信以及中断源的初始化。其中SJA1000的初始化是整个设计最重要的部分,也是保证CAN通信的前提。考虑车辆内部网络的兼容性,SJA1000配置为Peli模式,支持CAN2.0A和B规范,实现标准帧和扩展帧两种报文传输。SJA1000初始化寄存器配置流程如图3所示。

图3SJA1000初始化寄存器配置流程

为保证数据实时传输,采用中断方式进行数据收发。

当CAN总线有数据接收时SJA1000会跳入接收中断函数将数据接收并存储到接收缓存,根据数据帧头来判别数据类型和所带数据长度,最后提取CAN数据拆分为单字节通过串口发送,并在HMI终端显示;当HMI终端有控制字发送,串口接收中断函数将所发送的控制字依次接收存入接收缓存,并根据首字节来判别所发数据类型和长度,组装成CAN数据帧格式发送到网络中去,以此实现各节点的控制。具体流程如图4所示。

图4数据接收与发送流程图

4.2车载HMI界面的设计

HMI界面采用QtCreator2.0来设计,因为HMI终端是通过UART接口接入CAN网络中,所以通信时需接上面所介绍的CAN/RS232协议转换器来实现。同时,还需在Linux下编写Qt串口通信程序。

上一页  [1] [2] [3]  下一页

关键词:方案 HMI 车载

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:111,125.00000 毫秒