基于物聯(lián)網(wǎng)技術的智能家居嵌入式系統(tǒng)設計說明_第1頁
基于物聯(lián)網(wǎng)技術的智能家居嵌入式系統(tǒng)設計說明_第2頁
基于物聯(lián)網(wǎng)技術的智能家居嵌入式系統(tǒng)設計說明_第3頁
基于物聯(lián)網(wǎng)技術的智能家居嵌入式系統(tǒng)設計說明_第4頁
基于物聯(lián)網(wǎng)技術的智能家居嵌入式系統(tǒng)設計說明_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、基于物聯(lián)網(wǎng)技術的智能家居嵌入式系統(tǒng)設計摘 要從上世紀的住宅電子化、住宅自動化到今天的住宅智能化,基于物聯(lián)網(wǎng)技術的智能家居正逐步融入到我們的生活當中來。作為嵌入式Linux系統(tǒng)設計的一個典型應用,智能家居是融合自動化控制系統(tǒng)、網(wǎng)絡通信系統(tǒng)于一體的網(wǎng)絡化、智能化家居控制系統(tǒng)?;谖锫?lián)網(wǎng)的智能家居嵌入式系統(tǒng)設計,主要分為三個子系統(tǒng),即前端數(shù)據(jù)采集子系統(tǒng)、終端服務器子系統(tǒng)、上位機反控子系統(tǒng)。前端數(shù)據(jù)采集子系統(tǒng),主要負責實時數(shù)據(jù)采集與傳輸,包括溫度數(shù)據(jù)、濕度數(shù)據(jù)、時鐘數(shù)據(jù),與終端服務器子系統(tǒng)通過串口進行單工通信,其中包括單片機主控制處理模塊、溫度采集模塊、時鐘采集模塊、報警模塊、電平轉換模塊等。終端服務

2、器子系統(tǒng),主要負責實時數(shù)據(jù)存儲與傳輸,即存儲從前端采集模子系統(tǒng)收到的實時數(shù)據(jù),傳輸獨立采集數(shù)據(jù),其搭載的BOA服務器可以進行遠程瀏覽訪問控制,包括前臺界面、后臺控制模塊、智能家居控制模塊等,另外,也可以進行獨立數(shù)據(jù)采集以與傳輸。上位機反控子系統(tǒng),主要負責數(shù)據(jù)存儲備份以與網(wǎng)絡數(shù)據(jù)遠程訪問控制。解析由終端服務器傳輸來的實時數(shù)據(jù),同步顯示在上位機界面上,另外可以通過瀏覽器遠程訪問控制搭載在終端服務器上的BOA服務器,實現(xiàn)智能家居遠程訪問控制。關鍵詞 物聯(lián)網(wǎng) 嵌入式系統(tǒng) 智能家居Design of Intelligent Home Embedded System Based on Internet o

3、f ThingsABSTRACTFrom the last centurys electronic home and automation home, intelligent home based on Internet technology is gradually coming into our lives. As a typical application of the embedded Linux system, the intelligent homeis networking and intelligent home control system which integrated

4、automated control systems and network communication systems. The intelligent home embedded system based on Internet of Things is mainly designed to be three subsystems. They are namely the front data acquisition subsystem, terminal server subsystem, host computer anti-control subsystem.The front dat

5、a acquisition subsystemmainly realized data acquisition and transmission which include temperature data, humidity and clock. It simplex communicated with terminal server subsystem through serial port. This subsystem includes a microcontroller master control processing module, temperature acquisition

6、 module, clock acquisition module, alarm module, level conversion module.Terminal server subsystem mainly realized storage and transmission. The process stored real-time data received from front acquisition subsystem and transmitted to host computer anti-control subsystem. We can remotely browse and

7、 control the BOA server equipped in this subsystem which includes the front interface module, the background control module, intelligent home control module. It can also separately carry out data collection and transmission. Host computer anti-control subsystem mainly realized data storage backup an

8、d network data remote access control. It synchronously displayed on interface by analyzing realtime data transmission from terminal server.Besides, it can also remotely access and control BOA server through a web browser. So realize the remote access and control of intelligent home.KEYWORDS Internet

9、 of Things,embedded system, intelligent home53 / 62目 錄摘要IABSTRACTII目錄III圖目錄V表目錄VII縮略詞表VIII第 1 章緒論1第 2 章嵌入式系統(tǒng)環(huán)境搭建32.1Bootloader的移植32.2Linux核裁剪52.3根文件系統(tǒng)制作102.4嵌入式GUI移植142.5嵌入式數(shù)據(jù)庫sqlite3的移植172.6嵌入式BOA服務器的移植18第 3 章前端數(shù)據(jù)采集子系統(tǒng)203.1單片機主控制處理模塊203.2溫度采集模塊223.3時鐘采集模塊233.4電平轉換模塊253.5報警電路模塊26第 4 章終端服務器子系統(tǒng)274.1主控

