當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]車(chē)載網(wǎng)絡(luò)系統(tǒng)硬件及其驅(qū)動(dòng)的設(shè)計(jì)

1引言
   在電子技術(shù)迅速發(fā)展以及在汽車(chē)上廣泛應(yīng)用的今天,汽車(chē)電子化程度越來(lái)越高。汽車(chē)電子系統(tǒng)中電子控件繁多、通信復(fù)雜度增大必然導(dǎo)致整車(chē)布線龐大而且復(fù)雜,安裝空間緊缺,運(yùn)行可靠性降低,故障維修難度增大。并且為提高信號(hào)利用率,要求數(shù)據(jù)信息互通,資源共享,傳統(tǒng)的電氣系統(tǒng)點(diǎn)對(duì)點(diǎn)的通訊方式已遠(yuǎn)不能滿足這種需求。對(duì)上述問(wèn)題,在已有成熟的計(jì)算機(jī)網(wǎng)絡(luò)和現(xiàn)代控制技術(shù)的基礎(chǔ)上,汽車(chē)網(wǎng)絡(luò)技術(shù)應(yīng)運(yùn)而生。通過(guò)總線將汽車(chē)上的各種電子裝置與設(shè)備連成一個(gè)網(wǎng)絡(luò),實(shí)現(xiàn)設(shè)備之間的信息共享,既減少了線束, 又可更好地控制和協(xié)調(diào)汽車(chē)的各個(gè)系統(tǒng),使汽車(chē)性能達(dá)到最佳。 2系統(tǒng)硬件設(shè)計(jì)
本硬件系統(tǒng)所設(shè)計(jì)的車(chē)載網(wǎng)絡(luò)具備數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)通信、參數(shù)設(shè)置、顯示等功能,能夠很好地對(duì)傳感器采集到的車(chē)速、車(chē)內(nèi)溫度、發(fā)動(dòng)機(jī)運(yùn)行狀態(tài)、水溫以及油量等數(shù)據(jù)進(jìn)行傳輸、處理、存儲(chǔ),并通過(guò)顯示屏顯示,使駕駛員及時(shí)了解車(chē)體總的運(yùn)行狀況。系統(tǒng)按功能主要分為處理器模塊、USB接口模塊、存儲(chǔ)模塊、 UART異步串行口模塊、CAN模塊、10/100M以太網(wǎng)接口模塊、顯示模塊以及電源。系統(tǒng)總體結(jié)構(gòu)如圖2.1所示。
2.1 處理器模塊
     該系統(tǒng)采用Samsung公司開(kāi)發(fā)的一種32位RISC微處理器S3C2410,內(nèi)含一個(gè) ARM920T內(nèi)核,芯片中集成了16KB 指令Cache、16KB 數(shù)據(jù)Cache、MMU、外部存儲(chǔ)器控制器、NANDFlash控制器、1個(gè)LCD控制器、SDRAM控制器、 3個(gè)通道兩個(gè)獨(dú)立的 UART、4個(gè)通道的DMA、 8通道的10位ADC、觸摸屏接口、IIC總線接口、1個(gè)USB主機(jī)接口,1個(gè)USB設(shè)備接口、117位通用I/O口和24位外部中斷源。 S3C2410x支持從NAND Flash啟動(dòng),系統(tǒng)采用NAND Flash與SDRAM組合,可以獲得非常高的性價(jià)比。
2.2  USB接口模塊S3C2410的USB支持USB1.1版本,由懸空和喚醒功能。USB設(shè)備控制器可以用DMA接口提供一個(gè)高性能完備的速率功能控制解決方案,允許批量傳輸、中斷傳輸和控制傳輸。S3C2410擴(kuò)展USB十分方便,按照USB1.1標(biāo)準(zhǔn)協(xié)議連接即可,可以同時(shí)支持USB的低速和高速傳輸。

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

[!--empirenews.page--]
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)的適合汽車(chē)環(huán)境和一般工業(yè)系統(tǒng)環(huán)境的獨(dú)立 CAN控制器MCP2510。MCP2510支持 CAN2.0B,而且具有一些新特征,應(yīng)用非常廣泛,是比較典型的獨(dú)立CAN控制器。SJA1000有兩種操作模式,即基本CAN模式和具有很多擴(kuò)展功能的Peli CAN模式。
2.5顯示模塊

