嵌入式系統是指什麼系統?

嵌入式系統是指什麼系統?
3 個回答
大比特商务网
2017-09-20

嵌入式系統成為物聯網主要技術

隨著醫療電子、智能家居、物流管理和電力控制等方面的不斷風靡,嵌入式系統利用自身積累的底蘊經驗,重視和把握這個機會,想辦法在已經成熟的平臺和產品基礎上與應用傳感單元的結合,擴展物聯和感知的支持能力,發掘某種領域物聯網應用。

隨著醫療電子、智能家居、物流管理和電力控制等方面的不斷風靡,嵌入式系統利用自身積累的底蘊經驗,重視和把握這個機會,想辦法在已經成熟的平臺和產品基礎上與應用傳感單元的結合,擴展物聯和感知的支持能力,發掘某種領域物聯網應用。作為物聯網重要技術組成的嵌入式系統,嵌入式系統的視角有助於深刻地、全面地理解物聯網的本質。

這有兩層意思:第一,物聯網的核心仍然是互聯網,是在互聯網基礎上的延伸和擴展的網絡;第二,其用戶端延伸和擴展到了任何物品與物品之間,進行信息交換和通信,必須具備嵌入式系統構建的智能終端。因此,物聯網系統是通過射頻識別(RFID)、紅外感應器、全球定位系統、激光掃描器等信息傳感設備,按約定的協議,把任何物品與互聯網相連接,進行信息交換和通信的系統架構。

物聯網不僅僅提供了傳感器的連接,其本身也具有智能處理的能力,能夠對物體實施智能控制,這就是我們今天所說的嵌入式系統所能做到的。誠然,物聯網將傳感器和智能處理相結合,利用雲計算、模式識別等各種智能技術,擴充其應用領域。從傳感器獲得的海量信息中分析、加工和處理出有意義的數據,以適應不同用戶的不同需求,發現新的應用領域和應用模式。

綜上所述,物聯網嵌入式系統有其鮮明的特徵:

1、要有數據傳輸通路;

2、要有一定的存儲功能;

3、要有CPU;

4、要有操作系統;

5、要有專門的應用程序;

6、遵循物聯網的通信協議;

7、在世界網絡中有可被識別的唯一編號。

以上特徵很鮮明地指出嵌入式系統已經成為物聯網行業的關鍵技術。經過長期的演變,嵌入式系統技術成為綜合了計算機軟硬件、傳感器技術、集成電路技術、電子應用技術為一體的複雜技術。它正在無形地改變著人們的生活,小到人們身邊的MP3,大到航天航空的衛星系統。如果把物聯網用人體做一個簡單比喻,傳感器相當於人的眼睛、鼻子、皮膚等感官,嵌入式系統則是人的大腦,在接收到信息後要進行分類處理。




嵌入式系統的十大設計趨勢

這項年度調查採取一個較廣泛的觀點來看嵌入式系統設計的市場與技術趨勢。從今年1月18日~2月21日之間,總共有2,258位工程師參與並響應了這項在線調查。

大部份的受訪者(55%)來自北美,22%的人來自歐洲,亞洲則佔14 %。他們分別來自不同的領域,包括工業(33%)、消費性電子(24%)、通訊(22%)、汽車(18%)和醫療(18%)等等。

以下圖集將說明在嵌入式系統設計中的十大開發趨勢:

Wi-Fi佔主流,藍牙迅速崛起

在嵌入式系統中,搭載Wi-Fi技術的比重較排名第二的無線傳輸技術更高出兩倍。但藍牙正迅速地迎頭趕上,特別是藍牙4.0/LE/Smart版。出人意料的是,蜂窩式技術似乎正開始走下坡。同時,專用接口的比重也持續下滑,而 6WLoPan 則尚未取得吸引力。

嵌入式系統是指什麼系統?

開放原始碼超越商用OS

從該調查的歷史來看,今年開放原始碼的OS首次超過了商用OS 。相較於商用OS在整體系統中約佔33%,目前使用開放原始碼 OS的系統約佔36%。

嵌入式系統是指什麼系統?

Android與FreeRTOS為主導

工程師們在選擇所使用的各種開放操作系統時表示, Android和FreeRTOS是他們的最佳選擇。在嵌入式系統中, Android和FreeRTOS的應用即將超過主導多年但近來持續下滑的內部(In-house)/客制(custom)的操作系統。

嵌入式系統是指什麼系統?

完整原始碼可用

