您的位置 首页 被动

一种根据CAN总线和MiniGUI的虚拟外表的完成

汽车仪表是驾驶员与车辆进行信息交流的重要接口和界面,它是安全行驶和经济行驶不可缺少的装置。早期,汽车上装备的仪表均是通过机械结构模拟

轿车外表是驾驶员与车辆进行信息沟通的重要接口和界面,它是安全行进和经济行进不行短少的设备。前期,轿车上配备的外表均是经过机械结构模仿显现,它们存在精度低、呼应慢、显现信息量少、信息显现办法单一等缺陷。跟着计算机技能的日渐老练、轿车电子的开展、和嵌入式技能的广泛应用,对外表的数字化和多信息归纳显现已成一种重要的开展趋势。 本文将嵌入式计算机技能, 虚拟仪器技能和CAN总线数据传输技能引进到车载外表中,规划、研发了嵌入式车载虚拟外表。该外表经过下位机各智能节点实时收集车况信息并经过 CAN 总线将各节点衔接和进行数据传输。上位机将取得的车况信息处理后,将惯例信息显现与反常信息显现相结合,并充分发挥虚拟仪器功用与参数能主动界说、动态画面可视性强的特征,选用模仿、数字等多种办法对工况信息进行归纳显现,并对超限工况报警和主动回忆存储,对轿车呈现的各种反常状况给出紧迫处理主张。

1 体系软硬件渠道的挑选

本文选取Intel公司的PXA270为微处理器,选配MiniARM270中心板;64 MB SDRAM为体系运转随机存储器;256 MB NAND Flash程序存储器;MCP2515 CAN操控器担任CAN报文的接纳与发送;8英寸640×480真彩TFT液晶屏显现GUI图形界面;Linux为嵌入式操作体系[2].选用现在较为盛行的嵌入式GUI体系MiniGUI进行应用程序界面的编写。运用ZLG/BOOT发动Jflashmm、Flash FXP软件进行内核的烧写与移植。软件编制调试结束后,进行操作体系内核定制,削减出最小操作体系,并将应用程序与最小体系在仿真环境下进行联合调试。虚拟外表体系结构如图1所示。

1.jpg

2 MiniGUI的程序开发和移植

MiniGUI是由北京飞漫软件技能有限公司兴办的开源Linux图形用户界面支撑体系,经过近些年的开展,MiniGUI现已开展成为比较老练的功用优秀的、功用丰厚的跨操作体系的嵌入式图形界面支撑体系。小是MiniGUI的特征,它现在现已广泛应用于通讯、医疗、工控、电子、机顶盒、多媒体等范畴。

将MiniGUI及应用程序移植到方针机上需求阅历编写相应的驱动程序、穿插编译MiniGUI及应用程序、装置MiniGUI到方针体系、在方针体系上运转MiniGUI应用程序等几个进程。

MiniGUI程序是树立在MiniGUI和ANSIC库之上,所以程序的编写要依照MiniGUI的程序结构来定,并经过调用ANSIC库以及MiniGUI本身供给的API函数来完成。MiniGUI程序的进口点: int MiniGUIMain(int argc,const cha r * argv [ ]) .其风格类似于Win32 ,也是根据窗口、事情驱动编程。事情经过音讯机制传递,当事情产生时,MiniGUI将事情转换为一个音讯,并将音讯发送到MiniGUI应用程序的音讯行列之中。窗口进程函数是MiniGUI应用程序必不行少的函数,用于接纳和处理音讯,是一个回调函数,由MiniGUI调用,在应用程序中不能直接调用,其函数原型如下:static int WindowProc (HWND hWnd, int message, WPARAM wParam,LPARAM lParam)。每个MiniGUI应用程序的初始界面一般都是MiniGUI主窗口,然后在主窗口的基础上再树立子窗口或对话框等。主窗口运用 CreateMainWindow函数完成,在这个函数里可以设置主窗口的风格、巨细、句柄、标题以及窗口进程函数等[6,8-9].

本文有两个显现界面,别离对应流程图里面的子程序1和子程序2.应用程序流程图如图2所示。

2.jpg

本文选用arm-linux-gcc-3.4.3穿插编译器对驱动程序和应用程序进行编译。装置穿插编译器进程:将穿插编译器装置包arm- linux-3.4.3.tar.bz2复制到当时目录下,进行解压装置并指定装置途径:#tar xjvf arm-linux-3.4.3.tar.bz2 –C /usr/local/arm.为了便于运用,装置结束后,一般都将穿插编译器的途径添加到体系的查找途径中。这样要编译文件时就很简略,不必每次都指定途径,体系会主动查找。在这里介绍的一种办法是修正/etc/profile文件:翻开/etc/profile文件,在最终一行添加pathmunge /usr/local/arm/3.4.3/sbin,保存退出,在终端输入履行:#. Profile(点+空格+文件名)。可经过在终端输入:arm-linux-gcc–v 查验用户编译器版别。arm-linux-gcc编译出来的程序,不能在PC机上运转,有必要下载到ARM体系中才干运转。

MiniGUI在Linux体系中有两种运转形式:fbcon(Frame Buffer Console)和qvfb(Qt Virtual Frame Buffer)。fbcon在操控台下运转,这种形式下不能开Linux的X图形界面。qvfb则是带帧缓冲的虚拟操控台,MiniGUI程序在qvfb 中运转就像图形界面下的终端(Terminal)中运转指令相同。经过对gal_engine赋值来设置运转形式。

3 信号收集电路

CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO世界规范化的串行通讯协议。在当时的轿车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各式各样的电子操控体系被开发了出来。因为这些体系之间通讯所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的状况许多,线束的数量也随之添加。

CAN总线的智能节点一般由主操控器、CAN总线操控器、CAN总线驱动器以及详细的功用单元组成。主操控器用来经过拜访CAN总线操控器来完成对CAN总线的拜访。CAN总线操控器完成CAN协议的数据链路层和物理层功用,对外具有与主操控器和总线驱动器的接口功用。CAN总线驱动器供给 CAN总线操控器与物理总线之间的接口。

本文选用Microchip公司出产的MCP2515作为CAN总线操控器。MCP2515是一款独立的CAN协议操控器,彻底支撑CAN 2.0B技能规范。MCP2515与主操控器的衔接是经过规范串行外设接口SPI(Searial Peripheral Interface)完成的。主操控器挑选了Microchip公司的P%&&&&&%16F913,该单片机为高功用的RISC CPU,内部具有4 KB的可编程可擦除的Flash存储器、256 B的RAM、256 B的EEPROM,带有规范的SPI接口,也可以方便地和CAN总线操控器MCP2515进行衔接。CAN总线驱动器挑选Microchip公司的 MCP2551,是一个可容错的高速CAN器材[4,10].数据收集用的CAN总线接口电路如图3所示。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/321907.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部