隨著計算機、通信及網絡技術的高速發展,嵌入式系統廣泛地滲透到各行各業及人們日常生活的方方面面中。由于嵌入式系統的復雜性不斷增加,嵌入式操作系統成為了嵌入式系統中最重要的組成部分。在各種嵌入式操作系統中,Linux憑借其性能優異、結構清晰、平臺支持廣泛、網絡支持強勁及開放源代碼等多方面的優勢,被嵌入式系統開發者廣泛的采用。同時隨著近幾年來國內嵌入式領域發展非常迅速,其中32位ARM處理器結構體系的嵌入式CPU在商用領域、工控領域和軍用領域都得到了廣泛使用。 近幾年隨著無線通信技術、傳感器技術、信息采集和處理技術的飛速發展,出現了低成本、低功耗、多功能的微型無線傳感器節點。無線傳感器網絡是隨著傳感器節點的發展而興起的計算機科學技術的一個新的研究領域,它是由一組無線傳感器節點通過ad-hoc方式構成的無線網絡,綜合傳感器技術、嵌入式計算技術、分布式信息處理技術和無線通信技術,能夠協作地實時監測、感知和采集各種環境或監測對象的信息,并對其進行處理,并傳送到需要這些信息的用戶處。這種無線網絡系統被廣泛地用于國防軍事、國家安全、環境監測、交通管理、醫療衛生、制造業、反恐救災等領域,具有十分巨大的發展潛力,引起了學術界和工業界的高度重視。 目前,手持終端的應用范圍主要是在商業領域,開發一款適合在工業現場等無線傳感網絡監控領域的手持終端是本文的初衷。本文從嵌入式系統的角度,采用目前比較流行的ARM9處理器和嵌入式Linux的操作系統,闡述手持終端硬件平臺的設計和軟件的移植方案;接著研究了系統引導程序的原理、設備驅動開發的關鍵點、根文件系統的制作方法。在此基礎上,分析和移植引導程序U-Boot 1.1.4的實現、無線收發芯片CC2420的驅動開發和幀緩沖驅動的開發,并針對目標平臺的特點完成了文件系統的構建;然后介紹了基于Qt/Embedded的圖形界面開發的基礎,最后對本文研究工作進行總結。
上傳時間: 2013-06-26
上傳用戶:lguotao
數字攝影的興起不可避免地引起了數碼相框的發展,因為僅有不到35%的數碼照片被打印。數碼相框的基本原理就是采用普通相框的造型,把原來相框中間的照片部分換成液晶顯示屏,配上電源,存儲介質等,使得同一個相框內可以循環播放照片,比普通相框的單一顯示功能更有優勢。從2007年開始,數碼相框的市場關注度開始激增。在2008年,數碼相框市場呈現高速發展的態勢,具有極高的潛在市場價值。 本論文以此為出發點,進行數碼相框軟件的開發研究工作。作為一款嵌入式產品,核心部件CPU采用了性能價格比、性能功耗比都很高的ARM架構處理器之中的一款——三星S3C2440A,顯示器采用了支持雙精度掃描的液晶顯示屏。軟件方面,Bootloader采用較為成熟的u-boot-1.1.4,Linux內核的版本為2.6.12,系統命令集由busybox構成。利用ARM處理器對Linux系統良好的移植性、自帶的LCD控制器、音頻控制器、SD與USB控制器的特點,進行圖像顯示、音頻播放與文件管理。對于目前大部分數碼相框在圖片瀏覽和文件管理功能上的不足,本設計的圖像顯示功能充分利用了觸摸屏功能,實現了圖像的觸摸式移動,使用戶可以自由的觀看放大后的圖像;文件管理功能則設計成了類似windows的文件瀏覽器,不僅具有豐富的文件管理功能,而且使習慣了windows的廣大用戶可以很快的熟悉此功能,并為將來升級為下一代的細分產品——數碼相冊做好準備。 本設計的核心是基于ARM平臺的系統移植與基于QT的應用程序設計。首先根據系統的總體設計思路選擇合適的硬件組合;然后在此基礎上進行u-boot的移植,嵌入式Linux的移植,QT Embedded/Qtopia的移植,以及最后QT圖形界面的設計。
上傳時間: 2013-04-24
上傳用戶:rockjablew
機械手是自動裝配生產線上必不可少的設備,它可以模擬人手臂的部分動作,按預定的程序、軌跡和要求,實現抓取、搬運和裝配等工作。在減輕人的勞動強度、提高裝配質量和提高裝配效率等方面,起到了積極的作用。本文基于ARM和FPGA嵌入式系統,開展了機械手控制系統的研發工作,實現了機械手的自動控制。 嵌入式ARM處理器,具有運行速度快、功耗低、程序設計靈活、外圍硬件資源豐富等優點,但其普通輸入輸出口的高低電平變化周期最快只能到1微妙左右,不適合高速輸入輸出;FPGA芯片高速輸入輸出數據,時間可縮短至幾十納秒。通過ARM處理器和FPGA技術的有機結合,發揮各自的優勢,使系統具有程序設計靈活、以太網通信、大容量存儲、高速數據輸山、低成本等特點,滿足高速機械手自動控制的要求。 本文分析了ARM和FPGA系統,以及機械手控制系統的功能要求;設計硬件模塊、接口電路;闡述了系統軟件的設計過程,包括啟動代碼U—BOOT、操作系統μCLinux的移植;并介紹了如何利用便件描述語言VHDL來實現機械手邏輯控制。
上傳時間: 2013-04-24
上傳用戶:luyanping
嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合的產物。目前,嵌入式系統己經廣泛應用到工業、交通、能源、通信、科研、醫療衛生、國防以及日常生活等領域,并不斷朝著體積小,功能強的方向發展。嵌入式系統不同于原來的單片機系統,它不僅有自己的操作系統,上層應用程序,而且還具備網絡通信和信息管理的功能。 ARM體系的處理器是目前嵌入式系統中使用最廣泛的處理器。它采用了RISC技術,具有尋址方式簡單,寄存器多,指令長度固定等的特點使得它的處理速度快,執行效率高。由于Linux對于ARM技術的支持,具有內核可裁減,網絡功能強大,代碼開放的特點,把Linux應用到嵌入式系統中,能充分發揮ARM和Linux的優勢。 論文以“掌上中文語言學習系統”項目為依托,以ARM體系處理器和Ljnux操作系統的嵌入式系統為基礎,構建一個掌上語言學習設備。 論文首先進行了開發環境的設計與搭建,對開發主機進行TFTP服務器、NFS服務器、minicom串口通信和GNU交叉工具鏈進行配置。實現了針對NAND閃存的U-Boot啟動程序的建立,并對Linux操作系統內核進行了移植工作。最后利用圖形界面系統MiniGUI和遠程調試技術實現了掌上語言學習的軟件功能。
上傳時間: 2013-07-24
上傳用戶:jiangfire
視頻監控系統是一門集計算機技術、通信技術和數字視頻技術于一體的綜合系統。目前視頻監控正向著數字化、網絡化的方向發展。實現基于網絡的視頻監控系統的關鍵是一種嵌入式設備,它應該能夠采集壓縮視頻數據并通過網絡進行傳輸。 本文介紹了一種基于嵌入式Linux的網絡視頻監控系統的設計和實現方法。首先從整體上分析了網絡視頻監控系統的總體設計方案,給出了視頻服務器的硬件框架和軟件體系,并重點討論了在ARM處理器上實現MPEG-4壓縮編碼的方法。其次在ARM硬件平臺成功構建了armlinux嵌入式系統:包括引導程序Bootloader的設計、修改配置linux內核以及制作JFFS2文件系統。其中創新地提出了從nandflash啟動U-BOOT具體設計方法。為了完成系統進一步的視頻采集工作,系統實現了USB數碼攝像頭的驅動。在應用程序開發過程中,首先設計了基于Vide04Linux的視頻采集程序,并采用mmap(內存映射)方式截取圖片。其次重點分析了MPEG-4編碼模型XVID程序中的運動估計部分,并研究了半像素快速搜索算法,從而減少了搜索點數提高了運算速度。最后利用開源JRTPLIB庫實現視頻數據流的RTP傳送。 整個設計都是在深圳旋極公司研制的SUPER-ARM硬件平臺上進行的,linux內核采用2.4.18。其中MPEG-4編碼優化測試是在ARM DeveloperSuite(ADS)version 1.2中完成。 本課題為在ARM平臺實現網絡視頻監控的設計做了有益的探索性嘗試,對今后進一步完成遠程嵌入式視頻監控系統的設計有著積極的意義。
上傳時間: 2013-07-21
上傳用戶:Altman
生化分析儀是醫療機構進行臨床診斷所必須的儀器之一。它通過對血液等人體體液的分析來測定諸如葡萄糖、膽固醇等生化指標,這些常規生化指標可以幫助醫生診斷疾病。生化分析儀在臨床診斷和化學檢驗中具有重要作用。 目前的半自動生化分析儀多以8位單片機為中央處理器,限制了儀器的性能。本文將嵌入式技術應用于生化分析儀的研制當中,選用了32位的ARM9處理器$3C2410A,嵌入Linux操作系統,搭建ARM+Linux的平臺,設計了智能型半自動生化分析儀。 本文介紹了生化分析儀的原理——朗伯.比爾定律及其核心部件——光電比色計。對半自動生化分析儀的整體架構進行了說明。 半自動生化分析儀硬件結構上由電源、時鐘、復位電路,存儲器系統,液路控制系統,光路控制系統,恒溫控制系統(包括溫度測量和溫度控制),數據采集系統,人機交互系統(包括鍵盤、觸摸屏、液晶顯示器LCD和微型打印機)和其他一些接口等組成,對于這些外圍硬件模塊本文給出了詳細設計。 在半自動生化分析儀軟件設計方面,本文詳細介紹了交叉編譯調試環境的建立,引導裝載程序U-Boot的移植,Linux內核的裁減與移植,設備驅動程序的設計,文件系統的建立與移植,應用程序的編寫與移植。 本生化分析儀的功能包括MiniGUI圖形用戶界面、運動控制、溫度控制、數據處理、打印功能及SQLite數據庫管理等。該新型半自動生化分析儀使用方便,性價比高,適用于國內的中小型醫療機構。
上傳時間: 2013-04-24
上傳用戶:ca05991270
在工業生產中,二次自動化儀表是構成自動化系統的基本單元之一。我國的單元儀表己基本完成由電動Ⅲ型儀表向基于八位或十六位單片機為基礎設計的數字化儀表的轉換。由于常規單片機資源的限制,以單片機為基礎設計的單元儀表基本上還是在功能上替代電動Ⅲ型儀表,并按電動Ⅲ型功能進行分類。這樣造成國內自動化儀表生產廠家生產的二次數字化儀表品種繁雜,標準難以統一,設計隨意性大。因此帶來如下現實問題: 1.自動化系統設計單位的儀表選型、系統調試、使用中操作、維修和系統的功能優化及備件的準備非常的不方便: 2.儀表生產廠家的批量生產困難,產品質量的提高及成本的節約不利: 3.國內現在自動化儀表廠家數量眾多,但都無法形成規模生產,質量不佳,而國外進口的二次儀表往往依附于特定的集散系統,也存在標準不統一,難以靈活替換的問題,且價格昂貴。 自動化系統設計、生產及應用迫切需要一種使用方便、通用性強的智能型二次儀表,以解決上述問題,改變傳統設計、生產及應用方式,這將是未來自動化儀表的發展趨勢,也就是本課題的努力方向。 本論文正是針對上述問題,以設計出一種可靈活組態的通用智能型二次儀表為研究對象,在深入分析國內主流儀表廠家的儀表操作方式和儀表功能的基礎上,合理地進行軟硬件設計,為在同一硬件平臺下實現多種儀表的功能進行了創新性和探索性研究。主要內容為: 1.各種常規二次儀表功能、標準、接線、操作習慣及結構方式的歸類分析; 2.多信號多量程的柔性測量方法研究; 3.系統整機設計以及系統可靠性設計; 4.u-boot的向ARM的移植、uClinux向ARM的移植、uClinux下的通用組態軟件設計。 本文設計了一種以三星公司的ARM7TDMI系列處理器S3C44BOX為核心,輔以外圍電路,實現同一硬件平臺下多種儀表的功能,并成功制作了樣品系統。 本文所討論的基于$3C44BOX和uClinux的智能儀表系統的開發技術同樣適用于其它項目的開發,對其它嵌入式的應用系統開發有重要的參考價值。
上傳時間: 2013-05-16
上傳用戶:jjq719719
at91rm9200啟動過程教程 系統上電,檢測BMS,選擇系統的啟動方式,如果BMS為高電平,則系統從片內ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執行這個BOOTLOAER(準確的說應該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設置PLLB產生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應模式下的堆棧設置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設置; 5、C 變量的初始化; 6、跳到主函數。 完成以上步驟后,我們可以認為BOOT過程結束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設備的開始地址處連續的存放的32個字節,也就是8條指令必須是跳轉指令或者裝載PC的指令,其實這樣規定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數115200 8 N 1以及運行XMODEM協議。對USB DEVICE進行初始化以及運行DFU協議。現在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內容和ROM的BOOT差不多,不同的硬件設計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據自己的應用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務也不錯,不但提供了片內啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結構與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設的驅動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網站下載。 我們知道,當9200系統上電后,如果bms為高電平,則系統從片內rom啟動,這時rom中固化的boot程序初始化了debug口并向其發送'c',這時我們打開超級終端會看到ccccc...。這說明系統已經啟動,同時xmodem協議已經啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協議,為下載和啟動uboot做準備。當下載了loader.bin后,超級終端會繼續打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調到此處開始執行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內存、flash、網絡、系統啟動等一些命令。 如果系統上電時bms為低電平,則系統從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經啟動了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統復位,就可以看到系統先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環境,關于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區別嗎?首先有區別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區別,你可以把boot理解為在loader的基礎上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據自己的系統的情況修改和配置以及裁減,打造屬于自己系統的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131
固件作為目標板啟動最核心程序,不僅僅需要引導操作系統,更重要的是需要實現所有硬件的初始化和自檢等,方便設備的維護和保養。U-Boot作為一款通用的開源固件程序,具有良好的可移植性和完整的功能。通過分析U-Boot的目錄結構和啟動流程以及目標板的設計需求,來實現完成基于MPC8548E目標板的具體修改和移植,并增加關鍵硬件的自檢功能,同時闡述通過設置環境變量來啟動操作系統內核。對于不同的CPU和開發板,本U-Boot的啟動原理分析和移植有一定的借鑒意義。
上傳時間: 2014-12-30
上傳用戶:lllliii
本書全面介紹了嵌入式Linux 系統開發過程中,從底層系統支持到上層GUI 應用的方方面面,內容涵蓋Linux 操作系統的安裝及相關工具的使用、配置,嵌入式編程所需要的基礎知識(交叉編譯工具的選項設置、Makefile 語法、ARM 匯編指令等),硬件部件的使用及編程(囊括了常見硬件,比如UART、I2C、LCD 等),U-Boot、Linux 內核的分析、配置和移植,根文件系統的構造(包括移植busybox、glibc、制作映象文件等),內核調試技術(比如添加kgdb 補丁、棧回溯等),驅動程序編寫及移植(LED、按鍵、擴展串口、網卡、硬盤、SD 卡、LCD 和USB 等),GUI 系統的移植(包含兩個GUI 系統:基于Qtopia 和基于X),應用程序調試技術。
上傳時間: 2013-12-23
上傳用戶:life840315