新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 车载网络系统硬件及其驱动的设计

车载网络系统硬件及其驱动的设计

作者:时间:2009-12-25来源:网络收藏

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显示模块

本文引用地址:http://www.eepw.com.cn/article/197765.htm

由于本系统选用芯片已集成了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设备驱动程序的框架,通常包含设备初始化、设备卸载、设备打开、设备释放以及对设备进行读、写、控制等部分,是一种相对固定的格式。



评论


相关推荐

技术专区

关闭