微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > LX800在车载监控系统中的应用

LX800在车载监控系统中的应用

时间:12-07 来源:互联网 点击:

摘要:随着嵌入式Linux操作系统的迅速发展,嵌入式Linux已逐渐成为嵌入式操作系统的一个重要分支。介绍了LX800在车载监控系统中的应用,实现了CAN总线实时数据和视频的显示和控制。主要阐述了x86系统平台的硬件总体设计、PCI9054驱动的实现及应用主程序相关流程。
关键词:嵌入式Linux;LX800;PCI9054

引言
嵌入式系统由于体积小、功耗低、可靠性高、可裁减性强、软硬件集成度高等特点的被广泛地应用于工业制造、过程控制、通信、仪器、仪表、汽车、船舶、航空、航天、消费类产品等众多领域。一个完整的嵌入式Linux解决方案应包括嵌入式Linux操作系统内核、运行环境、图形化界面和应用软件等。由于嵌入式设备的特殊要求,嵌入式Linux解决方案中的内核、环境、GUI等都与标准Linux有很大不同,其主要挑战是如何在狭小的Flash、ROM和内存中,实现高质量的任务实时调度、图形化显示、网络通信等功能。本文基于AMD LX800微处理器和Linux操作系统进行车载监控系统的设计。车载监控系统是对车辆工作状态、运行情况进行显示、控制并完成人机交互的系统,实现系统实时响应操作、显示相关的机车信息。

1 系统硬件设计
GeodeLX处理器是AMD公司推出的基于x86体系结构的嵌入式处理器,主要用于工业控制、移动设备等领域。GeodeLX处理器支持i586指令集,并且带有MMX和AMD“3DNow!”指令集扩展;其CPU频率在400~500MHz,带有8级单发射的指令流水线,64 KB指令L1Cache和64 KB数据L1 Cache,128 KB的可配置为指令或数据的L2 Cache。处理器内部集成了图形和视频处理单元,提高了二维图形和视频的应用加速。
PCI总线即外围部件互连总线,是一种先进的高性能32/64位地址/数据复用局部总线,可同时支持多组外围设备,并且不受制于处理器,为处理器与高速外围设备提供了一座沟通的桥梁,提高了数据吞吐量(32位最大可达132 MB/s),因此是现在PC领域中很流行的总线。P CI总线具有严格的总线规范,保证了良好的兼容性,符合PCI总线规范的扩展卡可以插入任何PCI系统可靠地工作。因此,和GeodeLX处理器一起使用的CS5536芯片通过PCI总线组提供南桥的功能,如IDE、USB2.0、Flash、AC97和x86的外围设备接口。
为了扩展一些用户接口,如高速串口、CAN总线接口等,需要将复杂的PCI总线接口转换为相对简单的用户接口。本系统采用PLX公司生产的PCI总线通用接口芯片PLC9054,处理器可以通过PCI总线访问扩展资源,如CAN总线、液晶屏数据线、按键高速串口等其他扩展设备。此款芯片采用先进的PLX数据管道结构技术,符合PCIV2.1和V2.2规范;提供了两个独立的可编程DMA控制器;每个通道均支持块和分散/集中的DMA方式;在PCI总线端支持32位数据总线,33 MHz时钟信号;本地端可以编程实现8/16/32位的数据宽度;传输速率最高可达132 MB/s;本地总线端时钟最高可达50 MHz,支持复用/非复用的32位地址数据。PCI9054提供了PCI、LOCAL、EEPROM总线3个接口,作为一种桥接芯片在PCI总线和LOCAL总线之间提供传递消息。
W83627DHG通过LPC接口与CS5536通信,此款LPC接口的I/O芯片除了可以支持传统的输入/输出接口,如键盘和鼠标、并口、软盘口、UART、SPI口等,硬件监控针对新一代的CPU,提供符合VRD11.0规格的CPU电压侦测功能,并且可经由键盘任一按键或是鼠标将系统由休眠状态唤醒。
BIOS实际是一组被固化到电脑中,为电脑提供最基本的硬件控制的程序,它是连通软件程序和硬件设备之间的枢纽,负责响应硬件的即时要求,并按软件对硬件的操作要求执行。本设计BIOS芯片采用LPC Flash可擦写芯片。

系统的整体硬件结构如图1所示,系统由处理器、外围电路及外围接口设备组成。外围电路包括晶振、电源、复位电路、串口、网口、PCI总线、USB接口、Flash等。

2 系统软件设计
Linux采用统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台的改动与上层应用无关。Linux可以随意地配置,不需要任何许可证或与商家的合作关系,源代码可以免费得到,这使得采用Linux作为操作系统不会遇到任何关于版权的纠纷。Linux本身内置网络支持,而目前嵌入式系统对网络支持要求越来越高,Linux的高度模块化使添加部件非常容易。Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制、支持大量硬件(包括x86、Alpha、ARM等现有的大部分芯片)等特性的一种通用操作系统。其程序源码全部公开,任何人可以修改,并在GNU通用公共许可证下发行。这样,开发人员可以对操作系统进行定制裁减,适应其特殊需要。其强大的语言编译器GCC、G++等不但成熟完善,而且使用方便。本论文中基于V2.6.27内核通过make menuconfig对内核进行部分功能裁减。
软硬件综合开发是嵌入式系统的一大特色,软件设计是在紧密联系硬件的基础上来完成的。本文的车载监控系统设计遵循嵌入式软件的体系结构设计方法,分为两个部分:①相关驱动的开发,如底层包括扩展的PCI9054驱动、串口驱动、CAN驱动及内核自带的网络驱动、USB、CS5536等设备驱动;②应用程序的开发,包括显示监控任务的实现、配置文件读写实现等。
2.1 设备驱动开发
底层接口层封装监控显示软件与底层通信硬件接口、操作系统交互等部分的代码,通过定义统一的接口规范,实现上层软件不依赖具体的硬件平台,从而实现软件易于移植。
作为底层驱动模块的基本结构至少必须包含两个函数:module_init()和module_exit()。第一个函数是在把模块加载入内核时调用的;第二个函数则在删除该模块时调用。module_init()向内核注册模块所能提供的所有新功能,即可以由应用程序使用的新功能。函数module_ exit()的任务是清除掉module_init()所做的一切,保证这个模块被安全地卸载。模块的调用情况如图2所示。下面以PCI9054为代表,描述硬件驱动设计过程。

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

网站地图

Top