10、制模塊274.2GPS數(shù)據(jù)采集模塊294.3人體紅外感應模塊314.4前臺界面模塊324.5電源模塊344.5.1 +5V電源供電344.5.2 +12、-12V電源供電354.5.3 +3.3V電源供電354.6路由器端口映射36第 5 章上位機反控子系統(tǒng)385.1背景音樂控制模塊385.2USB/CMOS攝像頭控制模塊405.3智能家居控制模塊415.4上位機界面415.5網(wǎng)頁界面425.6循環(huán)冗余CRC校驗算法44第 6 章智能家居系統(tǒng)測試456.1前端實時數(shù)據(jù)采集測試報告456.2終端服務器配置測試報告456.3網(wǎng)絡瀏覽反控測試報告476.4智能家居系統(tǒng)壓力測試報告476.5上位機實時

11、數(shù)據(jù)測試報告48第 7 章智能家居系統(tǒng)問題與持續(xù)改進497.1存泄漏問題的改進497.2系統(tǒng)代碼的重構以與優(yōu)化497.3系統(tǒng)硬件電路設計的問題497.4系統(tǒng)軟件架構的問題50第 8 章智能家居系統(tǒng)未來暢想518.1一鍵式遙控功能518.2集中控制處理功能518.3網(wǎng)絡反向控制功能518.4遠程控制功能518.5家居綜合布線功能52第 9 章總結53參考文獻54圖目錄圖 11 系統(tǒng)整體架構框圖1圖 21 嵌入式Linux系統(tǒng)中的典型分區(qū)結構3圖 22 主配置菜單界面5圖 23 LCD驅動配置界面6圖 24 觸摸屏驅動配置界面6圖 25 USB鼠標鍵盤配置界面7圖 26 USB攝像頭驅動配置界面7

12、圖 27 DM9000網(wǎng)卡驅動配置界面8圖 28 AC97音頻驅動配置界面8圖 29 串口驅動配置界面9圖 210 yaffs2文件系統(tǒng)配置界面9圖 211 nfs文件系統(tǒng)配置界面9圖 212 busybox主配置界面11圖 213 壓縮、解壓縮工具命令 Archival Utilities11圖 214 核心命令Core Utilities12圖 215 控制臺相關命令 Console Utilities12圖 216 編輯相關命令 Editor Utilities13圖 217 網(wǎng)絡相關命令 Networking Utilities13圖 218 進程相關命令 Process Utilit

13、ies13圖 31 前端數(shù)據(jù)采集子系統(tǒng)架構框圖20圖 32 前端數(shù)據(jù)采集子系統(tǒng)流程框圖21圖 33 單片機最小系統(tǒng)電路圖22圖 34 DS18B20溫度寄存器格式22圖 35 DS18B20數(shù)值樣例22圖 36 DS18B20讀寫0時隙23圖 37 DS18B20讀寫1時隙24圖 38 DS18B20復位時序24圖 39 DS1302寄存器地址24圖 310 DS1302讀寫時序25圖 311 max232電平轉換電路25圖 312 KD9561集成芯片26圖 41 終端服務器子系統(tǒng)架構框圖27圖 42 終端服務器子系統(tǒng)架構框圖28圖 43 通訊包結構組成29圖 44 人體紅外感應圍示意圖31

14、圖 45 人體紅紅外感應觸發(fā)方式示意圖31圖 46 登錄窗體對話框32圖 47 數(shù)據(jù)曲線對話框33圖 48 軟鍵盤33圖 49 系統(tǒng)狀態(tài)34圖 410 A型B型USB接口的外觀圖35圖 411 雙12V穩(wěn)壓電源電路圖35圖 412 +3.3V穩(wěn)壓電源36圖 413 路由器轉發(fā)規(guī)則配置37圖 414 路由器虛擬服務器配置37圖 51 上位機反控子系統(tǒng)架構框圖38圖 52 上位機反控子系統(tǒng)程序流程框圖39圖 53 背景音樂與攝像頭控制模塊40圖 54 智能家居控制模塊41圖 55上位機界面42圖 56 網(wǎng)頁界面(一)42圖 57 網(wǎng)頁界面(二)43圖 58 網(wǎng)頁界面(三)43圖 61 前端數(shù)據(jù)采集

