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