ARM 的 mbed 快速原型設(shè)計解決方案將 NXP LPC1768 微控制器、支持組件和智能 USB 接口與基于云的工具相結(jié)合,以實(shí)現(xiàn)對微控制器功能和應(yīng)用原型設(shè)計的有效評估。mbed 尋找可以優(yōu)化獲得工作原型的時間的技術(shù)和權(quán)衡,使設(shè)計人員能夠在設(shè)計周期的早期快速測試、評估和展示想法。
微控制器變得更小、更強(qiáng)大、更低功耗和更多連接,但價格卻不斷下降。對于能夠成功采用該技術(shù)的新市場來說,這是一個巨大的機(jī)會。其中的關(guān)鍵是確定微控制器可以解決的新問題,并構(gòu)建概念驗(yàn)證,將想法轉(zhuǎn)化為潛在產(chǎn)品。
一旦已知所需的規(guī)范,該行業(yè)已經(jīng)為嵌入式工程師構(gòu)建了出色的工具來生產(chǎn)微控制器設(shè)計。但是,當(dāng)任務(wù)是證明一個概念或定義一個規(guī)范時,即使對于有經(jīng)驗(yàn)的工程師來說,風(fēng)險和時間尺度通常也不會加起來。結(jié)果是想法沒有得到嘗試;幾乎沒有迭代或設(shè)計空間探索;最終的設(shè)計也是原型,或者規(guī)格過于謹(jǐn)慎。鑒于在許多情況下,可以定義這些應(yīng)用程序的想法、觀察和見解將來自其他問題領(lǐng)域的人,這些限制被放大了。這有可能成為采用的真正障礙。
戰(zhàn)略
mbed 的基本目標(biāo)是實(shí)現(xiàn)對微控制器功能的有效評估和可以應(yīng)用它們的應(yīng)用程序的原型設(shè)計。特別是,它旨在匹配產(chǎn)品設(shè)計其他方面的設(shè)計周期時間。有助于實(shí)現(xiàn)這一點(diǎn)的策略(圖 1)是尋找可以優(yōu)化獲得工作原型的時間的技術(shù)和權(quán)衡,而不是優(yōu)化設(shè)計本身。
圖 1:mbed 策略。
例如,微控制器的趨勢是以固定價格提高性能和存儲容量。雖然大多數(shù)工具專注于使用戶能夠在可創(chuàng)建的應(yīng)用程序的最終功能中利用此功能,但 mbed 卻專注于使用此性能和容量來減少設(shè)計挑戰(zhàn)。一個很好的例子是提供高級抽象,以犧牲實(shí)現(xiàn)效率和增加代碼大小為代價使功能可訪問。
另一個關(guān)鍵目標(biāo)是克服進(jìn)入壁壘;技術(shù)接受模型(圖 2)提供了一個清晰的框架來實(shí)現(xiàn)這一點(diǎn),突出了易用性和感知有用性。感知有用性是由通過實(shí)驗(yàn)和教育對技術(shù)的洞察力驅(qū)動的。原型設(shè)計方法自然支持用戶探索,同時使?fàn)I銷和應(yīng)用工程功能能夠輕松演示和展示技術(shù)。
圖 2:技術(shù)接受度(Davis 等,1989)。
易用性實(shí)際上非常依賴于上下文;大多數(shù)好的工具都很容易用于它們預(yù)期的任務(wù)。但對于不同的任務(wù),結(jié)果不太可能相同。通過明確定義快速原型設(shè)計的背景,將設(shè)計權(quán)衡集中在易用性上變得更有意義。對于業(yè)內(nèi)熟悉現(xiàn)有專有架構(gòu)和工具鏈的嵌入式開發(fā)人員來說,改變可能會令人生畏,因?yàn)閺膶<业綄W(xué)習(xí)者會帶來額外的負(fù)面感覺。僅這些因素就足以推遲探索轉(zhuǎn)向現(xiàn)代解決方案的好處。對于新用戶來說,恐懼、不確定和懷疑同樣令人望而卻步。這使得初始體驗(yàn)變得至關(guān)重要;這些工具必須以很少的投資迅速產(chǎn)生結(jié)果,
入門
mbed 的目標(biāo)是讓新用戶盡快運(yùn)行他的第一個程序,從而建立對硬件和軟件工具鏈的信心和信任。mbed 工具應(yīng)用了一些新技術(shù)來實(shí)現(xiàn)這一點(diǎn),結(jié)果不言而喻;您可以在 60 秒內(nèi)開始。這一成就意味著沒有理由不進(jìn)行實(shí)驗(yàn)。
成果是通過兩項(xiàng)創(chuàng)新實(shí)現(xiàn)的;基于硬件和編譯器工具的 USB 磁盤編程器,用作在 Web 瀏覽器中運(yùn)行的基于云計算的 Web 應(yīng)用程序。這些解決方案有一些明顯的好處,但有些不是立即顯而易見的。
預(yù)先設(shè)置的優(yōu)點(diǎn)是無需設(shè)置或安裝。對許多人來說,這只是一個驚喜,允許即時訪問而無需管理職責(zé)。但是對于在許多教育和工作環(huán)境中發(fā)現(xiàn)的計算機(jī)系統(tǒng)被鎖定的其他人來說,這可能是能否測試微控制器的區(qū)別。
IDE 簡單但功能強(qiáng)大,允許它不礙事,做它的設(shè)計目標(biāo)——編輯和編譯代碼。一切都預(yù)先配置好后,它可以在任何平臺上開箱即用,包括 PC、Mac 或 Linux。這種即時無憂訪問讓用戶對這些工具充滿信心,使用戶能夠在需要使用或演示時隨時取用它們。
由于現(xiàn)在在多臺計算機(jī)上工作很普遍,在線方法成為一個特別的優(yōu)勢。您不僅可以避免多次安裝的問題并使它們保持同步,而且無論您身在何處,您的在線工作空間都會隨身攜帶。
微妙的優(yōu)勢是你看不到的東西。有些決定是您不必做出的,因?yàn)橐呀?jīng)做出了能夠?yàn)槿蝿?wù)提供最合適結(jié)果的選項(xiàng)和配置。
許多硬件和軟件基礎(chǔ)工作已經(jīng)完成。這些工具非常輕巧,可以在任何機(jī)器上登錄,從頭開始創(chuàng)建項(xiàng)目,并在幾分鐘內(nèi)測試或修改某些內(nèi)容;這種靈活性會對工作方式產(chǎn)生重大影響。具有簡化的設(shè)置意味著一切都可以輕松重現(xiàn)。
結(jié)合單一硬件和庫模型,所有其他 mbed 用戶都在相同的環(huán)境中進(jìn)行開發(fā)。這使得社區(qū)支持變得更加容易,因?yàn)槿藗兛梢栽诠餐谋尘跋路窒韱栴}和疑問。
圖 3:在線編譯器。
快速原型
設(shè)計 mbed 的硬件和軟件組件的架構(gòu)和實(shí)現(xiàn)在原型設(shè)計方面提供了獨(dú)特的優(yōu)勢。
mbed 微控制器硬件將 NXP LPC1768 微控制器、支持組件和智能 USB 接口封裝在實(shí)用的 40 針 0.1" 間距 DIP 外形尺寸中,非常適合在無焊面包板、條形板和通孔 PCB 上進(jìn)行實(shí)驗(yàn)。支持裸露的接口,mbed C/C++ 庫為微控制器外設(shè)提供高級接口,實(shí)現(xiàn)簡潔、緊湊、API 驅(qū)動的編碼方法。這種組合提供了與外設(shè)和模塊的即時連接,用于基于微控制器的系統(tǒng)設(shè)計的原型設(shè)計和迭代,為開發(fā)人員提供更具創(chuàng)新性和生產(chǎn)力的自由。
圖 4 顯示了基本的 mbed 微控制器引腳排列,指示了接口資源的可用性和位置。指示的接口與在 mbed 庫中找到的接口相匹配。這突出了它們一起開發(fā)的一些主要好處。API 提供了一個抽象的外圍接口,而不是特定于實(shí)現(xiàn)的。這些庫使用面向?qū)ο?,可以很好地映射到有形的物理硬件資源。硬件、庫和文檔共享相同的接口命名和概念。
圖 4:mbed 微控制器引腳排列。
硬件和軟件之間的一致性實(shí)現(xiàn)了捕捉意圖的自然編程風(fēng)格,這對于快速實(shí)驗(yàn)和迭代至關(guān)重要。
例如,mbed 避免了引腳分配和資源分配通常需要的多個間接級別。這些往往會失去意義并引入錯誤。
圖 5:配置和寫入 SPI 設(shè)備。
圖 5 中的 SPI 示例演示了設(shè)置 SPI 主接口。首先,創(chuàng)建一個 SPI 對象并將其綁定到所需的引腳(mosi、miso 和 sclk),如圖 4 中選擇的那樣。請注意,這個表達(dá)式現(xiàn)在在物理連接設(shè)備時同樣有用 - 規(guī)范已捕獲物理連接。
接下來,在執(zhí)行寫/讀事務(wù)之前配置 SPI 對象 (myspi) 的頻率和位格式。SPI 對象上的方法定義良好,界面直觀,操作獨(dú)立于底層硬件的低級設(shè)置或要求 事實(shí)上,要更改本示例中使用的 SPI 端口,只需引腳名稱即可需要改變。這有助于將設(shè)計的物理方面(使用的資源以及它們?nèi)绾喂潭ǎ┡c控制(它們做什么)分開修改。
圖 6 顯示了一個捕獲意圖的類似示例。在這種情況下,每次在數(shù)字輸入引腳上發(fā)生上升沿中斷時都會調(diào)用一個函數(shù)。中斷是一個簡單的概念,但眾所周知,設(shè)置和正常運(yùn)行非常復(fù)雜。使用 mbed,代碼在概念上非常簡單。創(chuàng)建一個可以產(chǎn)生中斷的引腳,并在該引腳的上升沿附加一個功能。
圖 6:將函數(shù)附加到引腳中斷事件。
圖 7:mbed 庫接口。
該庫是使用自始至終的方法構(gòu)建的(參見圖 7),允許開發(fā)人員專注于應(yīng)用程序邏輯而不是實(shí)現(xiàn)細(xì)節(jié)。
mbed 庫建立在低級 ARM? Cortex? 微控制器軟件接口標(biāo)準(zhǔn) (CMSIS) 之上,CMSIS 是 Cortex-M 處理器系列的獨(dú)立于供應(yīng)商的硬件抽象層。
與 CMSIS 相比,mbed 庫提供了一個非常高級的 API,它專注于為外圍設(shè)備的基本控制提供抽象接口。這種結(jié)構(gòu)為用戶提供了一種自然的方式,可以盡可能地從 mbed 庫中受益,并在他們需要支持未提供的功能的地方添加基于 CMSIS 構(gòu)建的定制代碼。特別是,這使得在原型制作時只能夠?qū)⒕性陉P(guān)鍵或差異化方面。除了 mbed 庫之外,mbed 社區(qū)外設(shè)庫是一個擴(kuò)展的代碼庫,用于控制連接到微控制器的外設(shè),例如傳感器、執(zhí)行器、LCD 和其他模塊。這些通常構(gòu)建在 mbed 庫之上,使系統(tǒng)能夠快速連接,專注于邏輯和功能而不是驅(qū)動程序。
圖 8:mbed 庫架構(gòu)。
應(yīng)用示例
為了演示如何使用 mbed 實(shí)現(xiàn)一個簡單的應(yīng)用實(shí)驗(yàn),下面的示例演示了一個由 Internet 數(shù)據(jù)庫控制的硬件設(shè)備。
圖 9 中的示例程序?qū)崿F(xiàn)了一個系統(tǒng),該系統(tǒng)在屏幕上顯示消息并根據(jù) HTTP 請求的結(jié)果移動伺服電機(jī)。該解決方案不太可能是最優(yōu)的、穩(wěn)健的或完整的,但足以讓這個概念發(fā)揮作用。
該原型可以實(shí)現(xiàn)硬件的迭代、互聯(lián)網(wǎng)應(yīng)用程序的早期開發(fā)、新市場的探索或?yàn)樘峤豁?xiàng)目提供案例。通過啟用一種可訪問的方式來測試想法,mbed 有助于降低與產(chǎn)品開發(fā)相關(guān)的風(fēng)險,并更頻繁地將高級微控制器設(shè)計到應(yīng)用程序中。
圖 9:通過 Internet 應(yīng)用程序控制屏幕和伺服。
結(jié)論
對快速原型設(shè)計的關(guān)注使 mbed 具有廣泛的吸引力。對于剛接觸嵌入式應(yīng)用程序的工程師,mbed 將使他們能夠首次試驗(yàn)和測試產(chǎn)品創(chuàng)意。對于經(jīng)驗(yàn)豐富的工程師,mbed 提供了一種在開發(fā)的概念驗(yàn)證階段提高生產(chǎn)力的方法。對于營銷、分銷商和應(yīng)用工程師,mbed 為微控制器的演示、評估和支持提供了一致的平臺。因此,mbed 工具將幫助不同的受眾利用先進(jìn)的微控制器(如 NXP LPC1768)帶來的機(jī)會。
評論
查看更多