在選擇操作系統時的最重要因素是完整的原始碼可用。根據這項調查顯示,工程師最在意是否可提供完整原始碼(41%),當然,如果能提供一些技術支持以及免權費就更棒了。

嵌入式系統是指什麼系統?

多處理技術成為主流

這是第一次,我們看到有一半的受訪者表示在其現有設計中使用一個以上的微處理器。事實上,平均每項現有設計所使用的微處理器數目為2.4。

嵌入式系統是指什麼系統?

32位出線,8位出局

根據調查顯示,8位MCU應用正緩步而穩定的下滑,取而代之的是32位持續穩定成長。從工程師回覆在現有設計中所使用的MCU即可看出,這一趨勢將在2014年持續發生。

嵌入式系統是指什麼系統?

FPGA開始走下坡

FPGA應用正持續穩步下滑中,從6年前約佔45%下降至2013年約為31%的佔有率,但預計今年可微幅增加到32%。讓我們持續關注,看看今年會發生觸底反彈?還是繼續下跌。

嵌入式系統是指什麼系統?

虛擬化陷入低潮

從2013年的虛擬化使用情形來看,可以發現它並未受到嵌入式系統設計者的青睞。虛擬化在最近的一些設計中已略微下滑,但我們期待它最終將可重新取得成長動能。

嵌入式系統是指什麼系統?

IoT首度上榜

多年來,工業控制一直是嵌入式系統的主要應用。今年,物聯網(IoT)首度出現在排行之列。通訊與計算機應用開始下滑費性電子、汽車、醫療與電子儀器等領域仍持續成長。

嵌入式系統是指什麼系統?

專案時程延遲

根據受訪者表示,所屬的嵌入式設計團隊規模逐漸縮減,而且也經常無法按照時間表完成排定計劃。在2014年,有41%的項目準時或提前完成,但有59%的項目延遲或者被取消。

嵌入式系統是指什麼系統?

本文由大比特資訊收集整理(www.big-bit.com)




開發嵌入式系統的7個技巧

儘管許多嵌入式工程師充滿了希望和夢想,但高可靠性的代碼不是一蹴而就的。它是一個艱苦的過程,需要開發人員維護和管理系統的每個比特和字節。當一個應用程序被確認為“成功”的那一刻,通常會有一種如釋重負的感覺,但僅僅因為軟件在受控條件下的那一刻運行正常並不意味著明天或一年後還會運行正常。

從規範完善的開發週期到嚴格執行和系統檢查,開發高可靠性嵌入式系統的技術有許多種。本文介紹了7個易操作且可以長久使用的技巧,它們對於確保系統更加可靠地運行並捕獲異常行為大有幫助。

技巧1——用已知值填充ROM

軟件開發人員往往都是非常樂觀的一群人,只要讓他們的代碼忠實地長時間地運行就可以了,僅此而已。微控制器跳出應用程序空間並在非預想的代碼空間中執行這種情況似乎是相當少有的。然而,這種情況發生的機會並不比緩存溢出或錯誤指針失去引用少。它確實會發生!發生這種情況後的系統行為將是不確定的,因為默認情況下內存空間都是0xFF,或者由於內存區通常沒有寫過,其中的值可能只有上帝才知道。

嵌入式系統是指什麼系統?

不過有相當完備的linker或IDE技巧可以用來幫助識別這樣的事件並從中恢復系統。技巧就是使用FILL命令對未用ROM填充已知的位模式。要填充未使用的內存,有很多不同的可能組合可以使用,但如果是想建立更加可靠的系統,最明顯的選擇是在這些位置放置ISR fault handler。如果系統出了某些差錯,處理器開始執行程序空間以外的代碼,就會觸發ISR,並在決定校正行動之前提供儲存處理器、寄存器和系統狀態的機會。

技巧2——檢查應用程序的CRC

對嵌入式工程師來說一個很大的好處是,我們的IDE和工具鏈可以自動產生應用程序或內存空間校驗和(Checksum),從而根據這個校驗和驗證應用程序是否完好。有趣的是,在許多這些案例中,只有在將程序代碼加載到設備時,才會用到校驗和。

然而,如果CRC或校驗和保持在內存中,那麼驗證應用程序在啟動時(或甚至對長時間運行的系統定期驗證)是否仍然完好是確保意外之事不會發生的極好途徑。現在一個編程過的應用程序發生改變的概率是很小的,但考慮每年交付的數十億個微控制器以及可能惡劣的工作環境,應用程序崩潰的機會並不是零。更有可能的是,系統中的一個缺陷可能導致某一扇區發生閃存寫入或閃存擦除,從而破壞應用程序的完整性。

