当前位置:首页 > 汽车电子 > 汽车电子
[导读]1引言 在电子技术迅速发展以及在汽车上广泛应用的今天,汽车电子化程度越来越高。汽车电子系统中电子控件繁多、通信复杂度增大必然导致整车布线庞大而且复杂,安装空间紧缺,运行可靠性降低,故障维修难度增大。

1引言
   在电子技术迅速发展以及在汽车上广泛应用的今天,汽车电子化程度越来越高。汽车电子系统中电子控件繁多、通信复杂度增大必然导致整车布线庞大而且复杂,安装空间紧缺,运行可靠性降低,故障维修难度增大。并且为提高信号利用率,要求数据信息互通,资源共享,传统的电气系统点对点的通讯方式已远不能满足这种需求。对上述问题,在已有成熟的计算机网络和现代控制技术的基础上,汽车网络技术应运而生。通过总线将汽车上的各种电子装置与设备连成一个网络,实现设备之间的信息共享,既减少了线束, 又可更好地控制和协调汽车的各个系统,使汽车性能达到最佳。 2系统硬件设计
本硬件系统所设计的车载网络具备数据处理、数据存储、数据通信、参数设置、显示等功能,能够很好地对传感器采集到的车速、车内温度、发动机运行状态、水温以及油量等数据进行传输、处理、存储,并通过显示屏显示,使驾驶员及时了解车体总的运行状况。系统按功能主要分为处理器模块、USB接口模块、存储模块、 UART异步串行口模块、CAN模块、10/100M以太网接口模块、显示模块以及电源。系统总体结构如图2.1所示。
2.1 处理器模块
     该系统采用Samsung公司开发的一种32位RISC微处理器S3C2410,内含一个 ARM920T内核,芯片中集成了16KB 指令Cache、16KB 数据Cache、MMU、外部存储器控制器、NANDFlash控制器、1个LCD控制器、SDRAM控制器、 3个通道两个独立的 UART、4个通道的DMA、 8通道的10位ADC、触摸屏接口、IIC总线接口、1个USB主机接口,1个USB设备接口、117位通用I/O口和24位外部中断源。 S3C2410x支持从NAND Flash启动,系统采用NAND Flash与SDRAM组合,可以获得非常高的性价比。
2.2  USB接口模块S3C2410的USB支持USB1.1版本,由悬空和唤醒功能。USB设备控制器可以用DMA接口提供一个高性能完备的速率功能控制解决方案,允许批量传输、中断传输和控制传输。S3C2410扩展USB十分方便,按照USB1.1标准协议连接即可,可以同时支持USB的低速和高速传输。

500)this.style.width=500;" border="0" />


2.3  UART串行口模块
UART,指的是异步串行口。在 ARM9微控制器中包含有两个UART0和UART1。UART0仅提供TXD和RXD信号引脚,UART1增加了一个调制截调器 MODEM接口,其余方面两者都是完全相同的。
2.4 CAN模块
本系统采用 Philips公司生产的适合汽车环境和一般工业系统环境的独立 CAN控制器MCP2510。MCP2510支持 CAN2.0B,而且具有一些新特征,应用非常广泛,是比较典型的独立CAN控制器。SJA1000有两种操作模式,即基本CAN模式和具有很多扩展功能的Peli CAN模式。
2.5显示模块

由于本系统选用芯片已集成了LCD控制器,所以只要选择合适的 LCD显示屏即可。系统选择SHARP公司的LQ080V3DG01显示屏。 LQ080V3DG01是一款 TFT-LCD显示模块,它由彩色TFT-LCD模板、驱动电路、控制电路、电源电路和背光单元组成,显示分辨率为RGB640×480,具备3.3V和 5V两种供电方式。 3驱动程序设计
车载网络系统的软件由三部分组成:实时操作系统、硬件驱动程序和运行于操作系统、 10/100M以太网USB存储设备、 USB鼠标、 USB键盘、 GPRS/CDMA、 GPS 之上的应用程序。实时操作系统采用源码公开的linux操作系统。硬件驱动程序主要为USB设备驱动、CAN控制器驱动、串口驱动和LCD控制器驱动。
3.1 USB设备驱动程序的设计
    Linux的USB内核子系统中,提供了几个与设备驱动程序开发直接相关的核心数据结构,定义于内核源代码的<linux/usb.h>中。限于篇幅,下面只讨论在 Linux下设计一个典型 USB设备驱动程序的通用架构流程。
