top of page

【Tech Tip】淺談嵌入式系統 I/O 的差異與其工作原理

I/O 輸入和輸出裝置


嵌入式系統由各種硬體元件組成,以實現其預期的功能;這些組件通常包括處理器(如微控制器、或微處理器)、電源供應器、定時器/計數器、輸入和輸出裝置、記憶體,以及通訊埠(如CAN、SPI、I2C、USB、Ethernet、UART等)。


特別是輸入和輸出裝置(I/O或IO裝置)元件,用於將資料傳輸到電腦、或在電腦中傳輸資料;換句話說,輸入裝置用於將資料發送到CPU,而輸出裝置則接收來自CPU的資料;在嵌入式系統中加入輸入/輸出功能可以讓使用者控制電腦或系統,同時也使電腦或系統能夠與使用者進行互動。


在本文中,我們將解釋輸入和輸出裝置,它們的差異,以及它們如何幫助嵌入式系統運作。


輸入裝置


輸入裝置是一種硬體元件,連接到主要裝置(如電腦),並將資料傳送到處理元件;輸入裝置通常是外部裝置,它們允許使用者與電腦或系統進行互動和控制,輸入裝置將物理輸入轉換為二進制資訊,然後將其傳送到處理單元進行運算,以執行特定任務;輸入裝置以腳位的形式顯示,可以是串行或並行、類比或數位。


person using keyboard and mouse

Photo by Anete Lusina


輸入裝置的範例


輸入裝置的例子包括鍵盤、觸控板、攝影機、麥克風、GPS和各種感應器。


輸出裝置


輸出裝置是一種硬體元件,連接到主要裝置(如電腦),將從處理單元接收到的資料,轉換為人類可感知的形式,讓使用者可以理解和使用,這可以是文字、圖形、音訊或視訊;通常,輸出裝置是人們用來執行操作或任務的外部裝置,輸出裝置以腳位的形式顯示,也可以是串行或並行、類比或數位。

computer monitor displayed on task with speakers

Photo by Karol D.


輸出裝置的範例


輸出裝置的例子包括:顯示器和投影機(視訊輸出)、耳機和電腦揚聲器(音訊輸出)、以及印表機(文字/圖形輸出)。


嵌入式系統中的輸入和輸出裝置


輸入和輸出裝置是嵌入式系統中的重要元件,與處理器(例如CPU)和記憶體等其他元件一起協同工作,它們的目的是使系統能夠接收外部的資料(輸入)、或將處理後的資料傳輸出去(輸出),以執行特定的任務或功能;這些裝置可以是鍵盤、觸控板、攝影機、麥克風等用於接收資料的輸入裝置,也可以是顯示器、印表機、音箱等用於將資料顯示或傳輸的輸出裝置;藉由與處理器和記憶體的協同作用,這些裝置能夠實現使用者與嵌入式系統之間的互動和控制,並使系統能夠執行所需的任務。


那麼,這些元件如何一起運作以執行預期的功能呢?


首先,了解記憶體和處理元件的角色,以及它們在輸入和輸出操作中的重要性是有幫助的。


處理元件


嵌入式系統需要一個處理元件,例如中央處理器(CPU),來執行所有的任務,處理器被視為系統中的主要晶片,負責提取和解碼資料,然後根據記憶體裝置給出的指令執行操作。


記憶體


記憶體用於在嵌入式系統中儲存處理所需的暫時或永久資訊,有多種類型的記憶體,包括:隨機存取記憶體(RAM)、唯獨記憶體(ROM)、或可擦除可編程唯讀記憶體(EEPROM);記憶體負責存儲啟動系統所需的資料,或臨時存儲從輸入裝置收集的資料。


在輸入/輸出、記憶體和處理器之間傳輸資料


整個系統中的輸入、輸出、記憶體和處理器各自扮演著不同的角色,使系統能夠接收資訊並轉換為實際操作。


首先,輸入裝置(可以是外部裝置或感測器)收集物理輸入,並將此資訊轉換為處理器可以理解的二進位資料,這些資料被傳送到系統的記憶體裝置中並儲存起來;然後,處理器從記憶體中提取存儲的指令集,進行算術或邏輯操作,以提供輸出結果。這些資訊再次被傳送回記憶體裝置中,等待輸出裝置使用。一旦準備就緒,輸出裝置將資訊轉換為實際的物理輸出。