技巧3——在啟動時執行RAM檢查

為了建立一個更加可靠和紮實的系統,確保系統硬件正常工作非常重要。畢竟硬件會發生故障。(幸運的是軟件永遠不會發生故障,軟件只會做代碼要它做的事,不管是正確的還是錯誤的)。在啟動時驗證RAM的內部或外部沒有問題,是確保硬件可以如預期般運作的一個好方法。

有許多不同的方法可用於執行RAM檢查,但常用的方法是寫入一個已知的模式,然後等上一小段時間再回讀。結果應該是所讀就是所寫。真相是,在大多數情況下 RAM檢查是通過的,這也是我們想要的結果。但也有極小的可能性檢查不通過,這時就為系統標示出硬件問題提供了極好的機會。

技巧4——使用堆棧監視器

對許多的嵌入式開發者而言,堆棧似乎是一股相當神祕的力量。當奇怪的事情開始發生,工程師終於被難倒了,他們開始思考,也許堆棧中發生了什麼事。結果是盲目地調整堆棧的大小和位置等等。但該錯誤往往是與堆棧無關的,但怎能如此確定?畢竟,有多少工程師真的實際執行過最壞情況下的堆棧大小分析?

堆棧大小是在編譯時就靜態分配好的,但堆棧是以動態的方式使用的。隨著代碼的執行,應用程序需要的變量、返回的地址和其它信息被不斷存儲在堆棧中。這種機制導致堆棧在其分配的內存中不斷增長。然而,這種增長有時會超出編譯時確定的容量極限,導致堆棧破壞相鄰內存區域的數據。

絕對確保堆棧正常工作的一種方法是實現堆棧監視器,將它作為系統“保健”代碼的一部分(有多少工程師會這樣做?)。堆棧監視器會在堆棧和“其它”內存區域之間創建一個緩衝區域,並填充已知的位模式。然後監視器會不斷的監視圖案是否有任何變化。如果該位模式發生了改變,那就意味著堆棧增長得太大了,即將要把系統推向黑暗地獄!此時監視器可以記錄事件的發生、系統狀態以及任何其它有用的數據,供日後用於問題的診斷。

大多數實時操作系統(RTOS)或實現了內存保護單元(MPU)的微控制器系統中都提供有堆棧監視器。可怕的是,這些功能默認都是關閉狀態,或者經常被開發人員有意關閉。在網絡上快速搜尋一下可以發現,很多人建議關閉實時操作系統中的堆棧監視器以節省56字節的閃存空間。等等,這可是得不償失的做法!

技巧5 - 使用MPU

在過去,是很難在一個小而廉價的微控制器中找到內存保護單元(MPU)的,但這種情況已經開始改變。現在從高端到低端的微控制器都已經有MPU,而這些 MPU為嵌入式軟件開發人員提供了一個可以大幅提高其固件(firmware)魯棒性(robustness)的機會。

MPU 已逐漸與操作系統耦合,以便建立內存空間,其中的處理都分開,或任務可執行其代碼,而不用擔心被stomped on。倘若真有事情發生,不受控制的處理會被取消,也會執行其他的保護措施。請留意帶有這種組件的微控制器,如果有,請多加利用它的這種特性。

技巧6 - 建立一個強大的看門狗系統

你經常會發現的一種總是最受喜愛的看門狗(watchdog)實現是,在看門狗被啟用之處(這是一個很好的開始),但也是可以用週期性定時器將該看門狗清零之處;定時器的啟用是完全與程序中出現的任何情況隔離的。使用看門狗的目的是協助確保如果出現錯誤,看門狗不會被清零,即當工作暫停,系統會被迫去執行硬件重設定(hardware reset),以便恢復。使用與系統活動獨立的定時器可以讓看門狗保持清零,即使系統已失效。

對應用任務如何整合到看門狗系統中,嵌入式開發人員需要仔細考慮和設計。例如,有種技術可能可以讓每個在一定時期內運行的任務標示它們可以成功地完成其任 務。在此事件中,看門狗不被清零,強制被複位。還有一些比較先進的技術,像是使用外部看門狗處理器,它可用來監視主處理器如何表現,反之亦然。

對一個可靠的系統而言,建立一個強大的看門狗系統是很重要的。由於有太多的技術,難以在這幾個段落中完全涵蓋,但針對此一議題,筆者未來還會發表相關的文章。

