您的位置 首页 测评

根据CAN总线和MiniGUI的虚拟外表规划

基于ARM+Linux的架构,通过CAN总线获得数据,再利用嵌入式系统平台的构建思想,实现了在嵌入式Linux操作系统下,基于ARM和 MiniGUI环境的车载信息的图形化显示。介绍了虚拟仪表系统的体

当今发达国家遍及运用全数字式轿车外表,且绝大部分是步进电动机式轿车外表,并预备向更高方向开展。因为遭到本钱的约束,现在国内显现轿车外表只能选用字段显现办法的显现屏,无法选用显现分辨率更高的点阵式显现屏,因而其视觉效果和显现精度还不能令人满意。ECU功用不断提高,抗强电磁搅扰、作业温度规模和对作业电源安稳性要求等方面得到较大的改进,一起价格大幅度下降,因而现在有条件在轿车外表上运用ECU操控的全数字外表,国内轿车外表界共同看好全数字式轿车外表[1]。跟着现代电子技能的开展,要求轿车外表与轿车上其他设备交流数据,即要求接入到轿车的计算机体系总线上,因而本文规划了一个根据嵌入式体系、CAN总线技能和TFT LCD液晶显现技能的全数字式轿车外表体系。

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所示。

2 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所示。

本文选用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总线的智能节点一般由主操控器、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所示。

4 CAN总线驱动程序的方案规划与完成

设备驱动程序是介于硬件和Linux内核之间的软件接口,是一种初级的、专用于某一硬件的软件组件。设备驱动也可以理解为操作体系的一部分,关于一个特定的硬件设备来说,其对应的设备驱动程序是不同的,比方网卡、键盘、鼠标、显卡、电位器、电机等。操作体系自身没有对各种硬件设备供给耐久不变的“驱动设备”,没有驱动,操作体系就操控不了底层的设备,关于操作体系来说,挂接的设备越多,需求的设备驱动程序也越多。

在Linux操作体系中,把一切外设都当成文件看待,运用操作文件的办法来操作设备,经过驱动程序,Linux操作体系才干以文件夹的办法来办理设备。因而驱动程序的编写开发具有十分重要的位置。Linux设备驱动程序运转在Linux内核空间,是Linux内核中联络硬件设备和使用程序的桥梁。Linux体系硬件、设备驱动和使用程序的联系如图4所示[7]。

MagicARM270试验箱选用SJA1000 CAN操控器扩展了1路CAN接口,SJA1000是PHILIPS公司经典的CAN操控器,支撑CAN 2.0 A、B协议。结合使用程序、驱动程序、内核程序,CAN驱动流程图如图5所示。

5 测验成果与验证

选取广州致远电子有限公司出产的Magic ARM270试验箱进行仿真[2]。经过CAN总线完成轿车上各种信息的收集和丈量,并将收集的成果送到ARM进行处理,最终经过TFT显现出来,设置CAN总线传输速度波特率为125 KB/s,图6所示为捕捉的一个界面。

跟着信息技能的快速开展,现场总线技能在轿车上得到了越来越多的使用。本文在测验体系下选用CAN总线接口提取车速、发动机转速、机油压力、油量、水温、传动箱压力及其他车况等信息。试验标明选用虚拟外表技能彻底可以满意车辆运转参数和状况显现的要求,可扩充性好,装备便利。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部