以下是輸入/輸出、記憶體和處理器之間資料流的示例:

Relationship between inputs, outputs, CPU, and memory diagram


使用個人電腦的情境是現實生活中的一個例子,在這種情況下,鍵盤就是輸入裝置,透過按下字母、數字和符號鍵,使用者可以向電腦提交資料和指令,每個按鍵都會轉換為處理器可以解讀和識別的二進位數字;這些數字被儲存在系統的記憶體中,並傳送給處理器進行計算,以提供輸出結果;這些資訊隨後由輸出裝置(如顯示器)使用,將使用者輸入的資訊顯示在螢幕上。


嵌入式系統的工作原理


嵌入式系統是一種電腦化控制器,使用即時作業系統在大型電器或機械裝置中,執行特定的功能或多個功能;當我們提到嵌入式系統時,通常指的是一個嵌入到其他裝置中的電腦系統(通常為微控制器),例如:家用電器、家庭自動化裝置、遊戲機、手機或印表機,嵌入式系統在這些裝置中扮演著重要的角色,用於控制、監測和執行各種功能。


嵌入式系統的即時作業系統,是一種能夠即時處理和回應任務的作業系統;它的設計目標是確保系統能夠按時執行所需的功能,因此在時間敏感的應用中非常重要。


嵌入式系統的設計是將處理器、記憶體、和輸入輸出裝置結合在一起,以實現特定的功能;處理器是系統的核心,負責執行指令、進行計算和處理資料;記憶體用於儲存指令和資料,包括:臨時和永久資料,輸入輸出裝置用於接收外部資料輸入和將處理結果輸出。


我們可以總結嵌入式系統的定義特點如下:

 It is a computer system (hardware and software)

  • 它是一個包含硬體和軟體的電腦系統

  • 它由微控制器或微處理器驅動

  • 它嵌入在另一個裝置中

  • 它使用即時作業系統

多年來,微處理器已經在電腦中得到廣泛應用,但現在有高達98%的微處理器晶片,被用於嵌入式系統和電腦化裝置,而不是用於電腦本身;即時作業系統的目的,是以最小的處理延遲來處理進入系統的資料。


嵌入式系統的關鍵特點


除了上述定義的特性之外,我們觀察到的大多數嵌入式系統還具有幾個共同的特點,了解這些特點以及背後的原因,可以幫助我們更好地理解嵌入式系統工程師所做的一些最重要的設計決策。


嵌入式系統必須包含處理器引擎


嵌入式系統是一種電腦,而所有電腦都需要處理器,嵌入式系統工程師可以在他們的嵌入式系統專案中,選擇通用微處理器和微控制器裝置;通用微處理器使用獨立的整合電路來處理計算和運算功能,並需要額外的記憶體和外部裝置來達成不同的任務;而微控制器則內建了處理器、記憶體和外部裝置,整合在同一個晶片上,這使得微控制器在成本、功耗、和尺寸方面具有優勢,適用於許多嵌入式系統應用;因此,根據具體的需求和應用場景,工程師可以選擇最適合的處理器引擎。


微處理器晶片完全專注於提供嵌入式設備所需的處理能力,因此可以期望通用微處理器具有更高的處理速度;另一方面,微控制器提供的片上外部裝置,可以減少整體設備的尺寸和功耗,降低成本;微處理器還需要更多的支援電路,而更多的零組件和電路,意味著更多可能發生故障或故障的地方。


嵌入式系統可能沒有使用者介面


如果您正在使用電腦或手機閱讀這篇文章,您是透過一種稱為使用者介面的方式與電腦進行互動,使用者介面是您作為使用者可以與電腦進行互動的媒介,它包括螢幕、桌面的外觀、電腦揚聲器或耳機,以及鼠標和鍵盤等輸入裝置;您的電腦上的使用者介面是雙向的 - 您使用屏幕和揚聲器來接收訊息,而鍵盤和滑鼠則是輸入設備,用於發送訊息;然而,嵌入式系統可能沒有這樣的使用者介面。


