跳轉到內容

嵌入式控制系統設計/處理器

來自華夏公益教科書,開放的書籍,開放的世界
華夏公益教科書的


嵌入式控制系統設計


處理器技術涉及用於實現系統所需功能的計算引擎的體系結構。我們知道的所有裝置中都嵌入有處理器(微波爐、汽車等)。選擇合適的嵌入式處理器對於執行所需的操作至關重要。

如今硬體越來越像軟體。終端使用者可以輕鬆地對它進行程式設計並將其與其他元件整合。一個簡單的例子是 FPGA,它包含比實際需要的更多的元件,因此它可以被程式設計用於各種應用程式。它也可以用作多個硬體元件之間的通訊介面,例如在手機晶片上整合 DSP 和混合 CPU。

另一個重要的趨勢是模組化設計。這意味著硬體元件被設計成獨立的部分,可以組合在一個裝置中。透過這種方式,裝置只對不同元件的控制和通訊進行程式設計。這具有以下優點:

  • 元件在損壞時可以輕鬆更換
  • 新增新功能(升級)非常簡單
  • 邁向標準化的一小步

在機電一體化領域,標準化還不常見。然而,電子行業是標準化的先驅,因為我們可以在其中找到許多標準化的例子:VHDL、標準組件,如加法器、多路複用器、暫存器、記憶體等。這裡一個簡單的例子是 美國國家儀器公司。隨著時間的推移,機械領域也將需要這種標準化。

特定分支

[編輯 | 編輯原始碼]

在汽車領域,有一種向集中的趨勢。這是因為設計師在過去發現,有太多零件需要各自的控制器。所以現在他們試圖儘可能少地使用 CPU。因此,設計越來越側重於由少數 CPU 控制的多個元件之間的通訊匯流排。

在航空領域,要求大不相同。首先,安全至關重要。因此,標準化和認證變得非常重要。一個簡單的例子是,在航空領域,他們只使用經過認證的硬體。他們仍然使用奔騰 II,因為它是經過驗證的技術。

硬體選擇

[編輯 | 編輯原始碼]

當一個人達到必須對處理器技術做出選擇的時候,可以選擇 5 類處理器,每類都有其自身的優缺點。

  • 通用處理器:可用於多個應用程式,價格低廉,設計時間短,但效能低,功耗高,尺寸大
  • 單用途處理器:效能好,尺寸小,功耗低,但設計難度大,價格昂貴,靈活性差
  • ASIP:介於單用途處理器和通用處理器之間的中間解決方案
  • PLD:設計成本低,產品開發速度快,數量眾多,但功耗比 ASIP 高。一些例子是:PLAFPGA
  • PLC:可用於多種工作條件,標準化程度更高,但不適合複雜計算,價格相對昂貴

除了處理器選擇外,設計師還必須尋找合適的通訊和儲存技術。固態硬碟是一個堅固的儲存技術示例。它們具有抗振動、抗磁場和抗塵的特性,因此可以在多種工作條件下使用。通訊技術示例包括 USB、Firewire、CAN 匯流排、乙太網等。


處理器技術涉及用於實現系統所需功能的計算引擎的體系結構。我們知道的大多數裝置中都嵌入有處理器(微波爐、汽車等)。選擇合適的嵌入式處理器對於執行所需的操作至關重要。在設計過程中,處理器選擇可以在兩個時刻進行。你可以在設計之初選擇一個處理器,那時你只是對規格有一個大致的瞭解,這意味著在設計過程的後續階段,你需要將所需的功能適應處理器的可能性。例如,當你的處理器預算有限時,可以選擇具有最高可能性且符合預算的處理器。或者,你可以在專案結束時做出決定,這樣你就知道要實現的所有必要功能,並且可以選擇完全符合你情況的處理器型別。如果可能,你必須始終選擇你最熟悉的處理器,以最大程度地減少設計時間並避免問題。最大程度地減少設計時間意味著更低的成本和更快的上市時間。

首先,我們將概述一些在選擇處理器時應該牢記的術語和概念。然後,我們將研究目前可用的不同型別的處理器技術,並瞭解當今可用的處理器。在本章的第三部分,我們將討論可程式設計邏輯控制器 (PLC)。