15、測試45圖 62 串口管理對話框測試46圖 63 用戶管理對話框測試46圖 64 通訊管理對話框測試47圖 65 網(wǎng)頁界面測試(一)47圖 66 網(wǎng)頁界面測試(二)48圖 67 上位機界面測試48表目錄表 21 bootloader的分類4表 41通訊包結構組成說明29表 42 GPRMC定位信息說明30表 43 GPGGA定位信息說明30縮略詞表英文縮寫英文全稱對應中文BOA蛇,引申為單任務 服務器ADSLAsymmetric Digital Subscriber Line非對稱數(shù)字用戶環(huán)路ARMAdvanced RISC Machines高級精簡指令集制造公司AVRA與V先生共同研究的RI

16、SC精簡指令集高速8位單片機CGICommon Gateway Interface通用網(wǎng)關接口CMOSComplementary Metal Oxide Semiconductor互補金屬氧化物半導體COMCommunicationPort串口CPUCentralProcessingUnit中央處理器CRCCyclical Redundancy Check循環(huán)冗余碼校驗DBDefineByte定義字節(jié)DSData Segment Register數(shù)據(jù)段寄存器GISGeographic Information System地理信息系統(tǒng)GNDGround地線或零線GNOMEThe GNU Netw

17、ork Object Model EnvironmentGNU網(wǎng)絡對象模型環(huán)境GNUGNUs Not Unix引申為自由的軟件GPGGAGlobal Positioning System Fix DataGPS系統(tǒng)固定數(shù)據(jù)GPRMCRecommended Minimum Specific GPS/TRANSIT Data建議使用最小GPS數(shù)據(jù)格式GPSGlobal Positioning System全球定位系統(tǒng)GRUBGRand Unified Bootloader多重操作系統(tǒng)啟動管理器GUIGraphical User Interface圖形用戶接口HAHome Automation住宅自

18、動化HEHomen Electronics住宅電子化HIHome Intelligent住宅智能化HTMLHypertext Markup Language超文本標記語言I/Oinput/output輸入輸出端口I2CInterIntegrated Circuit部整合電路ICIntegrated Circuit集成電路IPInternet Protocol網(wǎng)絡之間互聯(lián)的協(xié)議KDEKool Desktop EnvironmentK桌面環(huán)境LCDLiquid Crystal Display液晶顯示器LEDLight Emitting Diode發(fā)光二級管LILOLinux LoaderLinux

19、加載程序MCSMicrocontroller System微控制系統(tǒng)MIMEMultipurpose Internet Mail Extensions多用途網(wǎng)際擴充協(xié)議MJPEGMotion Joint Photographic Experts Group運動聯(lián)合圖像專家小組PCPersonal Computer個人計算機PNGPortable Network Graphic Format可移植的網(wǎng)絡圖像格式QTEQuickTimeEvent快速反應事件RAMRandom Access Memory隨機存儲器RISCReducedInstructionSetComputer精簡指令集計算機RO

20、MRead-Only Memory只讀存儲器RSRecommended Standard推薦標準RXReceive接收SDSecure Digital Memory Card安全數(shù)碼卡SPISerial Peripheral Interface串行外設接口STMSynchronous Transfer Module同步傳輸模式TCPTransmission Control Protocol傳輸控制協(xié)議TTLTime To Live生存時間TXTransmit傳送UARTUniversal Asynchronous Receiver/Transmitter通用異步接收/發(fā)送裝置UDPUser D

21、atagram Protocol用戶數(shù)據(jù)包協(xié)議USBUniversal Serial Bus通用串口總線UVCUSB Video ClassUSB視頻類別VCCVolt Current Condenser電源第 1 章 緒 論從20世紀80年代初,家用電器開始采用電子工藝技術,住宅電子化概念(HE,Homen Electronics)逐漸出現(xiàn)在人們的視野當中。到90年代中期,將家用電器、網(wǎng)絡設備、家庭安防設備等各自獨立的系統(tǒng)整合為一體后,人們進入到了住宅自動化HA,Home Automation)的時代。而進入到21世紀,隨著電子工藝技術的革新,信息技術的迅猛發(fā)展,嵌入式設備以嶄新的面孔出現(xiàn)在

22、人們的生活中,它將網(wǎng)絡設備、家電設備、安保設備通過主控制器進行控制、管理,即現(xiàn)如今的住宅智能化(HI,Home Intelligent),也就是智能家居的雛形。智能家居,即通過物聯(lián)網(wǎng)技術整合自動化控制系統(tǒng)、計算機通信系統(tǒng)于一體的網(wǎng)絡化、智能化家居控制系統(tǒng)。智能家居能夠讓用戶使用更加便捷、人性化的方式來控制管理家用電器,比如,通過觸摸屏、遙控器、互聯(lián)網(wǎng)等控制家用設備;另一方面,智能家居的各種設備相互間可以通訊,不需要用戶指揮也能根據(jù)不同的狀態(tài)互動運行,從而給用戶帶來最大程度的高效、便利、舒適與安全。智能家居系統(tǒng)一般主要包括:智能家居(中央)控制管理系統(tǒng)、燈光控制系統(tǒng)、家庭安防系統(tǒng)、家居布線系統(tǒng)、

