在過去的兩個世紀中,使硬件可編程已經取得了長足的進步。有人可能會爭辯說,工業規模的硬件編程的第一個例子是 1800 年代早期開發的提花織機系統。紡織工程師可以使用該系統通過使用一串穿孔卡片來定義他們希望織機編織的圖案。這項發明使發明家 Joseph Marie Jacquard 成為紡織行業的著名人物,并展示了硬件編程的巨大進步。他的名字現在是一個常用詞,用來指代他的織布機上制造的織物類型。
快進 200 年,可以看到更可編程硬件的趨勢。機械自動化首先過渡到可編程,然后是機電和電子邏輯,最后是微控制器、微處理器和軟件的嵌入式控制。如今,機器和設備的可編程性因應用和行業而異。它們的范圍從沒有可編程性的固定功能設備到智能手機等完全可編程和可升級的設備。
設計可編程硬件的傳統方式繼承了機械工程的強大遺產,嵌入式設備在某種程度上模仿了過去以機械或機電方式完成的工作。公用事業儀表是這種方法的一個很好的例子。起初,電表只是機械表的簡單替代品,用 LCD 顯示屏代替編號輪,以提供更大的成本優化和可靠性。然后添加了更多功能,例如自動抄表,以在不改變目的或用例的情況下降低運營成本。
這些設備上存在嵌入式軟件或實時軟件,它們需要大學很少教授的特定技能。相反,他們通常是在工作中學習的。嵌入式軟件開發需要幾乎與硬件開發一樣多的專業知識,原因有兩個。首先,修復嵌入式軟件錯誤的成本很高,因為設備可能難以升級。其次,許多嵌入式設備必須遵守嚴格的安全法規,這需要額外的知識和時間資源來確保遵守諸如 IEC 61508、IEC 62304、UL 60730-1 H、CSA E60730-1 H、IEC 60730-1 H、 UL 60335-1 R,和 IEC 60335-1 R,UL 1998。
然而,大多數人不知道的是,在物聯網 (IoT) 的推動下,嵌入式軟件開發范式發生了一場無聲的革命,并且每天都在取得進展。隨著我們的設備變得更加互聯,它們突然向世界開放。正如NEST、Fitbit 和 Withings (Nokia) Digital Health等應用程序所證明的那樣,開發人員必須能夠通過定義明確的 API 訪問一個好的物聯網設備。相反,任何連接的設備現在都可以訪問云中幾乎無限的資源。這開辟了超越傳統嵌入式設備能力的新可能性,因為語音識別、人工智能和個人助理功能——如亞馬遜 Alexa——變得更加廣泛可用。
因此,一種新型的開發者(互聯網開發者社區)開始修補設備。他們從創客板開始,并使用他們知道的工具進行開發——面向對象編程、API、腳本和框架,如 Java、JavaScript、Python、Lua、JSON 和 REST API。為了展示嵌入式開發的新水平,Arduino 平臺(基于 Wiring 和 C++)普及了對象語言概念,如方法和屬性。Raspberry Pi 讓每個人都可以使用 Linux 和 Python。他們教我們使用帶有預定義框架的集成工具,使編寫一個簡單的應用程序成為“在公園里散步”。
這個新的開發者社區正在重塑嵌入式世界,創造硬件的“軟件化”。他們正在推動嵌入式工程師像現代軟件開發人員一樣思考,并著眼于其他對 IT 系統和 Web 應用程序有效的技術。例如,瑞薩電子的合作伙伴之一,物聯網初創公司 MediumOne,能夠使用云中的 Python 腳本在現場對設備進行編程——這真是令人難以置信。
重新發明輪子的時代已經過去了。嵌入式行業有能力徹底改變其定義和設計產品的方式。在當今競爭激烈的市場中,工程師必須善于重用經過驗證的、具有高度抽象性的產品化軟件組件。這些組件傳統上來自專業公司,而且價格昂貴。然而,一些低成本的選擇使它們更容易獲得。開源是一種方法,盡管它帶有未知的質量問題和其他風險。另一種選擇是與將專業軟件與其硬件設備集成的芯片制造商合作,將它們作為單一平臺成本結構的一部分提供。
這種軟件化趨勢將把傳統的固件開發人員轉變為一個超專業化的社區,就像硬件開發人員現在成為嵌入式團隊的專業成員一樣。他們的職責是確保完整的板級支持包在硬件上運行,使越來越多的軟件開發人員能夠使用框架和高級語言和腳本創建應用程序。
這一趨勢還可以擴展嵌入式開發人員的職業可能性。以下是一些可以幫助您利用這一轉變的教育要點:
了解如何使用中間件和 RTOS。這很快將成為使用硬件的工程師所期望的基礎知識。
開始使用框架。汽車開發商有 Autosar。工業開發人員可以從嵌入式 Linux 入手,作為理解的良好基礎。即使是開發 Android 或 IOS 應用程序——甚至是 Minecraft Mod——也是理解框架開發的好方法。
玩創客板。它們今天可能看起來像玩具,但您會對它們提供的可能性感到驚訝。
如果你想培養你的軟件方面,可以嘗試使用 C++、Java 和 Objective C 等對象語言,并嘗試 XML 等標記語言以及 JavaScript、Python 或 Lua 等腳本語言。從開發移動應用程序或 Web 開發開始,很快就會有使用更小的微控制器的嵌入式選項。
熟悉 RESTfull API 和 JSON 數據格式。它們是互聯網通信的基礎,大多數物聯網服務都使用其中一種。
開發人員社區提供交互式點對點論壇來磨練軟件技能,特別是與社區合作,圍繞新的嵌入式框架,例Renesas Synergy 平臺,或使用 MediumOne 開發的IoT Sandbox 。
審核編輯:郭婷
-
嵌入式
+關注
關注
5089文章
19169瀏覽量
306769 -
Linux
+關注
關注
87文章
11335瀏覽量
210094 -
API
+關注
關注
2文章
1509瀏覽量
62257
發布評論請先 登錄
相關推薦
評論