文字中將引用一些有趣的文章、網站和連結,你可以從中找到關於該主題的清晰解釋和更廣泛的觀點。文字中將這些引用顯示為數字,數字對應於參考資料列表中顯示的網站。所有參考資料的列表位於本章末尾。

術語、問題

[編輯 | 編輯原始碼]

處理器的效能/速度

[編輯 | 編輯原始碼]

這表示每秒的時鐘週期數。它決定了每秒執行的指令數量。如果您的處理器要求超過處理器技術所能提供的,單個處理器將無法勝任。這時就需要考慮雙核處理器。這不僅可以使計算負載翻倍,還可以提供軟體在核心之間架構的靈活性,甚至可以降低功耗,而單個核心執行在兩倍的頻率上。

  • 電子相容性

所有選擇的硬體都應該能夠相互通訊。

  • 環境相容性

處理器工作環境可能會造成損壞,因此必須採取預防措施以避免意外故障。

輸入/輸出

[編輯 | 編輯原始碼]

為此,您應該檢視硬體外設

定點/浮點裝置

[編輯 | 編輯原始碼]

這是處理器計算算術的兩種類別。一般來說

定點

  • 更快
  • 更節能
  • 成本敏感

浮點

  • 高精度

指的是可以定義分數的粒度

  • 動態範圍

指的是數字格式中可以表示的最大數與最小數之比

記憶體

[編輯 | 編輯原始碼]
  • 快取:處理器用來減少與(主)記憶體通訊所需的時間。
  • 記憶體地址
  • RAM(隨機存取儲存器)
  • ROM(只讀儲存器)

我的系統需求是否會隨著時間而改變

[編輯 | 編輯原始碼]
  • 是:那麼可能需要可程式設計解決方案(DSP、MCU、FPGA)

示例:使用者介面功能的更改

  • 否:ASIC 可能適合

使用壽命

[編輯 | 編輯原始碼]

所需壽命取決於系統所需的壽命,更換控制器的意願或在其他系統中重複使用控制器的願望

如何在處理器上進行開發

[編輯 | 編輯原始碼]

如果您使用一個好的、易於使用的開發工具,您將提高生產力並縮短開發/除錯時間。這也取決於您擁有的經驗豐富的員工(成本更高)以及您的公司對某些處理器型別的經驗。當然,如果您使用用通用語言編寫的程式碼,它可以輕鬆移植到新的處理器,並增加了擴充套件和重寫程式的可能性。

裝置可以從電網獲取電源或使用電池工作。這種限制(電池)通常會涉及效能和能效之間的權衡。選擇使用電池的系統,我們需要考慮電池的重量、充電間隔時間和安全性。

即時方面

[編輯 | 編輯原始碼]
  • 中斷中斷向量
  • 支援“原子操作”~ 互斥量(=互斥)如 測試並設定比較並交換
  • 粒度
  • 特權級別CPU 模式
      • 對於最常見的處理器型別
  • 微處理器:當選擇微處理器以及嵌入式作業系統時,作業系統是導致即時操作不直接的原因。
  • 微控制器:作為一種非常簡單的微處理器,即時操作很困難。
  • DSP:當即時性很重要,例如在訊號處理(音訊、影片等)中,DSP 的效能最佳。
  • FPGA:FPGA 可以配置成完全像微處理器一樣工作,也可以完全像 DSP 一樣工作。因此,即時效能取決於是否選擇類似 DSP 的配置。
  • PLC:PLC 從感測器獲取輸入,評估這些輸入並進行更改(輸出),因此它充當即時系統

作業系統

[編輯 | 編輯原始碼]

作業系統管理系統:管理和處理 I/O、記憶體管理、控制同時執行的程序。如果是這樣,請確保您的處理器支援您選擇的 OS。

-> 關於某些主題的更詳細說明的有趣連結

[1]

處理器技術型別

[編輯 | 編輯原始碼]

在本部分,我們將討論常見的處理器型別、其特點和示例

選擇適合您的應用程式的正確處理器型別的有趣連結:[1] [1]

通用處理器

[編輯 | 編輯原始碼]

系統設計師只需要對處理器的記憶體進行程式設計以執行所需的功能:軟體部分。這些型別是為了針對各種應用產生大量的數字而建立的

