時(shí)間:2023-06-21 09:19:01
導(dǎo)言:作為寫作愛好者,不可錯(cuò)過為您精心挑選的10篇嵌入式設(shè)計(jì)系統(tǒng),它們將為您的寫作提供全新的視角,我們衷心期待您的閱讀,并希望這些內(nèi)容能為您提供靈感和參考。
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2011)07-1649-02
A Reseach on Design of Embedded System
FANG Jian-gang
(Computer College, Wuhan University of Technology, Wuhan 473000, China)
Abstract: Embedded technique as a new and great development force's science technique has been concerned by more and more people.The article discusses the feature of embedded system,embedded software and hardware developing process and design methods.
Key words: embedded system; development environment
嵌入式系統(tǒng)已經(jīng)廣泛的應(yīng)用到通信、家電、汽車、工業(yè)控制等領(lǐng)域,極大的便利了人們的生活。嵌入式系統(tǒng)是指以應(yīng)用為核心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,對功能、可靠性、成本、體積和功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng),,也是為實(shí)現(xiàn)對象體系智能化控制的計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)如圖1。
嵌入式系統(tǒng)由硬件和軟件兩大部分組成,其分類可以從硬件和軟件進(jìn)行劃分。從硬件方面來講,各式各樣的嵌入式處理器是嵌入式系統(tǒng)硬件中的最核心的部分,而目前世界上具有嵌入式功能特點(diǎn)的處理器已經(jīng)超過1000種,流行體系結(jié)構(gòu)包括MCU,MPU等30多個(gè)系列。很多半導(dǎo)體制造商都大規(guī)模生產(chǎn)嵌入式處理器,并且公司自主設(shè)計(jì)處理器也已經(jīng)成為了未來嵌入式領(lǐng)域的一大趨勢,從軟件方面劃分,主要可以依據(jù)操作系統(tǒng)的類型。目前嵌入式系統(tǒng)的軟件主要有兩大類:實(shí)時(shí)系統(tǒng)和分時(shí)系統(tǒng)。其中實(shí)時(shí)系統(tǒng)又分為兩類:硬實(shí)時(shí)系統(tǒng)和軟實(shí)時(shí)系統(tǒng)。
嵌入式系統(tǒng)應(yīng)該具備4個(gè)特性:1) 執(zhí)行特定的功能;2) 以微處理器和設(shè)備構(gòu)成核心;3) 需要嚴(yán)格的時(shí)序與穩(wěn)定性;4)全自動(dòng)操作。
1 嵌入式處理器
嵌入式處理器可以分成下面幾類:嵌入式微處理器(Micro Processor Unit,MPU)、嵌入式微控制器(Microcontroller Unit, MCU)、嵌入式DSP處理器(Embedded Digital Signal Processor, EDSP)、嵌入式片上系統(tǒng)(System On Chip),其中采用RISC架構(gòu)的ARM微處理器以它優(yōu)越的性能被廣泛的應(yīng)用與嵌入式開發(fā)各個(gè)領(lǐng)域。
2 嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)負(fù)責(zé)嵌入式系統(tǒng)的全部軟、硬件資源的分配、調(diào)度、控制、協(xié)調(diào);它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過加載卸載某些模塊來達(dá)到系統(tǒng)所要求的功能。實(shí)時(shí)操作系統(tǒng)是嵌入式系統(tǒng)目前最主要的組成部分。
Linux是目前最為流行的一款開放源代碼的操作系統(tǒng),在當(dāng)今開發(fā)嵌入式系統(tǒng)中,70%以上的項(xiàng)目選擇的Linux作為嵌入式系統(tǒng)。另一種常見的嵌入式Linux是UcLinux,它去掉了內(nèi)存管理單元,該系統(tǒng)直接訪問內(nèi)存,所有的程序中訪問的地址都是物理地址。嵌入式Linux有以下特點(diǎn):精簡的內(nèi)核,性能高、穩(wěn)定,支持多任務(wù)、多種體系結(jié)構(gòu)等。
3 嵌入式系統(tǒng)的設(shè)計(jì)方法
3.1 嵌入式系統(tǒng)的總體結(jié)構(gòu)
一個(gè)嵌入式系統(tǒng)一般都由嵌入式微處理器系統(tǒng)和被控制對象組成,其中微處理器系統(tǒng)是整個(gè)系統(tǒng)的核心,由硬件層、中間層、軟件層和功能層組成。硬件層是嵌入式微處理器、電路和外設(shè),軟件層主要是操作系統(tǒng),功能層是基于操作系統(tǒng)開發(fā)的應(yīng)用程序組成,用來完成對被控對象的控制功能。中間層是將系統(tǒng)軟件與底層硬件部分隔離,使系統(tǒng)的底層設(shè)備驅(qū)動(dòng)程序與硬件無關(guān)。
3.2 嵌入式系統(tǒng)的開發(fā)特點(diǎn)和流程
開發(fā)特點(diǎn):1) 采用宿主機(jī)|目標(biāo)機(jī)的方式。2) 生成的代碼需要固態(tài)化存儲(chǔ)。3) 軟件代碼具有高質(zhì)量、高可靠性。
開發(fā)流程一般由5個(gè)階段構(gòu)成:需求分析、體系結(jié)構(gòu)設(shè)計(jì)、硬件|軟件設(shè)計(jì)、系統(tǒng)集成和代碼固化。各個(gè)階段之間往往要求不斷地反復(fù)和修改,直至完成最終設(shè)計(jì)目標(biāo)。
3.3 嵌入式系統(tǒng)調(diào)試
在嵌入式系統(tǒng)中系統(tǒng)調(diào)試是非常困難的,不同于傳統(tǒng)軟件的調(diào)試,因?yàn)殚_發(fā)程序平臺(tái)和目標(biāo)平臺(tái)是分開的。一般來說,大部分的工作是在RAM中進(jìn)行的,只有當(dāng)程序完成并能運(yùn)行后才切換到ROM上。調(diào)試方法有多種,可分為模擬器方式、在線仿真器方式、在線調(diào)試器方式、監(jiān)控器方式。
4 嵌入式Linux應(yīng)用程序開發(fā)
4.1 開發(fā)環(huán)境的建立
進(jìn)行項(xiàng)目開發(fā)前,首先要搭建一套基于Linux操作系統(tǒng)的應(yīng)用開發(fā)環(huán)境,一般由目標(biāo)機(jī)和宿主機(jī)所構(gòu)成。目標(biāo)板用于運(yùn)行操作系統(tǒng)和系統(tǒng)應(yīng)用軟件,而目標(biāo)板所用到的操作系統(tǒng)的內(nèi)核編譯、應(yīng)用程序的開發(fā)和調(diào)試則需要通過宿主機(jī)來完成。雙方之間通過關(guān)鍵接口如串口、以太網(wǎng)口或USB口建立連接關(guān)系。個(gè)人進(jìn)行嵌入式開發(fā)可以在自己的PC上安裝一套Linux,使用系統(tǒng)中的工具來編譯、調(diào)試。多人開發(fā)的最好建立個(gè)Linux服務(wù)器,使用服務(wù)器的Linux系統(tǒng)的gcc編譯生成目標(biāo)代碼,通過ftp傳到每個(gè)開發(fā)人員的PC,然后通過串口或網(wǎng)絡(luò)下載開發(fā)板上。開發(fā)人員也可以在Windows下安裝模擬Linux環(huán)境的軟件(如Cygwin、虛擬機(jī)等)來開發(fā)。
交叉編譯環(huán)境是一個(gè)由編譯器、連接器和解釋器組成的綜合開發(fā)環(huán)境。交叉編譯工具主要包括針對目標(biāo)系統(tǒng)的編譯器gcc、目標(biāo)系統(tǒng)的二進(jìn)制工具binutils、目標(biāo)系統(tǒng)的標(biāo)準(zhǔn)c庫glibc、gdb代碼調(diào)試器和目標(biāo)系統(tǒng)的Linux內(nèi)核頭文件。
4.2 引導(dǎo)程序
一個(gè)嵌入式軟件系統(tǒng)通??梢苑譃橐龑?dǎo)程序BootLoader、操作系統(tǒng)內(nèi)核、文件系統(tǒng)和用戶程序4個(gè)層次。
BootLoader和PC機(jī)中的BIOS很相似,整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)完全由它來完成。BootLoader是在操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序運(yùn)行之前運(yùn)行的一段小程序,可以初始化硬件設(shè)備,建立內(nèi)存的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶來一個(gè)合適的狀態(tài),為最終調(diào)用內(nèi)核和應(yīng)用程序準(zhǔn)備好正確的環(huán)境。大多數(shù)BootLoader都包含兩種不同的操作模式:啟動(dòng)加載模式和下載模式。
BootLoader的啟動(dòng)過程大多數(shù)分兩個(gè)階段,第一階段主要包含依賴于CPU的體系結(jié)構(gòu)硬件的初始化代碼,通常是用匯編語言實(shí)現(xiàn)的,這一階段任務(wù)是硬件設(shè)備初始化,為加載BootLoader的階段2準(zhǔn)備RAM空間,拷貝BootLoader階段2的代碼到RAM中,設(shè)置好堆棧,跳轉(zhuǎn)到階段2的C程序入口。階段2通常是用C語言來實(shí)現(xiàn),這階段任務(wù)是初始化本階段要使用的硬件設(shè)備,檢測系統(tǒng)的內(nèi)存映射,將內(nèi)核映像和跟文件系統(tǒng)映射從FLASH上讀到RAM空間中,為內(nèi)核設(shè)置參數(shù),調(diào)用內(nèi)核。
4.3 Linux操作系統(tǒng)的移植
Linux系統(tǒng)實(shí)際上由兩個(gè)比較獨(dú)立的部分組成,即內(nèi)核部分和系統(tǒng)部分。Linux系統(tǒng)的移植分為內(nèi)核移植和系統(tǒng)移植,內(nèi)核可以視為由5個(gè)功能部分組成:進(jìn)程管理、內(nèi)存管理、設(shè)備管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)。由于Linux內(nèi)核良好的分層結(jié)構(gòu)將硬件相關(guān)的代碼獨(dú)立出來,在做系統(tǒng)移植時(shí),只需要改動(dòng)進(jìn)程管理、內(nèi)存管理和設(shè)備管理中被獨(dú)立出來的那部分與硬件相關(guān)的代碼,開發(fā)者要將自己開發(fā)的代碼加到Linux內(nèi)核中,需要確定代碼放入到內(nèi)核的位置,了解Linux的內(nèi)核配置系統(tǒng),把開發(fā)功能增加到Linux的配置選項(xiàng)中,使用戶能夠選擇此功能。
4.4 應(yīng)用程序的移植和調(diào)試
在開發(fā)環(huán)境和操作系統(tǒng)建立后,就可以開始應(yīng)用程序的開發(fā)了,應(yīng)用程序的開發(fā)一般先在宿主機(jī)上調(diào)試完成,然后下載到目標(biāo)板,宿主機(jī)和目標(biāo)板必須建立可靠的連接,連接主要方式是串口連接、網(wǎng)絡(luò)連接和JTAG口連接。
Linux中可以使用應(yīng)用程序資源非常豐富,可將現(xiàn)成的程序移植到嵌入式系統(tǒng)中,可以極大加快開發(fā)流程,提高開發(fā)效率。
調(diào)試應(yīng)用程序:Linux包含一個(gè)gun調(diào)試程序gdb,它是一個(gè)用來調(diào)試C和C++程序的調(diào)試器。通過gdb還可以在程序運(yùn)行時(shí)觀察內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況。
5 嵌入式Linux驅(qū)動(dòng)程序開發(fā)
由于嵌入式設(shè)備硬件種類豐富,對于Linux系統(tǒng)的開發(fā),很大工作量是為各種設(shè)備編寫驅(qū)動(dòng)程序。操作系統(tǒng)一般提供設(shè)備驅(qū)動(dòng)程序來完成對特定硬件的控制,以建立應(yīng)用程序和設(shè)備之間的抽象接口。設(shè)備驅(qū)動(dòng)程序?qū)嶋H是處理和操作硬件控制器的軟件,從本質(zhì)上講是內(nèi)核中具有最高特權(quán)硬件的、駐留內(nèi)存的、可共享的底層硬件處理例程。驅(qū)動(dòng)程序是內(nèi)核的一部分,屏蔽了硬件的細(xì)節(jié),Linux操作系統(tǒng)將所有的設(shè)備全部看成文件,都納入文件系統(tǒng)的范疇,并通過文件的操作界面進(jìn)行操作。
5.1 驅(qū)動(dòng)程序的開發(fā)過程
實(shí)現(xiàn)一個(gè)嵌入式Linux設(shè)備驅(qū)動(dòng)的流程:
1) 查看原理圖,理解設(shè)備工作原理。2) 定義設(shè)備號(hào)。3) 實(shí)現(xiàn)初始化函數(shù),在驅(qū)動(dòng)程序中實(shí)現(xiàn)驅(qū)動(dòng)的注冊和卸載。4) 設(shè)計(jì)所要實(shí)現(xiàn)的文件操作。5) 實(shí)現(xiàn)所要的文件操作調(diào)用。6) 實(shí)現(xiàn)中斷服務(wù),并用request-irq向內(nèi)核注冊。7) 編譯該驅(qū)動(dòng)程序到內(nèi)核中,或者用insmod命令加載模塊。8) 測試該設(shè)備,編寫應(yīng)用程序,對驅(qū)動(dòng)程序進(jìn)行調(diào)試。
5.2 模塊化驅(qū)動(dòng)程序
當(dāng)談到軟件時(shí),我們通常稱執(zhí)行態(tài)為內(nèi)核空間和用戶空間,模塊是在內(nèi)核空間中運(yùn)行的,而應(yīng)用程序則是在用戶空間中運(yùn)行。
Linux通過系統(tǒng)調(diào)用和硬件中斷完成從用戶空間到系統(tǒng)空間的控制轉(zhuǎn)換。模塊的作用就是擴(kuò)展內(nèi)核的功能,是運(yùn)行在內(nèi)核空間的模塊化的代碼,模塊的某些函數(shù)作為系統(tǒng)調(diào)用執(zhí)行,而某些函數(shù)負(fù)責(zé)中斷。內(nèi)核模塊的一部分保存在Kernel中,另一部分在Modules包中,模塊就像一個(gè)插件,內(nèi)核提供一個(gè)插槽,在需要時(shí),插入內(nèi)核中使用,不需要時(shí)從內(nèi)核拔出,這一切都由一個(gè)稱作Kernel的守護(hù)進(jìn)程自動(dòng)處理。內(nèi)核模塊的這種動(dòng)態(tài)加載具有以下優(yōu)點(diǎn):將內(nèi)核映像的尺寸保持在最小,并具有最大的靈活性。這便于檢驗(yàn)新的內(nèi)核代碼,而不需要重新編譯內(nèi)核并重新引導(dǎo)。
6 總結(jié)
本文對嵌入式系統(tǒng)設(shè)計(jì)的進(jìn)行了深入淺出的探討,分析了嵌入式系統(tǒng)的組成和特點(diǎn),描述了嵌入式系統(tǒng)開發(fā)流程以及嵌入式Linux下驅(qū)動(dòng)程序開發(fā)特點(diǎn)。
參考文獻(xiàn):
[1] 馬忠梅,李善平,葉楠.ARM&Linux嵌入式教程[M].北京:北京航天航空出版社,2004.
嵌入式芯片是當(dāng)前一些主流數(shù)碼設(shè)備的核心部件,也是嵌入式系統(tǒng)的硬件基礎(chǔ)。嵌入式系統(tǒng)是以應(yīng)用為中心,軟硬件可裁減的,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。簡單地說,嵌入式系統(tǒng)集系統(tǒng)的應(yīng)用軟件與硬件于一體,類似于PC中BIOS的工作方式,具有軟件代碼小、高度自動(dòng)化、響應(yīng)速度快等特點(diǎn),特別適合于要求實(shí)時(shí)和多任務(wù)的體系。
嵌入式芯片主要包括FPGA芯片(Field Programmable Gate Array 現(xiàn)場可編程門陣列),MCS-51系列芯片等等。本文主要介紹面向嵌入式芯片的指令測試系統(tǒng)。
一、系統(tǒng)架構(gòu)
測試系統(tǒng)的主體是面向嵌入式芯片的人機(jī)交互界面。它為用戶提供了檢測芯片指令集的各種便捷操作。
為了更好的實(shí)現(xiàn)測試體系的各項(xiàng)功能,筆者在編寫程序時(shí),將測試系統(tǒng)人為的分成了幾個(gè)模塊。這些模塊之間有著非常緊密的聯(lián)系,每一步的實(shí)現(xiàn)都是下一步成功運(yùn)行的基礎(chǔ)。
測試體系的主體架構(gòu)主要分為五個(gè)部分:
(一)源代碼的輸入與保存
用戶可以通過編輯框輸入代碼,實(shí)現(xiàn)程序的編寫。此外系統(tǒng)還為用戶提供了編輯框的清空操作,并可以自動(dòng)將編寫的代碼保存為.asm文件。
(二)源文件的讀取與顯示
用戶可以將已經(jīng)編寫好的源文件讀入系統(tǒng),并對其進(jìn)行編輯。
(三)交叉編譯
系統(tǒng)對讀入的源文件進(jìn)行編譯,期間用戶可以自動(dòng)配編譯工具,編譯完成后系統(tǒng)將自動(dòng)報(bào)錯(cuò)。
(四)串口的輸入輸出
系統(tǒng)可以將用戶指定的二進(jìn)制文件送到串行口中,并發(fā)送至連接到PC端的8051芯片中。發(fā)送成功后,系統(tǒng)將顯示已經(jīng)發(fā)送的信息。
系統(tǒng)可以自動(dòng)接收來自串口的消息,并顯示在相應(yīng)的列表框中。
(五)程序運(yùn)行日志
系統(tǒng)在用戶運(yùn)行了測試體系之后,即程序的出口處,自動(dòng)生成程序的運(yùn)行日志,它為用戶顯示了程序運(yùn)行的各項(xiàng)參數(shù),例如程序運(yùn)行時(shí)間,串口狀態(tài)等。
此外系統(tǒng)為了使用戶可以更加方便自如的使用本測試框架,在每一部分的實(shí)現(xiàn)過程中,都充分考慮了軟件的靈活性,盡可能的讓用戶自主配置測試體系的各項(xiàng)參數(shù)。
二、系統(tǒng)設(shè)計(jì)
(一)整體性
作為嵌入式測試系統(tǒng)的人機(jī)交互界面,在其設(shè)計(jì)的過程中必然要形成一套完備的軟件體系,即保證程序運(yùn)行的整體性。這關(guān)系到整個(gè)測試系統(tǒng)的完整性和穩(wěn)定性。
源代碼輸入和源文件讀取部分主要是將指令集測試代碼導(dǎo)入到系統(tǒng)中。交叉編譯部分的工作是對導(dǎo)入系統(tǒng)的測試代碼進(jìn)行編譯處理,以便用戶對測試代碼進(jìn)行調(diào)試。串口檢測部分是將編譯通過的測試程序所生成的二進(jìn)制文件以8位字符串的形式送入串口,經(jīng)過開發(fā)板的運(yùn)行以后,將結(jié)果通過串口輸出到指定的LCD顯示屏或PC上,從而驗(yàn)證測試程序的可執(zhí)行性。程序運(yùn)行日志是對整個(gè)程序運(yùn)行的效率和穩(wěn)定性向用戶提供的反饋信息。
(二)靈活性
在保證程序運(yùn)行的整體性的同時(shí),為了使測試體系的使用更加的方便,提高測試體系進(jìn)一步完善的空間,就必須保證各功能模塊的靈活性。在源代碼輸入和源文件讀取的部分,系統(tǒng)默認(rèn)的輸入程序是匯編程序,但用戶也可以輸入C程序,JAVA程序,XML程序等多種程序語言。同時(shí),在交叉編譯部分也可以通過調(diào)用不同的編譯器和鏈接器對這些程序編譯調(diào)試,這無形中將單一的面向嵌入式芯片的匯編編譯器擴(kuò)展為集C語言編譯器,JAVA語言編譯器和XML語言編譯器等多種編譯器于一體的集成編譯環(huán)境,從而實(shí)現(xiàn)強(qiáng)大的編譯功能。串口檢測部分為用戶提供串口參數(shù)的配置框,并支持串口信息的發(fā)送與接收,從而使測試體系具有了類似超級終端的串口通信功能,這也為用戶對串口操作提供了極大的方便。
三、結(jié)束語
作為當(dāng)前主流的數(shù)碼產(chǎn)品的關(guān)鍵部件,嵌入式芯片必然會(huì)在未來的IT市場上占有越來越重要的地位。本文所探討的嵌入式芯片測試系統(tǒng)正是基于這樣的考量,不但從源代碼的輸入與保存,源文件的讀取與顯示,交叉編譯,串口的輸入輸出和程序運(yùn)行日志這五個(gè)模塊來構(gòu)建測試系統(tǒng),而且還從程序設(shè)計(jì)的整體性和靈活性兩個(gè)方面,對該系統(tǒng)進(jìn)行了評測。未來的嵌入式系統(tǒng)和普通的計(jì)算機(jī)系統(tǒng)在微型化和小型化方面將會(huì)趨于一致,而測試系統(tǒng)也可以進(jìn)一步擴(kuò)展為對整個(gè)計(jì)算機(jī)系統(tǒng)進(jìn)行相應(yīng)的檢測。希望測試系統(tǒng)能為嵌入式芯片的發(fā)展做出一定的貢獻(xiàn)。
參考文獻(xiàn):
[1]胡振華.VHDL與FPGA設(shè)計(jì)[M].北京:中國鐵道出版社,2003.
[2]陳榮,陳華.VHDL芯片設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2006.
中圖分類號(hào):TP274;TP3680
引 言
經(jīng)過近幾年的快速發(fā)展,嵌入式系統(tǒng)(Embedded System)已經(jīng)成為電子信息產(chǎn)業(yè)中最具增長力的一個(gè)分支。隨著手機(jī)、PDA,GPS、機(jī)頂盒等新興產(chǎn)品的大量應(yīng)用,嵌入式系統(tǒng)的市場正在以每年30%的速度遞增(IDC預(yù)測),嵌入式系統(tǒng)的設(shè)計(jì)也成為軟硬件工程師越來越關(guān)心的話題。
在嵌入式系統(tǒng)設(shè)計(jì)中,低功耗設(shè)計(jì)(Low Power Design)是許多設(shè)計(jì)人員必須面對的問題。其原因在于嵌入式系統(tǒng)被廣泛應(yīng)用于便攜式和移動(dòng)性較強(qiáng)的產(chǎn)品中,而這些產(chǎn)品不是一直都有充足的電源供應(yīng),往往是靠電池來供電的;而且大多數(shù)嵌入式設(shè)備都有體積和質(zhì)量的約束。另外,系統(tǒng)部件產(chǎn)生的熱量和功耗成比例,為解決散熱問題而采取的冷卻措施進(jìn)一步增加了系統(tǒng)的功耗。為了得到最好的結(jié)果,降低系統(tǒng)的功耗具有下面的優(yōu)點(diǎn):
(1) 電池驅(qū)動(dòng)的需要。在強(qiáng)調(diào)綠色環(huán)保時(shí)期,許多電子產(chǎn)品都采用電池供電。對于電池供電系統(tǒng),延長電池壽命,降低用戶更換電池的周期,提高系統(tǒng)性能與降低系統(tǒng)開銷,甚至能起到保護(hù)環(huán)境的作用。
(2) 安全的需要。在現(xiàn)場總線領(lǐng)域,本安問題是┮桓霆重要話題。例如FF的本安設(shè)備,理論上每個(gè)網(wǎng)段可以容納32個(gè)設(shè)備,而實(shí)際應(yīng)用中考慮到目前的功耗水平,每個(gè)網(wǎng)段安裝10個(gè)比較合適。因此降低系統(tǒng)功耗是實(shí)現(xiàn)本安要求的一個(gè)重要途徑。
[JP2](3) 解決電磁干擾。系統(tǒng)功耗越低,電磁輻射能量越小,對其他設(shè)備造成的干擾也越小。如果所有的電子產(chǎn)品都能設(shè)計(jì)成低功耗,那么電磁兼容性設(shè)計(jì)會(huì)變得容易。[JP]
(4) 節(jié)能的需要。特別是對電池供電系統(tǒng),功耗與電壓的平方成正比即:P=V2fC+P┆static,б虼私諛芨為重要。
1 功耗產(chǎn)生的原因
[BT3]1.1 集成電路的功耗
目前的集成電路工藝主要有TTL和CMOS兩大類,無論哪種工藝,只要電路中有電流通過,就會(huì)產(chǎn)生功耗。通常,集成電路的功耗主要有4個(gè):
(1) 開關(guān)功耗。對電路中的電容充放電而形成,其表達(dá)式為:
(2) 靜態(tài)功耗和動(dòng)態(tài)功耗。當(dāng)電路的狀態(tài)沒有進(jìn)行翻轉(zhuǎn)(保持高電平或低電平)時(shí),電路的功耗屬于靜態(tài)功耗,其大小等于電路電壓與流過電流的乘積;動(dòng)態(tài)功耗是電路翻轉(zhuǎn)時(shí)產(chǎn)生的功耗,由于電路翻轉(zhuǎn)時(shí)存在跳變沿,在電路翻轉(zhuǎn)瞬間,電流比較大,存在較大的動(dòng)態(tài)功耗。目前大多數(shù)電路都采用CMOS工藝,靜態(tài)功耗很小,可以忽略。起主要作用的是動(dòng)態(tài)功耗,因此從降低動(dòng)態(tài)功耗入手來降低功耗。
(3) 短路功耗。因開關(guān)時(shí)由電源到地形成的通路造成的,其表達(dá)式為:
(4) 漏電功耗。由亞閾值電流和反向偏壓電流造成。目前大多數(shù)電路都采用CMOS工藝,故漏電功耗很小,可以忽略。
1.2 電阻的功耗和有源器件的功耗
通常為負(fù)載器件和寄生元件產(chǎn)生的功耗。有源開關(guān)器件在狀態(tài)轉(zhuǎn)換時(shí),電流和電壓比較大,將引起功率消耗。另外, CMOS電路中最大的功耗來自于內(nèi)部和外部的電容充放電產(chǎn)生的功耗。
2 硬件低功耗設(shè)計(jì)
[BT3]2.1 選擇低功耗的器件
選擇低功耗的電子器件可以從根本上降低整個(gè)硬件系統(tǒng)的功耗。目前的半導(dǎo)體工藝主要有TTL工藝和CMOS工藝,CMOS工藝具有很低的功耗,在電路設(shè)計(jì)上盡量選用,使用CMOS系列電路時(shí),其不用的輸入端不要懸空,因?yàn)閼铱盏妮斎攵丝赡艽嬖诟袘?yīng)信號(hào),它將造成高低電平的轉(zhuǎn)換。轉(zhuǎn)換器件的功耗很大,盡量采用輸出為高的原則。
嵌入式處理器是嵌入式系統(tǒng)的硬件核心,消耗大量的功率,因此設(shè)計(jì)時(shí)選用低功耗的處理器;另外,選擇低功耗的通信收發(fā)器(對于通信應(yīng)用系統(tǒng))、低功耗的訪存部件、低功耗的電路,目前許多通信收發(fā)器都設(shè)計(jì)成節(jié)省功耗方式,這樣的器件優(yōu)先采用。
2.2 選用低功耗的電路形式
完成同樣的功能,電路的實(shí)現(xiàn)形式有多種。例如,可以利用分立元件、小規(guī)模集成電路,大規(guī)模集成電路甚至單片實(shí)現(xiàn)。通常,使用的元器件數(shù)量越少,系統(tǒng)的功耗越低。因此,盡量使用集成度高的器件,以減少電路中使用元件的個(gè)數(shù),減少整機(jī)的功耗。
2.3 單電源、低電壓供電
一些模擬電路如運(yùn)算放大器等,供電方式有正負(fù)電源和單電源兩種。雙電源供電可以提供對地輸出的信號(hào)。高電源電壓的優(yōu)點(diǎn)是可以提供大的動(dòng)態(tài)范圍,缺點(diǎn)是功耗大。例如,低功耗集成運(yùn)算放大器LM324,單電源電壓工作范圍為5~30 V。當(dāng)電源電壓為15 V時(shí),功耗約為220 mW;當(dāng)電源電壓為10 V時(shí),功耗約為90 mW;當(dāng)電源電壓為5 V時(shí),功耗約為15 mW??梢?低電壓供電對降低器件功耗的作用十分明顯。因此,處理小信號(hào)的電路可以降低供電電壓。
2.4 分區(qū)/分時(shí)供電技術(shù)
一個(gè)嵌入式系統(tǒng)的所有組成部分并非時(shí)刻在工作,基于此,可采用分時(shí)/分區(qū)的供電技術(shù)。原理是利用“開關(guān)”控制電源供電單元,在某一部分電路處于休眠狀態(tài)時(shí),關(guān)閉其供電電源,僅保留工作部分的電源。
2.5 I/O引腳供電
嵌入式處理器的輸出引腳在輸出高電平時(shí),可以提供約20 mA的電流,該引腳可以直接作為某些電路的供電電源使用,如圖2所示。處理器的引腳輸出高電平時(shí),外部器件工作;輸出低電平時(shí),外部器件停止工作。需要注意,該電路需滿足下列要求:外部器件的功耗較低,低于處理器I/O引腳的高電平輸出電流;外部器件的供電電壓范圍較寬。
2.6 電源管理單元設(shè)計(jì)
處理器全速工作時(shí),功耗最大;待機(jī)狀態(tài)時(shí),功耗比較小。常見的待機(jī)方式有兩種:空閑方式(Idle)和掉電方式(Shut Down)。其中,Idle方式可以通過中斷的發(fā)生退出,中斷可以由外部事件供給。掉電方式指的是處理器停止,連中斷也不響應(yīng),因此需要進(jìn)入復(fù)位才能退出掉電方式。
為了降低系統(tǒng)的功耗,一旦CPU處于“空轉(zhuǎn)”,可以使之進(jìn)入Idle狀態(tài),降低功耗;期間如果發(fā)生了外部事件,可以通過事件產(chǎn)生中斷信號(hào),使CPU進(jìn)入運(yùn)行狀態(tài)。對于Shut Down狀態(tài),只能用復(fù)位信號(hào)喚醒CPU。
2.7 智能電源設(shè)計(jì)
既要保證系統(tǒng)具有良好的性能,又能兼顧功耗問題,一個(gè)最好的辦法是采用智能電源。在系統(tǒng)中增加適當(dāng)?shù)闹悄茴A(yù)測、檢測,根據(jù)需要對系統(tǒng)采取不同的供電方式,以求系統(tǒng)的功耗最低。許多膝上型電腦的電源管理采用智能電源,以筆記本電腦為例,在電源管理方面,Intel公司采取Speed Step技術(shù);AMD公司采取Power Now技術(shù);Transmeta公司采取Long Run技術(shù)。雖然這三種技術(shù)涉及到的具體內(nèi)容不同,但基本原理是一致的。以采用Speed Step技術(shù)的筆記本電腦為例,系統(tǒng)可以根據(jù)不同的使用環(huán)境對CPU的運(yùn)行速度進(jìn)行合理調(diào)整。如果系統(tǒng)使用外接電源,CPU將按照正常的主頻率及電壓運(yùn)行;當(dāng)檢測到系統(tǒng)為電池供電時(shí),軟件將自動(dòng)切換CPU的主頻率及電壓至較低狀態(tài)運(yùn)行。
2.8 降低處理器的時(shí)鐘頻率
處理器的功耗與時(shí)鐘頻率密切相關(guān)。以SAMSUNG S3C2410X (32 b ARM 920T內(nèi)核)為例[8],它提供了四種工作模式:正常模式、空閑模式、休眠模式、關(guān)機(jī)模式,各種模式的功耗如表1所示。[HJ1][HJ]
由表1可見,CPU在全速運(yùn)行的時(shí)候比在空閑或者休眠的時(shí)候消耗的功率大得多。省電的原則就是讓正常運(yùn)行模式遠(yuǎn)比空閑、休眠模式少占用時(shí)間。在類似PDA的設(shè)備中,系統(tǒng)在全速運(yùn)行的時(shí)候遠(yuǎn)比空閑的時(shí)候少,所以可以通過設(shè)置,使CPU盡可能工作在空閑狀態(tài),然后通過相應(yīng)的中斷喚醒 CPU,恢復(fù)到正常工作模式,處理響應(yīng)的事件,然后再進(jìn)入空閑模式。因此設(shè)計(jì)系統(tǒng)時(shí),如果處理能力許可,可盡量降低處理器的時(shí)鐘頻率。
另外,可以動(dòng)態(tài)改變處理器的時(shí)鐘,以降低系統(tǒng)的總功耗。CPU空閑時(shí),降低時(shí)鐘頻率;處于工作狀態(tài)時(shí),提高時(shí)鐘頻率以全速運(yùn)行處理事務(wù),實(shí)現(xiàn)這一技術(shù)的方法。通過將I/O引腳設(shè)定為輸出高電平,加入電阻R1,將增加時(shí)鐘頻率;將I/O引腳輸出低電平,去掉電阻R1,可降低時(shí)鐘頻率,以降低功耗。
2.9 降低持續(xù)工作電流
在一些系統(tǒng)中,盡量使系統(tǒng)在狀態(tài)轉(zhuǎn)換時(shí)消耗電流,在維持工作時(shí)期不消耗電流。例如,IC卡水表、煤氣表、靜態(tài)電能表等,在打開和關(guān)閉開關(guān)時(shí)給相應(yīng)的機(jī)構(gòu)上電,開關(guān)開和關(guān)狀態(tài)通過機(jī)械機(jī)構(gòu)或磁場機(jī)制保持開關(guān)的狀態(tài),而不通過電流保持,可以進(jìn)一步降低電能的消耗。[JP]
3 軟件低功耗設(shè)計(jì)
3.1 編譯低功耗優(yōu)化技術(shù)
編譯技術(shù)降低系統(tǒng)功耗是基于這樣的事實(shí):對于實(shí)現(xiàn)同樣的功能,不同的軟件算法,消耗的時(shí)間不同,使用的指令不同,因而消耗的功率也不同。對于使用高級語言,由于是面向問題設(shè)計(jì)的,很難控制低功耗。但是,如果利用匯編語言開發(fā)系統(tǒng)(如對于小型的嵌入式系統(tǒng)開發(fā)),可以有意識(shí)地選擇消耗時(shí)間短的指令和設(shè)計(jì)消耗功率小的算法來降低系統(tǒng)的功耗。
3.2 硬件軟件化與軟件硬件化
通常的硬件電路一定消耗功率,基于此,可以減少系統(tǒng)的硬件電路,把數(shù)據(jù)處理功能用軟件實(shí)現(xiàn),如許多儀表中用到的對數(shù)放大電路、抗干擾電路,測量系統(tǒng)中用軟件濾波代替硬件濾波器等。
需要考慮,軟件處理需要時(shí)間,處理器也需要消耗功率,特別是在處理大量數(shù)據(jù)的時(shí)候,需要高性能的處理器,這可能會(huì)消耗大量的功率。因此,系統(tǒng)中某一功能用軟件實(shí)現(xiàn),還是用硬件實(shí)現(xiàn),需要綜合計(jì)算后進(jìn)行設(shè)計(jì)。3.3 采用快速算法
數(shù)字信號(hào)處理中的運(yùn)算,采用如FFT和快速卷積等,可以大量節(jié)省運(yùn)算時(shí)間,從而減少功耗;在精度允許的情況下,使用簡單函數(shù)代替復(fù)雜函數(shù)作近似,也是減少功耗的一種方法。
3.4 軟件設(shè)計(jì)采用中斷驅(qū)動(dòng)技術(shù)
一、概述
如今,數(shù)量眾多的車輛都嵌入了GPS。作為車載模塊,GPS可以相對有效地儲(chǔ)存一些靜態(tài)興趣點(diǎn)(staticPointsOfInterest)的位置信息(如家庭,公司和商場信息等等)。然而,GPS還不能獲得更多的信息用來判定一些動(dòng)態(tài)興趣點(diǎn)(dynamicalPointsOfInterest)的位置信息(如動(dòng)態(tài)的車輛信息,路人信息或動(dòng)態(tài)的車位空閑狀態(tài)信息)[1]。隨著嵌入式技術(shù)的發(fā)展,越來越多的感知模塊也被嵌入到車輛當(dāng)中,用以輔助提升整車的智能化。我們可以將車輛的GPS模塊和攝像模塊進(jìn)行整合再開發(fā),用以偵測動(dòng)態(tài)的興趣點(diǎn)。更進(jìn)一步的,借助諸如車載自組網(wǎng)等類似技術(shù),將分散用戶采集的數(shù)據(jù)快速有效收集至云端處理,進(jìn)而分析得出實(shí)時(shí)的空閑車位,事故狀況等詳細(xì)信息可以被共享給更多用戶。
二、理論設(shè)計(jì)
首先,裝備了車載攝像系統(tǒng)的車輛負(fù)責(zé)采集原始圖像,并搜尋最佳的數(shù)據(jù)鏈路將圖像數(shù)據(jù)傳送至路邊基站(RSU:RoadSideUnit)。圖像信息再由RSU轉(zhuǎn)送至云服務(wù)器(CCS:CloudComputingSystem)。根據(jù)客戶不同的需求,實(shí)時(shí)的圖像可以被分類解析出不同的結(jié)果,以滿足不同的需求。系統(tǒng)可用于尋找可用的空閑車位。車輛巡弋道路的同時(shí),通過攝像模塊捕捉街景用以搜尋可用的空閑停車位(圖中扇形探索區(qū)域),通過GPS模塊采集地理位置等相關(guān)信息。這些圖像信息經(jīng)由RSU被上傳至CCS,云端程序?qū)D像進(jìn)行分析,并據(jù)此更新數(shù)據(jù)庫中可用空閑車位的時(shí)間和位置。在客戶端,那些激活車位搜尋功能的車輛可以接收到實(shí)時(shí)的信息,并由系統(tǒng)引導(dǎo)至可用的停車位。
三、系統(tǒng)實(shí)現(xiàn)
為協(xié)助客戶搜尋目標(biāo)車輛和目標(biāo)人物,描述了數(shù)據(jù)傳輸和數(shù)據(jù)分析的過程:車載端完成對圖像的實(shí)時(shí)采集、地理坐標(biāo)的標(biāo)注和圖像的加密壓縮;路邊基站RSU接收車載端的數(shù)據(jù),并將這些數(shù)據(jù)合理上傳至CCS;在CCS中,數(shù)據(jù)首先需要被解密解壓,而后車牌的識(shí)別,人臉的識(shí)別等相關(guān)算法可以對數(shù)據(jù)進(jìn)行處理分析,再由各自動(dòng)化腳本對處理所得的結(jié)果,進(jìn)行數(shù)據(jù)比對和數(shù)據(jù)庫更新的工作。整個(gè)車載端模型以RaspberryPi微處理器為中心,擴(kuò)展以攝像模塊進(jìn)行圖像采集,GPS模塊地理位置采集,以及電源、網(wǎng)卡等其他模塊。RSU將由兩臺(tái)PC進(jìn)行模擬,多個(gè)自動(dòng)化腳本進(jìn)行網(wǎng)絡(luò)配置、文件管理和流量控制。圖像信息將經(jīng)由此上傳至CCS。CCS采用AmazonElasticComputeCloud實(shí)現(xiàn),服務(wù)器將配置數(shù)據(jù)庫、網(wǎng)頁服務(wù)器和文件管理等諸多系統(tǒng),同時(shí)核心的圖像解析程序,也將由服務(wù)器自動(dòng)調(diào)用,并根據(jù)處理結(jié)果,更新數(shù)據(jù)庫信息。圖像處理部分,使用C#語言和Emgu庫解析圖像,提取人臉信息,讀取車牌信息。車載端將拍攝的街景經(jīng)由RSU上傳至云端,云系統(tǒng)將對采集的圖像數(shù)據(jù)進(jìn)行分析。之后,系統(tǒng)將解析出的人臉和車牌,與客戶所要搜尋的目標(biāo)進(jìn)行比對,反饋一組可能的人或車輛,以及相應(yīng)的地理位置和時(shí)間信息。如果某一目標(biāo)得到客戶的確認(rèn),則根據(jù)其GPS信息和時(shí)間標(biāo)簽等數(shù)據(jù),系統(tǒng)會(huì)將目標(biāo)出現(xiàn)的軌跡繪制在以GoogleMap為基礎(chǔ)的網(wǎng)頁上。
四、結(jié)束語
文中設(shè)計(jì)了一款新穎的道路監(jiān)控系統(tǒng)構(gòu)架,據(jù)此完成了實(shí)驗(yàn)室模型,并為模型開發(fā)了車牌識(shí)別和人臉讀取的應(yīng)用。通過這些實(shí)踐,表明了該理論設(shè)計(jì)可以支持對動(dòng)態(tài)興趣點(diǎn)的檢測和定位。
參考文獻(xiàn):
[1]曹沖.國內(nèi)外車載GPS系統(tǒng)的應(yīng)用現(xiàn)狀和發(fā)展趨勢[J].全球定位系統(tǒng),2000(01):4-8.
[2]ObstM,HobertL,ReisdorfP.Multi-sensordatafusionforcheckingplausibilityofV2Vcommunicationsbyvision-basedmultiple-objecttracking[C]//VehicularNetworkingConference(VNC),2014IEEE.IEEE,2014:143-150.
[3]PauG,WengJT,GerlaM.Pics-on-wheels:Photosurveillanceinthevehicularcloud[C]//2013InternationalCon-ferenceonComputing,NetworkingandCommunications(ICNC).IEEEComputerSociety,2013:1123-1127.
[4]SharefBT,AlsaqourRA,IsmailM.Vehicularcommu-nicationadhocroutingprotocols:Asurvey[J].JournalofNetwork&ComputerApplications,2014,40(2):363-396.
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2012)05-0151-01
1、嵌入式系統(tǒng)的特點(diǎn)以及實(shí)現(xiàn)方法
嵌入式系統(tǒng)的主要特點(diǎn)如下:嵌入式系統(tǒng)的硬件和軟件的緊密結(jié)合,具有很強(qiáng)的依賴性之間的軟件和硬件,嵌入式系統(tǒng)的功能和性能通過軟件和硬件來實(shí)現(xiàn)。因此,在硬件平臺(tái)上的嵌入式軟件系統(tǒng)的測試。在硬件,嵌入式軟件系統(tǒng)測試。這是一個(gè)不同的主機(jī)平臺(tái)上的軟件,只能在電腦平臺(tái)的主機(jī)平臺(tái)軟件系統(tǒng)測試,不需要專門的硬件平臺(tái)測試。嵌入式系統(tǒng)的要求非??量痰臅r(shí)間。嵌入式系統(tǒng),實(shí)時(shí)控制系統(tǒng),為要求苛刻的實(shí)時(shí)場合。嵌入式系統(tǒng)的硬件資源有限,存儲(chǔ)容量和速度的嵌入式CPU和應(yīng)用環(huán)境的制約。
軟件測試的方法可以分為黑盒測試和白盒測試兩大類:黑盒測試是一種基于需求的測試,以驗(yàn)證測試軟件是否滿足軟件的需求。白盒是基于結(jié)構(gòu)的測試,軟件控制流測試包括語句覆蓋,分支覆蓋,等等和數(shù)據(jù)流測試。覆蓋測試原理是:測試軟件,測試工具的使用靜態(tài)分析,以確定代碼中的分支點(diǎn),并統(tǒng)一編號(hào),分配給每個(gè)分支點(diǎn)。計(jì)劃執(zhí)行的歷史信息和路徑,你可以從這份文件中,為了計(jì)算的代碼覆蓋率。嵌入式軟件與主機(jī)平臺(tái)上的軟件有不同的特點(diǎn),所以從主機(jī)平臺(tái)軟件測試,測試也明顯不同。
2、嵌入式系統(tǒng)的應(yīng)用
嵌入式系統(tǒng)為中心,基于計(jì)算機(jī)技術(shù),利用可定制的功能性,可靠性,成本,體積,功耗嚴(yán)格要求,設(shè)備專用計(jì)算機(jī)系統(tǒng)111硬件和軟件。它一般由嵌入式微處理器,硬件設(shè)備,嵌入式操作系統(tǒng)和用戶應(yīng)用程序,控制其他設(shè)備,監(jiān)事或管理由四部分。最典型的嵌入式系統(tǒng)的特點(diǎn)是與人民生活密切相關(guān)的,任何一個(gè)普通的人可能有各種使用嵌入式微處理器技術(shù)的電子產(chǎn)品,MP3,PDA等數(shù)字設(shè)備,數(shù)字家電,智能家電,地理信息系統(tǒng)的車輛。事實(shí)上,新的嵌入式設(shè)備的數(shù)量遠(yuǎn)遠(yuǎn)超過通用計(jì)算機(jī)。其硬件系統(tǒng)表現(xiàn)如右:
嵌入式操作系統(tǒng)和通用操作系統(tǒng)有許多功能,如可靠性,可削減,可擴(kuò)展性,實(shí)時(shí)等。前三嵌入式應(yīng)用環(huán)境的要求?!皩?shí)時(shí)”,以滿足系統(tǒng)內(nèi)容的實(shí)時(shí)性要求。通常在一些嵌入式操作系統(tǒng),通常被稱為“實(shí)時(shí)操作系統(tǒng),但它是操作系統(tǒng)的性能有一個(gè)更好的實(shí)時(shí)能力。在一個(gè)特定的嵌入式應(yīng)用系統(tǒng)中,沒有實(shí)時(shí)的結(jié)論。不同的嵌入式操作系統(tǒng),可以有不同的實(shí)時(shí)能力。嵌入式操作系統(tǒng)應(yīng)符合設(shè)計(jì)實(shí)時(shí)任務(wù)調(diào)度,運(yùn)行速度快,實(shí)時(shí)性能的內(nèi)容嵌入式操作系統(tǒng)的能力,可以更容易地實(shí)現(xiàn)實(shí)時(shí)的應(yīng)用程序。
3、應(yīng)用航天業(yè)的條件和發(fā)展
今天的軟件和硬件技術(shù)的發(fā)展,嵌入式系統(tǒng)被廣泛用于航空航天,國防,軍工,電子通訊等行業(yè),其中軟件變得越來越復(fù)雜。應(yīng)用嵌入式系統(tǒng)的特點(diǎn),這些地區(qū)往往是高安全性,關(guān)鍵任務(wù)系統(tǒng),軟件,小缺陷可能會(huì)嚴(yán)重威脅生命和國家安全的,巨大的天文財(cái)產(chǎn)損失。這使得它保證嵌入式軟件的質(zhì)量和可靠性變得至關(guān)重要。
4、航天業(yè)的應(yīng)用條件
嵌入式系統(tǒng)的任務(wù)有一定量的時(shí)間限制。據(jù)截止時(shí)間,實(shí)時(shí)系統(tǒng),實(shí)時(shí)被分為“硬實(shí)時(shí)時(shí)間”和“軟實(shí)時(shí)”??梢酝耆珴M足硬實(shí)時(shí)應(yīng)用的需求,否則,導(dǎo)致發(fā)生重大安全事故,甚至造成了生命和生態(tài)破壞。
可預(yù)見性是一個(gè)系統(tǒng),能夠?qū)崟r(shí)執(zhí)行任務(wù)的時(shí)間來判斷,以確定它是否能滿足任務(wù)的期限。在航空航天工業(yè)實(shí)時(shí)系統(tǒng)需要嚴(yán)格的時(shí)間限制,稱為實(shí)時(shí)系統(tǒng)的可預(yù)測性是一個(gè)重要的性能要求也至關(guān)重要。除了硬件延遲的可預(yù)見性,也需要軟件系統(tǒng)的可預(yù)測性,包括應(yīng)用程序的可預(yù)測性的響應(yīng)時(shí)間可預(yù)測的,也就是說,在有限的時(shí)間內(nèi)完成必要的工作;和操作系統(tǒng),即實(shí)際運(yùn)行時(shí)的開銷時(shí)間原語,調(diào)度功能應(yīng)范圍內(nèi),以確保應(yīng)用程序的執(zhí)行時(shí)間為界。
5、與外部環(huán)境的相互作用
航天業(yè)需要的外部環(huán)境是獨(dú)一無二的,這樣的外部環(huán)境是一個(gè)實(shí)時(shí)系統(tǒng)不可或缺的組成部分??臻g計(jì)算機(jī)子系統(tǒng)控制系統(tǒng),它必須在規(guī)定時(shí)間內(nèi)作出回應(yīng)外部請求。外部物理環(huán)境經(jīng)常指責(zé)子系統(tǒng),兩個(gè)互動(dòng),以形成一個(gè)完整的實(shí)時(shí)系統(tǒng)。為此,該系統(tǒng)需要一個(gè)靜態(tài)的分析,并保留資源和冗余配置,系統(tǒng)可以工作在最壞的情況下,或避免損失。可靠性已成為航空航天工業(yè)的實(shí)時(shí)系統(tǒng)性能不可缺少的一個(gè)重要指標(biāo)來衡量。
6、結(jié)語
隨著嵌入式系統(tǒng)的廣泛使用,其實(shí)時(shí)性已經(jīng)吸引了越來越多的關(guān)注。實(shí)時(shí)嵌入式系統(tǒng)是一個(gè)綜合性的問題,應(yīng)考慮在嵌入式系統(tǒng)設(shè)計(jì),硬件不僅是軟件的選擇也應(yīng)注意。在這些領(lǐng)域的嵌入式系統(tǒng)應(yīng)用的特點(diǎn),往往是高安全性,關(guān)鍵任務(wù)系統(tǒng),軟件,小缺陷可能會(huì)嚴(yán)重威脅生命和國家安全的一個(gè)巨大的天文數(shù)字的財(cái)產(chǎn)損失。這使得它變得至關(guān)重要,以確保嵌入式軟件的質(zhì)量和可靠性。
參考文獻(xiàn)
[1]謝東,李昌禧.基于LabVIEW的嵌入式軟件黑盒測試系統(tǒng)的研究[J].工業(yè)控制計(jì)算機(jī),2005年12期.
[2]楊順昆,劉斌,陸民燕.WindowsNT下幾種定時(shí)器的實(shí)現(xiàn)原理及性能比較[J].測控技術(shù),2002年12期.
[3]崔小樂,劉斌,鐘德明,阮鐮,高小鵬.實(shí)時(shí)嵌入式軟件仿真測試平臺(tái)的體系結(jié)構(gòu)設(shè)計(jì)[J].測控技術(shù),2003年07期.
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)32-7230-02
隨著電子信息技術(shù)的發(fā)展,計(jì)算機(jī)在不同領(lǐng)域中得到了廣泛的應(yīng)用,人們根據(jù)不同領(lǐng)域的實(shí)際需求,針對性的開發(fā)了具有相應(yīng)功能的軟件,從而提高實(shí)際的工作效率,但是在計(jì)算機(jī)出現(xiàn)的早期,受到其體積和性能上的限制,其應(yīng)用的范圍很小,隨著晶體管和集成電路的出現(xiàn),計(jì)算機(jī)的體積和性能得到了極大的提升,從計(jì)算機(jī)的發(fā)展可以看出,每次技術(shù)的更新,都是為了減小其體積,同時(shí)提高其性能。計(jì)算機(jī)的出現(xiàn)是革命性的,由于其能夠自行的處理任務(wù),如果應(yīng)用在實(shí)際的工業(yè)生產(chǎn)中,就能夠?qū)崿F(xiàn)生產(chǎn)的自動(dòng)化,這也是近些年計(jì)算機(jī)應(yīng)用發(fā)展的方向,但是通過實(shí)際的調(diào)查發(fā)現(xiàn),計(jì)算機(jī)在應(yīng)用的過程中,雖然經(jīng)過了多年的發(fā)展,出現(xiàn)了筆記本電腦,在體積上得到了極大的控制,但是在工業(yè)控制領(lǐng)域中,這樣的體積依然很龐大,在這種背景下,人們發(fā)明了單片機(jī)這種微型計(jì)算機(jī),并在工業(yè)控制中得到了廣泛的應(yīng)用。
1 嵌入式架構(gòu)簡述
1.1 嵌入式架構(gòu)的概念
嵌入式架構(gòu)是隨著計(jì)算機(jī)的發(fā)展,逐漸形成的一門學(xué)科,現(xiàn)在很多高校中,都開設(shè)了這門課程,為社會(huì)培養(yǎng)大量的相關(guān)人才,學(xué)生在畢業(yè)后,能夠掌握到充足的嵌入式架構(gòu)知識(shí),從而能進(jìn)行計(jì)算機(jī)系統(tǒng)的設(shè)計(jì),我國受到特殊的歷史因素影響,經(jīng)濟(jì)和科技發(fā)展的起步較晚,與西方發(fā)達(dá)國家相比,存在較大的差距,尤其是在電子信息領(lǐng)域。雖然近年來隨著國家的重視,出臺(tái)了很多優(yōu)惠的政策法規(guī),鼓勵(lì)和扶持我國相關(guān)產(chǎn)業(yè)的發(fā)展,經(jīng)過了多年的發(fā)展,現(xiàn)在我國嵌入式架構(gòu)的研究,已經(jīng)得到了很大的提高,但是通過實(shí)際的調(diào)查發(fā)現(xiàn),嵌入式架構(gòu)使用的單片機(jī)等設(shè)備,目前還都是國外的公司生產(chǎn)的,我國技術(shù)人員在完成系統(tǒng)的開發(fā)后,都需要采用國外的設(shè)備,由于我國一直受到西方國家的技術(shù)封鎖,很多先進(jìn)的設(shè)備都無法進(jìn)口,在很大程度上影響了我國嵌入式架構(gòu)的發(fā)展。對于嵌入式架構(gòu)的概念,國際電氣和電子工程師協(xié)會(huì)給出了具體的解釋,是控制、監(jiān)視等輔助設(shè)備工作的系統(tǒng),目前對于嵌入式架構(gòu)的理解,主要基于計(jì)算機(jī)技術(shù),一般情況下,可以把帶有控制程序的處理器,看成是一個(gè)嵌入式架構(gòu),在不同的時(shí)期,人們對于嵌入式架構(gòu)概念的理解,也存在一定的差異,但是從根本上來說,都是為了更好的使用嵌入式系統(tǒng)。
1.2 嵌入式架構(gòu)的特點(diǎn)
與傳統(tǒng)的計(jì)算機(jī)技術(shù)相比,嵌入式架構(gòu)具有鮮明的特點(diǎn),首先就是體積更小,在嵌入式架構(gòu)出現(xiàn)的早期,主要是在計(jì)算機(jī)的基礎(chǔ)上,進(jìn)行系統(tǒng)的開發(fā),但是隨著相關(guān)技術(shù)的發(fā)展,嵌入式架構(gòu)自身有了很大的進(jìn)步,尤其是單片機(jī)等微型計(jì)算機(jī)的出現(xiàn),使得其應(yīng)用的范圍更加廣泛,從某種意義上來說,單片機(jī)的出現(xiàn),就是由于嵌入式架構(gòu)應(yīng)用的需要。其次嵌入式架構(gòu)具有控制的特點(diǎn),隨著電子信息化的發(fā)展,很多機(jī)械設(shè)備都采用了智能芯片,通過這些芯片的使用,可以寫入特定的控制程序,從而達(dá)到相應(yīng)的控制目的,近幾年軟件技術(shù)有了很大的發(fā)展,尤其是在人工專家模塊出現(xiàn)后,計(jì)算機(jī)軟件可以實(shí)現(xiàn)一定的智能化,在遇到一些問題時(shí),可以通過檢索以前的經(jīng)驗(yàn),對問題自行進(jìn)行處理,如果將這個(gè)技術(shù)應(yīng)用到嵌入式架構(gòu)中,就可以實(shí)現(xiàn)工業(yè)生產(chǎn)的自動(dòng)化控制。從根本上來說,工業(yè)的自動(dòng)化控制技術(shù),就是在單片機(jī)等微型計(jì)算機(jī)的基礎(chǔ)上發(fā)展起來的,而單片機(jī)的使用,大多都是在嵌入式架構(gòu),通過硬件和軟件的針對性設(shè)計(jì),可以最大程度的提高單片機(jī)應(yīng)用的效率。
2 單片機(jī)系統(tǒng)設(shè)計(jì)的現(xiàn)狀
2.1 單片機(jī)系統(tǒng)設(shè)計(jì)的發(fā)展
單片機(jī)的出現(xiàn),主要是由于實(shí)際應(yīng)用的需要,傳統(tǒng)的計(jì)算機(jī)受到體積上的限制,雖然在很多領(lǐng)域中得到了應(yīng)用,但是在實(shí)際的工業(yè)生產(chǎn)中,要想對生產(chǎn)過程中的每個(gè)環(huán)節(jié)進(jìn)行控制,必須將所有的環(huán)節(jié)通過特定的方式連接起來,然后設(shè)置一個(gè)中央服務(wù)器,通過硬件和軟件等方式,對生產(chǎn)進(jìn)行實(shí)時(shí)的控制,只有這樣才能夠最大程度提高生產(chǎn)的效率。由此可以看出,單片機(jī)系統(tǒng)的發(fā)展,可以分成硬件和軟件兩個(gè)部分,而這兩個(gè)部分都受到計(jì)算機(jī)技術(shù)的影響,尤其是軟件方面,在初期使用機(jī)器語言進(jìn)行編程時(shí),還沒有單片機(jī)的出現(xiàn),而匯編等低級語言使用,單片機(jī)程序的編寫,也采用這些低級語言,隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,逐漸的出現(xiàn)了C語言等高級語言,相應(yīng)的單片機(jī)系統(tǒng)設(shè)計(jì),也開始使用這些高級語言,極大的提高了軟件編寫的效率。單片機(jī)系統(tǒng)硬件的發(fā)展,由于其出現(xiàn)和發(fā)展都在西方發(fā)達(dá)國家,而且由于社會(huì)和經(jīng)濟(jì)的體制不同,這些國家對我國一直存在技術(shù)上的封鎖,因此我國很難接觸到先進(jìn)的單片機(jī)系統(tǒng)知識(shí),在很大程度上影響了我國單片機(jī)技術(shù)的發(fā)展,目前使用的單片機(jī)設(shè)備,都是國外公司生產(chǎn)的,而且一些最新的單片機(jī),對我國還存在進(jìn)口的限制。
2.2 單片機(jī)系統(tǒng)設(shè)計(jì)中存在的問題
單片機(jī)從出現(xiàn)開始,到現(xiàn)在已經(jīng)使用了多年,在應(yīng)用的過程中,其自身的理論在不斷的完善,通過單片機(jī)系統(tǒng)的使用,可以輕松的實(shí)現(xiàn)工業(yè)生產(chǎn)的自動(dòng)化,進(jìn)而提高生產(chǎn)的效率,正是由于單片機(jī)系統(tǒng)的這個(gè)特點(diǎn),使得每個(gè)企業(yè)都希望能夠通過這樣的方式,來提高自身的生產(chǎn)效率,但是在實(shí)際應(yīng)用的過程中,不同公司加工的產(chǎn)品不同,生產(chǎn)設(shè)備也存在一定的差異,如果使用同樣的單片機(jī)系統(tǒng),顯然無法最大程度的提高生產(chǎn)效率。因此現(xiàn)在單片機(jī)系統(tǒng)的使用,都會(huì)根據(jù)實(shí)際的需求,對單片機(jī)系統(tǒng)的功能,進(jìn)行針對性的設(shè)計(jì),但是通過實(shí)際的調(diào)查發(fā)現(xiàn),目前單片機(jī)系統(tǒng)設(shè)計(jì)中,還存在著一些問題,使得設(shè)計(jì)的系統(tǒng)不是很完善,在實(shí)際使用的過程中,經(jīng)常會(huì)出現(xiàn)一些漏洞,影響產(chǎn)品的加工效率,由于單片機(jī)系統(tǒng)設(shè)計(jì)可以分成軟件和硬件兩個(gè)部分,因此對系統(tǒng)設(shè)計(jì)存在的問題,也可以從這兩個(gè)方面進(jìn)行分析。首先就是硬件性能不合格,在設(shè)計(jì)完實(shí)際的電路后,對各個(gè)元器件的性能,都有具體的要求,如果這些器件的性能達(dá)不到相應(yīng)的指標(biāo),那么電路顯然就無法正常的運(yùn)行,其次就是軟件設(shè)計(jì)的不完善,由于軟件自身的特殊性,無法編寫出完美的程序,程序自身越復(fù)雜,存在的漏洞也就越多,如果在程序編寫完成之后,沒有經(jīng)過科學(xué)的測試,那么在應(yīng)用時(shí),就可能會(huì)出現(xiàn)問題。
3 基于嵌入式架構(gòu)的單片機(jī)系統(tǒng)設(shè)計(jì)分析
3.1 基于嵌入式架構(gòu)的單片機(jī)系統(tǒng)硬件設(shè)計(jì)
在單片機(jī)出現(xiàn)的早期,由于還沒有形成嵌入式架構(gòu)的概念,因此在實(shí)際的系統(tǒng)設(shè)計(jì)中,而且單片機(jī)系統(tǒng)的使用,都是對現(xiàn)有的生產(chǎn)線進(jìn)行改進(jìn),通過在生產(chǎn)設(shè)備上增加一些線路,然后用單片機(jī)對其進(jìn)行控制,在這種模式下,硬件設(shè)備的選擇,主要是根據(jù)環(huán)境來進(jìn)行,對硬件設(shè)備的體積要求比較嚴(yán)格。隨著硬件設(shè)備的發(fā)展,現(xiàn)在生產(chǎn)單片機(jī)的公司有很多,可以實(shí)現(xiàn)同樣功能的元器件有很多,而自動(dòng)化技術(shù)的出現(xiàn),使得生產(chǎn)線在設(shè)計(jì)的過程中,會(huì)根據(jù)控制的需求,進(jìn)行相應(yīng)的變化,這種單片機(jī)系統(tǒng)使用方式上的轉(zhuǎn)變,極大的促進(jìn)了其應(yīng)用的發(fā)展,為了達(dá)到更高的控制效率,人們將單片機(jī)放到生產(chǎn)線的每個(gè)環(huán)節(jié)中,然后將這些單片機(jī)連接到一個(gè)服務(wù)器上,就能夠?qū)崿F(xiàn)對生產(chǎn)的全面控制。現(xiàn)在單片機(jī)系統(tǒng)設(shè)計(jì)中,首先進(jìn)行的就是硬件上的設(shè)計(jì),通常情況下,會(huì)根據(jù)生產(chǎn)的實(shí)際情況,對控制的功能進(jìn)行需求分析,單片機(jī)系統(tǒng)硬件的設(shè)計(jì),會(huì)和生產(chǎn)線的硬件設(shè)計(jì)同步進(jìn)行,如果控制系統(tǒng)的硬件出現(xiàn)問題,可以根據(jù)需要,對生產(chǎn)線進(jìn)行一定的修改。
3.2 基于嵌入式架構(gòu)的單片機(jī)系統(tǒng)軟件設(shè)計(jì)
嵌入式系統(tǒng)與傳統(tǒng)的應(yīng)用方式相比,最明顯的特點(diǎn)就是多了輔助設(shè)備,如以往應(yīng)用計(jì)算機(jī)的過程中,都是計(jì)算機(jī)的單獨(dú)使用,人們直接利用計(jì)算機(jī)來處理一些問題,或者利用計(jì)算機(jī)來控制某些設(shè)備的工作,沒有任何的輔助設(shè)備,而嵌入式架構(gòu)下,需要借助單片機(jī)等設(shè)備,如一條生產(chǎn)線通常包括多個(gè)加工工藝,如果采用計(jì)算機(jī)的統(tǒng)一控制,就無法實(shí)現(xiàn)對每個(gè)環(huán)節(jié)的單獨(dú)控制,而利用單片機(jī)系統(tǒng),在每個(gè)加工環(huán)節(jié)中,都嵌入一個(gè)單片機(jī),然后將這些單片機(jī)連接到一個(gè)計(jì)算機(jī)服務(wù)器中,就可以實(shí)現(xiàn)局部的控制。而要想完成這個(gè)過程,就要通過相應(yīng)的軟件功能,對于同樣的單片機(jī)系統(tǒng),如果根據(jù)實(shí)際應(yīng)用的需要,設(shè)計(jì)不同的程序,能夠?qū)崿F(xiàn)不同的控制功能,由此可以看出,軟件設(shè)計(jì)是單片機(jī)系統(tǒng)工作的核心。
4 結(jié)束語
作為以計(jì)算機(jī)為基礎(chǔ)的技術(shù),嵌入式架構(gòu)的發(fā)展,很大程度上受到計(jì)算機(jī)技術(shù)的影響,如在計(jì)算機(jī)剛出現(xiàn)時(shí),由于其性能比較,甚至還不如現(xiàn)在的電子計(jì)算器,因此實(shí)際的應(yīng)用很少,只是在實(shí)驗(yàn)室中進(jìn)行科研使用,但是人們從計(jì)算機(jī)的特點(diǎn)能夠看出,隨著技術(shù)的進(jìn)步,將來計(jì)算機(jī)一定會(huì)得到普及應(yīng)用。在這種背景下,很多專家和學(xué)者對計(jì)算機(jī)進(jìn)行了研究,通過大量的實(shí)踐,極大的推動(dòng)了計(jì)算機(jī)的發(fā)展,于是計(jì)算機(jī)越來越多的用來處理實(shí)際問題,為了提高控制的效率,人們對程序進(jìn)行了完善,經(jīng)過全文的分析可以知道,嵌入式架構(gòu)和單片機(jī)的出現(xiàn),都是由于實(shí)際應(yīng)用的需要,而單片機(jī)在實(shí)際應(yīng)用的過程中,還存在很多問題,如果能夠采用嵌入式架構(gòu),那么就能夠極大的提高單片機(jī)系統(tǒng)的使用效果。
參考文獻(xiàn):
[1] 金玉濤,馬軍勇.基于80C52的三相可控整流電路觸發(fā)脈沖的實(shí)現(xiàn)[J].河南教育學(xué)院學(xué)報(bào):自然科學(xué)版,2007(3):37-39.
[2] 何兵.基于MCS-51單片機(jī)的步進(jìn)電機(jī)正反轉(zhuǎn)控制實(shí)現(xiàn)[J].瀘州職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008(1):56-59.
熱插拔的概念來源于我們的桌面PC,其一般定義為將設(shè)備板卡或模塊等帶電接入或移出正在工作的電腦[1]。嵌入式系統(tǒng)中的熱插拔是指對正在運(yùn)行的嵌入式電路板,在不關(guān)閉電源情況下對某些部件進(jìn)行插入(連接)或拔出(斷開)操作。下面要談的正是在一個(gè)嵌入式單片機(jī)系統(tǒng)中對其擴(kuò)展部件或板卡的硬件熱插拔技術(shù),將根據(jù)接口上的信號(hào)類型等探討熱插拔的危害產(chǎn)生原因及防止危害發(fā)生的一般性措施。本文以下部分將把要插拔的兩塊電路板分別稱為主電路板(正在運(yùn)行的嵌入式主電路板)和擴(kuò)展板。
一、熱插拔設(shè)計(jì)的重要性
對正在工作的電路板進(jìn)行熱插拔通常都是不被許可的,但在有些時(shí)候卻是難于避免的,比如使用者疏忽或特殊功能要求等。對未采取任何保護(hù)措施的嵌入式電路板進(jìn)行熱插拔操作,其將帶來的損害通常是很嚴(yán)重的,包括電源電路損壞,單片機(jī)IO口燒壞,單片機(jī)復(fù)位或死機(jī),或者與接口相連的IC出現(xiàn)部分或全部管腳燒壞等。這些故障將導(dǎo)致嵌入式電路板產(chǎn)生永久性損害,或在重新上電之前系統(tǒng)無法再正常工作。因此,在嵌入式系統(tǒng)的擴(kuò)展接口設(shè)計(jì)中加入一定的熱插拔保護(hù)措施是十分必要的。熱插拔操作對嵌入式電路板的危害通常表現(xiàn)在三方面:過電流沖擊、瞬態(tài)過電壓、靜電釋放[1]。進(jìn)行熱插拔設(shè)計(jì)的目標(biāo)應(yīng)是在不增加太多硬件成本的前提下,使設(shè)計(jì)出的電路板不因熱插拔操作造成系統(tǒng)復(fù)位、死機(jī)或?qū)υ骷a(chǎn)生永久性損害。
二、電源與地接口的防過電流沖擊熱插拔設(shè)計(jì)
當(dāng)把擴(kuò)展板插入正在工作的嵌入式主電路板中時(shí),擴(kuò)展板上的各類電容和IC需要瞬間從主電路板的電源處上吸走大量電荷,給電源造成一個(gè)短暫的低阻抗路徑,造成一次浪涌電流[1]。此浪涌電流可以把系統(tǒng)電壓拉低到系統(tǒng)重置閾值以下,造成單片機(jī)復(fù)位,甚至燒毀電源電路。在硬件設(shè)計(jì)時(shí)通常采取如下措施進(jìn)行應(yīng)對:
1.在擴(kuò)展接口的電源網(wǎng)絡(luò)上使用大容量電容(可以用并聯(lián)方式獲得)減輕擴(kuò)展板上電過程中對主電路板電源電壓的影響。主電路板電源電路中的電容量最好要比擴(kuò)展板的蓄能電容量之和稍大。
2.在擴(kuò)展接口的電源網(wǎng)絡(luò)上串入電源專用的磁珠以減少上電瞬間的電流尖峰,并阻斷高頻噪聲信號(hào)的干擾。
3.如果浪涌電流特別大并且系統(tǒng)允許復(fù)位,為保護(hù)主電路板上的電源電路可以考慮在電源入口處加自恢復(fù)保險(xiǎn)絲讓電源在過流瞬間自動(dòng)切斷。如果系統(tǒng)對熱插拔時(shí)的穩(wěn)定性要求更高可以使用目前市面上的專用熱插拔控制器LM5069等,這些器件具有功率和電流限制的能力[2]。
在熱插拔操作時(shí)為提高設(shè)備的熱插拔壽命,熱插拔動(dòng)作應(yīng)避免來回抖動(dòng),并且兩次熱插拔之間的時(shí)間間隔不要太短;如果擴(kuò)展板的負(fù)荷可以先行卸除,最好不要帶負(fù)荷進(jìn)行熱插拔。
三、電源與地接口的防過電壓沖擊熱插拔設(shè)計(jì)
進(jìn)行熱插拔操作前不同設(shè)備的接口之間可能存在一定的電位差,尤其是使用了隔離電源或共模電感的“浮地”系統(tǒng)。雖然這類電位差是瞬間的且沒有多大的電流能力,但此電位差通常會(huì)超出各類IC的最高工作耐壓而損壞IC。如果在熱插拔同時(shí)還伴隨著靜電釋放,在接口接觸瞬間產(chǎn)生的過電壓和過電流沖擊會(huì)更加厲害,可以瞬間燒毀電路板中脆弱環(huán)節(jié)上的IC。應(yīng)對此類危害的唯一辦法是快速鉗位電壓,即在接口附近的電源與地之間以及比較脆弱的信號(hào)與地之間使用具有浪涌能量吸收能力和內(nèi)部散熱能力的壓敏電阻或TVS管之類的浪涌電壓抑制器等保護(hù)措施。
四、電源與地接口在結(jié)構(gòu)上的熱插拔設(shè)計(jì)
現(xiàn)在CMOS器件已經(jīng)在各種電路上廣泛使用,CMOS器件的一個(gè)缺點(diǎn)是容易產(chǎn)生閂鎖效應(yīng)而燒毀。在熱插拔過程中VCC和GND的突然變化或者芯片I/O口電壓超出VDD-GND的范圍時(shí)很容易發(fā)生閂鎖效應(yīng)。如果接口結(jié)構(gòu)設(shè)計(jì)不合理造成在熱插拔過程中I/O口信號(hào)已經(jīng)連接上而GND或VCC還沒有連接上,這時(shí)極易發(fā)生閂鎖效應(yīng)而燒毀芯片。因此,在接口結(jié)構(gòu)設(shè)計(jì)時(shí)必須保證接口在帶電插入過程中要先讓GND和VCC連接上再連接I/O口;反之在帶電拔出過程中則需要先拔出I/O口再斷開VCC和GND。在實(shí)際應(yīng)用時(shí)可以采取如下措施:把GND和VCC放在接口兩端、并在接口上多放幾個(gè)GND信號(hào),或者把GND和VCC的插針做得比其它信號(hào)插針稍微長些等。圖一是按一般熱插拔要求設(shè)計(jì)的一款主電路板電源與地的接口實(shí)例。
五、常見信號(hào)接口的熱插拔設(shè)計(jì)
對嵌入式電路板上單片機(jī)的片上外設(shè)(on-chip peripheral)類信號(hào)口(比如SPI輸出口),通常其耐電壓和電流沖擊能力并不是很強(qiáng),如果需要把這些信號(hào)接口在電路板上擴(kuò)展出去最好先把這些信號(hào)經(jīng)過外部邏輯門電路處理后(比如兩次反相)再接到擴(kuò)展接口上。
對耐電壓和電流沖擊能力較強(qiáng)的單片機(jī)GPIO信號(hào)接口可使用阻容電路進(jìn)行簡單保護(hù)。其中的電阻能起到限流作用,電阻值可根據(jù)信號(hào)辨識(shí)的需求選在幾歐到幾百歐之間;而對地的小濾波電容則能起到濾除瞬間電壓尖峰的作用,電容值可根據(jù)信號(hào)線上傳遞的信號(hào)頻率特性選在幾百pF到幾nF之間。
對比較脆弱而又關(guān)鍵的重要信號(hào)接口(比如SPI輸入口、并行總線接口等)可以在信號(hào)端口與電源和地之間使用雙向二極管對信號(hào)電壓進(jìn)行精準(zhǔn)鉗位。這樣可確保此類接口上的電壓不會(huì)超出芯片的工作電壓范圍,能起到非常好的保護(hù)作用。圖二是一款常見信號(hào)接口的熱插拔設(shè)計(jì)實(shí)例(電源和地部分參見圖一)。
嵌入式系統(tǒng)電路的接口熱插拔設(shè)計(jì)通常是一個(gè)反復(fù)和復(fù)雜的過程。在設(shè)計(jì)時(shí)通常需要通過熱插拔實(shí)驗(yàn)把接口電路中的脆弱環(huán)節(jié)找出來,然后采取針對性的措施進(jìn)行應(yīng)對,要做到既不增加太多硬件成本又能滿足一般的熱插拔需要。熱插拔問題是各類電子設(shè)備中都會(huì)面臨到的一個(gè)問題,本文探討的熱插拔設(shè)計(jì)技術(shù)在電路設(shè)計(jì)中具有一定的現(xiàn)實(shí)意義。
參考文獻(xiàn)
[1]凌有慧,張胡.熱插拔的硬道理[J].微型計(jì)算機(jī),2003(23):107-111.
[2]National Semiconductor Corporation.LM5069 Positive High Voltage Hot Swap/Inrush Current Controller with Power Limiting data sheet,2008.
一、硬件的低功耗設(shè)計(jì)
1、硬件電路器件
程序編寫后實(shí)現(xiàn)功能需要硬件電路的參與,因此硬件部分是電路設(shè)計(jì)的重點(diǎn),也關(guān)系到嵌入式模塊功能是否能夠?qū)崿F(xiàn)。電路中的電子元器件如果設(shè)計(jì)不合理或者焊接誤差,會(huì)導(dǎo)致使用階段斷連情況發(fā)生,目前多用集成技術(shù)來解決這些耗能隱患。CMOS技術(shù)應(yīng)用后使硬件電路的連接形式更合理,控制模塊運(yùn)轉(zhuǎn)階段的能源損耗量被控制在了標(biāo)準(zhǔn)范圍內(nèi),流經(jīng)電流如果出現(xiàn)異常變化,會(huì)調(diào)整穩(wěn)定后再流入到電路中。由于現(xiàn)在絕大部分電路均采用集成電路CMOS工藝技術(shù),這與以前的TTL工藝相比,本身就已經(jīng)起到了降低電子元器件和整體系統(tǒng)功耗的作用,因此,應(yīng)該繼續(xù)多采用CMOS集成電路工藝技術(shù)。另外,由于采用CMOS集成工藝技術(shù),其電路靜態(tài)功耗很?。珊雎圆挥?jì)),而動(dòng)態(tài)功耗較大,因?yàn)閯?dòng)態(tài)功耗是指電路高低電平翻轉(zhuǎn)時(shí)產(chǎn)生的功耗,在電路高低電平翻轉(zhuǎn)跳變沿期間,電流很大,存在較大功耗,所以,降低硬件電路功耗主要是降低電路動(dòng)態(tài)功耗。
2、低功耗器件的選用
實(shí)現(xiàn)低功耗還要對電子器件進(jìn)行挑選,對比不同類型元器件的節(jié)能指標(biāo),低功率環(huán)境下對器件的損害程度更小,在安全使用年限內(nèi)也不會(huì)發(fā)生功率損耗過大的現(xiàn)象。嵌入式技術(shù)中硬件部分設(shè)計(jì)與軟件程序編寫都同等重要,器件選擇時(shí)如果無法確定標(biāo)準(zhǔn),可以采用試驗(yàn)的方法來幫助計(jì)算功率損耗情況,對比階段也更容易進(jìn)行,在這樣的環(huán)境下,嵌入式技術(shù)應(yīng)用才能達(dá)到預(yù)期的目標(biāo)。完成同樣的功能,電路的實(shí)現(xiàn)形式有多種。例如,盡可能地將嵌入式系統(tǒng)的內(nèi)部存儲(chǔ)器RAM轉(zhuǎn)換為外部的閃存FLASH,因?yàn)樵谕瑯訔l件下,讀內(nèi)部RAM比讀外部FLASH會(huì)帶來更大的功耗。也可以利用分立元件、小規(guī)模集成電路,大規(guī)模集成電路甚至單片實(shí)現(xiàn)。通常使用的元器件數(shù)量越少,系統(tǒng)的功耗越低。因此,應(yīng)盡量使用集成度高的器件,以減少電路中使用元件的個(gè)數(shù),減少整機(jī)的功耗。
3、微處理器的選擇
微處理器能夠起到對治理程序控制的發(fā)現(xiàn)不合理現(xiàn)象也要及時(shí)采取調(diào)控方法,處理器運(yùn)行階段損耗的功率比較大,也是節(jié)能設(shè)計(jì)期間重點(diǎn)優(yōu)化的部分。選擇時(shí)首先要判斷功能是否能夠達(dá)到標(biāo)準(zhǔn),在此前提下進(jìn)行后續(xù)損耗的對比分析。要有明確的額定功率,這樣在損耗控制時(shí)技術(shù)應(yīng)用才更順利,技術(shù)應(yīng)用形成并不是固定的,可以根據(jù)實(shí)際使用需求對技術(shù)方法進(jìn)行組合應(yīng)用,將損耗降至最低。僅消耗少部分電能便能夠?qū)崿F(xiàn)系統(tǒng)的高效運(yùn)行,功能實(shí)現(xiàn)的流程也更合理,是嵌入式設(shè)計(jì)時(shí)首要遵從的標(biāo)準(zhǔn)。并且高效率的處理器都提供有多種時(shí)鐘頻率和工作電壓的選擇,以便于最大限度地節(jié)約功耗。此外,在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),在工作電壓相差不大和系統(tǒng)處理能力許可的情況下,還應(yīng)盡可能降低微處理器的時(shí)鐘頻率,現(xiàn)以起到節(jié)能的作用。以SAMSUNGS3C2410(32位ARM920T內(nèi)核)為例,它就提供了四種工作模式:正常模式、空閑模式、休眠模式、關(guān)機(jī)模式。
二、軟件的低功耗設(shè)計(jì)
1、優(yōu)化編譯器
控制程序在運(yùn)行使用過程中,要定期檢驗(yàn),觀察控制功能是否高效實(shí)現(xiàn),并對使用中常常出現(xiàn)誤差的部分進(jìn)行調(diào)節(jié)控制,編譯器模塊是實(shí)現(xiàn)調(diào)控功能的部分,在此過程中,會(huì)涉及到頻繁的計(jì)劃變動(dòng),經(jīng)過多次試驗(yàn)后最終確定的編譯模式應(yīng)用后才不會(huì)出現(xiàn)誤差。但是,在某些情況下,這樣會(huì)影響程序的執(zhí)行性能。編譯器的有效性以及它所生成的代碼效率,可以與匯編語言代碼相比較得出。事實(shí)上,在一個(gè)程序中,每一條指令都將激活微處理器中的某些硬件部件,因此,正確選擇指令可以降低處理器的功耗。通過優(yōu)化編譯器可以進(jìn)行有效的軟件低功率化,從而生成效率更高的代碼,以降低嵌入式設(shè)備的功耗。
2、采用軟件代替硬件電路
軟件與硬件相比較功能更加豐富,也能在工作任務(wù)開展階段形成更穩(wěn)定的控制體系。因此采用軟件來對復(fù)雜的電路進(jìn)行更換,才是更高效合理的,使用功能不受到影響的前提下達(dá)到降低功耗的目標(biāo),這樣的處理形式符合嵌入式設(shè)計(jì)標(biāo)準(zhǔn)。一般的硬件電路都存在功耗,所以,可以把具有數(shù)據(jù)運(yùn)算處理功能的硬件電路用軟件來實(shí)現(xiàn),例如濾波電路,指數(shù)、對數(shù)運(yùn)算電路、抗干擾電路等。但是,任何事情都不是絕對的,部分硬件電路到底能否通過軟件來實(shí)現(xiàn),此外,還要考慮處理大量的軟件數(shù)據(jù),需要提高處理器的性能和功耗等,同時(shí)要考慮這是否合算。
3、中斷驅(qū)動(dòng)技術(shù)設(shè)計(jì)
把整個(gè)嵌入式系統(tǒng)軟件設(shè)計(jì)成多個(gè)事件來處理,而在系統(tǒng)上電初始化時(shí),主程序只進(jìn)行系統(tǒng)的初始化(包括寄存器、外部設(shè)備等),初始化完成后,進(jìn)入低功耗狀態(tài),然后把CPU控制的設(shè)備都接到中斷輸入端上。當(dāng)外設(shè)發(fā)生了一個(gè)事件,即產(chǎn)生中斷信號(hào),使CPU退出節(jié)電狀態(tài)而進(jìn)入事件處理,事件處理完成后,繼續(xù)進(jìn)入節(jié)電狀態(tài)。在嵌入式程序設(shè)計(jì)時(shí),一個(gè)程序到底使用中斷方式還是查詢方式,對于一些簡單的應(yīng)用并不那么重要,但在其低功耗特性上卻相去甚遠(yuǎn)。使用中斷方式,微控制器可以什么都不做,甚至可以進(jìn)入等待模式或停止模式;而在查詢方式下,微控制器必須不停地訪問寄存器,這會(huì)帶來很多額外的功耗,所以,用軟件進(jìn)行設(shè)計(jì)時(shí),除非系統(tǒng)本身已要求采用查詢方式,否則應(yīng)盡可能采用中斷方式進(jìn)行編程。
4、定時(shí)器延時(shí)程序的采用
當(dāng)軟件設(shè)計(jì)中需要用到延時(shí)程序時(shí),設(shè)計(jì)人員應(yīng)多使用定時(shí)器延時(shí)方法來進(jìn)行設(shè)計(jì)。這是因?yàn)?,通常嵌入式處理器進(jìn)入待機(jī)模式后,CPU會(huì)停止工作,而定時(shí)器可以正常工作,由于定時(shí)器的功耗很低,故當(dāng)處理器調(diào)用延時(shí)程序后,嵌入式系統(tǒng)便可進(jìn)入待機(jī)模式,此時(shí)定時(shí)器可以繼續(xù)工作,定時(shí)時(shí)間一旦結(jié)束,即可喚醒CPU重新進(jìn)入工作,這樣不但降低了CPU功耗,還提高了CPU的工作效率。而如果采用查詢方式,則CPU會(huì)不斷地對系統(tǒng)進(jìn)行查詢,由于CPU時(shí)刻工作,這樣不但效率低下,同時(shí)處理器功耗也很大。
5、算法優(yōu)化
優(yōu)化算法多出現(xiàn)在嵌入式DSP中,采用大量現(xiàn)成的公式和計(jì)算方法,可以節(jié)省系統(tǒng)內(nèi)部運(yùn)算的時(shí)間,減少功耗;另外,在嵌入式系統(tǒng)允許的誤差情況下,也可以近似用比較簡單的函數(shù)來取代復(fù)雜函數(shù)進(jìn)行運(yùn)算,從而減少功率消耗。
結(jié)語:嵌入式系統(tǒng)的設(shè)計(jì)涉及到硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)方面,在實(shí)際系統(tǒng)應(yīng)用時(shí),低功耗的設(shè)計(jì)并非是單方面的因素,需要綜合考慮各種可能的原因、條件和狀態(tài),應(yīng)把硬件設(shè)計(jì)和軟件設(shè)計(jì)綜合起來進(jìn)行考慮,并對細(xì)節(jié)進(jìn)行認(rèn)真的分析,同時(shí)對多種可能的方案和方法進(jìn)行計(jì)算和總結(jié),這樣才可能取得較為滿意的效果,最終達(dá)到降低系統(tǒng)功耗的目的。
1.背景
如今嵌入式系統(tǒng)在日常生活中扮演著越來越重要的角色。從消費(fèi)電子產(chǎn)品到航天工業(yè),從熱門的電子應(yīng)用(如智能手機(jī)和平板電腦等)到相對不起眼的應(yīng)用(如人造衛(wèi)星等),嵌入式系統(tǒng)直接或間接地影響人們生活的方方面面。嵌入式系統(tǒng)的巨大潛力使得教育工作者對它的討論從來沒有停止過。世界無數(shù)的教育工作者提出了大量新穎和具有創(chuàng)造性的方法和理論,以促進(jìn)嵌入式系統(tǒng)教育水平的提高,他們大都贊同嵌入式系統(tǒng)具有與實(shí)際應(yīng)用緊密聯(lián)系的顯著特點(diǎn)。
嵌入式系統(tǒng)應(yīng)用在一個(gè)廣闊的領(lǐng)域,如簡單的微控制應(yīng)用、控制系統(tǒng)、分布式嵌入式控制、片上系統(tǒng)、網(wǎng)絡(luò)、嵌入式PC、關(guān)鍵系統(tǒng)、機(jī)器人、計(jì)算機(jī)設(shè)備、無線數(shù)據(jù)系統(tǒng)和信號(hào)處理。同時(shí),一些交叉領(lǐng)域知識(shí)對于嵌入式系統(tǒng)設(shè)計(jì)者也同樣重要,如安全、可靠性、節(jié)能、軟件/系統(tǒng)工程、實(shí)時(shí)計(jì)算和人機(jī)交互等。
對于想成為合格嵌入式系統(tǒng)設(shè)計(jì)者的學(xué)生來說,他們希望能夠親手接觸這些嵌入式應(yīng)用,因此設(shè)計(jì)一個(gè)高效的實(shí)驗(yàn)系統(tǒng)非常重要。實(shí)驗(yàn)平臺(tái)應(yīng)該能聯(lián)系抽象的理論知識(shí)和實(shí)際應(yīng)用,以幫助學(xué)生領(lǐng)會(huì)嵌入式系統(tǒng)的知識(shí)奧秘。
2.嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)的特點(diǎn)
嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)與其他課程實(shí)驗(yàn)教學(xué)有兩個(gè)方面的不同:軟硬件高度結(jié)合、知識(shí)和技術(shù)更新速度快。嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)的特點(diǎn)如圖1所示。
嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)的第一個(gè)特點(diǎn)是軟硬件高度結(jié)合。一個(gè)完整的嵌入式系統(tǒng)需要在軟硬件基礎(chǔ)之上工作。在嵌入式實(shí)驗(yàn)教學(xué)中,任何一個(gè)環(huán)節(jié)的缺失或弱化都是錯(cuò)誤的。我們過去就犯過這方面的錯(cuò)誤。嵌入式系統(tǒng)是清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系大四本科生的一門專業(yè)必修課。學(xué)生希望在課程結(jié)束后對嵌入式系統(tǒng)有一個(gè)完整的認(rèn)識(shí),但是發(fā)現(xiàn)在學(xué)習(xí)完這個(gè)僅有2個(gè)學(xué)分的課程后,依然無法設(shè)計(jì)出一個(gè)軟硬件兼?zhèn)涞耐暾度胧较到y(tǒng)。因此,我們讓學(xué)生使用開源軟件工具設(shè)計(jì)諸如鼠標(biāo)或鍵盤等設(shè)備的驅(qū)動(dòng)程序,但是效果并不理想,岡為學(xué)生僅僅熟悉了他們所實(shí)驗(yàn)的部分內(nèi)容,而這些內(nèi)容只是他們應(yīng)該掌握內(nèi)容的一小部分,這不僅是由于實(shí)驗(yàn)任務(wù)的限制,還因?yàn)閷W(xué)牛無法接觸硬件層面的操作,無法全面領(lǐng)會(huì)嵌入式系統(tǒng)。
嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)的另一個(gè)特點(diǎn)是嵌入式系統(tǒng)知識(shí)和技術(shù)更新速度快。在第1節(jié)我們曾提到過,緊跟實(shí)際應(yīng)用是嵌入式實(shí)驗(yàn)教學(xué)的一個(gè)關(guān)鍵元素。由于嵌入式系統(tǒng)技術(shù)日新月異,嵌入式實(shí)驗(yàn)課程講述的知識(shí)和技能以及嵌入式實(shí)驗(yàn)設(shè)備和組件都必須不斷發(fā)展。我們在對清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系學(xué)生的調(diào)查問卷中發(fā)現(xiàn),對傳統(tǒng)嵌入式實(shí)驗(yàn)平臺(tái)的主要批評是實(shí)驗(yàn)設(shè)備和組件過于陳舊,實(shí)驗(yàn)平臺(tái)與當(dāng)前技術(shù)聯(lián)系不夠緊密,實(shí)驗(yàn)內(nèi)容缺乏吸引力。
綜上所述,設(shè)計(jì)一個(gè)高效的嵌入式實(shí)驗(yàn)平臺(tái)必須考慮軟硬件結(jié)合和嵌入式技術(shù)飛速發(fā)展這兩個(gè)因素。
3.當(dāng)代學(xué)生的特點(diǎn)
除了嵌入式實(shí)驗(yàn)課程本身,學(xué)生是不可忽略的另一個(gè)關(guān)鍵因素。學(xué)生是實(shí)驗(yàn)的參與者,他們對實(shí)驗(yàn)的感受影響著實(shí)驗(yàn)課程教學(xué)的成敗,但是我們發(fā)現(xiàn)傳統(tǒng)的實(shí)驗(yàn)方法令當(dāng)代學(xué)生逐漸失去學(xué)習(xí)興趣,這主要是因?yàn)閷W(xué)生一代一代地不斷發(fā)展與進(jìn)步,而傳統(tǒng)的實(shí)驗(yàn)方法卻多年不變。
文獻(xiàn)[2]指出當(dāng)代學(xué)生與過去的學(xué)生有所不同:缺乏鉆研精神、缺乏耐心和依賴于軟件。當(dāng)代學(xué)生的特點(diǎn)如圖2所示。
當(dāng)代學(xué)生的第1個(gè)特點(diǎn)是缺乏鉆研精神絕大多數(shù)學(xué)生成長于用戶至上主義日益流行的社會(huì)環(huán)境。相對于基礎(chǔ)原理,他們更關(guān)注功能;相對于架構(gòu),他們更關(guān)注表象。簡而言之,當(dāng)代學(xué)生中很少有人理解嵌入式系統(tǒng)的基本原理,另一方面,傳統(tǒng)的實(shí)驗(yàn)平臺(tái)專門為演示和驗(yàn)證書本中講述的原理而設(shè)計(jì),因此學(xué)生漸漸地?zé)o法將實(shí)際應(yīng)用與特別設(shè)計(jì)的實(shí)驗(yàn)相聯(lián)系,產(chǎn)生的問題是如果學(xué)生無法預(yù)見所學(xué)知識(shí)的未來應(yīng)用前景,就會(huì)將關(guān)注點(diǎn)轉(zhuǎn)移到其他方面。由此可見,將實(shí)驗(yàn)平臺(tái)與時(shí)興技術(shù)相結(jié)合非常重要。
當(dāng)代學(xué)生的第2個(gè)特點(diǎn)是缺乏耐心。生活節(jié)奏的日益加快和互聯(lián)網(wǎng)絡(luò)的日益普及,使得當(dāng)代學(xué)生漸漸缺乏耐心。他們習(xí)慣在實(shí)驗(yàn)開始后急于見到結(jié)果,就好像點(diǎn)擊鼠標(biāo)后立刻能在屏幕上看見反應(yīng),但是在傳統(tǒng)的教學(xué)方法中,教學(xué)總是從對課程的全面描述分析開始。實(shí)踐證明這種描述很必要,它可以幫助學(xué)生全面了解課程的知識(shí)結(jié)構(gòu),但是這些內(nèi)容有時(shí)會(huì)讓學(xué)生退卻,因?yàn)閷W(xué)生感覺課程非常抽象與枯燥。鑒于這些問題,新實(shí)驗(yàn)平臺(tái)應(yīng)該在嵌入式系統(tǒng)的第一堂課就引起學(xué)生的興趣,同時(shí)提供一個(gè)吸引人的“結(jié)果”。
當(dāng)代學(xué)生的第3個(gè)特點(diǎn)是依賴于軟件。嵌入式系統(tǒng)的發(fā)展通常被認(rèn)為是民眾賦予的。在某種程度上,這種發(fā)展是電子工程向更智能化發(fā)展的結(jié)果。然而,電子工程這種不可見的層面,通常被復(fù)雜的用戶界面和其他圖標(biāo)所偽裝,使得大家將其歸功于計(jì)算機(jī)科學(xué),而不是電子工程。許多大學(xué)并沒有意識(shí)到這個(gè)問題,而將大部分注意力放在嵌入式軟件設(shè)計(jì),忽略硬件層次的介紹。這種在嵌入式系統(tǒng)教學(xué)中的錯(cuò)誤關(guān)注導(dǎo)致出現(xiàn)“軟件比硬件更加重要”的錯(cuò)誤認(rèn)識(shí)。為了糾正這個(gè)偏見,我們應(yīng)該重視硬件并將其引入嵌入式系統(tǒng)課程。
總之,為了設(shè)計(jì)一個(gè)高效的實(shí)驗(yàn)平臺(tái),當(dāng)代學(xué)生的特點(diǎn)不容忽視。
4.設(shè)計(jì)嵌入式實(shí)驗(yàn)平臺(tái)的原則
基于上述討論,我們提出嵌入式系統(tǒng)教學(xué)實(shí)驗(yàn)平臺(tái)的幾項(xiàng)設(shè)計(jì)原則。
完整性:實(shí)驗(yàn)平臺(tái)應(yīng)該相對完整。學(xué)生不但能接觸軟件,而且能操作硬件。這個(gè)原則主要解決兩個(gè)問題:首先糾正學(xué)生偏重于軟件的錯(cuò)誤;其次在第一節(jié)課就能吸引學(xué)生,告訴他們課程最后能夠建立一個(gè)基本的卻相對完整的系統(tǒng)。
開發(fā)性:實(shí)驗(yàn)平臺(tái)應(yīng)該能幫助學(xué)生自由地實(shí)現(xiàn)創(chuàng)新思想。實(shí)驗(yàn)平臺(tái)在軟件和硬件上都應(yīng)為學(xué)生預(yù)留足夠數(shù)量和種類的接口,使學(xué)生能夠以此為基礎(chǔ)構(gòu)建自己的嵌入式系統(tǒng)。在實(shí)踐過程中,越來越多的基于實(shí)際應(yīng)用的嵌入式系統(tǒng)由學(xué)生實(shí)現(xiàn),同時(shí)學(xué)生的創(chuàng)造熱情也被激發(fā)出來。
從教學(xué)的角度看,實(shí)驗(yàn)平臺(tái)應(yīng)包含以下特點(diǎn)。
可升級性:平臺(tái)的軟硬件應(yīng)該能分別擴(kuò)展和升級,而無需對整個(gè)平臺(tái)進(jìn)行修改。如第2節(jié)所述,嵌入式系統(tǒng)技術(shù)升級速度快,尤其是硬件設(shè)備。為了滿足經(jīng)常升級的需要,可升級性原則應(yīng)該被放在關(guān)鍵位置。
靈活性:實(shí)驗(yàn)內(nèi)容應(yīng)該能根據(jù)課程的要求而裁剪,以便于實(shí)驗(yàn)平臺(tái)的廣泛推廣。大多數(shù)定制的實(shí)驗(yàn)平臺(tái)在靈活性上有所欠缺,其實(shí)驗(yàn)內(nèi)容無法增加或減少,而為了適應(yīng)課程學(xué)時(shí)的變化不得不重新設(shè)計(jì)實(shí)驗(yàn)。
為了達(dá)到上述目標(biāo),我們提出一個(gè)完整的概念模型。目標(biāo)系統(tǒng)的概念模型如圖3所示。
這個(gè)概念模型由3個(gè)中間層和2個(gè)層組成。中間層包括主系統(tǒng)層、中間通道層和從系統(tǒng)層。層包括應(yīng)用層和組件層。我們將解釋這個(gè)模型如何能實(shí)現(xiàn)前面提出的目標(biāo)。
完整性:把中間3層看作一個(gè)整體,這個(gè)基本模型由一個(gè)典型嵌入式系統(tǒng)中的主要元素組成,從最頂層的應(yīng)用層到最底層的功能組件層。學(xué)生可以接觸完整系統(tǒng)的每一個(gè)組件。
開放性:模型的最頂層和最底層向?qū)W生開放。實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)者將足夠多的軟硬件接口提供給學(xué)生,這些接口必須是完整的和用戶友好的。使用硬件接口,學(xué)生能夠通過連接所需的硬件模塊構(gòu)建一個(gè)創(chuàng)新的嵌入式設(shè)備;使用軟件接口,學(xué)生可以方便地加載硬件模塊所需的軟件資源。
可升級性:實(shí)驗(yàn)平臺(tái)設(shè)計(jì)應(yīng)該模塊化和層次化,每一層為上一層提供上層接口,為下一層提供下層接口。每一層可獨(dú)立地進(jìn)行擴(kuò)展和升級,與相鄰層次的接口保持兼容。模型的中間層被設(shè)計(jì)為3層結(jié)構(gòu),這個(gè)靈感來自于Phidgets的設(shè)計(jì),它能為實(shí)際設(shè)備的實(shí)現(xiàn)提供更多可能性。
靈活性:每個(gè)層次都能根據(jù)課程的重點(diǎn)而被加強(qiáng)或削弱,因此實(shí)驗(yàn)內(nèi)容可根據(jù)課程要求而變化。實(shí)驗(yàn)課可被安排在兩層或更多層之上?;A(chǔ)實(shí)驗(yàn)要求學(xué)生建立一個(gè)基本的嵌入式系統(tǒng),而在高級實(shí)驗(yàn)中,學(xué)生能深入研究模型中的各個(gè)層,以實(shí)現(xiàn)創(chuàng)意設(shè)計(jì)。
2 ARM選型
目前,能夠適用于嵌入式系統(tǒng)設(shè)計(jì)的ARM微處理器存在許多系列,ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、Intel的Xscale以及StrongARM。前四個(gè)系列是通用型處理器,每一個(gè)系列的處理器具備獨(dú)特的功能和性能,能夠應(yīng)用于各個(gè)領(lǐng)域,滿足對應(yīng)的需求。SecurCore系列的處理器的安全性很高,可用于保密程度高的情況。ARM微處理器的內(nèi)核結(jié)構(gòu)各式各樣,能夠在不同領(lǐng)域和條件下發(fā)揮作用,用戶需要根據(jù)自己的實(shí)際需求,來選擇最合適的芯片。例如,如果用戶想要在系統(tǒng)中使用標(biāo)準(zhǔn)Linux等操作系統(tǒng)來更方便快捷的進(jìn)行軟件設(shè)計(jì),那么最佳的選擇是ARM720T以上,并且具備MMU功能的ARM芯片。此外,諸如uCLinux一類的不需要MMU功能支持的操作系統(tǒng)已經(jīng)研發(fā)出來,并在不具備MMU功能的微處理器上獲得了成功應(yīng)用,而且其系統(tǒng)穩(wěn)定性和功能,都具有較高水平。
3 Bootloader開發(fā)
Bootloader是嵌入式系統(tǒng)的芯片引導(dǎo)程序,由開發(fā)人員應(yīng)用匯編語言設(shè)計(jì)出來。Bootloader固化在目標(biāo)板的ROM中,其功能是啟動(dòng)ROM或RAM中的嵌入式軟件程序。在CPU支持的情況下,bootloader在開發(fā)時(shí)可以在RAM中運(yùn)行。在基于ARM的嵌入式系統(tǒng)設(shè)計(jì)過程中,需要結(jié)合硬件目標(biāo)板的相關(guān)特性來設(shè)計(jì)相應(yīng)的bootloader程序,從而達(dá)到初始化處理器和相關(guān)硬件的目的。初始化處理器是通過bootloader對處理器中的配置寄存器進(jìn)行初始化,這很容易實(shí)現(xiàn),例如,在使用ARM處理器的MMU時(shí),只需通過bootloader調(diào)用控制命令打開MMU。對于嵌入式系統(tǒng)必備硬件的初始化,一般是對系統(tǒng)內(nèi)存、Flash ROM以及終端控制器的初始化,此外,從主機(jī)下載系統(tǒng)映像需要在硬件板和主機(jī)之間通過接口設(shè)備連接,系統(tǒng)的接口設(shè)備初始化也是由bootloader完成的。例如,一些嵌入式系統(tǒng)硬件板是通過以太網(wǎng)從主機(jī)下載系統(tǒng)映像文件的,在這里,bootloader就會(huì)使用以太網(wǎng)卡驅(qū)動(dòng)程序來對相關(guān)硬件進(jìn)行初始化,然后再與bootloader客戶端程序進(jìn)行連接,下載映像文件。
4 系統(tǒng)初始化
基于ARM的嵌入式系統(tǒng)芯片大多屬于復(fù)雜的片上系統(tǒng),這種系統(tǒng)的硬件部分很多都是可以自由配置的,其工作狀態(tài)和參數(shù)屬性也是由一定的軟件進(jìn)行設(shè)置的。用戶在使用應(yīng)用程序前,需要首先使用對應(yīng)的啟動(dòng)代碼對系統(tǒng)硬件進(jìn)行初始化,這種初始化任務(wù)可由bootloader完成。在系統(tǒng)的初始化中,主要包括三個(gè)部分。其一,初始化中斷向量表。ARM處理器對中中斷向量表的位置有特殊要求,一般來說必須在從0地址開始的32字節(jié)的空間內(nèi)。在ARM處理器的工作過程中,每當(dāng)發(fā)生一個(gè)中斷,ARM處理器都會(huì)將PC指針置為向量表中對應(yīng)的中斷類型的地址值。由于每個(gè)中斷都只占據(jù)向量表一個(gè)字節(jié)的存儲(chǔ)器空間,所以只能存放一條ARM指令,在一般情況下,向量表中并不直接存放ARM指令,而是跳轉(zhuǎn)指令,程序可以由向量表在指令作用下跳轉(zhuǎn)到寄存器的其他地址,然后再進(jìn)行中斷處理。其二,初始化堆棧。ARM具有7種不同的執(zhí)行狀態(tài),每一種狀態(tài)對應(yīng)的堆棧指針寄存器都是相互獨(dú)立的。所以,在程序中調(diào)整ARM執(zhí)行狀態(tài)需要給每個(gè)寄存器定義堆棧地址。寄存器堆棧地址的定義很簡單,只要將處理器執(zhí)行狀態(tài)輪流切換,每個(gè)狀態(tài)分別賦值。其三,改變處理器模式。ARM處理器有7種模式,在初始化時(shí),需要先在6權(quán)模式下進(jìn)行相關(guān)的修改,最后再切換到用戶模式。
5 下載系統(tǒng)映像
系統(tǒng)映像是通過bootloader從主機(jī)載入到目標(biāo)板上的。系統(tǒng)映像文件的下載位置是通過bootloader的指令代碼或者交互shell界面來確定的,通過目標(biāo)端的bootloader程序得到接收映像文件的程序,而主機(jī)端的程序則負(fù)責(zé)發(fā)送映像文件數(shù)據(jù)。這里一般可以通過串口和以太網(wǎng)卡等多種方式進(jìn)行映像文件的傳輸。在成功接收系統(tǒng)映像后,如果具有相應(yīng)的硬件模塊,bootloader還能將映像寫入到flash中。然后根據(jù)相應(yīng)的啟動(dòng)地址,bootloader就能夠?qū)⑾螺d完畢的系統(tǒng)映像文件啟動(dòng),并將程序流程轉(zhuǎn)入主應(yīng)用程序中。
6 存儲(chǔ)器管理
嵌入式系統(tǒng)的軟件平臺(tái)是由系統(tǒng)引導(dǎo)程序、嵌入式操作系統(tǒng)內(nèi)核以及文件系統(tǒng)三個(gè)部分構(gòu)成的。軟件平臺(tái)固化在Flash中,對于Flash地址空間的分區(qū),一般分為三個(gè),分別用于存放bootloader、Linux內(nèi)核以及文件系統(tǒng)。Bootloader的代碼量相對較小,但也是非常重要的。嵌入式操作系統(tǒng)內(nèi)核則是嵌入式系統(tǒng)的管理中心,負(fù)責(zé)各類任務(wù)和進(jìn)程的切換和運(yùn)行。文件系統(tǒng)則是嵌入式系統(tǒng)軟件平臺(tái)占用存儲(chǔ)空間最大的,負(fù)責(zé)存儲(chǔ)系統(tǒng)配置文件、系統(tǒng)程序、用戶程序以及相關(guān)的驅(qū)動(dòng)等。此外,如果嵌入式系統(tǒng)的結(jié)構(gòu)較為復(fù)雜,就可能出現(xiàn)各種存儲(chǔ)類型的接口,這些接口不能直接發(fā)揮作用,還需要一定的配置。就算是同類型的存儲(chǔ)器,也需要根據(jù)訪問速度來設(shè)置不同的時(shí)序配置。例如Flash和SRAM屬于靜態(tài)存儲(chǔ)器類型,其端口可以共用,而DRAM則具有動(dòng)態(tài)刷新和地址線復(fù)用的特性,需要配備專用存儲(chǔ)器端口。
嵌入式系統(tǒng)作為計(jì)算機(jī)技術(shù)應(yīng)用的一種,在社會(huì)的很多領(lǐng)域都能夠得到有效的應(yīng)用。對于嵌入式系統(tǒng)的設(shè)計(jì)也一直受到相關(guān)人士的關(guān)注。文章探討了基于ARM的嵌入式系統(tǒng)的設(shè)計(jì)方法,以此為參考,再設(shè)置一定的硬件和程序即可發(fā)揮效用。
參考文獻(xiàn):
[1]黃克彬 葉梧 馮穗力.基于ARM-ucLinux嵌入式系統(tǒng)啟動(dòng)引導(dǎo)的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2014,(3):23-24.
[2]費(fèi)浙平.基于ARM的嵌入式系統(tǒng)程序開發(fā)要點(diǎn)(二)――系統(tǒng)的初始化過程{J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013,(9):16-17.
[3]樂燕芬.ARM嵌入式系統(tǒng)啟動(dòng)過程分析及實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2015,27(z3):56-57.