嵌入式系統是計算設備硬件中嵌入軟件作為其核心組件的應用。我們身邊現在已經被嵌入式系統包圍了,這些產品能為我們的生活帶來各種方便乃至奢華的功能,包括移動手持設備、洗衣機、微波爐、ATM 機、空調等等。由于某些特定的應用要求,工程師必須以不同于其它設計類型的特定方法進行嵌入式設計。 以下簡要介紹了進行嵌入式系統設計的幾個步驟: 1. 建議:一個能夠讓生活變得更輕松和/或減少完成任務所需人力的創新性理念或系統。 2. 定義:接下來需要設計整個系統,包括在各種可能的輸入條件下系統的表現情況。定義或許是最關鍵的部分,因為在定義階段的任何錯誤均會影響整個系統的工作。 I. 輸入/輸出考慮因素:定義在一個特定輸入下系統輸出會是什么,要把系統作為一個黑盒子來考慮; II. 數學建模:設計讓系統按需工作的算法; III. 功能建模:設計系統接受輸入并生成所需輸出的功能。 3. 技術選擇:基于上述幾點,設計人員可評估可用的技術,選擇哪些器件能夠滿足所有要求,同時平衡效率、成本和產品上市進程。 4. 集成和 PCB 設計:列出實現您想要的功能所需的所有組件,并設計它們在PCB 上的布局。布線和所有其它路徑都必須盡可能地降低電磁干擾 (EMI),而且應避免各種錯誤。設計 PCB 時,應特別注意鋪地以及 PCB 上接地的所有組件。 5. 固件開發和調試:由于硬件需要指令來按我們想要的方式加以執行,我們需要為硬件使用的每個組件編寫代碼。這也正是固件(即應用代碼)所做的工作。固件應當最大限度地降低復雜性。此外,我們在編寫代碼時,可能會遇到許多錯誤和故障,這些都需要適當的調試協議。 6. 測試:調試時需要測試代碼部分,而在測試過程中,我們需要檢測整個系統,也就是硬件以及驅動該硬件的軟件。 7. 文檔:任何瀏覽您完整應用設計的人都不應該問您“這是什么意思?”“這個東西怎么操作?”為了避免被這樣的問題所困擾,我們應當準備好全面完整的文檔。 當前設計流程中存在的問題: 在開發嵌入式應用時,我們應當充分了解不同的芯片及其功能和復雜的架構,然后再創建系統設計流程。接下來,我們需要一款應用來為我們的產品和組件提供功能,為此我們必須要編寫代碼。在編寫代碼時,系統要求會不斷變化,設計人員需要相關工具,為不同的調試協議提供支持。我們或許無法重復使用代碼,我們希望在單個系統中集成多種特性。鑒于上述問題,嵌入式系統設計需要考慮整個系統價格、性能、加速產品上市進程、尺寸、功耗、可維護性、安全性、存儲器容量等各種問題。此外,嵌入式系統的開發人員還希望在單個芯片上實現可編程模擬和數字外設。因此,片上系統 (SOC) 的開發工作對于開發人員來說是相當繁瑣的。 嵌入式系統日益復雜,幾乎在任何情況下都需要可編程性。為此,設計人員需要工具來應對這種困難的局面,同時提供用戶友好型環境來開發應用。雖然我們有一些SOC工具的市場,但我們并不完全了解這些工具的功能。此外,工具還必須能夠最大限度地發揮產品的特性潛力。為了說明這一點,我們不妨舉一個采用復雜架構芯片的例子,在單個芯片上集成了幾乎所有的模擬和數字可編程外設。我們或許會發現,閱讀和了解相關的配置寄存器以及使用器件相關的其它底層信息可能比較復雜,因此我們需要一款直觀易用的系統設計工具把底層信息隱藏起來,讓我們更方便地集中了解系統應用。 簡而言之,我們需要這樣一款工具,它不僅可加速產品的上市進程,直觀高效地處理所有的開發考慮因素,而且成本不能太高,還能根據要求的變化支持項目在不同芯片之間的移植。 PSoC Creator: 可編程片上系統 (PSoC) 制造商已經充分認識到,開發人員需要在單個芯片上擁有完整的系統,而且要同時具備模擬和數字功能,同時該模擬和數字功能也應該完全具有可編程性。為了開發可在這些芯片上工作的嵌入式應用,以及為上述所有問題提供解決方案,賽普拉斯半導體公司推出了 PSoC Creator。PSoC Creator 通過其獨特的基于原理圖的格式能讓設計人員無需手動管理架構或配置寄存器即可開發應用。現在,我們要做的就是思考出設計方案,然后通過把組件從賽普拉斯組件庫或我們自己的組件庫中拖放到設計原理圖中即可繪制出設計。這就好像繪制系統方框圖一樣,不用考慮使用的是什么器件。正是由于革命性的圖形設計編輯器支持獨特而功能強大的軟硬件協同設計環境,我們才能實現這一目標。請注意,該工具不僅是將軟件開發環境和直觀的圖形設計編輯器完美地結合在一起,同時還支持全新理念的即時測試,能夠快速響應于硬件變化,創建可共享的設計組件庫,提供定制外設,支持片上外設的無差錯互動,并能使用內置的調試器實現完整的設計。 簡而言之,該工具的功能和使用可如下圖所示分為 4 步: 步驟 1:設計與配置拖放組件 連接外設 I/O 到引腳 設置時鐘頻率 步驟 2:開發調用內置 API C/匯編語言編程無差錯&更方便 步驟 3:調試內置調試器在運行時查看任何變量的類型、地址和值在運行時查看協議棧、存儲器和寄存器 步驟 4:重復使用快速方便地創建未來設計將工作設計集成到可重復使用的組件中 圖 1. 使用 PSoC Creator 創建項目的步驟 PSoC Creator 將基于 C 語言的開發流程與自動生成的組件 API 在您的設計中相結合。它能根據后續階段要求的變化在器件之間(比如8位到32位)實現無縫移植。即便要在不同的器件系列之間進行移植,我們也無需考慮存儲器映射、助記符等問題。這里的一個獨特優勢在于,設計過程中不必考慮目標芯片屬于什么系列的問題,因為設計人員能在開發周期中的任何時間更改器件,而且無需修改項目中的任何東西。 現在讓我們通過一個項目范例來更好地了解 PSoC Creator 在實際環境中開發嵌入式應用的功能和可用性。這個項目范例演示了如何通過使用脈沖寬度調制 (PWM) 來控制 LED 的亮度。 圖2:PSoC Creator 的示意圖 圖 2 給出了從組件窗口拖放所需組件(即 PWM、輸入引腳、輸出引腳和時鐘)后所形成的示意圖。組件訪問得以簡化,此外,開發人員還能創建他們自己的組件。創建新組件就像繪制設計一樣簡單,而且能通過工具生成新組件的標志。將新組件放進庫中,這個組件就能重復使用了。任何引用組件庫的設計項目都將發現目錄中的新組件,而且能像任何其它內置組件一樣加以使用。通過充分發揮 PSoC Creator 中設計的重復使用優勢,開發人員能夠快速構建設計庫,因此無論他們實施什么新項目,都能集中精力進行創新工作,而不用為傳統功能而費心。 圖3:組件配置向導 圖 3 所示為組件配置向導。右鍵單擊組件就能彈出配置向導。該向導可幫助我們設置組件的各個參數。舉例來說,對于 PWM 而言,我們可設置位數、周期、比較值等參數。同樣地,每個組件都有自己的參數,我們可根據應用需要加以設置。此外,每個組件都配套提供組件數據手冊,介紹了組件的功能、參數、電氣規范、API 等。同樣,我們還為定制組件提供 API 和數據手冊,這樣我們就能像對內置組件一樣對其進行配置了。 圖 4:引腳圖和配置 現在我們需要對應用中所用引腳的映射進行配置,引腳圖(如圖 4 所示)根據配置而相應變化。在圖的底部,有時鐘、DMA、中斷、系統等不同配置選項卡。內置配置工具將設計映射到器件中,并自動計算出時鐘設置和路由,這可讓開發人員的工作變得非常簡單。 圖 5:應用代碼 圖 5 所示為我們編寫應用代碼、執行所需功能的截屏,同時也演示了有助于調試工作的斷點分析,提供了運行時的參數值、寄存器和存儲器等。在代碼中,我們調用了內置 API,在運行時與組件進行通信。API 可減少編碼錯誤,確保同外設的正確交互,從而提高整體軟件開發的速度,簡化開發工作,并減少錯誤。 調試是產品開發生命周期中最重要的階段。對于應用調試而言,PSoC Creator 可提供交叉調試器所具備的全部現代特性,而且還能提供獨特的外設調試窗口,用于顯示片上組件的內部狀態。此外,它還支持 JTAG 和 SWD 調試模式。其它有用的特性包括“懸停”功能,即在鼠標懸停情況下能夠顯示類型、地址和任何變量值等。此外,開發人員無需為寄存器、存儲器、調試協議、功耗、芯片選擇、函數調用等操心太多就能設計出一個完整的項目。 由于設計嵌入式系統本身是一項復雜的工作,在同一芯片上放置模擬和數字功能則將工作變得非常繁瑣。此外,開發人員希望在設計的任何階段都可實現芯片之間設計的輕松移植,確保可用資源能夠直觀地實現最大限度的利用。我們接著還分析了軟件工具 PSoC Creator,這款工具以其獨特的特性(如面向所有組件的 API 支持、靈活的調試支持、定制和可重復使用的組件創建以及根據應用要求修改現有的庫組件等)能夠完美解決上述問題。簡而言之,如果我們希望讓數字模塊在運行時根據要求能夠動態地當作定時器、計數器和 DAC 來工作,那么可提供通用數字模塊 (UDB) 能讓我們根據需要進行配置的 PSoC Creator 就是一款理想的工具。 |