static struct usb_device_id usb_demo_ids[ ] ={{USB DEVICE(venderid ,productid) } }/ * 用于识别设备的信息* / struct usb_demo_dev{struct usb_device usbdev ; / *指向相对应的特定USB设备*/ struct urb usbdev_irq ; / *用于中断端点处理的URB * / } ;
static struct file_operations usb_demo_fops = { / * 设备文件操作函数集*/ owner :THIS_MODULE read :usb_demo_read ; / * 从设备读数据函数 * / write :usb_demo_ write;  / * 向设备写数据函 * / ioctl :usb_demo_ioctl ;/ * 控制设备状态函数*  / open :usb_demo_open;  / * 打开设备函数 * / release :usb_demo_release ; / * 释放设备函数 * /
}; static struct usb_driver  usb_demo_driver = {probe : probe_demo ; / * 设备初始化函数 * / disconnect : disconnect_demo ; / * 设备卸载函数 *  / fops : usb_demo_fops ; / * 设备文件操作函数集 *  / static int init usb_demo_init (void) {usb_regester (&usb_demo_driver) ; / * 注册一个USB设备* /
} 以上即为Linux中一个典型USB设备驱动程序的框架,通常包含设备初始化、设备卸载、设备打开、设备释放以及对设备进行读、写、控制等部分,是一种相对固定的格式。
3.2CAN控制器驱动程序的设计
     Linux下驱动程序的编写有特定的规以及一些必要的模块,init_module模块是驱动程序中用来加载设备的,系统初始化时调用。此处用 arm9200_mcp2510_init()作为CAN总线驱动程序的入口函数,他将主要完成对MCP2510初始化,调用 register_chrdev()函数向系统注册字符型设备驱动程序,使用request_irq()函数为CAN总线的中断处理程序。根据传递CAN 数据的要求,设计了如下的数据结构予以存放一帧数据和对接收缓冲区进行管理: Typedef struct{ unsigned int id; / * CAN网络中节点的标志符 * / unsigned char data[8]; /  * 要传的数据,最大为8个字节 * / unsigned char dlc; / * 发送的数据长度 * / int IsExt; / * 判断消息是否为扩展帧 * / }candata; Typedef struct{ Candata MCP2510_Candata[128];  / * 定义一个接收缓冲区 * /
int nCanRevpos; / *  数据存入缓冲区的位置指针 * / int nCanReadpos; / *  数据读出的位置指针 * / int loopbackmode; wait_queue_head_t wq; spinlock_t lock; }MCP2510_DEV;
     数据结构file_operations是驱动程序中一个重要的数据结构,内核就是通过这个结构来访问驱动的。应用程序通过对_read()、_write()、_ioctl()函数调用驱动中相应的程序来读写数据和控制字符设备的工作。
3.3 串口驱动程序的设计串口驱动程序采用查询方式,主要包括串口初始化函数、数据接收函数和数据发送函数。串口初始化函数USIinit()主要是用来设置USART工作是的参数,用户应用程序可以通过调用数据接收函数RevUSData()对接收到的函数进行各种处理。USART的数据接收和发送都是一个主动的过程,因此此函数的设计较为简单。数据发送函数SendUSData()类似于数据接收函数,可以被用户程序调用。
3.4 LCD控制器驱动程序的设计      在驱动LCD设计过程中首要的是要配置LCD控制器,而在配置LCD控制器时最重要的则是

指定帧缓冲区(FrameBuffer)。帧缓冲设备对应的设备文件是/dev/fb*,数据结构如下: Static struct file_operations fb_fops={ ower:THIS_MODULE,  read:fb_read, write:fb_write, ioctl:fb_ioctl, mmap:fb_mmap, open:fb_open,
 }
     其中的函数对具体的硬件进行操作,对寄存器进行设置,对显示缓冲进行映射。初始化函数首先初始化LCD控制器,在Linux中可以用kmalloc()函数动态分配连续LCD显示缓冲区。接着就是初始化一个fb_info结构,补充成员变量,调用register_framebuffer(& fb_info),将fb_info注册入内核。结构fb_info的成员函数: struct fb_ops{
int (*fb_get_fix)(struct fb_fix_screeninfo *fix, int con, struct fb_info *info); int (*fb_get_var)(struct fb_var_screeninfo *var, int con, struct fb_info *info); int (*fb_set_var)(struct fb_var_screeninfo *var, int con, struct fb_info *info);
}

4结束语
本文详细介绍了嵌入式车载网络系统的底层硬件和驱动程序的设计并成功地完成了硬件与软件的调试。本文作者创新点:此网络系统极大地减少了电控装置数,节省了粗大线束占用的汽车宝贵空间资源以及实现了汽车内部电子仪表间的数据共赏、通信与处理,从而提高了汽车的安全性能。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