23、家庭網(wǎng)絡系統(tǒng)、背景音樂控制系統(tǒng)、家庭多媒體系統(tǒng)、家庭環(huán)境控制系統(tǒng)等八大子系統(tǒng)1。其中,智能家居(中央)控制管理系統(tǒng)、家居照明控制系統(tǒng)、家庭安防系統(tǒng)是其必備系統(tǒng)。而基于物聯(lián)網(wǎng)的智能家居嵌入式系統(tǒng)設計,正是智能家居系統(tǒng)的一個簡單縮影,在三大必備系統(tǒng)的基礎之上,參考增加了背景音樂控制系統(tǒng)、家庭網(wǎng)絡系統(tǒng)等功能模塊。下面是系統(tǒng)的整體架構框圖,如圖 11所示。前端數(shù)據(jù)集子系統(tǒng)終端服務器子系統(tǒng)系統(tǒng)上位機反控子系統(tǒng)數(shù)據(jù)采集模塊前臺界面后臺控制網(wǎng)絡瀏覽控制獨立數(shù)據(jù)采集圖 11 系統(tǒng)整體架構框圖基于S3C2440的智能家居嵌入式系統(tǒng),整個系統(tǒng)分為三個子系統(tǒng),即前端數(shù)據(jù)采集子系統(tǒng)、終端服務器子系統(tǒng)、上位機反控子系統(tǒng)

24、。其中前端數(shù)據(jù)采集子系統(tǒng)主要負責實時數(shù)據(jù)采集與傳輸,與終端服務器子系統(tǒng)通過串口或者I2C進行單工通信;終端服務器子系統(tǒng)負責實時數(shù)據(jù)存儲與傳輸,其搭載的嵌入式BOA服務器可以通過網(wǎng)絡瀏覽器進行遠程訪問控制,并且該子系統(tǒng)也可以進行獨立數(shù)據(jù)采集傳輸;上位機反控子系統(tǒng)負責數(shù)據(jù)存儲與備份,另外可以通過網(wǎng)絡進行遠程訪問控制。第 2 章 嵌入式系統(tǒng)環(huán)境搭建一般嵌入式Linux系統(tǒng)主要包括以下幾個部分1:(1) 引導加載程序:其中包括部ROM中的固化啟動代碼和Bootloader兩部分。固化啟動代碼是廠家生產(chǎn)芯片時固化在ROM中的,其主要作用是引導Bootloader;而Bootloader是用來初始化硬件環(huán)

25、境,加載Linux核。(2) Linux核:通過Bootloader傳遞核參數(shù)來引導加載核。(3) 文件系統(tǒng):包括根文件系統(tǒng)和建立在Flash設備上的其他文件系統(tǒng),包含了Linux系統(tǒng)能夠運行所必需的應用程序、庫文件等,比如用戶操作Linux的控制界面shell程序、動態(tài)的程序運行時所需要的glibc等。(4) 用戶應用程序:用戶自定義的應用程序,它們也存儲在文件系統(tǒng)當中,當然在用戶應用程序以與核層之間還可能包含嵌入式用戶界面GUI。嵌入式Linux系統(tǒng)的典型架構,如圖 21所示。圖 21 嵌入式Linux系統(tǒng)中的典型分區(qū)結構根據(jù)上述嵌入式Linux系統(tǒng)的結構組成,基于物聯(lián)網(wǎng)的智能家居嵌入式系

26、統(tǒng)的設計,需要構建嵌入式系統(tǒng)開發(fā)環(huán)境,這其中包括Bootloader的移植、Linux核裁剪、Rootfs根文件系統(tǒng)制作、QT4 GUI的移植、Sqlite3嵌入式數(shù)據(jù)庫的移植、Boa嵌入式服務器的搭載等。2.1 Bootloader的移植Bootloader是在操作系統(tǒng)核啟動之前運行的一段小程序,通過這段程序,可以初始化硬件設備,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)核準備一個正確的環(huán)境,然后從別處(比如Flash、NET、SD卡等)引導Linux核映像文件,最終加載Linux核,啟動Linux系統(tǒng)?,F(xiàn)如今,bootloader的種類非常多,一般比較常用的bootl