相比之下,大多數嵌入式系統都不具備使用者介面;想想控制您汽車上的防鎖死煞車系統、或胎壓監測系統的電腦,這些嵌入式系統使用傳感器來監測您汽車的特定特徵,並根據傳感器的資料觸發自動反應;作為車輛操作者,您無法透過使用者介面與這些系統進行互動,儘管當這些嵌入式系統執行某些操作時,您可能會收到相應的指示。


沒有使用者介面的嵌入式系統,沒有使用者介面的嵌入式系統被設計為能夠在長時間內獨立運作,而不需要使用者的輸入,這些系統通常被嵌入到其他設備或系統中,並且在背景中執行特定的任務或功能,它們依靠預先設定的程序和參數來執行操作,而不需要使用者的干預;因此在部署之前,徹底進行除錯非常重要。這可以透過一種稱為協議分析儀的設備來完成,該設備可以監控系統上的流量,幫助設備開發人員快速診斷和修復錯誤。


現代車輛包含各種監測和控制不同功能的嵌入式系統,其中一些系統可以透過內建於車輛儀表板的使用者介面進行控制,而其他系統則獨立運行,不需要駕駛員的輸入。


嵌入式系統是根據特定目的進行設計的


在現今製造的車輛中可以找到各種類型的嵌入式系統,但為什麼製造商不只使用一台電腦控制整輛車呢?


事實上,所有的嵌入式系統都是為特定目的而設計的,每個嵌入式系統都經過優化,確保其能夠以最佳性能執行其指定的任務,優化可以包括選擇最適合的硬體平台、使用高效率的演算法、和編程技術、最小化資源使用,以及提高系統的可靠性和效能等。例如,一個嵌入式系統可能負責控制車輛的網路連接,另一個可能負責控制停車輔助功能;它們可能具有一些相似的特性,但它們的輸入和輸出、電源和記憶體需求、應用程序、甚至可能操作系統都可能不同。


嵌入式系統通常是高度專業化的,它們被設計和優化用於執行特定的任務或功能;這些系統在設計階段就被限定了其功能和用途,且通常不具備通用運算能力;相較於一般的通用運算,嵌入式系統的硬體和軟體都是針對特定應用進行優化,以達到最佳的效能、功耗和成本效益。


由於嵌入式系統的特定性,它們的設計通常涉及特定的硬體元件、嵌入式處理器、專用的軟體驅動程式、和即時作業系統。這些系統的設計目標是確保它們能夠可靠地執行特定的任務,並在特定環境中達到預期的性能和功能。


由於嵌入式系統的高度專業化,它們通常無法執行像一般電腦的通用軟體或應用程式,它們的軟體是針對特定任務和硬體設計的,因此無法直接執行其他不相容的軟體;嵌入式系統的專業化和優化使其能夠在限制的資源下,實現高效能和穩定性,並提供符合特定需求的解決方案。


嵌入式應用程式是內建的


嵌入式系統始終是為特定目的或應用而設計的,開發者和使用者在部署後,通常無法安裝額外的應用程式到設備上;因此,所有運行嵌入式系統所需的應用程式都內建在設備本身中,這使得嵌入式設備在定義上是硬體和軟體的結合產品。


在桌面電腦運算中,製造商會建立硬體和作業系統,讓使用者能夠在平台上部署各種應用程式;軟體開發者可以開發與最流行的作業系統相容的應用程式。但在嵌入式系統工程中,設備的硬體可以根據應用程式的特定性能需求進行設計。


嵌入式系統使用即時作業系統(Real-Time Operating System, RTOS)


嵌入式系統採用即時作業系統(RTOS),以確保系統內的應用程式能夠在資料進入系統後立即進行處理,處理延遲以十分之幾秒為單位,即使是最小的延遲也可能被視為系統故障;處理時間的限制是嵌入式系統工程師面臨的最重要挑戰之一,他們必須確保系統始終在指定的時間內處理資料。


在嵌入式系統中,有兩種常見的即時作業系統(RTOS)設計:


