在過去兩個世紀,硬件編程已取得了巨大進步,19世紀早期發(fā)明的提花織機系統(tǒng)可以被看作是第一個工業(yè)規(guī)模的硬件編程案例。工程師們通過使用一連串的打孔卡片系統(tǒng)來設置他們想要編織的圖案(參見圖1)。這一發(fā)明使發(fā)明家JosephMarieJacquard成為紡織業(yè)的知名人物,并展示了硬件編程取得很大進展。如今,他的名字已成為他在織布機上制作出的織物類型的代稱。
圖1.提花織機使用一系列打孔卡片來簡化制造具有復雜圖案的紡織品,如錦緞、綾和馬特拉塞提花織物
近200年見證了向更可編程硬件發(fā)展的趨勢。機械自動化首先轉型為可編程,隨后轉向機械電子和電子邏輯,最后由微控制器、微處理器和軟件實現(xiàn)了嵌入式控制。今天,各種機器和設備的可編程性取決于不同的應用和行業(yè),涵蓋從完全不可編程的固定功能設備到完全可編程和可升級的設備,如智能手機等。
傳統(tǒng)的可編程硬件設計方式很大程度上沿襲了工程設計方式,在某種程度上,嵌入式設備是在模擬過去使用機械或機電方式完成的工作。公用儀表就是一個很好的例子:起初,電表簡單取代了機械儀表,使用LCD顯示器代替印著號碼的轉輪以優(yōu)化成本和提高可靠性,之后又增加了更多功能,如自動抄表加了進來以減少了運營成本而沒有改變儀表的用途或使用場景。
將嵌入式軟件或實時軟件應用到這些設備需要專業(yè)技能,而這些知識在大學的課程中是很少學到的,一般在工作上才能學到。嵌入式軟件開發(fā)和硬件開發(fā)一樣需要大量的專業(yè)知識,原因有二。首先,修復嵌入式軟件錯誤成本非常高,因為設備很難升級。其次,許多嵌入式設備必須符合嚴格的安全規(guī)范,這需要額外的專業(yè)知識和時間資源,以確保符合IEC61508、IEC62304、UL60730-1H、CSAE60730-1H、IEC60730-1H、UL60335-1R、IEC60335-1R、UL1998等規(guī)范。
然而,在物聯(lián)網(IoT)的趨勢推動下,嵌入式軟件開發(fā)模式正在發(fā)生一場無聲的變革,并且每天都在不斷發(fā)展壯大。隨著設備間的互聯(lián)日益緊密,這些設備突然就全面開放了。好的物聯(lián)網設備必須允許開發(fā)人員必須能夠通過定義良好的API進行訪問,如NEST、Fitbit和Withings(諾基亞)數(shù)字健康等應用。相反,任何聯(lián)網設備都可以訪問云端近乎無限的資源。隨著語音識別、人工智能和個人助理功能(如亞馬遜Alexa)越來越普及,這些給傳統(tǒng)嵌入式設備帶來了新的應用空間。
因此,新一代開發(fā)人員(互聯(lián)網開發(fā)者社區(qū))開始研究這些新設備。他們從開發(fā)板入手,使用他們所擅長的工具開發(fā)——ObjectOriented編程、API、腳本和框架(如Java、JavaScript、Python、Lua、JSON和RESTAPI)。為了驗證嵌入式開發(fā)的易用性,Arduino平臺(基于Wiring和C++)對對象語言概念(如方法和屬性)進行普及。RaspberryPi讓每個人都可以使用Linux和Python。它們教用戶如何使用包含預定框架的集成工具,讓編寫簡單的應用程序輕松得像“在公園里散步”。
這個全新的開發(fā)者社區(qū)正在重塑嵌入式的世界,使得硬件趨于“軟件化”。他們迫使嵌入式工程師像軟件開發(fā)人員一樣研究其他對IT系統(tǒng)和Web應用程序有效的技術。例如,瑞薩電子的合作伙伴之一MediumOne,這家初創(chuàng)IoT公司能夠利用云端的Python腳本對現(xiàn)場設備進行編程,這簡直令人難以置信。
重復做已經做過的事情的時代已經過去了,嵌入式行業(yè)有能力徹底改變定義和設計產品的方式。在當今激烈的市場競爭中,工程師必須善于重復使用經過驗證、具有高抽象度的產品化的軟件組件。以前,這些組件主要由特定的公司提供而且非常昂貴,不過一些成本較低的替代方案讓他們更容易被用戶獲得,例如開源方式,雖然開源同時也會帶來未知的質量問題和其他風險。另一種選擇是與芯片制造商合作,他們會將專業(yè)軟件與其硬件設備集成在一起,納入統(tǒng)一的平臺成本結構。
這種“軟件化”趨勢會將傳統(tǒng)固件開發(fā)人員轉變?yōu)橐粋€非常專業(yè)化的群體,就像硬件開發(fā)人員現(xiàn)在已經是嵌入式開發(fā)團隊的一個專業(yè)的細分部分。他們的職責是確保在硬件上能夠運行完整的電路板支持包(BSP),并且?guī)椭絹碓蕉嗟能浖_發(fā)人員使用框架和高級語言編寫應用程序和腳本。
這種趨勢還拓寬了嵌入式開發(fā)人員的職業(yè)道路。
以下是核心知識幫助適應這種轉換:
■ 了解如何使用中間件和RTOS,這些是成為硬件工程師的基本知識要求。
■學習使用架構。汽車開發(fā)使用Autosar,工業(yè)開發(fā)人員可以從嵌入式Linux開始,例如從開發(fā)一款Android或IOS應用程序,甚至是MinecraftMod,來理解架構開發(fā)好的方式。
■研究開發(fā)板。雖然看起來像玩具,但它們提供的可能性令人贊嘆。
■如果想訓練軟件方面的技能,可以嘗試使用C++、Java和ObjectiveC等對象語言,并嘗試使用XML等標記語言以及JavaScript、Python或Lua等腳本語言。可以先從移動應用程序或Web入門,很快就會接觸到使用更小的微控制器的嵌入式選項。
■熟悉RESTfullAPI和JSON數(shù)據(jù)格式。它們是互聯(lián)網通信的基礎,大多數(shù)物聯(lián)網服務都會使用到其中一種。
開發(fā)者社區(qū)提供互動的同行交流,可以用來提升軟件技巧,特別是圍繞著新的嵌入式框架進行合作,使用如圖2所示的RenesasSynergy?Platform,或使用MediumOne開發(fā)的IoTSandbox。
圖2.RenesasSynergyPlatform是一個完整、優(yōu)質的平臺,提供全套集成軟件、可擴展的MCU產品系列、統(tǒng)一的開發(fā)工具以及使用簡單的開發(fā)套件和參考軟件
對于用戶來說,可以決定加入變革并成為一名應用軟件開發(fā)者,挑戰(zhàn)更高級別的框架,也可以選擇留在硬件/固件層面,而此時,了解軟件開發(fā)人員的需求也將成為物聯(lián)網時代嵌入式工程師的基本要求。
-
硬件
+關注
關注
11文章
3260瀏覽量
66132 -
軟件
+關注
關注
69文章
4799瀏覽量
87178
原文標題:大咖談技術丨硬件的軟件化解決方案
文章出處:【微信號:renesas_china,微信公眾號:renesas_china】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論