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 微控制器硬件將 NXP LPC1768 微控制器、支持組件和智能 USB 接口封裝在實用的 40 針 0.1" 間距 DIP 外形尺寸中,非常適合在無焊面包板、條形板和通孔 PCB 上進行實驗。支持裸露的接口,mbed C/C++ 庫為微控制器外設提供高級接口,實現簡潔、緊湊、API 驅動的編碼方法。這種組合提供了與外設和模塊的即時連接,用于基于微控制器的系統設計的原型設計和迭代,為開發人員提供更具創新性和生產力的自由。
圖 4 顯示了基本的 mbed 微控制器引腳排列,指示了接口資源的可用性和位置。指示的接口與在 mbed 庫中找到的接口相匹配。這突出了它們一起開發的一些主要好處。API 提供了一個抽象的外圍接口,而不是特定于實現的。這些庫使用面向對象,可以很好地映射到有形的物理硬件資源。硬件、庫和文檔共享相同的接口命名和概念。
圖 4:mbed 微控制器引腳排列。
硬件和軟件之間的一致性實現了捕捉意圖的自然編程風格,這對于快速實驗和迭代至關重要。
例如,mbed 避免了引腳分配和資源分配通常需要的多個間接級別。這些往往會失去意義并引入錯誤。
圖 5:配置和寫入 SPI 設備。
圖 5 中的 SPI 示例演示了設置 SPI 主接口。首先,創建一個 SPI 對象并將其綁定到所需的引腳(mosi、miso 和 sclk),如圖 4 中選擇的那樣。請注意,這個表達式現在在物理連接設備時同樣有用 - 規范已捕獲物理連接。
接下來,在執行寫/讀事務之前配置 SPI 對象 (myspi) 的頻率和位格式。SPI 對象上的方法定義良好,界面直觀,操作獨立于底層硬件的低級設置或要求 事實上,要更改本示例中使用的 SPI 端口,只需引腳名稱即可需要改變。這有助于將設計的物理方面(使用的資源以及它們如何固定)與控制(它們做什么)分開修改。
圖 6 顯示了一個捕獲意圖的類似示例。在這種情況下,每次在數字輸入引腳上發生上升沿中斷時都會調用一個函數。中斷是一個簡單的概念,但眾所周知,設置和正常運行非常復雜。使用 mbed,代碼在概念上非常簡單。創建一個可以產生中斷的引腳,并在該引腳的上升沿附加一個功能。
圖 6:將函數附加到引腳中斷事件。
圖 7:mbed 庫接口。
該庫是使用自始至終的方法構建的(參見圖 7),允許開發人員專注于應用程序邏輯而不是實現細節。
mbed 庫建立在低級 ARM? Cortex? 微控制器軟件接口標準 (CMSIS) 之上,CMSIS 是 Cortex-M 處理器系列的獨立于供應商的硬件抽象層。
與 CMSIS 相比,mbed 庫提供了一個非常高級的 API,它專注于為外圍設備的基本控制提供抽象接口。這種結構為用戶提供了一種自然的方式,可以盡可能地從 mbed 庫中受益,并在他們需要支持未提供的功能的地方添加基于 CMSIS 構建的定制代碼。特別是,這使得在原型制作時只能夠將精力集中在關鍵或差異化方面。除了 mbed 庫之外,mbed 社區外設庫是一個擴展的代碼庫,用于控制連接到微控制器的外設,例如傳感器、執行器、LCD 和其他模塊。這些通常構建在 mbed 庫之上,使系統能夠快速連接,專注于邏輯和功能而不是驅動程序。
圖 8:mbed 庫架構。
應用示例
為了演示如何使用 mbed 實現一個簡單的應用實驗,下面的示例演示了一個由 Internet 數據庫控制的硬件設備。
圖 9 中的示例程序實現了一個系統,該系統在屏幕上顯示消息并根據 HTTP 請求的結果移動伺服電機。該解決方案不太可能是最優的、穩健的或完整的,但足以讓這個概念發揮作用。
該原型可以實現硬件的迭代、互聯網應用程序的早期開發、新市場的探索或為提交項目提供案例。通過啟用一種可訪問的方式來測試想法,mbed 有助于降低與產品開發相關的風險,并更頻繁地將高級微控制器設計到應用程序中。
圖 9:通過 Internet 應用程序控制屏幕和伺服。
結論
對快速原型設計的關注使 mbed 具有廣泛的吸引力。對于剛接觸嵌入式應用程序的工程師,mbed 將使他們能夠首次試驗和測試產品創意。對于經驗豐富的工程師,mbed 提供了一種在開發的概念驗證階段提高生產力的方法。對于營銷、分銷商和應用工程師,mbed 為微控制器的演示、評估和支持提供了一致的平臺。因此,mbed 工具將幫助不同的受眾利用先進的微控制器(如 NXP LPC1768)帶來的機會。
評論
查看更多