事件驅動型RTOS(Event-Driven Real-Time Operating System):


採用稱為搶先式優先級調度(Preemptive Priority Scheduling)的資源排程方法;在這種系統中,只有當新任務的優先級別高於當前任務時,RTOS才會切換到不同的任務;根據優先級別水平,RTOS會按照排程方式來安排和管理任務。


時間共享型RTOS(Time-Sharing Real-Time Operating System):


則是定期使用時脈中斷(Clock Interrupt)切換任務,該系統不指定優先等級,而是頻繁地在任務之間進行切換,以確保每個任務都得到執行。


嵌入式系統工程師會對其設備進行廣泛的台面測試(Benchtop Testing),在控制的環境下,進行的實驗室測試或評估,以驗證嵌入式系統的功能和性能;在台面測試中,設備被放置在實驗室的測試台面上,使用各種測試方法和工具來模擬不同的工作條件和情境,並進行各種測試項目,例如:功能測試、壽命測試、效能測試等;透過台面測試,工程師可以評估嵌入式系統的穩定性、可靠性和性能,並做出相應的改進和優化,以確保RTOS按照規格要求運行。


嵌入式系統是資源有限的


嵌入式系統的真正設計挑戰,在於使用資源有限的電腦系統;由於其體積必須小且元件數量有限,嵌入式系統相較於較大型的電腦而言,資源受到極大的限制;儘管桌上型電腦的儲存空間以「TB」為單位,嵌入式系統設計者卻必須面對,將更多記憶體塞入更小封裝的現實挑戰。


我們先前提到,嵌入式工程師可以根據精確的應用需求設計嵌入式硬體,當你意識到增加40%的處理能力、或40%的記憶體,可能會導致設備成本增加40%時,這一點變得更加重要;而且由於該設備只需執行一個特定的功能,選擇最便宜的硬體以滿足這些需求是合理的。


嵌入式系統可能受到電力限制


行動裝置中的嵌入式系統可能依賴於電池作為其電力來源,因此它們面臨著影響系統設計選擇的電力限制,而不是依賴於外部電源或插座。為了讓裝置對使用者更為友善,因此在設計這些嵌入式系統時需要考慮節能和功耗控制,以延長電池壽命並提供長時間的使用時間。


嵌入式系統在您的車輛中透過車輛電池供電,而該電池在您啟動引擎時進行充電;嵌入式系統在您的車輛中的高效設計和低功耗,因此有助於降低整體運營成本。


嵌入式系統對你的日常生活產生重大影響


無處不在的嵌入式系統,幾乎影響了我們日常生活的方方面面,在我們的汽車、家庭和攜帶的行動設備中都存在,讓我們能夠以我們所選擇的方式生活;無論是在家中、在車上還是隨身攜帶的行動設備中,嵌入式系統都扮演著重要的角色;它們為我們提供了各種功能和便利,並透過即時操作系統來處理和回應環境中的資料;這些嵌入式系統都經過精心設計,以滿足特定的需求,同時努力減少成本、功耗和硬體要求,嵌入式開發者面臨著在有限資源下實現這些目標的挑戰,並不斷推動嵌入式技術的創新和進步。


現代的技術和嵌入式系統


因為現代科技,包括設備、消費品和工具,通常需要一個完整的指令系統和通訊協議來操作和執行特定任務;畢竟,嵌入式系統本質上是一個專門執行特定任務或一組任務的電腦系統,作為整個系統的一部分。現代科技和嵌入式系統緊密相連,這些系統的運作是為了滿足各種不同的需求,從家用電器到工業機械,從智能手機到交通系統,都依賴著嵌入式系統的精確和高效執行;這些系統以小型化、低功耗和高度可靠性為特點,使得現代科技得以實現更多的功能和便利。


無論是在我們日常生活中使用的智能家居設備,還是在各行各業中用於監控、控制和自動化的系統,嵌入式技術的應用都是不可或缺的,它們在設計和製造過程中需要考慮各種因素,如效能、成本、功耗和可靠性,以確保這些系統能夠順利運行並滿足用戶的需求。 隨著科技的不斷進步,嵌入式系統的重要性將會繼續增加,它們在現代科技中扮演著關鍵的角色,為我們的生活帶來更多的便利和創新;因此,嵌入式系統的設計和開發將繼續成為科技領域的重要領域,並帶動著整個行業的發展和進步。