27、oader1,在x86架構上有GRUB、LILO等,而在ARM架構上則有Vivi、U_Boot等,其適用性如表 21所示。從表中可以看出,U_boot對各種平臺的支持性比較好,事實上,U_boot是遵循GNU條款的開放源代碼項目,可以引導多種操作系統(tǒng)、支持多種架構的CPU,比如ARM、X86、PowerPC等。支持多種操作系統(tǒng),比如Linux、NetBSD、VxWorks、Windows等。表 21 bootloader的分類Bootloader描述 X86 ARM PowerPCVivi針對三星的引導程序 否 是 否 U_Boot 通用引導程序 是 是 是 LILO Linux磁盤引導程序

28、是 否 否 GRUBGNU的LILO替代程序 是 否 否但是,U_Boot一直以來都沒有支持S3C2440,移植U_Boot仍是使用SBC2410的文件作為藍本,主要針對S3C2440與S3C2410的不同,以與SBC2410與Micro440外設的不同來做相應的調(diào)整與修改,并增加新的功能特性。S3C2440與S3C2410的主要區(qū)別是22440的主頻更高,在接口方面,增加了攝像頭接口和AC97音頻接口,在寄存器方面,NAND FLASH控制寄存器有較大變化,另外,芯片的時鐘控制寄存器也有一定的變化,其他寄存器是兼容的。下面是Bootloader移植的簡要步驟:步驟一:修改頂層Makefile

29、,定義交叉編譯工具鏈和開發(fā)板配置選項,在/board目錄中建立開發(fā)板micro2440目錄,并拷貝復制sbc2410x的文件到此,并作適當修改;步驟二:測試編譯環(huán)境,對出現(xiàn)的錯誤進行相應的調(diào)整修改。如果測試編譯通過,說明編譯環(huán)境的基本的開發(fā)板代碼沒有問題,由于編譯的藍本是基于SBC2410的,接下來的工作主要是按照代碼的執(zhí)行流程來針對mico2440做相應的修改;步驟三:進入/cpu/arm920t/start.S初始化代碼,針對CPU頻率的不同修改初始化設置,針對寄存器配置的不同,作相應的調(diào)整與修改;步驟四:在UBoot啟動的其一階段,初始化Nand Flash控制器,起到代碼重定向的作用,

30、但是在第二階段的start_armboot函數(shù)還是需要再次初始化Nand Flash控制器,真正啟動U_boot,2410與2440 Nand Flash控制器上的寄存器和啟動流程差別很大,需要修改Nand Flash底層驅動代碼。接下來增加對yaffs2文件系統(tǒng)的支持,對網(wǎng)絡協(xié)議、串口傳輸?shù)茸飨鄳男薷模徊襟E五:根據(jù)配置文件,重新編譯移植。2.2 Linux核裁剪相比于Linux2.4核,2.6核支持更多的平臺架構,采用新的調(diào)度算法,使進程間的切換更加高效。而基于物聯(lián)網(wǎng)的的智能家居嵌入式系統(tǒng)則是在Linux2.6.32的基礎上裁剪移植的。在虛擬機下建立核源碼樹,對于ARM架構的S3C2440

31、,與其體系相關的核代碼在arch/arm目錄下,在后面相關的移植裁剪工作,也主要是針對此目錄下的文件。對于ARM架構,通過缺省配置核,在頂層目錄下執(zhí)行命令make menuconfig,選擇支持的平臺S3C2410進行相應的配置,同樣在頂層目錄下執(zhí)行命令make zImage,編譯核,在arch/arm/boot目錄下生成相應的核映像文件zImage。下面主要是針對與平臺相關的驅動,手工定制Linux核。(1) 主配制菜單界面,如圖 22所示。圖 22 主配置菜單界面(2) LCD驅動配置界面在主菜單界面,進入Device Drivers-Graphic Support-LCD Select

32、選擇如圖 23所示的LCD型號支持。圖 23 LCD驅動配置界面(3) 觸摸屏驅動配置界面在主菜單界面,進入Device Drivers-Input device Support-Touchscreens 選擇如圖 24所示的觸摸屏配置支持。圖 24 觸摸屏驅動配置界面(4) USB鼠標鍵盤配置界面在主菜單界面,進入Device Drivers-HID Device- USB Device選擇如圖 25所示的USB鼠標鍵盤配置支持。(5) USB攝像頭驅動配置界面在主菜單界面,進入Device Drivers-Multimedia device-Video capture adaptersV4

33、L USB device選擇如圖 26所示的USB攝像頭配置支持。圖 25 USB鼠標鍵盤配置界面圖 26 USB攝像頭驅動配置界面(6) DM9000網(wǎng)卡驅動配置界面在主菜單界面,進入Networking Support-Networking Options,缺省配置一般網(wǎng)絡支持,比如TCP等,進入Device Drivers-Network Device support-Ethernet(10M or 100M)選擇如圖 27所示的網(wǎng)卡驅動配置支持。(7) AC97音頻驅動配置界面在主菜單界面,進入Device Drivers-Sound card support -Advanced Li