以下是一些通用處理器的通用特徵

  • 優點
      • 易於設計和使用(只需要對記憶體進行程式設計)
      • 因此設計時間很短
      • 因此設計成本很低
      • 可重新程式設計(當您只需要更改程式時,更改功能或改進系統變得容易)
  • 缺點
      • 效能不是很好
      • 尺寸很大(因為它們是為用於各種具有不同規格的應用而構建的,並且所有這些規格都必須在處理器上可用)
      • 它們消耗大量的功率

通常,它們用於在產品首次上市時投入使用,因為它們的設計成本低廉且易於使用。由於使用程式碼,設計師通常會努力最小化編譯後的程式碼大小,而不是最大化效能。

基本上,微處理器執行微控制器/嵌入式系統必須完成的所有任務。 普通的微處理器包含一個匯流排單元,它是與(計算機)記憶體通訊的通路;一個指令快取,用於跟蹤透過匯流排單元從計算機記憶體中獲取的指令;一個(預取)獲取單元,將指令從指令快取中複製出來進行進一步處理;一個解碼單元,從預取單元中獲取指令,並將其轉換為處理器理解的二進位制程式碼;一個控制單元,執行由解碼單元提供的二進位制程式碼中的任務或指令;一個“資料快取”,用於儲存指令或資料;一個 ALU(算術邏輯單元),執行加、乘等數學運算;最後是暫存器,它們也是 ALU 使用的一些記憶體,用於儲存執行操作的結果。 微控制器沒有像普通微處理器那樣描述的資料匯流排或匯流排單元。 原因是不需要與記憶體通訊,因為記憶體與微處理器本身整合在同一個晶片上。 MCU 通常用作系統控制器,具有許多條件操作和程式流程的頻繁變化。 MCU 程式碼是用 C 或 C++ 編寫的。 有各種各樣的 MCU 可供選擇:從 4 位、32 kHz 型號到 32 位、500 MHz 器件,以及超越(“-位”表示裝置資料匯流排、暫存器、執行單元等的寬度)。

如果您選擇嵌入式作業系統(Windows、Linux、Dos…),則需要微處理器。 但是對於即時操作,最好不要使用微處理器。 微控制器實際上是一種低端微處理器,用於更簡單的任務(紅綠燈,在一定時間內保持燈光…)。

單用途處理器

[edit | edit source]

這種型別的處理器被設計為精確執行一個程式。 嵌入式設計人員透過設計定製的數位電路來建立單用途處理器,優缺點或多或少與通用處理器相反。

  • 優點
      • 效能非常好
      • 尺寸小(精確地適合一個解決方案)
      • 它們功耗低
  • 缺點
      • 設計起來並不容易,因此設計時間很長
      • 因此設計成本更高
      • 重新程式設計很困難
      • 靈活性有限:不容易更改,適應功能

在設計中,我們可以區分標準單用途處理器和定製單用途處理器(ASSP)。 標準單用途處理器(硬體外設)在另一章中解釋 硬體外設。 它們用於各種各樣的應用程式以完成相同的任務。

它們被設計為滿足最終產品的特定要求。 在設計過程中,它們將針對功耗和效能進行最佳化。 ASIC 通常是在產品在市場上穩定(使用非 ASIC 解決方案)後引入的,因為開發時間和成本較高。 穩定後,製造商可以透過盡一切努力使處理器儘可能適合其應用程式來尋求更大的利潤。 缺點是,如果出錯,則需要製作一個全新的晶片,但對於通用處理器,只需更改程式碼並重新編譯即可。 您可以在技術和需求不會快速變化的穩定市場中使用 ASIC。

專用指令集處理器 (ASIP)

[edit | edit source]

ASIP 是為具有共同特徵的特定類別應用程式而設計的,它是通用處理器和單用途處理器之間的“中間”解決方案,比單用途處理器具有更高的靈活性,並且仍然比通用處理器具有更好的效能、功耗和尺寸。 當然,這會導致更長的設計時間(成本),而且還存在編譯器問題,通常您必須自己建立編譯器。

DSP 經過最佳化,可以有效地執行重複的和數值密集的任務,例如矩陣運算、用於即時過濾的卷積,因為 MCU 的效能有限。 DSP 可以以非常高的時鐘頻率執行,並且通常根據它們每秒可以執行多少百萬次 MAC 運算來比較。 此指標稱為“兆 MAC”,或 MMACS。

