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