34、nux Sound Architecture選擇如圖 28所示的音頻驅動配置支持。圖 27 DM9000網(wǎng)卡驅動配置界面圖 28 AC97音頻驅動配置界面(8) 串口驅動配置界面在主菜單界面,進入Character devices-Serial drivers選擇如圖 29所示的串口配置支持。(9) 文件系統(tǒng)配置界面在主菜單界面,進入File systems-Miscellaneous filesystems選擇如圖 210所示的yaffs2支持。進入File systems-Network filesystem,選擇如圖 211所示的NFS文件系統(tǒng)支持。圖 29 串口驅動配置界面圖 210

35、yaffs2文件系統(tǒng)配置界面圖 211 nfs文件系統(tǒng)配置界面2.3 根文件系統(tǒng)制作區(qū)別于Windows系統(tǒng),Linux中并沒有C、D、E等盤符的概念,它是以樹狀形式來組織管理所有目錄、文件的,而其他分區(qū)則是以掛載的形式掛接在某個目錄上,然后通過訪問目錄來訪問相應分區(qū)上的文件。事實上根文件系統(tǒng)就是被掛載在目錄“/”上,在根文件系統(tǒng)目錄下又有其相應的各個目錄、文件,比如/etc、/mnt、/dev、/lib等,其他分區(qū)掛載在/mnt目錄下,比如CDRom等。每一個分區(qū)上的文件需要遵循一定的文件系統(tǒng)類型,比如常見的yaffs、ntfs、fat32、ext3等。實際上,除了這幾種確實存儲在存儲分區(qū)上

36、的文件系統(tǒng)類型以外,Linux還有幾種虛擬的文件系統(tǒng),比如sysfs、proc等,與實際存在的文件系統(tǒng)區(qū)別是,他們的目錄文件并不存儲在實際的存儲設備上,而是在訪問時由核臨時動態(tài)生成。嵌入式Linux系統(tǒng),在由U_boot引導核之后,需要加載根文件系統(tǒng),而所謂的根文件系統(tǒng),是根據(jù)需要專門定制后移植到嵌入式開發(fā)板上的。實際上,制作根文件系統(tǒng),就是按照需要創(chuàng)建各種目錄,并在里面存放需要的文件,比如在/etc目錄下存放系統(tǒng)配置文件,在/lib目錄下存放系統(tǒng)庫文件,在/dev目錄下存放設備節(jié)點文件,在/sbin、/bin目錄下存放可執(zhí)行文件等。在虛擬機下編輯執(zhí)行腳本程序rootfs .sh,完成根文件系

37、統(tǒng)目錄的創(chuàng)建工作,完善最小根文件系統(tǒng),其中包括/bin、/dev、/lib等。使用BusyBox工具創(chuàng)建嵌入式根文件系統(tǒng)/bin、/sbin目錄下的可執(zhí)行文件,另外在/dev目錄下創(chuàng)建必要的設備節(jié)點,在/lib目錄下創(chuàng)建必要的動態(tài)庫,在/etc目錄下創(chuàng)建必要的配置文件,在/dev目錄下創(chuàng)建必要的配置文件等。類似于裁剪Linux核,解壓源碼包進入相應目錄后,執(zhí)行make menuconfig命令即可進入相應的配置界面。包含各個配置選項,如核心命令Coreutils、控制臺相關命令Console Utilities、網(wǎng)絡方面的命令Networking Utilities、進程相關的命令Proces

38、s Utilities等。(1) 主配置菜單界面,如圖 212所示。(2) 壓縮、解壓縮工具命令配置界面在主配置菜單界面,選擇Archival Utilities選項,進入如圖 213所示的壓縮、解壓縮工具命令配置界面。圖 212 busybox主配置界面(3) 系統(tǒng)核心命令配置界面在主配置菜單界面,選擇Core Utilities選項,進入如圖 214所示的系統(tǒng)核心命令配置界面。(4) 控制臺相關命令配置界面在主配置菜單界面,選擇Console Utilities選項,進入如圖 215所示的控制臺相關命令配置界面。圖 213 壓縮、解壓縮工具命令 Archival Utilities圖 21

39、4 核心命令Core Utilities圖 215 控制臺相關命令 Console Utilities(5) 編輯相關命令配置界面在主配置菜單界面,選擇Editor Utilities選項,進入如圖 216所示的編輯相關命令配置界面。(6) 網(wǎng)絡相關命令配置界面在主配置菜單界面,選擇Networking Utilities選項,進入如圖 217所示的編輯相關命令配置界面。(7) 進程相關命令配置界面在主配置菜單界面,選擇Process Utilities選項,進入如圖 218所示的編輯相關命令配置界面。圖 216 編輯相關命令 Editor Utilities圖 217 網(wǎng)絡相關命令 Netw