嵌入式系統如何與我們一起運作


嵌入式系統存在於我們的家中,被整合到遙控器、鬧鐘、恆溫器等設備中;即使在路上,我們也可以看到嵌入式系統的實際應用,汽車由數百個嵌入式系統組成,可以同時運作,每個系統都擔任特定的功能,如播放收音機、控制車窗、和啟動防鎖死煞車系統;同樣地,工作場所也必然融入嵌入式系統。沒有這些系統,人們無法執行重要的日常任務,例如影印、掃描,甚至搭乘電梯;總之,嵌入式系統每天都會影響著你的生活。


Total Phase如何支援嵌入式系統開發


Total Phase 提供各種開發工具,以協助開發和除錯嵌入式系統:


主機轉接器


使用Total Phase I2C和SPI主機轉接器,使用者可以模擬主機 (master) 和/或從屬 (slave) 設備,快速編程EEPROM和Flash記憶體,甚至進行原型設計和測試各種系統;使用這些工具,使用者可以驗證中央處理器 (CPU) 和外圍設備是否按預期運作。我們的主機轉接器包括:



The Aardvark I2C/SPI Host Adapter是一個通用的主機轉接器,可模擬I2C或SPI主機 (master) 或從屬(slave) 設備;作為I2C主機,可達到最高800 kHz的訊號速度;作為SPI主機,可達到最高8 MHz的訊號速度;作為SPI從屬設備,可達到最高4 MHz的訊號速度。


The Cheetah SPI Host Adapter是一個快速而強大的USB到SPI主機轉接器,可在最高40+ MHz的速度下進行通訊。


Promira Serial (I2C/SPI/eSPI) 平台是一個以FPGA為基礎的平台,透過可下載的應用程式,支援多種不同的協議、速度和功能;它可以模擬I2C或SPI主機或從屬設備;作為SPI主機,可達到最高80 MHz的訊號速度;作為SPI從屬設備,可達到最高20 MHz的訊號速度;作為I2C主機或從屬設備,可達到最高3.4 MHz的訊號速度,同時也適用於原型設計。


協議分析儀


Total Phase提供各種協議分析儀,讓使用者可以即時監控I2C、SPI和USB設備之間傳送的匯流排通訊:


Beagle I2C/SPI協議分析儀可以非侵入式地監控最高4 MHz的I2C通訊、和最高24 MHz的SPI通訊。


Beagle USB 12協議分析儀可以非侵入式地監控全速/低速USB(12 Mbps/1.5 Mbps)。


Beagle USB 480協議分析儀可以非侵入式地監控高速USB 2.0(高達480 Mbps),並提供類別級解碼(class-level decoding)功能,識別和顯示所傳輸的特定協議類別或訊息,使用者可以更輕鬆地識別和故障排除特定的協議行為或問題。


Beagle USB 480 Power協議分析儀 - 終極版可以非侵入式地監控高速USB 2.0(高達480 Mbps),並提供類別級解碼功能,該工具可以即時繪製VBUS電流和電壓數值的圖表,並允許與USB資料進行互動和雙向相關性的匹配,此工具還支援USB 2.0高階觸發功能。


Beagle USB 5000 v2 SuperSpeed協議分析儀 - 終極版可以非侵入式地監控USB 3.0或USB 2.0(高達5 Gbps),並提供類別級解碼功能;它可以執行USB 2.0和USB 3.0的簡易和高階匹配/觸發,對於USB 3.0高階觸發功能,該工具允許定義最多八個狀態,每個狀態每個流可以有三個匹配項。


如需了解更多有關我們的工具如何幫助您針對嵌入式應用程式的訊息開發或除錯,歡迎透過 Email sales@eagletek.com.tw,或者透過網頁下方的即時通訊與我們聯繫。


Commentaires


歡迎 訂閱翔宇科技主題式電子報 >,您將可同步掌握最新的產業新訊以及技術文章。
bottom of page