micon_what3

  1. Home>
  2. 電子小百科>
  3. 什麼是微控制器?>
  4. 微控制器處理的訊號

微控制器處理的訊號

什麼是類比訊號和數位訊號

下麵介紹類比訊號和數位訊號。
類比訊號是連續變化的訊號,數位訊號是離散(不連續)的訊號。
下圖是類比訊號和數位訊號的波形示例。

類比訊號
類比訊號的一個主要特徵是“具有連續性”。簡而言之,類比訊號有無限個中間值,將其繪製成圖形時,是一條平滑連續的線。實際上,在我們的周圍類比訊號無處不在。
數位訊號
數位訊號的一個主要特徵是“不具有連續性”。用專業術語來說,也稱為“離散(不連續)”訊號。言而言之,就是沒有中間值,將其繪製成圖形時,不是連續的訊號。另一個重要的特徵是只有0和1。

類比訊號和數位訊號

為什麼需要數位訊號?

我們周圍的訊號大多數是類比訊號。在類比訊號和數位訊號之間需要需要特殊的電路作為介面。下面介紹為什麼會使用數位電路。這是因為與處理類比訊號的電路(以下稱“類比電路”)相比,處理數位訊號的電路(以下稱“數位電路”)可以實現小型化和更低功耗。另外,數位訊號還具有抗干擾能力強的優點。

前面也提到過,類比訊號是具有中間值的訊號。產生類比訊號的元件的細微變化(波動)可能會導致訊號失真。為了抑制元件細微變化的影響,需要在一定程度上增加元件的尺寸。這意味著元件不能小型化。此外,要持續輸出中間電壓,就需要始終保持電流流動;而如果要降低消耗電流,電路尺寸就會變大,這種此消彼長的權衡取捨關係也需要取得平衡。
數位訊號只有最大值或最小值這兩種數值,可以透過元件的ON或OFF生成。因此,即使元件有一些變化(波動),也不是大問題。這意味著支援元件的小型化。另外,由於不是類比訊號,因此不需要保持電流流動,從而可以減少電流消耗。

類比電路和數位電路

下面我們來探討一下訊號衰減。前面也提到過,類比訊號是具有中間值的訊號。這意味著1和0之間存在0.3、0.75這樣的小數。我們來看一下需要保存訊號或需要通訊時的情況。比如需要保存時,打算保存0.75,但是幾年後變成了0.7,就不能說原始資料被保存住了。再比如需要通訊時,打算發送0.3,但收到的是0.4,就不能說原始資料已經發送好了。類比訊號具有會衰減的劣勢。
相比之下,數位訊號只有1和0。0.5附近有閾值,如果是0.5以上則判定為1,小於0.5則判定為0。再看前面的例子。打算保存1,幾年後變成了0.9,但因其高於閾值0.5,所以仍然會被判定為1。打算發送0,收到的是0.1,但因其小於閾值0.5,所以仍然會被判定為0。可見,數位訊號就具有抗干擾能力強的特點。

使用僅包含0和1的數位訊號存儲資訊的方法之一就是0和1的組合。例如,如果使用ASCII代碼將字母a用0和1來表示的話,是01100001。除了ASCII之外,還有多種字元代碼。不僅字元代碼,圖像和音樂都可以用0和1的組合來再現。

類比訊號和數位訊號的再現性

微控制器內部的訊號

微控制器內部是透過前述的具有出色再現性的數位訊號來執行處理的。然而,我們周圍的訊號大多是類比訊號。因此,當輸入到微控制器時,需要先透過類比數位轉換(A/D轉換)將類比訊號轉換為數位訊號,然後再進行運算等複雜的處理。將處理結果作為類比訊號輸出時,需要進行數位類比轉換(D/A轉換)。因此,A/D轉換和D/A轉換是微控制器的重要功能。

微控制器內部的訊號

二進位數字和十六進位數

數位電路都可以用電晶體來表示。電晶體的輸出狀態為H或L,如果按照H=“1”、L=“0”來表示,即可用二進位數字來表示電路的狀態。由於能夠這樣以數學方式表示,使得數位電路技術得以快速發展。可見二進位數字在處理數位訊號方面是一種非常重要的計數方法。
我們平時使用的十進位數字“0”到“7”可以用二進位數字來表示如下:

0=0b000
1=0b001
2=0b010
3=0b011
4=0b100
5=0b101
6=0b110
7=0b111

其中,“0b”中的b來自“binary(二進位)”中的b,是用來聲明這是二進位數字的符號。

關於二進位數字

處理數位訊號時的另一個重要計數方法是十六進位。十六進位是一種使用”0”~”F”來計數的方法。十進位數字“0”到“15”可以用十六進位來表示如下:

0=0x0
1=0x1
2=0x2
3=0x3
4=0x4
5=0x5
6=0x6
7=0x7
8=0x8
9=0x9
10=0xA
11=0xB
12=0xC
13=0xD
14=0xE
15=0xF

其中,“0x”中的x來自“hexadecimal(十六進位)”,是聲明這是十六進位數的符號。

關於十六進位數

二進位數字和十六進位數之間的轉換

如果用二進位來表述一個很大的十進位數字,例如255,將是“0b11111111”,非常長,也很容易誤讀位數。而如果使用十六進位來表述,就變成了“0xFF”,可以減少位數,還可以減少錯誤。這就是使用十六進位的原因。

之所以使用十六進位而不是十進位,是因為從二進位數字轉換為十六進位數字更加容易。
例如,將“0b0010110011111000”轉換為十六進位數時,僅需將二進位數字以4位(4bit)為一組進行劃分,然後將每組分別轉換為十六進位數即可,很簡單。在上面的示例中,”0b 0010 1100 1111 1000”=”0x2AF8”。

二進位數字⇔十六進位數

通用微控制器技術規格書下載

micon_loaclNavi

Side Navi-Electronics Trivia (sidemenu)

電子小百科:共通CSS