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