




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第頁(yè)2023IoT工程如何選擇正確的軟件架構(gòu)IoT工程如何選擇正確的軟件架構(gòu)
你想要?jiǎng)?chuàng)立一個(gè)適宜的工程,看是要更進(jìn)一步探究這個(gè)想法還是將其產(chǎn)品化。但是,應(yīng)當(dāng)從哪種軟件架構(gòu)入手呢?原委該采納初始本錢較低的開(kāi)源架構(gòu),還是選擇須要支付前期費(fèi)用的商業(yè)解決方案,來(lái)加速你的設(shè)計(jì)過(guò)程呢?一起來(lái)看看!
什么是軟件架構(gòu)?
在本文件中,將“軟件構(gòu)架〞說(shuō)明為“編寫軟件的一種特定方式〞。例如,Arduino供給編寫程序代碼的一種特定方式,允許軟件的片段可以跨越多個(gè)工程被重新運(yùn)用。
軟件架構(gòu)是由幾個(gè)不同的局部所組成,并由以下組件所定義:程序語(yǔ)言、應(yīng)用程序編程接口(API),以及某些工具集的連接。例如,像是在Arduino和Espruino的案例中,軟件架構(gòu)可以被緊密地連接到工具,或是像在Micrium和FreeRTOS的案例中那么是會(huì)被分別。
什么是操作系統(tǒng)?
因此,該如何選擇一個(gè)軟件架構(gòu)呢?首先,我們須要對(duì)一些名詞說(shuō)明的更明確一點(diǎn),我們已經(jīng)起先提到操作系統(tǒng)(OS)這個(gè)名詞。你真正調(diào)度程序是用在為可能會(huì)爭(zhēng)奪相同資源的不同任務(wù)、安排資源和處理時(shí)間的組件。在一般狀況下,調(diào)度程序有兩種作業(yè)的方式,而這正是“實(shí)時(shí)〞在實(shí)時(shí)操作系統(tǒng)(RTOS)的意義所在。實(shí)時(shí)意味著在一個(gè)特定的時(shí)間內(nèi),會(huì)有一個(gè)特定的任務(wù)將會(huì)被執(zhí)行。假設(shè)你得到一個(gè)你須要處理的射頻封包,無(wú)論你的設(shè)備目前正在做什么事,實(shí)時(shí)操作系統(tǒng)的核心會(huì)先離開(kāi)它目前所做的任務(wù),先完成這一個(gè)高優(yōu)先等級(jí)的任務(wù)。這種類型的行為在處理器的利用上并不是最有效率的方式,但例如在馬達(dá)限制應(yīng)用中,它在通訊棧與應(yīng)用中最須要重視的便是反響時(shí)間的議題。
商用與開(kāi)源解決方案的比擬
舉例來(lái)說(shuō),假設(shè)你已經(jīng)想通了是否須要采納實(shí)時(shí)操作系統(tǒng),并起先組建軟件需求。你可能知道,你須要一個(gè)USB棧和以太網(wǎng)絡(luò)棧,搭配外部MAC/PHY驅(qū)動(dòng)程序來(lái)一起將設(shè)備連接到互聯(lián)網(wǎng)。但是,你該從哪里起先呢?你真的只須要為你首選的微限制器下載最新的FreeRTOS模板,并接著下載開(kāi)源軟件并放到裝置中就可以了嗎?或者你只是須要去找有你所需軟件的商業(yè)供貨商,并獲得完整的軟件組合?
為了做出更明智確實(shí)定,我們常常談?wù)撘o選定的解決方案一個(gè)總體擁有本錢(TCO)的概念。所謂的總體擁有本錢包含的不僅是你為軟件付出的貨幣價(jià)值,還包括花費(fèi)在找尋解決方案、組裝不同的構(gòu)件,并將不同的構(gòu)件整合到你的工程,以及開(kāi)發(fā)、測(cè)試和生產(chǎn)的工作時(shí)間。
在一般狀況下,我們看到的是商業(yè)解決方案的總體擁有本錢(TCO),將比自己組建開(kāi)放原始碼組件的解決方案要來(lái)的更低一些。但既然是商業(yè)解決方案便涉及到初始本錢,這些廠商通常要求在運(yùn)用解決方案的前期,取決于你所須要的組件,便必需先支付1萬(wàn)到10萬(wàn)美元之間的費(fèi)用。在另一方面,下載FreeRTOS并起先組裝自己的解決方案,在某些擁有密集資源的應(yīng)用中,其所花費(fèi)的金錢,相對(duì)會(huì)更廉價(jià)一些。
確定你的工程的最正確解決方案,將高度依靠于它是否是最簡(jiǎn)單讓你賺到現(xiàn)金,或是能夠?yàn)榭傮w擁有本錢的工時(shí)來(lái)“買單〞。
候選方案
所以,當(dāng)你已經(jīng)看到這里,你的大腦中可能已經(jīng)起先吶喊:“只要給我一個(gè)可以讓我起先運(yùn)用的架構(gòu)就好了!〞
惋惜沒(méi)有那么快,確定有一些方案的選項(xiàng)是比其他選項(xiàng)更好,微限制器的應(yīng)用特別多樣性,確定沒(méi)有那種一個(gè)尺寸便適合全部需求的解決方案。我們先來(lái)了解很多最流行的操作系統(tǒng)和軟件架構(gòu),并分別細(xì)致地探討(本文所提到的操作系統(tǒng)都具有實(shí)時(shí)實(shí)力):
1)商用解決方案
MicriumuC/OS-II與uC/OS-III
這是在微限制器業(yè)界最流行的兩個(gè)實(shí)時(shí)操作系統(tǒng),特殊是因?yàn)槠鋭?chuàng)新的商業(yè)模式,因?yàn)镸icrium公司允許你下載完整的軟件套件,并起先開(kāi)展,等你真正起先產(chǎn)生營(yíng)收后,才須要起先支付解決方案的費(fèi)用。他們?cè)谄桨仓辽系南到y(tǒng)中擁有重要的地位,并且他們的大局部軟件構(gòu)件都已經(jīng)通過(guò)認(rèn)證。
SeggerembOS
嵌入式軟件市場(chǎng)的新進(jìn)入者,但這并不意味著他們是新手。該軟件產(chǎn)品已經(jīng)開(kāi)發(fā)了超過(guò)20年的時(shí)間,并已經(jīng)運(yùn)用在他們自己的硬件產(chǎn)品之中,因此對(duì)裝置的支持程度特別好,并配有一個(gè)優(yōu)秀的驅(qū)動(dòng)程序庫(kù)。
ExpressLogicThreadX
由行業(yè)的資深人士所創(chuàng)辦,該公司專注在全部關(guān)于性能的事物上,并擠壓出元器件中每一個(gè)時(shí)鐘周期的效能。它通常被看作是操作系統(tǒng)中的勞斯萊斯,并已經(jīng)有許多認(rèn)證被運(yùn)用在平安至上的系統(tǒng)之中。
2)開(kāi)源解決方案
FreeRTOS
FreeRTOS跟MicriumuC/OS一樣,都是在同行業(yè)中最常被采納的實(shí)時(shí)操作系統(tǒng)之一。它有一個(gè)浩大的社群,有許多人都在為軟件做出奉獻(xiàn),像是TCP/IP棧,但做為開(kāi)源軟件,便意味著沒(méi)有公司會(huì)負(fù)責(zé)整合,因此須要更多的工作來(lái)創(chuàng)立一個(gè)整合的解決方案。
也有一些公司在FreeRTOS的`生態(tài)系統(tǒng)中,特地從事將差異化的軟件構(gòu)件供給給那些須要整合幫助的客戶,例如,Wittenstein高完整性系統(tǒng)公司供給稱為SAFERTOS平安認(rèn)證的FreeRTOS替換核心,以及HCC嵌入式公司供給可以與任何實(shí)時(shí)操作系統(tǒng)工作的USB、以太網(wǎng)絡(luò)和文件系統(tǒng)。
mbedOS
mbedOS解決一些你通常會(huì)在開(kāi)源軟件所遇到的痛點(diǎn),因?yàn)锳RM這一家公司會(huì)負(fù)責(zé)整合的工作。然而,它仍舊是處于萌芽階段,所以假設(shè)你想要有些奉獻(xiàn)就可以去這里。
RIOTOS
RIOTOS被冠以“物聯(lián)網(wǎng)中最友好的操作系統(tǒng)〞,它是以通訊概念為根底所建立起來(lái)的操作系統(tǒng)。這使得它即使在面對(duì)困難的通訊問(wèn)題時(shí),仍舊精簡(jiǎn)且高效率。然而它仍舊還在主動(dòng)開(kāi)展的階段當(dāng)中,所以你得安排多花幾個(gè)小時(shí)來(lái)進(jìn)行除錯(cuò)。
3)架構(gòu)
有一些操作系統(tǒng)的功能就像是將磚塊黏合在一起的水泥一樣,會(huì)與開(kāi)展框架緊密地結(jié)合在一起,因此一般不能運(yùn)用軟件本身做為工程的一局部,你必需圍圍著它來(lái)進(jìn)行整個(gè)開(kāi)發(fā)流程。這些框架往往是運(yùn)用比C++更高階的語(yǔ)言所編寫,通常可以在實(shí)時(shí)操作系統(tǒng)上運(yùn)行。
mbed
mbed也出現(xiàn)在這里,這時(shí)那么做為快速成型的工程。它是用C++編寫,并對(duì)大多數(shù)微限制器和電路板有絕佳的支持,擁有一個(gè)浩大的元件程序庫(kù),和一個(gè)采納網(wǎng)頁(yè)架構(gòu)的美麗集成開(kāi)發(fā)環(huán)境(IDE)。目前,在它打算全面部署之前,它仍舊須要一點(diǎn)成熟的時(shí)間,但它很適合硬件原型的開(kāi)發(fā)。
Espruino
Espruino是在微限制器上運(yùn)行的實(shí)時(shí)JavaScript說(shuō)明器。它允許你能夠動(dòng)態(tài)地更改程序代碼,甚至不須要讀寫微限制器便可以撰寫程序代碼。在它起先量產(chǎn)之前,仍舊須要一些時(shí)間來(lái)開(kāi)展,但它很適合用于硬件原型,并呈現(xiàn)出成為一個(gè)不行無(wú)視軟件架構(gòu)的巨大潛力。
microPython
microPython所能做的事與Espruino大致相同,差異僅在于其運(yùn)用Python來(lái)代替JavaScript。它開(kāi)展的概念,便是讓你從產(chǎn)品開(kāi)發(fā)的一起先到量產(chǎn),都能夠支持預(yù)先編譯的程序代碼,并運(yùn)用C語(yǔ)言來(lái)編寫時(shí)序至上的程序代碼。目前仍在開(kāi)發(fā)當(dāng)中。
microEJ
microEJ是一個(gè)采納Java架構(gòu)的框架,讓你輕松地為你的設(shè)備打造好看的圖形化應(yīng)用程序。它已經(jīng)在很多智能手表和一些物聯(lián)網(wǎng)(IoT)設(shè)備中運(yùn)用。
假設(shè)你想要著手進(jìn)行設(shè)備的開(kāi)發(fā),而無(wú)需安裝單一的程序,像是mbed和microPython這類的框架,便是入門的好方法。但是,假設(shè)你要建立更大的部署,采納一個(gè)純粹的實(shí)時(shí)操作系統(tǒng)將會(huì)是更好的選擇。假設(shè)運(yùn)用工作時(shí)間而不是金錢來(lái)當(dāng)作軟件的投資,對(duì)你的公司來(lái)說(shuō)會(huì)更為輕松的話,像是FreeRTOS或RIOT這類非商業(yè)解決方案便有其優(yōu)勢(shì)。假設(shè)你的公司能負(fù)擔(dān)得起前期投資,像是Segger、ExpressL
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村合作改造合同范例
- 借款續(xù)借補(bǔ)充合同范例
- 出口苗木采購(gòu)合同范例
- 債權(quán)轉(zhuǎn)讓寫合同范例
- 共享拖掛式房車在旅游線路中的應(yīng)用研究
- 辦公窗簾定做安裝合同范本
- 辦公樓拆除施工方案
- 借款給別人合同范例
- 凈水工程合同范例
- 不銹鋼定制合同范例
- 冠心病臨床路徑
- 詐騙案件授課PPT課件
- 基于PLC的電梯控制系統(tǒng)設(shè)計(jì)
- 口腔科急救預(yù)案培訓(xùn)課件
- 弗洛姆異化理論
- 園林噴灌工程施工方案(精編版)
- 碳納米管_ppt課件
- 【課件】第2課如何鑒賞美術(shù)作品課件-高中美術(shù)人教版(2019)美術(shù)鑒賞
- [康熙字典9畫五行屬金的字加解釋] 康熙字典五行屬金的字
- 托盤操作評(píng)分表
- 關(guān)于老年癡呆癥及其智能陪護(hù)設(shè)備的調(diào)查報(bào)告
評(píng)論
0/150
提交評(píng)論