40、orking Utilities圖 218 進程相關命令 Process Utilities配置dev目錄,可以使用手工創(chuàng)建,即在制作根文件系統(tǒng)時,在dev目錄下創(chuàng)建使用的設備文件,系統(tǒng)在掛載根文件系統(tǒng)后,即可使用dev目錄下的設備文件。當然也可以使用BusyBox自帶的mdev程序,mdev是嵌入式版本的udev,在系統(tǒng)啟動或者是熱插拔、加載設備驅動程序時動態(tài)創(chuàng)建設備節(jié)點。對于etc目錄下的配置文件,拷貝虛擬機目錄下的passwd、group等目錄至etc下,接下來編輯創(chuàng)建與啟動有關的三個主要的配置文件,即etc/inittab文件、etc/init.d/rcS文件、etc/profile文

41、件,在后續(xù)的移植工作中會經(jīng)常修改這幾個文件,其具體腳本,詳見附件。在制作完最小根文件系統(tǒng)之后,接下來就是制作根文件系統(tǒng)映像文件,即將上述rootfs目錄下的文件按照一定的格式存放在一個文件中,然后將這個文件移植燒寫到嵌入式設備上去。2.4 嵌入式GUI移植對于Linux的GUI系統(tǒng),接觸比較多的是桌面的KDE、GNOME等3,而針對嵌入式GUI,一般則是QTE,它是嵌入式交叉編譯的QT,實際上,編譯運行代碼與PC上完全一樣,只是為適應不同的平臺環(huán)境而選擇交叉編譯的結果。QT是由挪威TrollTech公司(現(xiàn)已被Nokia公司收購)開發(fā)的跨平臺的C+圖形用戶界面庫,目前包括基于FrameBuff

42、er的Qt Embedded、Linux版集成開發(fā)工具Qt Designer、國際化支持工具Qt Linguist,PC版集成開發(fā)工具Qt Creator等。將嵌入式GUI移植到開發(fā)板上去,需要根據(jù)平臺環(huán)境做相應的配置編譯,比如選擇觸摸屏支持、鼠標鍵盤支持、PNG等圖片格式支持等,下面是針對qt-4.5.3版本進行移植的主要操作步驟:步驟一:安裝qt-x11-linux-opensource-4.5.3.tar.gz默認將軟件包qt-x11-linux-opensource-4.5.3.tar.gz放到目錄/tmp下#tar xvzf qt-x11-linux-opensource-4.5.3

43、.tar.gz -C /opt /QT4#cd qt-x11-linux-opensource-4.5.3#./configure#gmake /該過程需要23小時,根據(jù)機器性能而定#gmake installPC上的QT4編譯成功,接下來需要設置環(huán)境變量,編輯文件setEnv-x11.sh#!bin/bashPATH=/usr/local/Trolltech/Qt-4.5.3/bin:$PATHQTDIR=/usr/local/Trolltech/Qt-4.5.3LD_LIBRARY_PATH=$QTDIR/lib:$ LD_LIBRARY_PATHexport PATH QTDIR LD_

44、LIBRARY_PATH保存,在每次進入/opt/ QT4/ qt-x11-linux-opensource-4.5.3時設置環(huán)境變量步驟二:安裝tslib-1.4.tar.gz軟件包默認將軟件包tslib-1.4.tar.gz放到目錄/tmp下#tar xvzf tslib-1.4.tar.gz#cd tslib#./autogen.sh#.configure-prefix=/opt/mytslib-host=arm-linux #make#make install可以發(fā)現(xiàn)在/opt/mytslib目錄下出現(xiàn)etc 、include、lib、bin目錄(在編譯過程通過prefix配置選項選擇

45、路徑,這里選擇安裝在/opt/mytslib路徑下)步驟三:安裝qt-embedded-linux-opensource-4.5.3.tar.gz,配置選項如下#tar xvzf qt-embedded-linux-opensource-4.5.3.tar.gz C /opt/ QT4#cd qt-embedded-linux-opensource-4.5.3#./configure -prefix=micro2440 -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-lib

46、jpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl nomake exmaples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g+ -embedded arm

47、 -depths 16 -no-qvfb-qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license -qt-mouse-tslib -I/home/mytslib/include -L/home/mytslib/lib #gmake #gmake install由于編譯器的問題,安裝完成后即使運行在PC上編譯通過的examples也會出現(xiàn)經(jīng)典的Segmenttion fault錯誤,可以通過下面的途徑解決:424 /*425 canaccel=useOffccreen();426 i

