朱蘭
摘 要:該文提出了一種基于嵌入式Linux的車(chē)載自動(dòng)空調(diào)控制模型的設(shè)計(jì)方法。該模型基于開(kāi)源的Linux嵌入式軟硬件系統(tǒng),搭建了車(chē)載自動(dòng)空調(diào)控制平臺(tái)。在該平臺(tái)的支持下,可以有效的實(shí)現(xiàn)車(chē)載空調(diào)的自動(dòng)控制,具有較好的經(jīng)濟(jì)性和可擴(kuò)展性。
關(guān)鍵詞:Linux 自動(dòng)空調(diào) 控制模型 內(nèi)核編譯 文件系統(tǒng)設(shè)計(jì)
中圖分類(lèi)號(hào):U472.7 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2015)09(c)-0022-02
由于計(jì)算機(jī)自動(dòng)控制技術(shù)的發(fā)展,車(chē)載空調(diào)已經(jīng)由手動(dòng)控制模式逐漸過(guò)度到計(jì)算機(jī)控制模式。車(chē)載空調(diào)自動(dòng)調(diào)節(jié)功能包括車(chē)內(nèi)溫度和濕度的自動(dòng)調(diào)節(jié)、回風(fēng)和送風(fēng)模式的自動(dòng)控制以及運(yùn)轉(zhuǎn)方式和換氣量的控制等控制功能。電控單元將根據(jù)駕駛員簡(jiǎn)單的按鈕輸入,結(jié)合各種傳感器輸入的信號(hào),并可自動(dòng)實(shí)現(xiàn)送風(fēng)溫度和送風(fēng)速度的高效調(diào)整。因此,自動(dòng)空調(diào)不但可以減輕操作復(fù)雜度,對(duì)節(jié)能減排也起到了非常重要的支撐作用。
為了提高車(chē)載自動(dòng)空調(diào)的控制效果,采用操作系統(tǒng)對(duì)控制器軟硬件資源進(jìn)行高效管理是一種切實(shí)可行的辦法。Linux是一款穩(wěn)定開(kāi)源的多任務(wù)操作系統(tǒng),可以方便的移植到各種主流的嵌入式平臺(tái)上,在工業(yè)控制、消費(fèi)電子領(lǐng)域有著非常廣泛的應(yīng)用。因此該文嘗試在嵌入式Linux系統(tǒng)平臺(tái)上實(shí)現(xiàn)車(chē)載自動(dòng)空調(diào)的控制模型,為車(chē)載自動(dòng)空調(diào)控制器的軟件編制提供可靠有效的平臺(tái)。
1 自動(dòng)空調(diào)控制系統(tǒng)架構(gòu)
車(chē)載自動(dòng)空調(diào)控制系統(tǒng)的架構(gòu)如圖1所示:
從圖1可以看到,車(chē)載自動(dòng)控制完全根據(jù)傳感器的信號(hào)和控制邏輯來(lái)實(shí)施執(zhí)行器的控制操作。
2 嵌入式Linux系統(tǒng)架構(gòu)
嵌入式Linux系統(tǒng)負(fù)責(zé)管理整個(gè)控制器的軟硬件資源。從分層結(jié)構(gòu)的角度看,其內(nèi)部架構(gòu)的基本思想是封裝硬件資源細(xì)節(jié),像上層應(yīng)用提供調(diào)用接口,并有效實(shí)現(xiàn)接口的管理方法。其架構(gòu)如圖2所示:
3 模塊設(shè)計(jì)方法
3.1 內(nèi)核編譯
嵌入式Linux 2.6以上的內(nèi)核已經(jīng)對(duì)各種主流的嵌入式平臺(tái)進(jìn)行了有效的支持,直接在內(nèi)核包中提供了各種嵌入式平臺(tái)對(duì)應(yīng)的的驅(qū)動(dòng)程序和配置文件。該文以龍芯嵌入式處理器上的Linux 3.0.1為例進(jìn)行分析。
3.1.1 交叉編譯器設(shè)定
通過(guò)交叉編譯器將Linux內(nèi)核編譯成能夠在龍芯嵌入式處理器上運(yùn)行的可執(zhí)行文件,其設(shè)定方法為直接修改內(nèi)核根目錄中的主控Makefile文件。因?yàn)辇埿咎幚砥鞑捎玫氖莔ips架構(gòu),所以其命令為:
[root@localhost linux-3.0.1]#make ARCH=mips CROSS_COMPILE=mips-linux-
3.1.2 定制內(nèi)核
定制內(nèi)核的目的是使內(nèi)核能夠根據(jù)嵌入式系統(tǒng)的軟硬件管理要求來(lái)為上層控制應(yīng)用程序提供一個(gè)緊湊的運(yùn)行平臺(tái)。從實(shí)現(xiàn)的角度看,定制內(nèi)核就是有針對(duì)性的定制內(nèi)核的各項(xiàng)功能。由于Linux內(nèi)核的源文件數(shù)量非常大,所以通過(guò)直接修改源文件的方式來(lái)進(jìn)行定制是行不通的。為了提高定制的效率,一般都采用內(nèi)核提供的配置工具,通過(guò)以下命令啟動(dòng):
[root@localhost linux-3.0.1]#make menuconfig
在配置工具中分別對(duì)以下功能進(jìn)行配置:
* Generic Driver Options
該選項(xiàng)是驅(qū)動(dòng)程序通用選項(xiàng)。
* Memory Technology Device(MTD)
該選項(xiàng)用于支持內(nèi)存技術(shù)設(shè)備。
* Parallel port support
該選項(xiàng)用于支持并口設(shè)備。
* Block support
該選項(xiàng)用于支持塊設(shè)備。
* Input device support
該選項(xiàng)用于支持輸入設(shè)備。
* Character devices
該選項(xiàng)用于支持字符設(shè)備。
* Multimedia devices
該選項(xiàng)用于支持多媒體設(shè)備。
* Graphics support
該選項(xiàng)用于支持圖像設(shè)備。
* Ext3 journalling file system support
該選項(xiàng)用于支持Ext3文件系統(tǒng)。
* Reiserfs support
該選項(xiàng)用于支持Reiserfs文件系統(tǒng)。
* ROM file system support
該選項(xiàng)用于支持ROM文件系統(tǒng)。
* Network File systems
該選項(xiàng)用于支持網(wǎng)絡(luò)文件系統(tǒng)。
上述功能主要用于傳感器信號(hào)和執(zhí)行器控制指令通信硬件的控制。
3.2 文件系統(tǒng)設(shè)計(jì)
在嵌入式系統(tǒng)中,存儲(chǔ)器主要有RAM和Flash兩類(lèi),所以文件系統(tǒng)也可以分成基于RAM的文件系統(tǒng)和基于Flash的文件系統(tǒng)兩類(lèi)。車(chē)載空調(diào)控制軟件在車(chē)輛斷電時(shí)存儲(chǔ)在Flash中,因此該文選擇Cramfs來(lái)管理Flash。Cramfs文件系統(tǒng)是一種新型只讀文件系統(tǒng)。Cramfs以4KB為單位對(duì)文件進(jìn)行2:1壓縮存儲(chǔ)。操作系統(tǒng)在訪問(wèn)Cramfs系統(tǒng)文件時(shí),Cramfs僅僅是把當(dāng)前被訪問(wèn)的文件解壓到RAM中,并不會(huì)把整個(gè)文件系統(tǒng)的內(nèi)容全部解壓到RAM中,以節(jié)省大量的RAM空間。
通過(guò)以下命令生成Cramfs文件系統(tǒng)鏡像文件:
[root@localhost home]# ./mkcramfs rootfs rootfs_cramfs.img
Linux內(nèi)核鏡像啟動(dòng)后,會(huì)自動(dòng)掛載上述命令生成的Cramfs文件系統(tǒng)鏡像文件,啟動(dòng)車(chē)載自動(dòng)空調(diào)的控制程序。
4 結(jié)語(yǔ)
該文針對(duì)龍芯嵌入式處理器平臺(tái),提出了一種基于嵌入式Linux的車(chē)載自動(dòng)空調(diào)控制模型的設(shè)計(jì)方法。通過(guò)內(nèi)核編譯和文件系統(tǒng)設(shè)計(jì)搭建出車(chē)載自動(dòng)空調(diào)的控制平臺(tái)模型。使得控制系統(tǒng)可以高效的在嵌入式軟硬件系統(tǒng)上獲取傳感器信號(hào),并對(duì)執(zhí)行器進(jìn)行控制。整個(gè)模型具有較好的穩(wěn)定性和可擴(kuò)展性。
參考文獻(xiàn)
[1] 蔡睿妍. Arduino的原理及應(yīng)用[J].電子設(shè)計(jì)工程. 2012,20(16):155-157.
[2] 董志國(guó),李式巨.嵌入式Linux設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(20):3737-3740.
[3] 趙敏,楊恢先,湯安平.基于S3C2440的嵌入式Linux系統(tǒng)移植的研究與實(shí)現(xiàn)[J].電子器件,2008(6):1947-1950.
[4] 杜敏杰,馬彥恒,劉利民.基于龍芯2E平臺(tái)的嵌入式Linux系統(tǒng)的開(kāi)發(fā)與應(yīng)用[J].儀表技術(shù),2008(12):50-52.