DSP 經過最佳化可以執行數學運算,但不適合監督控制。 因此,基於 DSP 的系統與速度較慢的 MCU 整合在一起,這可以透過兩種方式完成

    • 離散 DSP + MCU(在系統中分開)
      • 優點
        • DSP 和 MCU 的設計彼此分離
      • 缺點
        • 在控制和 DSP 功能之間進行硬分割槽,如果 DSP 有太多指令,MCU 無法接管
        • DSP 和 MCU 需要不同的開發工具
    • 收斂處理器 [2](收斂處理器針對即時資料流的計算和麵向控制的任務進行了最佳化)
      • 優點
        • 針對即時資料流的計算以及面向控制的任務進行了最佳化
        • 高時鐘頻率
        • 功耗更低
      • 缺點
        • 在同一裝置上混合控制應用程式和訊號處理,非即時任務可能會干擾時間關鍵任務
        • 開發人員的技能必須更高

可程式設計邏輯器件 (PLD)

[edit | edit source]

處理器由多層組成:最底層是電晶體,如果連線電晶體,您將獲得邏輯閘,透過連線這些邏輯閘,您可以製作一個電路。 在 PLD 中,所有層都已存在,這些層實現了一個可程式設計電路,其中程式設計的含義比軟體程式的含義更低階。

有兩種型別的 可程式設計邏輯器件

可程式設計邏輯器件與全定製晶片相比的優勢

    • 設計成本低(快速產品開發)
    • 幾乎可以立即獲得
  • 缺點
    • 單位成本更高
    • 比 ASIC 更大
    • 功耗更高
  • 示例:FPGA

有大量針對訊號處理的標準構建塊庫可用(快速開發)FPGA 像 ASIC 一樣針對特定最終產品最佳化硬體。 它們還可以執行大規模平行計算(MCU 或 DSP 無法做到)。 由於它們的功耗和成本,它們不應在行動式或對成本敏感的系統中使用。 [需要引用] FPGA 由於其可配置的特性,能夠與任何外部裝置通訊。 可以基於 FPGA 實現建立 ASIC

有關更多詳細資訊,請參閱 可程式設計邏輯

[edit | edit source]
  • 多核 CPU
  • Cell 處理器
  • GFX 卡:隨著這些卡上可用處理能力的提高,使用它們不僅僅用於圖形處理本身變得越來越有趣。 它們特別擅長 並行處理,可以用作 流處理器,它們通常被稱為 GPGPU。 目前只有 NVIDIA CUDAATI/AMD CTM 系統可用。
  • 多處理器 解決方案:可以使用多個不同的處理器在不同級別控制系統。 例如:微控制器可用於低階本地控制,它們可以接收來自更高控制級別的命令,這些命令可能在嵌入式 CPU 上實現,而嵌入式 CPU 又可以透過控制室中的通用 CPU 進行重新程式設計。

製造商

[edit | edit source]

核心業務是汽車電子系統。 Melexis 也是具有感測器相容介面的全保護微控制器的製造商。 標準產品系列包括微控制器和感測器 IC 等。

恩智浦提供微控制器、積體電路和邏輯器件。

嵌入式系統設計諮詢。

Coware 是一家專注於 ESL 電子系統級 DSP 系統軟硬體設計的公司。

Easics 參與設計完整的電信產品 ASSP,即針對電信裝置製造商的 應用特定標準產品

研究和技術領域包括寬頻、嵌入式系統和無線網路。

Atmel 公司設計和製造先進的半導體產品,重點是微控制器、非易失性儲存器、邏輯、射頻 (RF) 元件和感測器。

Microchip 開發了名為 PIC 的多種微控制器,用於汽車應用、家用電器、熱管理、電源管理等。該公司還在儲存器、射頻產品和介面方面活躍。

MIPS 為全球嵌入式市場提供廣泛的 32 位和 64 位處理器核心。

ARM 開發處理器、快取和 SoC 設計、應用特定標準產品 (ASSP)、相關軟體和開發工具。