48、f(canaccel)427 setupOffscreen();428 */429 canaccel=false;724 /* if(canaccel) 725 *entryp=0;726 *lowest=mapsize;727 Insert_entry(*entryp,*lowest,*lowest); /dummy entry to mark start728 729 */將上述這段源代碼注釋掉,主要是對canccel重新賦值,然后再進行編譯工作,embedded-QT4編譯成功,接下來需要設置環(huán)境變量,編輯文件setEnv-embedded.sh。#!bin/bashPATH=/micr

49、o2440/bin:$PATHQTDIR=/micro2440LD_LIBRARY_PATH=$QTDIR/lib:$ LD_LIBRARY_PATHexport PATH QTDIR LD_LIBRARY_PATH步驟四:在micro2440開發(fā)板下配置選項,移植相應庫文件在開發(fā)板根目錄下建立micro2440以與tslib目錄,接下來將在PC機上編譯的庫文件以與配置文件拷貝到micro2440、tslib目錄下。# cp rf /opt/mytslib /lib /nfs/rootfs/tslib# cp rf /opt/mytslib /etc /nfs/rootfs/tslib# cp

50、 rf /opt/mytslib /bin/ts_calibrate /nfs/rootfs/tslib/bin# cp rf /opt/mytslib /bin/ts_test /nfs/rootfs/tslib/bin# cp rf /opt/mytslib /lib /nfs/rootfs/micro2440# cp rf /micro2440/etc /nfs/rootfs/micro2440# cp rf /micro2440/examples /nfs/rootfs/micro2440 # cp rf /micro2440/plunging /nfs/rootfs/micro244

51、0 # cp rf /micro2440/bin /nfs/rootfs/micro2440 # cp rf /micro2440/include /nfs/rootfs/micro2440 在移植/micro2440時文件需要單獨創(chuàng)建,利用命令ln s source_file target_file,在首次執(zhí)行QT4程序時,會提示找不到庫文件,這時開發(fā)板一般缺少/micro2440/lib目錄下以與/tslib/lib目錄下文件,需要參考PC編譯完成后在相應目錄下的文件,手動創(chuàng)建。編譯后的字庫不能很好地顯示界面,一般采用重新移植溫泉驛字庫,將解壓后的字庫文件移植到/micro2440/lib

52、/fonts路徑下即可。接下來需要配置開發(fā)板下/etc/profile文件設置環(huán)境變量,/tslib/ts.conf文件設置觸摸屏選項。/etc/profile文件export QTDIR=/micro2440export TSLIB_TOOT=/tslibexport PATH=$QTDIR/bin:$PATHexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0export TSLIB_TSDEVICE=/dev/input/event0export TSLIB_PLUNGINDIR=$TSLIB_ROOT/lib/tse

53、xport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_CALIBFILE=/etc/pointercalexport POINTERCAL_FILE=/etc/pointercalintelliMouse:/dev/input/miceexport QWS_DISPLAY=LinuxFb:/dev/fb0export QT_QWS_FONTDIR=$QTDIR/lib/fontsexport QWS_SIZE=640*480export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib 由于選擇用的

54、是觸摸屏,需要將module_raw input注釋去掉module_raw input /如果不去掉注釋,觸摸屏不可以使用module pthres pmin=1module variance delta=30module dejitter delta=100module linear接下來分別運行/tslib/bin/ts_calibrate以與/tslib/bin/ts_test進行觸摸屏校準以與測試 ,至此,qte-4.5.3編譯移植配置完成。2.5 嵌入式數(shù)據(jù)庫sqlite3的移植基于物聯(lián)網(wǎng)的智能家居嵌入式系統(tǒng),需要使用數(shù)據(jù)庫存儲配置數(shù)據(jù)、實時數(shù)據(jù)等,在這里,選用嵌入式數(shù)據(jù)庫sqli

55、te3。sqlite3是一款代碼精簡、無可視化界面操作的數(shù)據(jù)庫,廣泛應用于嵌入式系統(tǒng)中。一般在Linux系統(tǒng)中,已經(jīng)默認安裝了數(shù)據(jù)庫sqlite3 ,為了能夠在micro2440上使用,需要移植到開發(fā)板中,建立相應的庫文件等,下面主要的移植操作步驟:步驟一:在PC下編譯安裝sqlite3_3.7.11將軟件包sqlite-autoconf-3071100.tar.gz放到/tmp目錄下,在根目錄建立文件夾sqlite3作為解壓文件夾以與編譯文件存放路徑。#mkdir /sqlite3#tar xvzf /tmp/sqlite-autoconf-3071100.tar.gz -C /sqlite3#cd /sqlite3/ sqlite-autoconf-3071100 /進入解壓文件夾#./configure -host=arm-linux -prefix=/sq

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論