技巧7 - 避免易失存儲器分配

不習慣在資源有限環境下工作的工程師,可能會試圖使用其編程語言的特性,這種語言讓他們可以使用易失存儲器分配。畢竟,這是一種常在計算器系統中使用的技術,在計算器系統中,只有在有必要時,內存才會被分配。例如,以C開發時,工程師可能傾向於使用malloc來分配在堆(heap)上的空間。有一個操 作會執行,一旦完成,可以使用free將被分配的內存返回,以便堆的使用。

在資源受限的系統,這可 能是一場災難!使用易失存儲器分配的其中一個問題是,錯誤或不當的技術可能會導致內存洩漏或內存碎片。如果出現這些問題時,大多數的嵌入式系統並沒有 資源或知識來監視堆或妥善地處理它。而當它們發生時,如果應用程序提出對空間的要求,但卻沒有所請求的空間可以使用,會發生什麼事呢?

使用易失存儲器分配所產生的問題是很複雜的,要妥善處理這些問題,可以說是一個噩夢!一種替代的方法是,直接以靜態的方式,簡化內存的分配。例如,只要在 程序中簡單地建立一個大小為256字節長的緩衝區,而不是經由malloc請求這樣大小的內存緩衝區。此一分配的內存可在整個應用程序的生命週期期 間保持,且不會有堆或內存碎片問題方面的顧慮。

結論

這些都只是一些可以讓開發人員開始建立更可靠嵌入式系統的方法。另外還有很多其他技術,例如利用良好的編碼標準、位翻轉的監測、執行數組和指針邊界檢查,及使用斷言等。所有這些技術都是讓設計者可以開發出可靠性更高嵌入式系統的祕訣。



對嵌入式操作系統的一些看法

隨著嵌入式處理器尤其是ARM處理器的廣泛使用,嵌入式操作系統也曾爆發之勢。對於初學者來講以哪種系統作為學習對象成為一個問題。之所以說初學者,因為對老鳥來講從一個系統轉換到另外一個系統並不是一個費力的過程。但對初學者來講,學的太雜會出現一直在低水平徘徊的危險。

由於市場的需求是多種多樣,必然產生的嵌入式操作系統也是多種多樣。由於本人一直從事信號處理相關行業,自然關注的也是對高性能CPU比較友好的操作系統。從個人的角度看,一個操作系統至少要有這麼幾個特點。

1、實時性能,實時不僅僅意味著反應快,也意味著程序效率,對信號處理來講對性能和效率的追求是沒有上線的;

2、要有相對完整的驅動框架,可以讓內核和BSP分別開發而不要融合在一起;

3、能夠實現應用與系統的分離,不然每次改動程序都要更新整個系統,有些太麻煩,如果客戶需要二次開發的功能,簡直就無能為力了;

4、有獨立的調試工具,目前GDB是比較常用的調試手段;

5、最好有自己的開發環境,不過如果包含上面功能,一般都必須要有自己的開發環境了,有開發環境可以大大的提高工作效率;

6、可以裁剪,畢竟對嵌入式來講,不必要的功能會佔用寶貴的資源,影響效率。

如果能夠開源就更好了,開源的好處對商業來講意味著比較大的自由。一個自由是可以減小項目開始的投入,想買就買不想買也沒人逼你,畢竟還沒商用。不必去花錢購買一套軟件,往往這種軟件價格不菲。項目成功或者盈利後這些花銷或許不是什麼,但在開始對很多中小公司或個人來講項目開始就有這麼大的投入還是有些壓力的。

另外一個自由最重要,可以根據自己的需求特點對系統做些更改或擴展,我想Linux之所以如此火爆,這個應該是個很重要的原因。想象一下,如果arm綁定Windows發展,那多核和大小核的應用要等到猴年馬月。從市場的規律看,供給總是落後於需求,這種擴展的靈活性一方面可以避免被人卡脖子,另一方面也給形成自己的獨特優勢提供了可能。

嵌入式系統的幾大發展趨勢

1.嵌入式開發是一項系統工程,因此要求嵌入式系統廠商不僅要提供嵌入式軟硬件系統本身,同時還需要提供強大的硬件開發工具和軟件包支持。

目前很多廠商已經充分考慮到這一點,在主推系統的同時,將開發環境也作為重點推廣。比如三星在推廣Arm7,Arm9芯片的同時還提供開發板和板級支持包(BSP),而Window CE在主推系統時也提供Embedded VC++作為開發工具,還有Vxworks的Tonado開發環境,Delta OS的Limda編譯環境等等都是這一趨勢的典型體現。當然,這也是市場競爭的結果。

