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

嵌入式軟件單元測(cè)試的必要性、核心方法及工具深度解析
嵌入式主板:智能設(shè)備的“大腦”,驅(qū)動(dòng)未來(lái)無(wú)限可能

如何提高嵌入式代碼質(zhì)量?
使用SEGGER工具實(shí)現(xiàn)嵌入式應(yīng)用開(kāi)發(fā)
學(xué)嵌入式好找工作嗎?
什么是嵌入式人工智能

評(píng)論