Ⅰ 什麼是嵌入式系統
一 什麼是嵌入式系統
嵌入式系統一般指非 PC 系統,有計算機功能但又不稱之為計算機的設備或器材。它是以應用為中心,軟硬體可裁減的,適應應用系統對功能、可靠性、成本、體積、功耗等綜合性嚴格要求的專用計算機系統。簡單地說,嵌入式系統集系統的應用軟體與硬體於一體,類似於 PC 中 BIOS 的工作方式,具有軟體代碼小、高度自動化、響應速度快等特點,特別適合於要求實時和多任務的體系。嵌入式系統主要由嵌入式處理器、相關支撐硬體、嵌入式操作系統及應用軟體系統等組成,它是可獨立工作的「器件」。
嵌入式系統幾乎包括了生活中的所有電器設備,如掌上 PDA 、移動計算設備、電視機頂盒、手機上網、數字電視、多媒體、汽車、微波爐、數字相機、家庭自動化系統、電梯、空調、安全系統、自動售貨機、蜂窩式電話、消費電子設備、工業自動化儀表與醫療儀器等。
嵌入式系統的硬體部分,包括處理器 / 微處理器、存儲器及外設器件和 I/O 埠、圖形控制器等。嵌入式系統有別於一般的計算機處理系統,它不具備像硬碟那樣大容量的存儲介質,而大多使用 EPROM 、 EEPROM 或快閃記憶體 (Flash Memory) 作為存儲介質。軟體部分包括操作系統軟體 ( 要求實時和多任務操作 ) 和應用程序編程。應用程序控制著系統的運作和行為;而操作系統控制著應用程序編程與硬體的交互作用。
二 嵌入式處理器
嵌入式系統的核心是嵌入式微處理器。嵌入式微處理器一般具備 4 個特點: (1) 對實時和多任務有很強的支持能力,能完成多任務並且有較短的中斷響應時間,從而使內部的代碼和實時操作系統的執行時間減少到最低限度; (2) 具有功能很強的存儲區保護功能,這是由於嵌入式系統的軟體結構已模塊化,而為了避免在軟體模塊之間出現錯誤的交叉作用,需要設計強大的存儲區保護功能,同時也有利於軟體診斷; (3) 可擴展的處理器結構,以能迅速地擴展出滿足應用的高性能的嵌入式微處理器; (4) 嵌入式微處理器的功耗必須很低,尤其是用於攜帶型的無線及移動的計算和通信設備中靠電池供電的嵌入式系統更是如此,功耗只能為 mW 甚至μ W 級。
據不完全統計,目前全世界嵌入式處理器的品種總量已經超過 1000 種,流行的體系結構有 30 多個系列。其中 8051 體系佔多半,生產這種單片機的半導體廠家有 20 多個,共 350 多種衍生產品,僅 Philips 就有近 100 種。現在幾乎每個半導體製造商都生產嵌入式處理器,越來越多的公司有自己的處理器設計部門。嵌入式處理器的定址空間一般從 64kB 到 16MB ,處理速度為 0.1~2000MIPS ,常用封裝 8~144 個引腳。
根據現狀,嵌入式計算機可分成下面幾類。
(1) 嵌入式微處理器 (Embedded Microprocessor Unit, EMPU)
嵌入式微處理器採用「增強型」通用微處理器。由於嵌入式系統通常應用於環境比較惡劣的環境中,因而嵌入式微處理器在工作溫度、電磁兼容性以及可靠性方面的要求較通用的標准微處理器高。但是,嵌入式微處理器在功能方面與標準的微處理器基本上是一樣的。根據實際嵌入式應用要求,將嵌入式微處理器裝配在專門設計的主板上,只保留和嵌入式應用有關的主板功能,這樣可以大幅度減小系統的體積和功耗。和工業控制計算機相比,嵌入式微處理器組成的系統具有體積小、重量輕、成本低、可靠性高的優點,但在其電路板上必須包括 ROM 、 RAM 、匯流排介面、各種外設等器件,從而降低了系統的可靠性,技術保密性也較差。由嵌入式微處理器及其存儲器、匯流排、外設等安裝在一塊電路主板上構成一個通常所說的單板機系統。嵌入式處理器目前主要有 Am186/88 、 386EX 、 SC-400 、 Power PC 、 68000 、 MIPS 、 ARM 系列等。
(2) 嵌入式微控制器 (Microcontroller Unit, MCU)
嵌入式微控制器又稱單片機,它將整個計算機系統集成到一塊晶元中。嵌入式微控制器一般以某種微處理器內核為核心,根據某些典型的應用,在晶元內部集成了 ROM/EPROM 、 RAM 、匯流排、匯流排邏輯、定時 / 計數器、看門狗、 I/O 、串列口、脈寬調制輸出、 A/D 、 D/A 、 Flash RAM 、 EEPROM 等各種必要功能部件和外設。為適應不同的應用需求,對功能的設置和外設的配置進行必要的修改和裁減定製,使得一個系列的單片機具有多種衍生產品,每種衍生產品的處理器內核都相同,不同的是存儲器和外設的配置及功能的設置。這樣可以使單片機最大限度地和應用需求相匹配,從而減少整個系統的功耗和成本。和嵌入式微處理器相比,微控制器的單片化使應用系統的體積大大減小,從而使功耗和成本大幅度下降、可靠性提高。由於嵌入式微控制器目前在產品的品種和數量上是所有種類嵌入式處理器中最多的,而且上述諸多優點決定了微控制器是嵌入式系統應用的主流。微控制器的片上外設資源一般比較豐富,適合於控制,因此稱為微控制器。通常,嵌入式微處理器可分為通用和半通用兩類,比較有代表性的通用系列包括 8051 、 P51XA 、 MCS-251 、 MCS-96/196/296 、 C166/167 、 68300 等。而比較有代表性的半通用系列,如支持 USB 介面的 MCU 8XC930/931 、 C540 、 C541 ;支持 I2C 、 CAN 匯流排、 LCD 等的眾多專用 MCU 和兼容系列。目前 MCU 約占嵌入式系統市場份額的 70% 。
(3) 嵌入式 DSP 處理器 (Embedded Digital Signal Processor, EDSP
在數字信號處理應用中,各種數字信號處理演算法相當復雜,這些演算法的復雜度可能是 O(nm) 的,甚至是 NP 的,一般結構的處理器無法實時的完成這些運算。由於 DSP 處理器對系統結構和指令進行了特殊設計,使其適合於實時地進行數字信號處理。在數字濾波、 FFT 、譜分析等方面, DSP 演算法正大量進入嵌入式領域, DSP 應用正從在通用單片機中以普通指令實現 DSP 功能,過渡到採用嵌入式 DSP 處理器。嵌入式 DSP 處理器有兩類: (1)DSP 處理器經過單片化、 EMC 改造、增加片上外設成為嵌入式 DSP 處理器, TI 的 TMS320C2000/C5000 等屬於此范疇; (2) 在通用單片機或 SOC 中增加 DSP 協處理器,例如 Intel 的 MCS-296 和 Infineon(Siemens) 的 TriCore 。另外,在有關智能方面的應用中,也需要嵌入式 DPS 處理器,例如各種帶有智能邏輯的消費類產品,生物信息識別終端,帶有加解密演算法的鍵盤, ADSL 接入、實時語音壓解系統,虛擬現實顯示等。這類智能化演算法一般都是運算量較大,特別是向量運算、指針線性定址等較多,而這些正是 DSP 處理器的優勢所在。嵌入式 DSP 處理器比較有代表性的產品是 TI 的 TMS320 系列和 Motorola 的 DSP56000 系列。 TMS320 系列處理器包括用於控制的 C2000 系列、移動通信的 C5000 系列,以及性能更高的 C6000 和 C8000 系列。 DSP56000 目前已經發展成為 DSP56000 、 DSP56100 、 DSP56200 和 DSP56300 等幾個不同系列的處理器。另外, Philips 公司最近也推出了基於可重置嵌入式 DSP 結構,採用低成本、低功耗技術製造的 R. E. A. L DSP 處理器,其特點是具備雙 Harvard 結構和雙乘 / 累加單元,應用目標是大批量消費類產品。
(4) 嵌入式片上系統 (System On Chip, SOC)
隨著 EDI 的推廣和 VLSI 設計的普及化,以及半導體工藝的迅速發展,可以在一塊矽片上實現一個更為復雜的系統,這就產生了 SOC 技術。各種通用處理器內核將作為 SOC 設計公司的標准庫,和其他許多嵌入式系統外設一樣,成為 VLSI 設計中一種標準的器件,用標準的 VHDL 、 Verlog 等硬體語言描述,存儲在器件庫中。用戶只需定義出其整個應用系統,模擬通過後就可以將設計圖交給半導體工廠製作樣品。這樣除某些無法集成的器件以外,整個嵌入式系統大部分均可集成到一塊或幾塊晶元中去,應用系統電路板將變得很簡單,對於減小整個應用系統體積和功耗、提高可靠性非常有利。 SOC 可分為通用和專用兩類,通用 SOC 如 Infineon(Siemens) 的 TriCore 、 Motorola 的 M-Core ,以及某些 ARM 系列器件,如 Echelon 和 Motorola 聯合研製的 Neuron 晶元等;專用 SOC 一般專用於某個或某類系統中,如 Philips 的 Smart XA ,它將 XA 單片機內核和支持超過 2048 位復雜 RSA 演算法的 CCU 單元製作在一塊矽片上,形成一個可載入 Java 或 C 語言的專用 SOC ,可用於互聯網安全方面。
三 嵌入式操作系統
嵌入式操作系統是一種支持嵌入式系統應用的操作系統軟體,它是嵌入式系統 ( 包括硬、軟體系統 ) 極為重要的組成部分,通常包括與硬體相關的底層驅動軟體、系統內核、設備驅動介面、通信協議、圖形界面、標准化瀏覽器等 Browser 。嵌入式操作系統具有通用操作系統的基本特點,如能夠有效管理越來越復雜的系統資源;能夠把硬體虛擬化,使得開發人員從繁忙的驅動程序移植和維護中解脫出來;能夠提供庫函數、驅動程序、工具集以及應用程序 。與通用操作系統相比較,嵌入式操作系統在系統實時高效性、硬體的相關依賴性、軟體固態化以及應用的專用性等方面具有較為突出的特點。
1. 嵌入式操作系統的種類
一般情況下,嵌入式操作系統可以分為兩類,一類是面向控制、通信等領域的實時操作系統,如 WindRiver 公司的 VxWorks 、 ISI 的 pSOS 、 QNX 系統軟體公司的 QNX 、 ATI 的 Nucleus 等;另一類是面向消費電子產品的非實時操作系統,這類產品包括個人數字助理 (PDA) 、行動電話、機頂盒、電子書、 WebPhone 等。
a. 非實時操作系統
早期的嵌入式系統中沒有操作系統的概念,程序員編寫嵌入式程序通常直接面對裸機及裸設備。在這種情況下,通常把嵌入式程序分成兩部分,即前台程序和後台程序。前台程序通過中段來處理事件,其結構一般為無限循環;後台程序則掌管整個嵌入式系統軟、硬體資源的分配、管理以及任務的調度,是一個系統管理調度程序。這就是通常所說的前後台系統。一般情況下,後台程序也叫任務級程序,前台程序也叫事件處理級程序。在程序運行時,後台程序檢查每個任務是否具備運行條件,通過一定的調度演算法來完成相應的操作。對於實時性要求特別嚴格的操作通常由中斷來完成,僅在中斷服務程序中標記事件的發生,不再做任何工作就退出中斷,經過後台程序的調度,轉由前台程序完成事件的處理,這樣就不會造成在中斷服務程序中處理費時的事件而影響後續和其他中斷。
實際上,前後台系統的實時性比預計的要差。這是因為前後台系統認為所有的任務具有相同的優先順序別,即是平等的,而且任務的執行又是通過 FIFO 隊列排隊,因而對那些實時性要求高的任務不可能立刻得到處理。另外,由於前台程序是一個無限循環的結構,一旦在這個循環體中正在處理的任務崩潰,使得整個任務隊列中的其他任務得不到機會被處理,從而造成整個系統的崩潰。由於這類系統結構簡單,幾乎不需要 RAM/ROM 的額外開銷,因而在簡單的嵌入式應用被廣泛使用。
b. 實時操作系統
實時系統是指能在確定的時間內執行其功能並對外部的非同步事件做出響應的計算機系統。其操作的正確性不僅依賴於邏輯設計的正確程度,而且與這些操作進行的時間有關。「在確定的時間內」是該定義的核心。也就是說,實時系統是對響應時間有嚴格要求的。
實時系統對邏輯和時序的要求非常嚴格,如果邏輯和時序出現偏差將會引起嚴重後果。實時系統有兩種類型:軟實時系統和硬實時系統。軟實時系統僅要求事件響應是實時的,並不要求限定某一任務必須在多長時間內完成;而在硬實時系統中,不僅要求任務響應要實時,而且要求在規定的時間內完成事件的處理。通常,大多數實時系統是兩者的結合。實時應用軟體的設計一般比非實時應用軟體的設計困難。實時系統的技術關鍵是如何保證系統的實時性。
實時多任務操作系統是指具有實時性、能支持實時控制系統工作的操作系統。其首要任務是調度一切可利用的資源完成實時控制任務,其次才著眼於提高計算機系統的使用效率,重要特點是要滿足對時間的限制和要求。實時操作系統具有如下功能:任務管理 ( 多任務和基於優先順序的任務調度 ) 、任務間同步和通信 ( 信號量和郵箱等 ) 、存儲器優化管理 ( 含 ROM 的管理 ) 、實時時鍾服務、中斷管理服務。實時操作系統具有如下特點:規模小,中斷被屏蔽的時間很短,中斷處理時間短,任務切換很快。
實時操作系統可分為可搶占型和不可搶占型兩類。對於基於優先順序的系統而言,可搶占型實時操作系統是指內核可以搶占正在運行任務的 CPU 使用權並將使用權交給進入就緒態的優先順序更高的任務,是內核搶了 CPU 讓別的任務運行。不可搶占型實時操作系統使用某種演算法並決定讓某個任務運行後,就把 CPU 的控制權完全交給了該任務,直到它主動將 CPU 控制權還回來。中斷由中斷服務程序來處理,可以激活一個休眠態的任務,使之進入就緒態;而這個進入就緒態的任務還不能運行,一直要等到當前運行的任務主動交出 CPU 的控制權。使用這種實時操作系統的實時性比不使用實時操作系統的系統性能好,其實時性取決於最長任務的執行時間。不可搶占型實時操作系統的缺點也恰恰是這一點,如果最長任務的執行時間不能確定,系統的實時性就不能確定。
可搶占型實時操作系統的實時性好,優先順序高的任務只要具備了運行的條件,或者說進入了就緒態,就可以立即運行。也就是說,除了優先順序最高的任務,其他任務在運行過程中都可能隨時被比它優先順序高的任務中斷,讓後者運行。通過這種方式的任務調度保證了系統的實時性,但是,如果任務之間搶占 CPU 控制權處理不好,會產生系統崩潰、死機等嚴重後果。
2. 嵌入式操作系統的發展
嵌入式操作系統伴隨著嵌入式系統的發展經歷了 4 個比較明顯的階段。
第一階段是無操作系統的嵌入演算法階段,是以單晶元為核心的可編程式控制制器形式的系統,同時具有與監測、伺服、指示設備相配合的功能。這種系統大部分應用於一些專業性極強的工業控制系統中,一般沒有操作系統的支持,通過匯編語言編程對系統進行直接控制,運行結束後清除內存。這一階段系統的主要特點是:系統結構和功能都相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶介面。由於這種嵌入式系統使用簡便、價格很低,以前在國內工業領域應用較為普遍,但是已經遠遠不能適應高效的、需要大容量存儲介質的現代化工業控制和新興的信息家電等領域的需求。
第二階段是以嵌入式 CPU 為基礎、以簡單操作系統為核心的嵌入式系統。這一階段系統的主要特點是: CPU 種類繁多,通用性比較差;系統開銷小, 效率高;一般配備系統模擬器,操作系統具有一定的兼容性和擴展性;應用軟體較專業,用戶界面不夠友好;系統主要用來控制系統負載以及監控應用程序運行。
第三階段是通用的嵌入式實時操作系統階段,是以嵌入式操作系統為核心的嵌入式系統。這一階段系統的主要特點是:嵌入式操作系統能運行於各種不同類型的微處理器上,兼容性好;操作系統內核精小、效率高,並且具有高度的模塊化和擴展性;具備文件和目錄管理、設備支持、多任務、網路支持、圖形窗口以及用戶界面等功能;具有大量的應用程序介面 (API) ,開發應用程序簡單;嵌入式應用軟體豐富。
第四階段是以基於 Internet 為標志的嵌入式系統,這是一個正在迅速發展的階段。目前大多數嵌入式系統還孤立於 Internet 之外,但隨著 Internet 的發展以及 Internet 技術與信息家電、工業控制技術等結合日益密切,嵌入式設備與 Internet 的結合將代表著嵌入式技術的真正未來。
3. 使用實時操作系統的必要性
嵌入式實時操作系統在目前的嵌入式應用中用得越來越廣泛,尤其在功能復雜、系統龐大的應用中顯得愈來愈重要。
首先,嵌入式實時操作系統提高了系統的可靠性。在控制系統中,出於安全方面的考慮,要求系統起碼不能崩潰,而且還要有自愈能力。不僅要求在硬體設計方面提高系統的可靠性和抗干擾性,而且也應在軟體設計方面提高系統的抗干擾性,盡可能地減少安全漏洞和不可靠的隱患。長期以來的前後台系統軟體設計在遇到強干擾時,使得運行的程序產生異常、出錯、跑飛,甚至死循環,造成了系統的崩潰。而實時操作系統管理的系統,這種干擾可能只是引起若干進程中的一個被破壞,可以通過系統運行的系統監控進程對其進行修復。通常情況下,這個系統監視進程用來監視各進程運行狀況,遇到異常情況時採取一些利於系統穩定可靠的措施,如把有問題的任務清除掉。
其次,提高了開發效率,縮短了開發周期。在嵌入式實時操作系統環境下,開發一個復雜的應用程序,通常可以按照軟體工程中的解耦原則將整個程序分解為多個任務模塊。每個任務模塊的調試、修改幾乎不影響其他模塊。商業軟體一般都提供了良好的多任務調試環境。 再次,嵌入式實時操作系統充分發揮了 32 位 CPU 的多任務潛力。 32 位 CPU 比 8 、 16 位 CPU 快,另外它本來是為運行多用戶、多任務操作系統而設計的,特別適於運行多任務實時系統。 32 位 CPU 採用利於提高系統可靠性和穩定性的設計,使其更容易做到不崩潰。例如, CPU 運行狀態分為系統態和用戶態。將系統堆棧和用戶堆棧分開,以及實時地給出 CPU 的運行狀態等,允許用戶在系統設計中從硬體和軟體兩方面對實時內核的運行實施保護。如果還是採用以前的前後台方式,則無法發揮 32 位 CPU 的優勢。
從某種意義上說,沒有操作系統的計算機 ( 裸機 ) 是沒有用的。在嵌入式應用中,只有把 CPU 嵌入到系統中,同時又把操作系統嵌入進去,才是真正的計算機嵌入式應用。
4. 實時操作系統的優缺點
在嵌入式實時操作系統環境下開發實時應用程序使程序的設計和擴展變得容易,不需要大的改動就可以增加新的功能。通過將應用程序分割成若干獨立的任務模塊,使應用程序的設計過程大為簡化;而且對實時性要求苛刻的事件都得到了快速、可靠的處理。通過有效的系統服務,嵌入式實時操作系統使得系統資源得到更好的利用。但是,使用嵌入式實時操作系統還需要額外的 ROM/RAM 開銷, 2~5% 的 CPU 額外負荷,以及內核的費用。
Ⅱ 嵌入式系統
一 什麼是嵌入式系統 嵌入式系統一般指非 PC 系統,有計算機功能但又不稱之為計算機的設備或器材。它是以應用為中心,軟硬體可裁減的,適應應用系統對功能、可靠性、成本、體積、功耗等綜合性嚴格要求的專用計算機系統。簡單地說,嵌入式系統集系統的應用軟體與硬體於一體,類似於 PC 中 BIOS 的工作方式,具有軟體代碼小、高度自動化、響應速度快等特點,特別適合於要求實時和多任務的體系。嵌入式系統主要由嵌入式處理器、相關支撐硬體、嵌入式操作系統及應用軟體系統等組成,它是可獨立工作的「器件」。 嵌入式系統幾乎包括了生活中的所有電器設備,如掌上 PDA 、移動計算設備、電視機頂盒、手機上網、數字電視、多媒體、汽車、微波爐、數字相機、家庭自動化系統、電梯、空調、安全系統、自動售貨機、蜂窩式電話、消費電子設備、工業自動化儀表與醫療儀器等。 嵌入式系統的硬體部分,包括處理器 / 微處理器、存儲器及外設器件和 I/O 埠、圖形控制器等。嵌入式系統有別於一般的計算機處理系統,它不具備像硬碟那樣大容量的存儲介質,而大多使用 EPROM 、 EEPROM 或快閃記憶體 (Flash Memory) 作為存儲介質。軟體部分包括操作系統軟體 ( 要求實時和多任務操作 ) 和應用程序編程。應用程序控制著系統的運作和行為;而操作系統控制著應用程序編程與硬體的交互作用。 二 嵌入式處理器 嵌入式系統的核心是嵌入式微處理器。嵌入式微處理器一般具備 4 個特點: (1) 對實時和多任務有很強的支持能力,能完成多任務並且有較短的中斷響應時間,從而使內部的代碼和實時操作系統的執行時間減少到最低限度; (2) 具有功能很強的存儲區保護功能,這是由於嵌入式系統的軟體結構已模塊化,而為了避免在軟體模塊之間出現錯誤的交叉作用,需要設計強大的存儲區保護功能,同時也有利於軟體診斷; (3) 可擴展的處理器結構,以能迅速地擴展出滿足應用的高性能的嵌入式微處理器; (4) 嵌入式微處理器的功耗必須很低,尤其是用於攜帶型的無線及移動的計算和通信設備中靠電池供電的嵌入式系統更是如此,功耗只能為 mW 甚至μ W 級。 據不完全統計,目前全世界嵌入式處理器的品種總量已經超過 1000 種,流行的體系結構有 30 多個系列。其中 8051 體系佔多半,生產這種單片機的半導體廠家有 20 多個,共 350 多種衍生產品,僅 Philips 就有近 100 種。現在幾乎每個半導體製造商都生產嵌入式處理器,越來越多的公司有自己的處理器設計部門。嵌入式處理器的定址空間一般從 64kB 到 16MB ,處理速度為 0.1~2000MIPS ,常用封裝 8~144 個引腳。 根據現狀,嵌入式計算機可分成下面幾類。 (1) 嵌入式微處理器 (Embedded Microprocessor Unit, EMPU) 嵌入式微處理器採用「增強型」通用微處理器。由於嵌入式系統通常應用於環境比較惡劣的環境中,因而嵌入式微處理器在工作溫度、電磁兼容性以及可靠性方面的要求較通用的標准微處理器高。但是,嵌入式微處理器在功能方面與標準的微處理器基本上是一樣的。根據實際嵌入式應用要求,將嵌入式微處理器裝配在專門設計的主板上,只保留和嵌入式應用有關的主板功能,這樣可以大幅度減小系統的體積和功耗。和工業控制計算機相比,嵌入式微處理器組成的系統具有體積小、重量輕、成本低、可靠性高的優點,但在其電路板上必須包括 ROM 、 RAM 、匯流排介面、各種外設等器件,從而降低了系統的可靠性,技術保密性也較差。由嵌入式微處理器及其存儲器、匯流排、外設等安裝在一塊電路主板上構成一個通常所說的單板機系統。嵌入式處理器目前主要有 Am186/88 、 386EX 、 SC-400 、 Power PC 、 68000 、 MIPS 、 ARM 系列等。 (2) 嵌入式微控制器 (Microcontroller Unit, MCU) 嵌入式微控制器又稱單片機,它將整個計算機系統集成到一塊晶元中。嵌入式微控制器一般以某種微處理器內核為核心,根據某些典型的應用,在晶元內部集成了 ROM/EPROM 、 RAM 、匯流排、匯流排邏輯、定時 / 計數器、看門狗、 I/O 、串列口、脈寬調制輸出、 A/D 、 D/A 、 Flash RAM 、 EEPROM 等各種必要功能部件和外設。為適應不同的應用需求,對功能的設置和外設的配置進行必要的修改和裁減定製,使得一個系列的單片機具有多種衍生產品,每種衍生產品的處理器內核都相同,不同的是存儲器和外設的配置及功能的設置。這樣可以使單片機最大限度地和應用需求相匹配,從而減少整個系統的功耗和成本。和嵌入式微處理器相比,微控制器的單片化使應用系統的體積大大減小,從而使功耗和成本大幅度下降、可靠性提高。由於嵌入式微控制器目前在產品的品種和數量上是所有種類嵌入式處理器中最多的,而且上述諸多優點決定了微控制器是嵌入式系統應用的主流。微控制器的片上外設資源一般比較豐富,適合於控制,因此稱為微控制器。通常,嵌入式微處理器可分為通用和半通用兩類,比較有代表性的通用系列包括 8051 、 P51XA 、 MCS-251 、 MCS-96/196/296 、 C166/167 、 68300 等。而比較有代表性的半通用系列,如支持 USB 介面的 MCU 8XC930/931 、 C540 、 C541 ;支持 I2C 、 CAN 匯流排、 LCD 等的眾多專用 MCU 和兼容系列。目前 MCU 約占嵌入式系統市場份額的 70% 。 (3) 嵌入式 DSP 處理器 (Embedded Digital Signal Processor, EDSP 在數字信號處理應用中,各種數字信號處理演算法相當復雜,這些演算法的復雜度可能是 O(nm) 的,甚至是 NP 的,一般結構的處理器無法實時的完成這些運算。由於 DSP 處理器對系統結構和指令進行了特殊設計,使其適合於實時地進行數字信號處理。在數字濾波、 FFT 、譜分析等方面, DSP 演算法正大量進入嵌入式領域, DSP 應用正從在通用單片機中以普通指令實現 DSP 功能,過渡到採用嵌入式 DSP 處理器。嵌入式 DSP 處理器有兩類: (1)DSP 處理器經過單片化、 EMC 改造、增加片上外設成為嵌入式 DSP 處理器, TI 的 TMS320C2000/C5000 等屬於此范疇; (2) 在通用單片機或 SOC 中增加 DSP 協處理器,例如 Intel 的 MCS-296 和 Infineon(Siemens) 的 TriCore 。另外,在有關智能方面的應用中,也需要嵌入式 DPS 處理器,例如各種帶有智能邏輯的消費類產品,生物信息識別終端,帶有加解密演算法的鍵盤, ADSL 接入、實時語音壓解系統,虛擬現實顯示等。這類智能化演算法一般都是運算量較大,特別是向量運算、指針線性定址等較多,而這些正是 DSP 處理器的優勢所在。嵌入式 DSP 處理器比較有代表性的產品是 TI 的 TMS320 系列和 Motorola 的 DSP56000 系列。 TMS320 系列處理器包括用於控制的 C2000 系列、移動通信的 C5000 系列,以及性能更高的 C6000 和 C8000 系列。 DSP56000 目前已經發展成為 DSP56000 、 DSP56100 、 DSP56200 和 DSP56300 等幾個不同系列的處理器。另外, Philips 公司最近也推出了基於可重置嵌入式 DSP 結構,採用低成本、低功耗技術製造的 R. E. A. L DSP 處理器,其特點是具備雙 Harvard 結構和雙乘 / 累加單元,應用目標是大批量消費類產品。 (4) 嵌入式片上系統 (System On Chip, SOC) 隨著 EDI 的推廣和 VLSI 設計的普及化,以及半導體工藝的迅速發展,可以在一塊矽片上實現一個更為復雜的系統,這就產生了 SOC 技術。各種通用處理器內核將作為 SOC 設計公司的標准庫,和其他許多嵌入式系統外設一樣,成為 VLSI 設計中一種標準的器件,用標準的 VHDL 、 Verlog 等硬體語言描述,存儲在器件庫中。用戶只需定義出其整個應用系統,模擬通過後就可以將設計圖交給半導體工廠製作樣品。這樣除某些無法集成的器件以外,整個嵌入式系統大部分均可集成到一塊或幾塊晶元中去,應用系統電路板將變得很簡單,對於減小整個應用系統體積和功耗、提高可靠性非常有利。 SOC 可分為通用和專用兩類,通用 SOC 如 Infineon(Siemens) 的 TriCore 、 Motorola 的 M-Core ,以及某些 ARM 系列器件,如 Echelon 和 Motorola 聯合研製的 Neuron 晶元等;專用 SOC 一般專用於某個或某類系統中,如 Philips 的 Smart XA ,它將 XA 單片機內核和支持超過 2048 位復雜 RSA 演算法的 CCU 單元製作在一塊矽片上,形成一個可載入 Java 或 C 語言的專用 SOC ,可用於互聯網安全方面。 三 嵌入式操作系統 嵌入式操作系統是一種支持嵌入式系統應用的操作系統軟體,它是嵌入式系統 ( 包括硬、軟體系統 ) 極為重要的組成部分,通常包括與硬體相關的底層驅動軟體、系統內核、設備驅動介面、通信協議、圖形界面、標准化瀏覽器等 Browser 。嵌入式操作系統具有通用操作系統的基本特點,如能夠有效管理越來越復雜的系統資源;能夠把硬體虛擬化,使得開發人員從繁忙的驅動程序移植和維護中解脫出來;能夠提供庫函數、驅動程序、工具集以及應用程序 。與通用操作系統相比較,嵌入式操作系統在系統實時高效性、硬體的相關依賴性、軟體固態化以及應用的專用性等方面具有較為突出的特點。 1. 嵌入式操作系統的種類 一般情況下,嵌入式操作系統可以分為兩類,一類是面向控制、通信等領域的實時操作系統,如 WindRiver 公司的 VxWorks 、 ISI 的 pSOS 、 QNX 系統軟體公司的 QNX 、 ATI 的 Nucleus 等;另一類是面向消費電子產品的非實時操作系統,這類產品包括個人數字助理 (PDA) 、行動電話、機頂盒、電子書、 WebPhone 等。 a. 非實時操作系統 早期的嵌入式系統中沒有操作系統的概念,程序員編寫嵌入式程序通常直接面對裸機及裸設備。在這種情況下,通常把嵌入式程序分成兩部分,即前台程序和後台程序。前台程序通過中段來處理事件,其結構一般為無限循環;後台程序則掌管整個嵌入式系統軟、硬體資源的分配、管理以及任務的調度,是一個系統管理調度程序。這就是通常所說的前後台系統。一般情況下,後台程序也叫任務級程序,前台程序也叫事件處理級程序。在程序運行時,後台程序檢查每個任務是否具備運行條件,通過一定的調度演算法來完成相應的操作。對於實時性要求特別嚴格的操作通常由中斷來完成,僅在中斷服務程序中標記事件的發生,不再做任何工作就退出中斷,經過後台程序的調度,轉由前台程序完成事件的處理,這樣就不會造成在中斷服務程序中處理費時的事件而影響後續和其他中斷。 實際上,前後台系統的實時性比預計的要差。這是因為前後台系統認為所有的任務具有相同的優先順序別,即是平等的,而且任務的執行又是通過 FIFO 隊列排隊,因而對那些實時性要求高的任務不可能立刻得到處理。另外,由於前台程序是一個無限循環的結構,一旦在這個循環體中正在處理的任務崩潰,使得整個任務隊列中的其他任務得不到機會被處理,從而造成整個系統的崩潰。由於這類系統結構簡單,幾乎不需要 RAM/ROM 的額外開銷,因而在簡單的嵌入式應用被廣泛使用。 b. 實時操作系統 實時系統是指能在確定的時間內執行其功能並對外部的非同步事件做出響應的計算機系統。其操作的正確性不僅依賴於邏輯設計的正確程度,而且與這些操作進行的時間有關。「在確定的時間內」是該定義的核心。也就是說,實時系統是對響應時間有嚴格要求的。 實時系統對邏輯和時序的要求非常嚴格,如果邏輯和時序出現偏差將會引起嚴重後果。實時系統有兩種類型:軟實時系統和硬實時系統。軟實時系統僅要求事件響應是實時的,並不要求限定某一任務必須在多長時間內完成;而在硬實時系統中,不僅要求任務響應要實時,而且要求在規定的時間內完成事件的處理。通常,大多數實時系統是兩者的結合。實時應用軟體的設計一般比非實時應用軟體的設計困難。實時系統的技術關鍵是如何保證系統的實時性。 實時多任務操作系統是指具有實時性、能支持實時控制系統工作的操作系統。其首要任務是調度一切可利用的資源完成實時控制任務,其次才著眼於提高計算機系統的使用效率,重要特點是要滿足對時間的限制和要求。實時操作系統具有如下功能:任務管理 ( 多任務和基於優先順序的任務調度 ) 、任務間同步和通信 ( 信號量和郵箱等 ) 、存儲器優化管理 ( 含 ROM 的管理 ) 、實時時鍾服務、中斷管理服務。實時操作系統具有如下特點:規模小,中斷被屏蔽的時間很短,中斷處理時間短,任務切換很快。 實時操作系統可分為可搶占型和不可搶占型兩類。對於基於優先順序的系統而言,可搶占型實時操作系統是指內核可以搶占正在運行任務的 CPU 使用權並將使用權交給進入就緒態的優先順序更高的任務,是內核搶了 CPU 讓別的任務運行。不可搶占型實時操作系統使用某種演算法並決定讓某個任務運行後,就把 CPU 的控制權完全交給了該任務,直到它主動將 CPU 控制權還回來。中斷由中斷服務程序來處理,可以激活一個休眠態的任務,使之進入就緒態;而這個進入就緒態的任務還不能運行,一直要等到當前運行的任務主動交出 CPU 的控制權。使用這種實時操作系統的實時性比不使用實時操作系統的系統性能好,其實時性取決於最長任務的執行時間。不可搶占型實時操作系統的缺點也恰恰是這一點,如果最長任務的執行時間不能確定,系統的實時性就不能確定。 可搶占型實時操作系統的實時性好,優先順序高的任務只要具備了運行的條件,或者說進入了就緒態,就可以立即運行。也就是說,除了優先順序最高的任務,其他任務在運行過程中都可能隨時被比它優先順序高的任務中斷,讓後者運行。通過這種方式的任務調度保證了系統的實時性,但是,如果任務之間搶占 CPU 控制權處理不好,會產生系統崩潰、死機等嚴重後果。 2. 嵌入式操作系統的發展 嵌入式操作系統伴隨著嵌入式系統的發展經歷了 4 個比較明顯的階段。 第一階段是無操作系統的嵌入演算法階段,是以單晶元為核心的可編程式控制制器形式的系統,同時具有與監測、伺服、指示設備相配合的功能。這種系統大部分應用於一些專業性極強的工業控制系統中,一般沒有操作系統的支持,通過匯編語言編程對系統進行直接控制,運行結束後清除內存。這一階段系統的主要特點是:系統結構和功能都相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶介面。由於這種嵌入式系統使用簡便、價格很低,以前在國內工業領域應用較為普遍,但是已經遠遠不能適應高效的、需要大容量存儲介質的現代化工業控制和新興的信息家電等領域的需求。 第二階段是以嵌入式 CPU 為基礎、以簡單操作系統為核心的嵌入式系統。這一階段系統的主要特點是: CPU 種類繁多,通用性比較差;系統開銷小, 效率高;一般配備系統模擬器,操作系統具有一定的兼容性和擴展性;應用軟體較專業,用戶界面不夠友好;系統主要用來控制系統負載以及監控應用程序運行。 第三階段是通用的嵌入式實時操作系統階段,是以嵌入式操作系統為核心的嵌入式系統。這一階段系統的主要特點是:嵌入式操作系統能運行於各種不同類型的微處理器上,兼容性好;操作系統內核精小、效率高,並且具有高度的模塊化和擴展性;具備文件和目錄管理、設備支持、多任務、網路支持、圖形窗口以及用戶界面等功能;具有大量的應用程序介面 (API) ,開發應用程序簡單;嵌入式應用軟體豐富。 第四階段是以基於 Internet 為標志的嵌入式系統,這是一個正在迅速發展的階段。目前大多數嵌入式系統還孤立於 Internet 之外,但隨著 Internet 的發展以及 Internet 技術與信息家電、工業控制技術等結合日益密切,嵌入式設備與 Internet 的結合將代表著嵌入式技術的真正未來。 3. 使用實時操作系統的必要性 嵌入式實時操作系統在目前的嵌入式應用中用得越來越廣泛,尤其在功能復雜、系統龐大的應用中顯得愈來愈重要。 首先,嵌入式實時操作系統提高了系統的可靠性。在控制系統中,出於安全方面的考慮,要求系統起碼不能崩潰,而且還要有自愈能力。不僅要求在硬體設計方面提高系統的可靠性和抗干擾性,而且也應在軟體設計方面提高系統的抗干擾性,盡可能地減少安全漏洞和不可靠的隱患。長期以來的前後台系統軟體設計在遇到強干擾時,使得運行的程序產生異常、出錯、跑飛,甚至死循環,造成了系統的崩潰。而實時操作系統管理的系統,這種干擾可能只是引起若干進程中的一個被破壞,可以通過系統運行的系統監控進程對其進行修復。通常情況下,這個系統監視進程用來監視各進程運行狀況,遇到異常情況時採取一些利於系統穩定可靠的措施,如把有問題的任務清除掉。 其次,提高了開發效率,縮短了開發周期。在嵌入式實時操作系統環境下,開發一個復雜的應用程序,通常可以按照軟體工程中的解耦原則將整個程序分解為多個任務模塊。每個任務模塊的調試、修改幾乎不影響其他模塊。商業軟體一般都提供了良好的多任務調試環境。 再次,嵌入式實時操作系統充分發揮了 32 位 CPU 的多任務潛力。 32 位 CPU 比 8 、 16 位 CPU 快,另外它本來是為運行多用戶、多任務操作系統而設計的,特別適於運行多任務實時系統。 32 位 CPU 採用利於提高系統可靠性和穩定性的設計,使其更容易做到不崩潰。例如, CPU 運行狀態分為系統態和用戶態。將系統堆棧和用戶堆棧分開,以及實時地給出 CPU 的運行狀態等,允許用戶在系統設計中從硬體和軟體兩方面對實時內核的運行實施保護。如果還是採用以前的前後台方式,則無法發揮 32 位 CPU 的優勢。 從某種意義上說,沒有操作系統的計算機 ( 裸機 ) 是沒有用的。在嵌入式應用中,只有把 CPU 嵌入到系統中,同時又把操作系統嵌入進去,才是真正的計算機嵌入式應用。 4. 實時操作系統的優缺點 在嵌入式實時操作系統環境下開發實時應用程序使程序的設計和擴展變得容易,不需要大的改動就可以增加新的功能。通過將應用程序分割成若干獨立的任務模塊,使應用程序的設計過程大為簡化;而且對實時性要求苛刻的事件都得到了快速、可靠的處理。通過有效的系統服務,嵌入式實時操作系統使得系統資源得到更好的利用。但是,使用嵌入式實時操作系統還需要額外的 ROM/RAM 開銷, 2~5% 的 CPU 額外負荷,以及內核的費用。
Ⅲ 如何利用內嵌匯編程序實現使能和禁止中斷
在Windows下開關中斷指令屬於特權指令,就算內嵌了也不會被執行的。
DOS下的話CLI是關中斷,STI是開中斷.要實模式下的DOS,虛擬的DOS(就是Windows下的那個DOS窗口)還是會被Windows屏蔽掉。
#include<stdio.h>
void main()
{
int a=2;
__asm{
lea eax,a
shl [eax],2
}
printf("a=%d ",a);
}
(3)如何屏蔽嵌入式程序擴展閱讀:
嵌 入式系統是基於特定用途的 , 以計算機技術為基礎 ,其軟硬體具備良好可裁剪性的專用計算機系統,適用於對功能、可靠性、成本、體積、 功耗有嚴格要 求的場合。它一般由嵌入式微處理器、 外圍硬體設備、嵌入式操作系統以及用戶應用程序四個部分組成。從 20 世紀 60年代中期集成電路誕生至今,嵌入式系統應用已經有接近 40 年的發展歷史。
通常來說,嵌入式系統具備以下特點:
(1)體積小,重量輕。
(2)結構簡單、功耗低、可靠性高。
(3)便於規模化生產、價格相對低廉。
(4)模塊化、晶元化。
(5)強調量身定做的原則。
Ⅳ 如何取消殺毒軟體在office中的嵌入式殺毒
一、如果你安裝的是諾頓
具體的解決方法是:
右鍵點擊右下角的圖標,選擇 「配置Norton Antivirus」
在彈出的對話框內找到「雜項」選項
如果在「啟用Office插件」前面有對號的話,將它點掉,確定退出後就ok了
二、如果你安裝的是瑞星
具體的解決方法是:
設置—>詳細設置—>嵌入式殺毒,去掉「使用Office/IE嵌入式殺毒」前的勾即可。
或設置「其他設置」中,將「使用office/IE安全助手」前面的勾取消就能解決問題。
三、Microsoft解釋:
症狀:
如果通過雙擊一個文檔(例如,在 Microsoft Windows 資源管理器中)來在 Microsoft Office Word 2003 中打開該文檔,則會收到下面的錯誤信息:The command cannot be performed because a dialog box is open.Click "OK" and then close open dialog boxes to continue.在 Microsoft Word 2002 中不會收到這一錯誤信息。
原因:
如果 Startup 文件夾中有一個 Word 2003 模板,該模板中包含能打開對話框的自動執行 (autoexec) 宏,則可能發生此問題。
替代方法
方法 1:
在 Word 中打開要在 Word 中直接打開文檔,請按下列步驟操作:
1. 啟動 Word 2003。
2. 在「文件」菜單上,單擊「打開」。
3. 在「打開」對話框中,選擇要打開的文檔,然後單擊「打開」。
方法 2:
從 Startup 文件夾中刪除模板,要從 Startup 文件夾中刪除模板,請按下列步驟操作:
1. 退出 Word 2003。
2. 單擊「開始」,指向「程序」,指向「附件」,然後單擊「Windows 資源管理器」。
3. 找出下列二個文件夾之一:
Documents and Settings\username\Application Data\Microsoft\Word\Startup
Program Files\Microsoft Office\Office11\Startup
4. 雙擊以打開「Startup」文件夾。
5. 在 Windows 資源管理器的右窗格中,單擊以選擇要刪除的模板,然後按 Delete 鍵。
Ⅳ 請教大俠,LPC2366FBD100晶元 怎樣對嵌入式軟體進行加密,防止代碼被讀出。謝謝
使用Virbox Protector 加密工具保護嵌入式軟體代碼。
1 高級混淆加密
通過VirboxProtector,開發者能夠自由選擇保護的函數,對指定函數進行高級混淆,有效防止 IDA 反編譯,極大地增加了動態分析的難度。相比使用基於LLVM編譯器的混淆,Virbox Protector的高級混淆功能以更少的指令達到更強的保護效果,耗電量更小。
2 基於 SMC 技術的代碼加密
可以對指定函數進行代碼片加密,只有程序運行的時候才能解密,破解者無法 Dump 出整體的內存,有效防止逆向工程工具對程序進行靜態分析。
3 智能壓縮
隱藏程序中的代碼和數據,阻止 IDA PRO 等工具的反編譯,並且有效的防止了加殼後的應用體積膨脹。
源代碼加密前使用反編譯工具查看效果
Ⅵ 嵌入式中編寫中斷處理程序有什麼需要注意的
1.中斷基本概念什麼是中斷?先打個比方。當一個經理正處理文件時,電話鈴響了(中斷請求),不得不在文件上做一個記號(返回地址),暫停工作,去接電話(中斷),並指示「按第二方案」(調中斷服務程序),然後,再靜下心來(恢復中斷前狀態),接著處理文件……。計算機科學家觀察了類似實例,「外師物化,內得心源」,借用了這些思想、處理方式和名稱,研製了一系列中斷服務程序及其調度系統。中斷是CPU處理外部突發事件的一個重要技術。它能使CPU在運行過程中對外部事件發出的中斷請求及時地進行處理,處理完成後又立即返回斷點,繼續進行CPU原來的工作。引起中斷的原因或者說發出中斷請求的來源叫做中斷源。根據中斷源的不同,可以把中斷分為硬體中斷和軟體中斷兩大類,而硬體中斷又可以分為外部中斷和內部中斷兩類。外部中斷一般是指由計算機外設發出的中斷請求,如:鍵盤中斷、列印機中斷、定時器中斷等。外部中斷是可以屏蔽的中斷,也就是說,利用中斷控制器可以屏蔽這些外部設備的中斷請求。內部中斷是指因硬體出錯(如突然掉電、奇偶校驗錯等)或運算出錯(除數為零、運算溢出、單步中斷等)所引起的中斷。內部中斷是不可屏蔽的中斷。軟體中斷其實並不是真正的中斷,它們只是可被調用執行的一般程序。例如:ROMBIOS中的各種外部設備管理中斷服務程序(鍵盤管理中斷、顯示器管理中斷、列印機管理中斷等,)以及DOS的系統功能調用(INT21H)等都是軟體中斷。CPU為了處理並發的中斷請求,規定了中斷的優先權,中斷優先權由高到低的順序是:(1)除法錯、溢出中斷、軟體中斷(2)不可屏蔽中斷(3)可屏蔽中斷(4)單步中斷。
Ⅶ 嵌入式中斷屏蔽器的作用
可以實時控制、故障自動處理、與外圍設備間的數據傳送、硬體故障報警與處理、支持多道程序並發運行。
嵌入式中斷屏蔽器基本都是以前後台方式(大循環加中斷)的方式來實現功能,在主循環中處理應用,並在中斷中處理外部的觸發信號,以及對響應時間有要求的應用,如用於時間相關處理的定時器中斷,對按鍵響應的外部中斷,用於通訊的收發和異常處理的串口中斷,SPI中斷,網路中斷等。
Ⅷ 通過dsp給ram寫進程序,如何判斷我的程序寫到正確的位置
類似的問題我也遇到過,總是進入非法中斷。反復查也查不到問題,關鍵無從下手, 沒辦法,只能屏蔽掉絕大部分中斷,發現CPU_Timer0中斷進不去,再後來就查出是 cmd文件配置的問題。 嵌入式程序的調試比PC程序麻煩,根據你說的也很難判斷是什麼問題,只能告訴你一個思路: 把能屏蔽掉的代碼都注釋掉,直到不再出問題。然後一點一點再往上加, 看加到哪一部開始出問題。如果全屏蔽了還有問題,那麼最可疑的就是cmd了。
Ⅸ 嵌入式系統的操作系統(如linux)主要作用是什麼
嵌入式操作系統的主要好處就是屏蔽了底層硬體的差別,給上層應用提供統一的介面,並管理進程調度和資源(如CPU時間、內存)分配等。就跟windows操作系統一樣,不管你是用華碩的電腦還是戴爾的電腦,只要裝了windows操作系統,你都可以用office、詞霸之類的軟體。人機界面(MMI)是上層應用show出來的。
簡單的嵌入式應用不需要嵌入式操作系統的支持,如單片機,直接用匯編程序就能實現特定的功能。要跑的應用多了,就需要操作系統來進行管理。
一般手機產品、小型醫療設備、軍工設備等都用到了arm+linux的平台。
arm處理器(CPU)是目前使用較多的,使用的嵌入式操作系統可以是多種多樣的,不光是linux。嵌入式linux系統比較穩定,有開源代碼,成本低,可移植性強;可以靈活裁剪不需要的功能,減小嵌入式軟體的大小和降低系統功耗。所以用嵌入式linux操作系統的不少。但現在很多公司都是用那種商業化的定製好的嵌入式linux平台以減少開發量和加快開發速度(比如有專門針對通訊設備的,有專門針對一般消費電子類的),這就需要買了。
Ⅹ 簡述嵌入式系統設計中抗電磁干擾技術
嵌入式系統的抗干擾設計
王軍安
〔西安電子科技大學計算機外部設備研究所)
摘要:針對嵌入式系統的杭干擾設計要求,從電路及印製板設計、機箱及電纜連接等方面討
論了硬體系統的電磁兼容設計技術;從軟體的可靠性設計、程序跑飛的預防、補救及妥全措
施等方面討論了軟體系統的抗干擾設計技術.
關鍵詞:嵌入式系統 抗干擾 EMI可靠性
引言
嵌入式系統的工作現場往往具有大量的電磁干擾源,它們一般可分為:(1)來自電源的
傳導干擾:(2)來自傳輸信道的傳導干擾;(3)來自空間的輻射干擾。嵌入式系統在設計時
如果未採取有效的抗干擾措施,則運行時CPU及其它微弱信號處理模塊很容易受這些干擾源
影響,而無法正常工作。因此,抗干擾性能一直是影響嵌入式系統工作可靠性的主要因素。
如何提高抗干擾性能,一直是嵌入式系統開發者關心的問題。
為了提高嵌入式系統的工作可靠性,在系統設計開始時,就應該對使用環境的電磁干擾
情況作出合理估計,並提出適當的電磁兼容性 (EMI)指標。在硬體設計、實現、系統互連
中,需要採取相關措施保證EMI指標;在軟體設計及編程時,對於嵌入式計算機最容易出現
的「程序跑飛」問題,需要採取預防和補救措施。本文將結合作者的實踐經驗,對以上問題進
行討論。
一、硬體系統的抗干擾設計
硬體系統的抗干擾設計主要指電磁兼容性設計,電磁兼容性包含兩個方面:(1)對環境
中的電磁干擾有一定的耐受能力;(2)不可以向空間環境發射過強的電磁能量。
EMI問題主要源自電路的分布參數。許多電路從原理 (集中參數)上看,似乎沒有問題,
而實際系統中由於器件的非理想性,以及結構、布線等問題,造成EMI發射或敏感。抗干擾
設計的基本原理包括:
(I)抑制干擾源:減小電壓/電流變化率,如並聯阻容吸收電路,串聯阻尼電感,並聯續
流二極體等。
(2)切斷傳導及輻射千擾的傳播路徑:如使用濾波器或隔離電路,使用屏蔽技術。
(3)提高敏感器件的抗千擾性能:縮短連線,減小環路面積,加寬電源及地線
以下主要從電原理及印製板設計、機箱屏蔽及電纜連接技術等方面討論硬體系統的抗干
擾設計技術。
1.1電路設計及布線
在研製初期,就應該對系統進行可靠性預計及分析工作,確定影響可靠性的關鍵部件及
元器件。確認方案的合理性後,對影響可靠性的關鍵元器件降額使用。
以 卜是作者在實踐中的兒點體會:
(1)盡可能簡化、優化體系結構。如使用功能更全的Soc,嵌入式計算機。
(2)注意嵌入式系統的可靠復位。當電源有尖峰干擾或電壓上升速度太慢時,普通阻容
復位電路難以正確復位,可考慮專用器件。
(3)電路的環路面積對EMI性能影響很大,使用大規模集成電路,可以有效減小環路面
積,從而提高抗干擾性、減小空間電磁發射。
(4)邏輯器件盡量使用CMOs電路,因為雜訊容限大、功耗低。CMOs器件的輸出阻抗
很小,而輸入阻抗很大,連線過長時,應在輸入端使用阻抗匹配電阻:不使用的輸入端應接
高電平。
(5)數字信號的轉換速率應與要求速度相適應 (必要時使用阻尼電路),僅在需要時使
用高速器件。
(6)注意信號電纜的EMI性能。最好使用屏蔽電纜,必要時使用隔離電路。如必須使用
扁平電纜,則可以將信號線與地線交錯布置。
關於印製板設計的幾點建議:
(1)成本允許時,盡量使用4層以上的線路板,以提高EMI性能。
(2)仔細考慮器件的位置和方向。
(3)對敏感電路及強輻射電路使用屏蔽。
(4)盡量減小高頻信號及高敏感信號 (如時鍾信號)的迴路面積,旁邊不布置其它信號
線,並用地線包圍。
(5)在器件的電源、地端就近布置退藕電容器。
(6)無論器件位置、布線、信號電纜、地線,都盡可能按照電特性的不同 (模擬信號、
數字信號、離散量信號等)進行分組。
(7)不同部分的電路使用不同的地線,並形成樹形連接,避免地線環路;PCB空白位置
可以用地線填充:如果要連接系統地線與機箱地線,則在信號電纜連接器位置進行低阻抗連
接。
(8)使用先進的製造工藝。如PCB設計、製做、焊接、器件老化。
1.2機箱及過線的EMI設計
機箱及穿過的電源線、信號電纜通常是EMI設計的關鍵問題。機箱的作用是雙向電磁屏
蔽及接地,而穿過的導線很容易破壞機箱的電磁屏蔽效果。
為了防止設備本身產生的電磁干擾進入電源線,同時防止電源線上的干擾進入設備,一
般需要使用電源線濾波器抑制雙向的共模及差模傳導干擾,還可以使用瞬態電壓保護器及壓
敏電阻抑制浪涌電壓。
需要指出,來自電源線的共模千擾通過共模抑制電容器接至機箱。機箱必須妥善接地,
才能保證共模千擾的抑制效果。較大的共模抑制電容器可以改善共模千擾的抑制效果,但會
產生較大的漏電流,對安全不利。
當設備比較復雜時,屏蔽和接地方案需要仔細設計。如圖1,作者的一些體會:
(1)從機箱電源輸入口到電源線濾波器輸入端的連線應盡量短,以防止雙向空間電磁禍
合。最好選用帶插座的電源線濾波器。
電源線濾波器外殼應該與機箱形成良好導電接觸,並就近布置接地樁。
電Dv,線濾波器的輸入、輸出引線不要靠近,以防庄電磁禍合。建議把電源線濾波器靠近機箱
壁放置。
(2)穿過機箱的信號電纜很容易引入共模干擾,最好使用饋通濾波器或光電隔離器,必
要時應使用屏蔽網套。信號電纜應遠離電源線。
(3)為了屏蔽電磁干擾、抑制靜電放電干擾,機箱應近似為完整、連續的導電體:嚴格
控制機箱開孔尺寸,必要時使用多個狹縫或蜂窩狀屏蔽通風窗。
(4)鍵盤及顯示器件往往需要較大的窗口,不利於電磁屏蔽,可以考慮使用隔離倉技術
將顯示電路與其它電路隔離,或使用透明屏蔽材料。
圖1建議的機箱及屏蔽方案
二、軟體系統的抗干擾設計
嵌入式系統的靈魂是軟體系統,嵌入式系統的抗干擾設計,必須解決軟體系統的抗干擾
問題。很遺憾,目前的馮一諾依曼計算機體系無法保證軟體運行的絕對可靠,因此,必須使用
工程方法增強軟體系統的可靠性。以下結合作者的實踐經驗,給出一些針對軟體系統的可靠
性設計技術。
2.1軟體的可靠性設計
(1)開機自檢。即在復位後,軟體先進行系統檢查,以確保ROM內容正確、RAM可正
常讀寫、各外設正常工作……開機自檢對系統可靠運行是十分必要的。
(2)軟體的正確性和功能符合性。符合功能規范要求、並能正確運行,是軟體可靠性設
計的基本要求。和微機上的純軟體相比,嵌入式軟體不但和具體硬體緊密關聯,而且往往具
有明顯的、需要程序員維護的多任務特性:嵌入式系統還要求簡潔、直觀的人機交互方式,
因而需要仔細設計軟體。
(3)對錯誤數據的抗敏性。除了基本功能符合性之外,軟體設計時還應提高對錯誤數據
的抗敏性,如對輸入數據應進行必要的檢查、數據通信的校驗機制等。關於數據通信的舉例:
從串口接收數據,數據報格式為:[報頭」[-氏度]{數據}[報文校驗和],接收到[長度l後,應檢查
長度值的合法性:接收時,還應檢查數據報相鄰位元組的時間間隔,超時後放棄接收。
(』) 面向對象的程序設計。嵌入式系統的編程語言一般是c語言,甚至匯編語言,它們
都是過程性語言。和面向對象的編程語言 (C++, java)相比,過程性語言缺乏數據抽象、封
裝和隱藏,程序員經常使用一堆零散的變數表示一個對象,不容易保證軟體的可靠性,也不
利於軟體維護。
根據作者的實踐經驗,即使使用過程性語言,只要在程序設計中使用了面向對象的編程
思想,也可以設計出可移植性強、易於維護的程序。當然,在傳統的過程性語言中體現出面
向對象的編程思想,需要一定的編程經驗和技巧。
2.2暫態設計
在設備復位、啟動或關閉時,往往要求輸出埠具有確定狀態、或進入安全態,可以從
以 卜兒方面分析、測試並處理:
(1)假設電源穩定,當CPU處於復位狀態時,設各輸出端處於什麼狀態?
可以分析得到。如果復位時輸出端狀態與要求狀態相反,可以使用非門轉換;如果復位時口
線呈現高阻態,則可以加上拉或一「拉電阻。
(2)電源接通、斷開瞬間,設備輸出端處於什麼狀態?
由於實際系統的復雜性,電源接通、斷開瞬間,設備輸出端的狀態很難准確分析,一般採用
試驗、調整方法解決。
(3)許多可編程晶元都有復位時間要求,設備啟動時能否保證這些晶元的復位時間?主
要依靠分析和試驗方法解決。
2.3程序跑飛時輸出保持安全態
安全態指非動作態 (如電機停止運轉)。在嵌入式系統中,來自內部的程序設計缺陷或外
部竄入的電磁干擾都有可能造成程序跑飛。在系統方案設計時就應採取措施,當程序跑飛時
輸出盡可能保持在安全態。
程序跑飛時,CPU已無法執行正常程序流程。為了使輸出保持在安全態,必須使用硬體
邏輯判斷CPU發出的指令是否正確。基本思路是:CPU的輸出口線不直接控制動作器,而在
兩者之間增加硬體判斷邏輯:當CPU口線輸出特定的信號序列時,硬體判斷邏輯才輸出動作
指令,否則不輸出動作指令。
如圖2,圖中使用了單穩態觸發器判斷動作信號:只有當CPU口線連續輸出高於一定頻
率的方波時,才有動作指令輸出。圖中用與非門實現兩個信號的「與」操作,提高可靠性。可
以使用CPLD等器件實現更復雜的動作信號判斷。
圖2用單穩態觸發器實現指令判斷
2.4程序跑飛後能自動恢復
即看門狗(WatcliDog)技術,己普遍應用。其基本原理是:設置一個定時器(即「看門狗,
』),
該定時器溢出時會引起系統復位。程序需仔細設計:在正常執行時,能及時地對看門狗定時
器清零 (稱為「喂狗,,),看門狗定時器不會溢出:當程序跑飛後,由於沒有及時「喂狗」
,看門
狗定時器溢出,系統復位。
看門狗程序設計的關鍵是:(1)「喂狗」指令應比較特殊,以防程序跑飛後CPU將其它數
據解釋為「喂狗」指令:(2)只在少數關鍵程序位置「喂狗」
,以保證程序跑飛後看門狗溢出。
可見,看門狗的作用是程序跑飛後盡快復位,並不能從根本上改善系統的可靠性。因此,
可靠性設計仍應從系統、硬體、軟體實現上仔細設計『
除看門狗之外,還有其它類似技術。如:(1)在不使用的程序存儲器中存放「軟利復位」
指令,當程序跑 匕後,引起軟體復位;(2)在匯編指令之間插入一些nop指令,減少CPU對
L指令錯誤讀取的概率。
2.5部分數據發生錯誤— 休閑復位
軟體的運行錯誤有時還表現為一部分數據發生錯誤,而主進程 〔或土循環)仍在運行。
如:系統在開始運行時設定外設的工作狀態,運行中不再刷新。在運行中,如果外設的一{作
狀態被干擾破壞,將無法恢復。這樣的錯誤很難用看門狗技術完全檢測。嵌入式系統通常設
計為盡量簡潔的用戶界面、盡量少的用戶干預,當系統出現運行錯誤時,應盡可能自動恢復
到正常運行狀態。
為解決以上問題,一種可用的處理方法是:程序定期刷新外設的工作狀態 其缺點是;
系統性能下降、效果不理想、具體實現較復雜。為此,作者在實踐中使用「空閑復位」技術進
行解決:
當系統處於空閑狀態一定時間以後,自動重新啟動。為了維持以前的狀態信息,可以在
非易失性存儲器中保存少數關鍵數據。系統重新啟動後,需要檢查這些數據,如果數據值無
異常,則裝入這些數據:否則,裝入預設數據,並根據需要給予提示。
三、結語
嵌入式系統的抗干擾設計是一個非常復雜、實踐性很強的問題,以上主要從硬體的EMI
設計及軟體的抗干擾設計等方面討論了作者對嵌入式系統抗千擾設計技術的一些理解。從目
前的應用現狀看,硬體EMI設計技術己經很成熟,應用也較成功;但作為嵌入式系統的核心
與靈魂的軟體系統,在可靠性方面還需要繼續改進。
參考文獻
張松春等,電子控制設備抗干擾技術及其應用,北京:機械工業出版社,1995
鍾毓寧等,機電產品可靠性應用,中國計量出版社,1999
李海泉。計算機中的電磁干擾研究 計算機工程與設計,2002.12, p30
何立民,單片機應用技術選編一七,北京航空航天大學出版社。1999
[1]
陰
[3]
[4]