ARM的mbed快速原型開發(fā)解決方案將NXP LPC1768微控制器與支持組件和智能USB接口與基于云的工具配對,可以高效評估微控制器功能和應(yīng)用原型。 mbed尋找可以優(yōu)化工作原型時(shí)間的技術(shù)和權(quán)衡,使設(shè)計(jì)人員能夠在設(shè)計(jì)周期的早期快速測試,評估和演示創(chuàng)意。
微控制器變得更小,功能更強(qiáng)大,功耗更低,更多的連接,但價(jià)格不斷下降。對于能夠成功采用該技術(shù)的新市場來說,這是一個(gè)巨大的機(jī)會(huì)。關(guān)鍵在于確定微控制器可以解決的新問題,并構(gòu)建概念驗(yàn)證,將創(chuàng)意轉(zhuǎn)化為成為潛在產(chǎn)品。
業(yè)界已為嵌入式工程師構(gòu)建了出色的工具,可根據(jù)需要生成微控制器設(shè)計(jì)規(guī)范是已知的。但是,當(dāng)任務(wù)是證明一個(gè)概念或定義規(guī)范時(shí),即使對于有經(jīng)驗(yàn)的工程師來說,風(fēng)險(xiǎn)和時(shí)間尺度通常也不會(huì)增加。結(jié)果是想法沒有得到嘗試;幾乎沒有迭代或設(shè)計(jì)空間探索;最終的設(shè)計(jì)也是原型,或者規(guī)范過于謹(jǐn)慎。鑒于在許多情況下,可以定義這些應(yīng)用程序的想法,觀察和見解將來自其他問題領(lǐng)域的人,這些限制被放大。這有可能成為采用的真正障礙。
策略
mbed的基本目標(biāo)是實(shí)現(xiàn)對微控制器功能的有效評估以及可應(yīng)用的應(yīng)用程序的原型設(shè)計(jì)。特別是,它旨在匹配產(chǎn)品設(shè)計(jì)其他方面的設(shè)計(jì)周期時(shí)間。有助于實(shí)現(xiàn)這一目標(biāo)的策略(圖1)是尋找可以優(yōu)化工作原型時(shí)間的技術(shù)和權(quán)衡,而不是優(yōu)化設(shè)計(jì)本身。
圖1:mbed策略。
例如,微控制器的趨勢是以固定價(jià)格提高性能和內(nèi)存容量。雖然大多數(shù)工具專注于使用戶能夠在可以創(chuàng)建的應(yīng)用程序的最終功能中利用它,但mbed卻專注于使用此性能和容量來減少設(shè)計(jì)挑戰(zhàn)。一個(gè)很好的例子是提供高級抽象,使得功能可以以實(shí)現(xiàn)效率和增加代碼大小為代價(jià)來訪問。
另一個(gè)關(guān)鍵目標(biāo)是克服進(jìn)入障礙;技術(shù)驗(yàn)收模型(圖2)為實(shí)現(xiàn)這一目標(biāo)提供了一個(gè)清晰的框架,突出了易用性和感知有用性。通過實(shí)驗(yàn)和教育洞察技術(shù),可以提高認(rèn)知的實(shí)用性。原型設(shè)計(jì)方法自然支持用戶探索,同時(shí)使?fàn)I銷和應(yīng)用工程功能能夠輕松演示和展示技術(shù)。
圖2:技術(shù)接受度(Davis等,1989)。易于使用實(shí)際上非常依賴于背景;大多數(shù)好工具都很容易用于他們的預(yù)期任務(wù)。但對于不同的任務(wù),結(jié)果不太可能相同。通過明確定義快速原型設(shè)計(jì)的背景,使設(shè)計(jì)權(quán)衡集中于易用性變得更有意義。對于熟悉現(xiàn)有專有架構(gòu)和工具鏈的行業(yè)內(nèi)嵌入式開發(fā)人員而言,從專家到學(xué)習(xí)者的額外負(fù)面感覺可能令人望而生畏。僅這些因素就足以推遲探索轉(zhuǎn)向現(xiàn)代解決方案的好處。對于新用戶而言,恐懼,不確定性和懷疑同樣令人望而卻步。這使初始體驗(yàn)變得至關(guān)重要;這些工具必須快速提供結(jié)果,投資少,建立信任并獲得任何進(jìn)一步的持續(xù)投資。
入門
mbed的目標(biāo)是讓新用戶盡快運(yùn)行他的第一個(gè)項(xiàng)目,建立信心和信任在硬件和軟件工具鏈中。 mbed工具采用了一些新技術(shù)來實(shí)現(xiàn)這一目標(biāo),結(jié)果不言而喻;你可以在60秒內(nèi)開始。這一成就意味著沒有理由不進(jìn)行實(shí)驗(yàn)。
結(jié)果是通過兩項(xiàng)創(chuàng)新實(shí)現(xiàn)的;基于USB磁盤的編程器,用于硬件和編譯器工具,用作在Web瀏覽器中運(yùn)行的基于云計(jì)算的Web應(yīng)用程序。這些解決方案有一些明顯的好處,但有些并不是立竿見影的。
預(yù)先確定的優(yōu)點(diǎn)是無需設(shè)置或安裝。對于許多人來說,這只是一個(gè)令人愉快的驚喜,允許在沒有行政職責(zé)的情況下即時(shí)訪問。但對于其他在許多教育和工作場所環(huán)境中都有鎖定計(jì)算機(jī)系統(tǒng)的人而言,這可能是能否測試微控制器之間的區(qū)別。
IDE簡單但功能強(qiáng)大,可以讓它走出方式并做它的設(shè)計(jì) - 編輯和編譯代碼。通過預(yù)先配置的所有內(nèi)容,它可以在任何平臺(tái)上開箱即用,包括PC,Mac或Linux。這種即時(shí)無障礙訪問使工具更有信心,使用戶能夠在需要使用或演示它們時(shí)隨時(shí)取出它們。
現(xiàn)在,通??梢栽诙嗯_(tái)計(jì)算機(jī)上工作,在線方法成為一個(gè)特別的優(yōu)勢。您不僅可以避免多次安裝的問題并保持同步,而且無論您身在何處,您的在線工作空間都隨身攜帶。
微妙的優(yōu)點(diǎn)是您看不到的東西。您無需做出決定,因?yàn)橐呀?jīng)為這項(xiàng)任務(wù)提供了最合適結(jié)果的選項(xiàng)和配置。
已經(jīng)完成了大部分硬件和軟件基礎(chǔ)工作。這些工具非常輕巧,從任何機(jī)器上都可以登錄,從頭開始創(chuàng)建項(xiàng)目,并在幾分鐘內(nèi)測試或修改一些東西;這種靈活性會(huì)對工作方式產(chǎn)生重大影響。簡化設(shè)置意味著一切都很容易重現(xiàn)。
結(jié)合單一硬件和庫模型,每個(gè)其他mbed用戶都在相同的環(huán)境中進(jìn)行開發(fā)。這使得社區(qū)支持變得更加容易,因?yàn)槿藗兛梢栽诠餐谋尘跋路窒韱栴}和疑問。
圖3:在線編譯器。
快速原型設(shè)計(jì)
mbed的硬件和軟件組件的架構(gòu)和實(shí)現(xiàn)在原型設(shè)計(jì)方面提供了獨(dú)特的優(yōu)勢。
mbed微控制器硬件封裝了恩智浦LPC1768微控制器,支持元件和智能USB接口采用實(shí)用的40引腳0.1“間距DIP外形,非常適合在無焊接面板,條板和通孔PCB上進(jìn)行試驗(yàn)。為了支持暴露的接口,mbed C/C ++庫提供了高 - 微控制器外圍設(shè)備的電平接口,實(shí)現(xiàn)清晰,緊湊,API驅(qū)動(dòng)的編碼方法。這種組合可立即連接外圍設(shè)備和模塊,用于基于微控制器的系統(tǒng)設(shè)計(jì)的原型設(shè)計(jì)和迭代,為開發(fā)人員提供更多創(chuàng)新和更多的自由圖4顯示了基本的mbed微控制器引腳排列,指示了接口資源的可用性和位置。接口指示特德匹配mbed庫中的那些。這突出了它們共同開發(fā)的一些主要優(yōu)點(diǎn)。 API提供抽象的外圍接口,而不是特定于實(shí)現(xiàn)。這些庫使用面向?qū)ο?,它可以很好地映射到有形的物理硬件資源。硬件,庫和文檔共享相同的接口命名和概念。
圖4:mbed微控制器引腳排列。
硬件和軟件之間的對齊使得自然編程風(fēng)格能夠捕獲意圖,這對于快速實(shí)驗(yàn)和迭代至關(guān)重要。
例如,mbed避免了需要通常的多級間接引腳和資源分配需要。這些往往會(huì)失去意義并引入錯(cuò)誤。
#include“mbed.h”//mosi,miso,sclkSPI myspi(p5,p6,p7);
int main(){//設(shè)置9 -bit SPI @ 1MHz
myspi.frequency(1000000);
myspi.format(9); int response = myspi.write(0x8F);
圖5:配置并寫入a SPI器件。
圖5中的SPI示例演示了如何設(shè)置SPI主接口。首先,創(chuàng)建一個(gè)SPI對象并將其綁定到所需的引腳(mosi,miso和sclk),如圖4所示。請注意,當(dāng)物理連接器件時(shí),此表達(dá)式現(xiàn)在同樣有用 - 規(guī)范已捕獲物理連接。
接下來,在執(zhí)行寫/讀事務(wù)之前配置SPI對象(myspi)的頻率和位格式。 SPI對象上的方法定義明確,界面直觀,操作獨(dú)立于底層硬件的低級設(shè)置或要求實(shí)際上,要更改本例中使用的SPI端口,只有引腳名稱會(huì)需要改變。這有助于將設(shè)計(jì)的物理方面(使用的資源以及它們?nèi)绾伪还潭ǎ┑男薷姆蛛x到控件(它們的作用)。
圖6中顯示了捕獲意圖的類似示例。在這種情況下,每次在數(shù)字輸入引腳上發(fā)生上升沿中斷時(shí),都會(huì)調(diào)用一個(gè)函數(shù)。中斷是一個(gè)簡單的概念,但設(shè)置和正常運(yùn)行非常復(fù)雜。使用mbed,代碼在概念上非常簡單。創(chuàng)建一個(gè)可以產(chǎn)生中斷的引腳,并將一個(gè)函數(shù)附加到該引腳的上升沿。
#include“mbed.h”中斷按鈕(p5);
DigitalOut led(LED1); void flip(){
led =!led;
}
int main(){//附加翻轉(zhuǎn)到p5邊緣 button.rise(& flip); //徘徊永遠(yuǎn)
while(1);
圖6:將函數(shù)附加到引腳中斷事件。
InterfaceFunctionDigitalIn
DigitalOut
DigitalInOut
InterruptIn
AnalogIn
AnalogOut
PwmOut
串口
SPI
I2C
Ticker
超時(shí)
讀取數(shù)字輸入引腳的狀態(tài)《 br》寫入數(shù)字輸出引腳的狀態(tài)
讀取和寫入雙向數(shù)字引腳
在引腳上升沿/下降沿觸發(fā)功能
讀取模擬輸入引腳上的電壓
控制模擬輸出引腳上的電壓
控制脈沖寬度調(diào)制輸出引腳
與SPI從設(shè)備通信
與I2C從設(shè)備通信s
在CAN總線上通信
讀寫以太網(wǎng)數(shù)據(jù)包
通用計(jì)時(shí)器
以固定間隔調(diào)用函數(shù)
7:mbed庫接口。
庫是使用整個(gè)方法構(gòu)建的(參見圖7),它允許開發(fā)人員專注于應(yīng)用程序邏輯而不是實(shí)現(xiàn)細(xì)節(jié)。
mbed庫建立在低端之上ARM?Cortex?微控制器軟件接口標(biāo)準(zhǔn)(CMSIS),是Cortex-M處理器系列獨(dú)立于供應(yīng)商的硬件抽象層。與CMSIS相比,mbed庫提供了一個(gè)非常高級的API,專注于為外圍設(shè)備的基本控制提供抽象接口。這種結(jié)構(gòu)為用戶提供了一種自然的方式,可以隨時(shí)隨地從mbed庫中受益,同時(shí)添加在CMSIS上構(gòu)建的定制代碼,他們需要支持未提供的功能。特別是,這使得在原型設(shè)計(jì)時(shí)僅能在關(guān)鍵或差異化方面集中精力。除了mbed庫之外,mbed Community外圍庫是用于控制連接到微控制器的外圍設(shè)備(例如傳感器,執(zhí)行器,LCD和其他模塊)的貢獻(xiàn)代碼的擴(kuò)展基礎(chǔ)。這些通常構(gòu)建在mbed庫之上,使系統(tǒng)能夠快速連接,重點(diǎn)關(guān)注邏輯和功能而不是驅(qū)動(dòng)程序。這些庫可以由mbed社區(qū)中的任何人提供,并且隨著時(shí)間的推移將由來自第三方供應(yīng)商的中間件補(bǔ)充。
圖8:mbed庫體系結(jié)構(gòu)。
應(yīng)用程序示例
為了演示如何使用mbed實(shí)現(xiàn)簡單的應(yīng)用程序?qū)嶒?yàn),以下示例演示了由Internet數(shù)據(jù)庫控制的硬件設(shè)備。
圖9中的示例程序?qū)崿F(xiàn)一個(gè)系統(tǒng),該系統(tǒng)在屏幕上顯示消息并根據(jù)HTTP請求的結(jié)果移動(dòng)伺服電機(jī)。該解決方案不太可能是最佳的,強(qiáng)大的或完整的,但足以使概念有效。
原型可以實(shí)現(xiàn)硬件的迭代,互聯(lián)網(wǎng)應(yīng)用的早期開發(fā),新市場的探索或提供承諾的案例項(xiàng)目。通過使用可訪問的方式來測試想法,mbed有助于降低與產(chǎn)品開發(fā)相關(guān)的風(fēng)險(xiǎn),并且可以更頻繁地將高級微控制器設(shè)計(jì)到應(yīng)用程序中。
#include“mbed.h”#include“HTTPClient.h”
#include “MobileLCD.h”MobileLCD lcd(p5,p7,p8,p9);
//SPI LCD //以太網(wǎng)客戶端
HTTPClient http; //R/C伺服
PwmOut伺服(p21); int main(){//20ms伺服周期
servo.period(0.020);
char result [128]; while(1)
{
http.get(http://a.com/stat.php“,result); lcd.printf(”狀態(tài)為%s \ n,結(jié)果); //定位伺服,1-2ms脈沖寬度
float percent = atof(result);
servo.pulsewidth(0.001 *%); //每分鐘更新
wait(60);
圖9:從互聯(lián)網(wǎng)app控制屏幕和伺服。
結(jié)論
對快速原型設(shè)計(jì)的關(guān)注使mbed具有廣泛的吸引力。對于剛接觸嵌入式應(yīng)用的工程師,mbed將使他們能夠首次實(shí)驗(yàn)和測試產(chǎn)品創(chuàng)意。對于經(jīng)驗(yàn)豐富的工程師,mbed提供了一種在概念驗(yàn)證階段提高工作效率的方法。對于市場營銷,分銷商和應(yīng)用工程師,mbed為微控制器的演示,評估和支持提供了一致的平臺(tái)。因此,mbed工具將幫助不同的受眾利用NXP LPC1768等高級微控制器帶來的機(jī)會(huì)。
-
微控制器
+關(guān)注
關(guān)注
48文章
7465瀏覽量
150880 -
嵌入式
+關(guān)注
關(guān)注
5060文章
18979瀏覽量
302235 -
usb
+關(guān)注
關(guān)注
60文章
7880瀏覽量
263770
發(fā)布評論請先 登錄
相關(guān)推薦
評論