2.網絡化、信息化的要求隨著因特網技術的成熟、帶寬的提高日益提高,使得以往單一功能的設備如電話、手機、冰箱、微波爐等功能不再單一,結構更加複雜。

這就要求芯片設計廠商在芯片上集成更多的功能,為了滿足應用功能的升級,設計師們一方面採用更強大的嵌入式處理器如32位、64位RISC芯片或信號處理器DSP增強處理能力,同時增加功能接口,如USB,擴展總線類型,如CANBUS,加強對多媒體、圖形等的處理,逐步實施片上系統(SOC)的概念。軟件方面採用實時多任務編程技術和交叉開發工具技術來控制功能複雜性,簡化應用程序設計、保障軟件質量和縮短開發週期。

3.網絡互聯成為必然趨勢。

未來的嵌入式設備為了適應網絡發展的要求,必然要求硬件上提供各種網絡通信接口。傳統的單片機對於網絡支持不足,而新一代的嵌入式處理器已經開始內嵌網絡接口,除了支持TCP/IP協議,還有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一種或者幾種,同時也需要提供相應的通信組網協議軟件和物理層驅動軟件。軟件方面系統系統內核支持網絡模塊,甚至可以在設備上嵌入Web瀏覽器,真正實現隨時隨地用各種設備上網。

4.精簡系統內核、算法,降低功耗和軟硬件成本。

未來的嵌入式產品是軟硬件緊密結合的設備,為了減低功耗和成本,需要設計者儘量精簡系統內核,只保留和系統功能緊密相關的軟硬件,利用最低的資源實現最適當的功能,這就要求設計者選用最佳的編程模型和不斷改進算法,優化編譯器性能。因此,既要軟件人員有豐富的硬件知識,又需要發展先進嵌入式軟件技術,如Java、Web和WAP等。

5.提供友好的多媒體人機界面

嵌入式設備能與用戶親密接觸,最重要的因素就是它能提供非常友好的用戶界面。圖像界面,靈活的控制方式,使得人們感覺嵌入式設備就象是一個熟悉的老朋友。這方面的要求使得嵌入式軟件設計者要在圖形界面,多媒體技術上痛下苦功。手寫文字輸入、語音撥號上網、收發電子郵件以及彩色圖形、圖像都會使使用者獲得自由的感受。目前一些先進的PDA在顯示屏幕上已實現漢字寫入、短消息語音發佈,但一般的嵌入式設備距離這個要求還有很長的路要走。

EI实验室
2017-09-25

廣泛定義(個人理解):現階段來講,凡是針對任何特定環境應用,從產品的硬件、操作系統、上層應用進行裁剪研發設計的產品都可稱為嵌入式系統設計。

英國電氣工程師協會( U.K. Institution of Electrical Engineer)的定義:嵌入式系統為控制、監視或輔助設備、機器或用於工廠運作的設備。與個人計算機這樣的通用計算機系統不同,嵌入式系統通常執行的是帶有特定要求的預先定義的任務。由於嵌入式系統只針對一項特殊的任務,設計人員能夠對它進行優化,減小尺寸降低成本。嵌入式系統通常進行大量生產,所以單個的成本節約,能夠隨著產量進行成百上千的放大。

國內普遍認同的嵌入式系統定義為:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。通常,嵌入式系統是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手錶、微波爐、錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含操作系統,但大多數嵌入式系統都是由單個程序實現整個控制邏輯。

手机用户3503570243
2017-09-21

”嵌入“是指用使用ROM存放系統程序。 非嵌入系統沒有ROM,系統程序是以多個編譯好的二進制文件形式放在硬盤或SD卡等等儲存介質中。嵌入系統通電後程序是直接從ROM裡”dump“到內存(程序機器碼已經按照內存儲存的格式事先準備好了),所以開機啟動非常快。 非嵌入系統開機後需要執行復雜的引導程序把系統程序一個個地按順序從儲存介質”load“進內存,所以開機很慢。

反過來說就是: 嵌入系統是把調試好的系統內存裡的鏡像原封不動地保存下來,然後把這個鏡像文件燒到ROM裡(這樣就不怕斷電了)。缺點就是不能再調試修改系統了,要升級或者打補丁就整個換掉ROM鏡像,俗稱”燒機“。

相關推薦

推薦中...