瑞薩電子是日立和三菱半導體集團的合併公司,它開發 SuperH CPU 核心、架構和產品(SuperH

德州儀器提供廣泛的嵌入式處理器,從流行的超低功耗 MSP430 到高速 DSP。TI 還專門從事模擬和無線解決方案。

可程式設計邏輯控制器 (PLC)

[edit | edit source]

可程式設計邏輯控制器誕生於需要一種裝置來消除調整和更換複雜繼電器式機器控制系統所帶來的巨大成本。可程式設計邏輯控制器是專門的工業計算機。PLC 是一種即時裝置:接收來自開關和感測器的輸入,根據程式(邏輯)評估這些輸入,並改變輸出狀態來控制機器或過程。

優點

[edit | edit source]

PLC 的使用非常簡單:程式設計、佈線、安裝和更改簡單快捷。PLC 的另一個重要特性是其環境適應能力:PLC 設計用於

  • 擴充套件溫度範圍
  • 髒汙或粉塵條件
  • 抗電氣噪聲
  • 抗振動和衝擊

PLC 不僅僅包含處理器,還包含 I/O 佈局:所有 PLC 都包含六個基本元件

    • 處理器或 CPU
    • 機架或安裝座
    • 輸入元件(感測器可以是模擬或數字的)
    • 輸出元件
    • 電源
    • 程式設計單元、裝置 (PC)

PLC 程式

[edit | edit source]

CPU 執行程式。該邏輯可以用梯形圖、指令表、順序功能圖或任何 IEC 語言編寫。

該程式將被下載到 PLC。

I/O 功能

[edit | edit source]

現代 PLC 與其他處理器的主要區別在於 I/O 佈局。這些佈局將 PLC 連線到感測器和執行器。根據這些佈局,PLC 可以分為三類:模組化、機架式和 P2P。

模組化 PLC 內建有限數量的輸入和輸出連線(數字和模擬)。如果基本型號沒有足夠的 I/O 連線,可以使用擴充套件模組。

  • 機架式 PLC

機架式 PLC 具有處理器模組和獨立的 I/O 模組,這些模組可能佔據多個機架。這些模組通常具有數千個離散和模擬輸入和輸出。通常使用高速序列 I/O 連結,以便機架可以遠端安裝在處理器之外,從而減少大型工廠的佈線成本。

在較大的 I/O 系統中,PLC 之間可能存在 P2P(對等)通訊。這允許複雜過程的不同部分具有獨立的控制,同時允許子系統透過通訊鏈路進行協調。

通訊

[edit | edit source]
    • I/O 模組可以透過以下方式與 PLC 的 CPU 通訊
      • 背板

I/O 模組可以位於同一個機架或站點。通訊在機架內或跨背板進行。

      • 背板擴充套件

背板擴充套件模組允許 I/O 模組位於與控制器分離的機架或站點。

      • 裝置網路

模組可以透過網路與控制器通訊。工業網路用於將現場裝置與控制器互連。(現場匯流排ProfibusDeviceNet

    • PLC 之間
      • 序列通訊
      • 工業通訊網路
      • 工業 I/O 網路

缺點

[edit | edit source]
  • 它無法處理複雜情況
  • 價格昂貴,因此不適合大規模生產
  • 需要維護

-> 關於比較 PLC 與其他型別處理器技術的良好參考資料:[3][4]

有關 PLC 和程式設計的參考資料 [5][6][7][8][9]

[edit | edit source]

為了能夠處理更復雜的情況,正在朝著 PC 的方向發展(PAC:可程式設計自動化控制器)。PC 和 PLC 之間的界限越來越模糊。語言也變得更加複雜,同時朝著更復雜的 PLC 方向發展。

-> 一個關於其未來和向 PC 發展的有趣連結:[10](荷蘭語),[11]

連結和參考資料

[edit | edit source]
  1. a b 如何選擇嵌入式媒體處理器,第一部分 由 David Katz 和 Rick Gentile 撰寫;和 如何選擇嵌入式媒體處理器,第二部分 由 David Katz 和 Rick Gentile 撰寫

  • 嵌入式系統設計:統一的硬體/軟體介紹

作者:F. Vahid 和 T. D. Givargis

作者:Rick Kuhlman

作者:Joel Huebner

作者:Kim Rowe

作者:David Katz

作者:Henk Capoen

嵌入式控制系統設計

華夏公益教科書