由于本系統(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ì)
車(chē)載網(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鍵盤(pán)、 GPRS/CDMA、 GPS 之上的應(yīng)用程序。實(shí)時(shí)操作系統(tǒng)采用源碼公開(kāi)的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)程序開(kāi)發(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 ; / *指向相對(duì)應(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è)備寫(xiě)數(shù)據(jù)函 * / ioctl :usb_demo_ioctl ;/ * 控制設(shè)備狀態(tài)函數(shù)*  / open :usb_demo_open;  / * 打開(kāi)設(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) ; / * 注冊(cè)一個(gè)USB設(shè)備* /
} 以上即為L(zhǎng)inux中一個(gè)典型USB設(shè)備驅(qū)動(dòng)程序的框架,通常包含設(shè)備初始化、設(shè)備卸載、設(shè)備打開(kāi)、設(shè)備釋放以及對(duì)設(shè)備進(jìn)行讀、寫(xiě)、控制等部分,是一種相對(duì)固定的格式。[!--empirenews.page--]
3.2CAN控制器驅(qū)動(dòng)程序的設(shè)計(jì)
     Linux下驅(qū)動(dòng)程序的編寫(xiě)有特定的規(guī)以及一些必要的模塊,init_module模塊是驅(qū)動(dòng)程序中用來(lái)加載設(shè)備的,系統(tǒng)初始化時(shí)調(diào)用。此處用 arm9200_mcp2510_init()作為CAN總線驅(qū)動(dòng)程序的入口函數(shù),他將主要完成對(duì)MCP2510初始化,調(diào)用 register_chrdev()函數(shù)向系統(tǒng)注冊(cè)字符型設(shè)備驅(qū)動(dòng)程序,使用request_irq()函數(shù)為CAN總線的中斷處理程序。根據(jù)傳遞CAN 數(shù)據(jù)的要求,設(shè)計(jì)了如下的數(shù)據(jù)結(jié)構(gòu)予以存放一幀數(shù)據(jù)和對(duì)接收緩沖區(qū)進(jìn)行管理: Typedef struct{ unsigned int id; / * CAN網(wǎng)絡(luò)中節(jié)點(diǎn)的標(biāo)志符 * / unsigned char data[8]; /  * 要傳的數(shù)據(jù),最大為8個(gè)字節(jié) * / unsigned char dlc; / * 發(fā)送的數(shù)據(jù)長(zhǎng)度 * / int IsExt; / * 判斷消息是否為擴(kuò)展幀 * / }candata; Typedef struct{ Candata MCP2510_Candata[128];  / * 定義一個(gè)接收緩沖區(qū) * /
int nCanRevpos; / *  數(shù)據(jù)存入緩沖區(qū)的位置指針 * / int nCanReadpos; / *  數(shù)據(jù)讀出的位置指針 * / int loopbackmode; wait_queue_head_t wq; spinlock_t lock; }MCP2510_DEV;
     數(shù)據(jù)結(jié)構(gòu)file_operations是驅(qū)動(dòng)程序中一個(gè)重要的數(shù)據(jù)結(jié)構(gòu),內(nèi)核就是通過(guò)這個(gè)結(jié)構(gòu)來(lái)訪問(wèn)驅(qū)動(dòng)的。應(yīng)用程序通過(guò)對(duì)_read()、_write()、_ioctl()函數(shù)調(diào)用驅(qū)動(dòng)中相應(yīng)的程序來(lái)讀寫(xiě)數(shù)據(jù)和控制字符設(shè)備的工作。
3.3 串口驅(qū)動(dòng)程序的設(shè)計(jì)串口驅(qū)動(dòng)程序采用查詢方式,主要包括串口初始化函數(shù)、數(shù)據(jù)接收函數(shù)和數(shù)據(jù)發(fā)送函數(shù)。串口初始化函數(shù)USIinit()主要是用來(lái)設(shè)置USART工作是的參數(shù),用戶應(yīng)用程序可以通過(guò)調(diào)用數(shù)據(jù)接收函數(shù)RevUSData()對(duì)接收到的函數(shù)進(jìn)行各種處理。USART的數(shù)據(jù)接收和發(fā)送都是一個(gè)主動(dòng)的過(guò)程,因此此函數(shù)的設(shè)計(jì)較為簡(jiǎn)單。數(shù)據(jù)發(fā)送函數(shù)SendUSData()類似于數(shù)據(jù)接收函數(shù),可以被用戶程序調(diào)用。
3.4 LCD控制器驅(qū)動(dòng)程序的設(shè)計(jì)      在驅(qū)動(dòng)LCD設(shè)計(jì)過(guò)程中首要的是要配置LCD控制器,而在配置LCD控制器時(shí)最重要的則是

指定幀緩沖區(qū)(FrameBuffer)。幀緩沖設(shè)備對(duì)應(yīng)的設(shè)備文件是/dev/fb*,數(shù)據(jù)結(jié)構(gòu)如下: Static struct file_operations fb_fops={ ower:THIS_MODULE,  read:fb_read, write:fb_write, ioctl:fb_ioctl, mmap:fb_mmap, open:fb_open,
 }
     其中的函數(shù)對(duì)具體的硬件進(jìn)行操作,對(duì)寄存器進(jìn)行設(shè)置,對(duì)顯示緩沖進(jìn)行映射。初始化函數(shù)首先初始化LCD控制器,在Linux中可以用kmalloc()函數(shù)動(dòng)態(tài)分配連續(xù)LCD顯示緩沖區(qū)。接著就是初始化一個(gè)fb_info結(jié)構(gòu),補(bǔ)充成員變量,調(diào)用register_framebuffer(& fb_info),將fb_info注冊(cè)入內(nèi)核。結(jié)構(gòu)fb_info的成員函數(shù): 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結(jié)束語(yǔ)
本文詳細(xì)介紹了嵌入式車(chē)載網(wǎng)絡(luò)系統(tǒng)的底層硬件和驅(qū)動(dòng)程序的設(shè)計(jì)并成功地完成了硬件與軟件的調(diào)試。本文作者創(chuàng)新點(diǎn):此網(wǎng)絡(luò)系統(tǒng)極大地減少了電控裝置數(shù),節(jié)省了粗大線束占用的汽車(chē)寶貴空間資源以及實(shí)現(xiàn)了汽車(chē)內(nèi)部電子儀表間的數(shù)據(jù)共賞、通信與處理,從而提高了汽車(chē)的安全性能。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