車載網(wǎng)絡(luò)系統(tǒng)硬件及其驅(qū)動(dòng)的設(shè)計(jì)
2.3 UART串行口模塊
UART,指的是異步串行口。在 ARM9微控制器中包含有兩個(gè)UART0和UART1。UART0僅提供TXD和RXD信號(hào)引腳,UART1增加了一個(gè)調(diào)制截調(diào)器 MODEM接口,其余方面兩者都是完全相同的。
2.4 CAN模塊
本系統(tǒng)采用 Philips公司生產(chǎn)的適合汽車環(huán)境和一般工業(yè)系統(tǒng)環(huán)境的獨(dú)立 CAN控制器MCP2510。MCP2510支持 CAN2.0B,而且具有一些新特征,應(yīng)用非常廣泛,是比較典型的獨(dú)立CAN控制器。SJA1000有兩種操作模式,即基本CAN模式和具有很多擴(kuò)展功能的Peli CAN模式。
2.5顯示模塊本文引用地址:http://m.butianyuan.cn/article/197765.htm
由于本系統(tǒng)選用芯片已集成了LCD控制器,所以只要選擇合適的 LCD顯示屏即可。系統(tǒng)選擇SHARP公司的LQ080V3DG01顯示屏。 LQ080V3DG01是一款 TFT-LCD顯示模塊,它由彩色TFT-LCD模板、驅(qū)動(dòng)電路、控制電路、電源電路和背光單元組成,顯示分辨率為RGB640×480,具備3.3V和 5V兩種供電方式。 3驅(qū)動(dòng)程序設(shè)計(jì)
車載網(wǎng)絡(luò)系統(tǒng)的軟件由三部分組成:實(shí)時(shí)操作系統(tǒng)、硬件驅(qū)動(dòng)程序和運(yùn)行于操作系統(tǒng)、 10/100M以太網(wǎng)USB存儲(chǔ)設(shè)備、 USB鼠標(biāo)、 USB鍵盤、 GPRS/CDMA、 GPS 之上的應(yīng)用程序。實(shí)時(shí)操作系統(tǒng)采用源碼公開的linux操作系統(tǒng)。硬件驅(qū)動(dòng)程序主要為USB設(shè)備驅(qū)動(dòng)、CAN控制器驅(qū)動(dòng)、串口驅(qū)動(dòng)和LCD控制器驅(qū)動(dòng)。
3.1 USB設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)
Linux的USB內(nèi)核子系統(tǒng)中,提供了幾個(gè)與設(shè)備驅(qū)動(dòng)程序開發(fā)直接相關(guān)的核心數(shù)據(jù)結(jié)構(gòu),定義于內(nèi)核源代碼的linux/usb.h>中。限于篇幅,下面只討論在 Linux下設(shè)計(jì)一個(gè)典型 USB設(shè)備驅(qū)動(dòng)程序的通用架構(gòu)流程。
static struct usb_device_id usb_demo_ids[ ] ={{USB DEVICE(venderid ,productid) } }/ * 用于識(shí)別設(shè)備的信息* / struct usb_demo_dev{struct usb_device usbdev ; / *指向相對應(yīng)的特定USB設(shè)備*/ struct urb usbdev_irq ; / *用于中斷端點(diǎn)處理的URB * / } ;
static struct file_operations usb_demo_fops = { / * 設(shè)備文件操作函數(shù)集*/ owner :THIS_MODULE read :usb_demo_read ; / * 從設(shè)備讀數(shù)據(jù)函數(shù) * / write :usb_demo_ write; / * 向設(shè)備寫數(shù)據(jù)函 * / ioctl :usb_demo_ioctl ;/ * 控制設(shè)備狀態(tài)函數(shù)* / open :usb_demo_open; / * 打開設(shè)備函數(shù) * / release :usb_demo_release ; / * 釋放設(shè)備函數(shù) * /
}; static struct usb_driver usb_demo_driver = {probe : probe_demo ; / * 設(shè)備初始化函數(shù) * / disconnect : disconnect_demo ; / * 設(shè)備卸載函數(shù) * / fops : usb_demo_fops ; / * 設(shè)備文件操作函數(shù)集 * / static int init usb_demo_init (void) {usb_regester (usb_demo_driver) ; / * 注冊一個(gè)USB設(shè)備* /
} 以上即為Linux中一個(gè)典型USB設(shè)備驅(qū)動(dòng)程序的框架,通常包含設(shè)備初始化、設(shè)備卸載、設(shè)備打開、設(shè)備釋放以及對設(shè)備進(jìn)行讀、寫、控制等部分,是一種相對固定的格式。
評(píng)論