
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、车载网络系统硬件及其驱动的设计在技术快速进展以及在汽车上广泛应用的今日,化程度越来越高。汽车电子系统中电子控件繁多、通信复杂度增大必定导致整车布线浩大而且复杂,安装空间紧缺,运行牢靠性降低,故障修理难度增大。并且为提高信号利用率,要求数据信息互通,资源分享,传统的电气系统点对点的通讯方式已远不能满足这种需求。对上述问题,在已有成熟的计算机网络和现代控制技术的基础上,汽车网络技术应运而生。通过将汽车上的各种电子装置与设备连成一个网络,实现设备之间的信息分享,既削减了线束, 又可更好地控制和协调汽车的各个系统,使汽车性能达到最佳。2 系统硬件设计本硬件系统所设计的车载网络具备数据处理、数据存储、数
2、据通信、参数设置、显示等功能,能够很好地对采集到的车速、车内温度、发动机运行状态、水温以及油量等数据举行传输、处理、存储,并通过显示屏显示,使驾驶员准时了解车体总的运行情况。系统按功能主要分为处理器模块、接口模块、存储模块、 uart异步串行口模块、can模块、10/100m以太网接口模块、显示模块以及电源。系统总体结构1所示。2.1 处理器模块该系统采纳samsung公司开发的一种32位risc微处理器,内含一个 920t内核,芯片中集成了16kb 命令cache、16kb 数据cache、mmu、外部存储器控制器、nandflash控制器、1个控制器、sdram控制器、 3个通道两个自立的
3、 uart、4个通道的dma、 8通道的10位、接口、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的低速和高速传输。2.3 uart串行口模块uart
4、,指的是异步串行口。在 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显示屏即可。系统挑选
5、sharp公司的lq080v3dg01显示屏。 lq080v3dg01是一款 tft-lcd显示模块,它由彩色tft-lcd模板、驱动、控制电路、电源电路和背光单元组成,显示辨别率为rgb640×480,具备3.3v和 5v两种供电方式。 3驱动程序设计车载网络系统的软件由三部分组成:实时操作系统、硬件驱动程序和运行于操作系统、 10/100m以太网usb存储设备、 usb鼠标、 usb键盘、 gprs/cdma、 之上的应用程序。实时操作系统采纳源码藏匿的linux操作系统。硬件驱动程序主要为usb设备驱动、can控制器驱动、串口驱动和lcd控制器驱动。3.1 usb设备驱动程序的
6、设计的usb内核子系统中,提供了几个与设备驱动程序开发挺直相关的核心数据结构,定义于内核源代码的中。限于篇幅,下面只研究在 linux下设计一个典型 usb设备驱动程序的通用架构流程。static struct usb_device_id usb_demo_ids =usb device(venderid ,productid) / * 用于识别设备的信息* / struct usb_demo_devstruct usb_device usbdev ; / *指向相对应的特定usb设备*/ struct urb usbdev_irq ; / *用于中断端点处理的urb * / ;static
7、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
8、_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设备驱动程序的框架,通常包含设备初始化、设备卸载、设备打开、设备释放以及对设备举行读、写、控制等部分,是
9、一种相对固定的格式。3.2 can控制器驱动程序的设计linux下驱动程序的编写有特定的规以及一些须要的模块,init_module模块是驱动程序中用来加载设备的,系统初始化时调用。此处用 arm9200_mcp2510_init()作为驱动程序的入口函数,他将主要完成对mcp2510初始化,调用 register_chrdev()函数向系统注册字符型设备驱动程序,用法request_irq()函数为can总线的中断处理程序。按照传递can 数据的要求,设计了如下的数据结构予以存放一帧数据和对接收缓冲区举行管理: typedef struct unsigned int id; / * can网
10、络中节点的标记符 * / unsigned char data; / * 要传的数据,最大为8个字节 * / unsigned char dlc; / * 发送的数据长度 * / int isext; / * 推断消息是否为扩展帧 * / candata; typedef struct candata mcp2510_candata128; / * 定义一个接收缓冲区 * /int ncanrevpos; / * 数据存入缓冲区的位置指针 * / int ncanreadpos; / * 数据读出的位置指针 * / int loopbackmode; wait_queue_head_t wq;
11、 spinlock_t lock; mcp2510_dev;数据结构file_operations是驱动程序中一个重要的数据结构,内核就是通过这个结构来拜访驱动的。应用程序通过对_read()、_write()、_ioctl()函数调用驱动中相应的程序来读写数据和控制字符设备的工作。3.3 串口驱动程序的设计串口驱动程序采纳查询方式,主要包括串口初始化函数、数据接收函数和数据发送函数。串口初始化函数usiinit()主要是用来设置usart工作是的参数,用户应用程序可以通过调用数据接收函数revusdata()对接收到的函数举行各种处理。usart的数据接收和发送都是一个主动的过程,因此此函数
12、的设计较为容易。数据发送函数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_opsint (*fb_get_fix)(struct fb_fix_screeninfo *fix, int con, struct fb_info *info); int (*fb_get_var)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 源网荷储一体化项目建设进度管理方案
- 供热管网改造工程成本控制管理方案
- 铝幕墙材料数字化溯源管理方案
- 风电场智能化监控系统方案
- 下水游泳试题及答案
- 安全培训笔杆子素材课件
- 岗亭环境保护安全培训总结课件
- 导购服务培训课件
- 导游安全培训内容课件
- 安徽税收考试真题及答案
- 2025年中国物流集团国际物流事业部招聘面试经验及模拟题集
- 乡镇安全培训课件
- 2025年航空业面试者必看航空公司招聘笔试预测试题及答案
- 2025年全国企业员工全面质量管理知识竞赛题及参考答案
- 2025年《中华人民共和国民法典》网络知识竞赛100题题库(含答案)
- 2025秋仁爱科普版(2024)七年级上册英语教学计划
- 2025四川省公安厅招聘辅警(448人)笔试参考题库附答案解析
- 《非物质文化遗产概论(第三版)》全套教学课件
- 中望CAD机械版使用手册
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 2024年9月28日安徽省地市级遴选笔试真题及解析
评论
0/150
提交评论