微控制器中的幾種通訊方式

2021-08-15 09:46:02 字數 2186 閱讀 5341

首先弄懂序列通訊和並行通訊以及串列埠通訊和並口通訊的概念。

序列通行:它是乙個概念,

它是指資料一位一位地順序傳送,其特點就是通訊線路

簡單,只要一對傳輸線

就可實現雙向通訊,適用於遠距離通訊,但傳輸速度慢。它

包括普通的串列埠通訊,i2c,spi,uart...

串列埠通訊:是一種實際通訊方式,但是我們可以幾乎看成一樣.

序列介面:簡稱串列埠,或序列通訊介面,或序列通訊介面(通常指com口)。

並行通訊:

如果一組資料的各資料位在多條線上同時被傳輸,那麼就是並行通訊。

並口介面:就是一種介面,各資料位同時被傳輸,傳輸速度快,效率高,一邊可用於mcu。

序列通訊又可分為單工,半雙工和全雙工

單工:資訊只能單向傳送。

半雙工:資訊能雙向傳送但不能同時。

全雙工:資訊能同時雙向傳送。

序列通訊還可分為同步通訊和非同步通訊

同步通訊(兩根線):是把許多字元組成乙個資訊組,這樣,字元可以乙個接乙個地傳輸,但是,

在每組資訊(通常稱為資訊幀)的開始要加上同步字元,在沒有資訊要傳輸時,要填上空字元,

因為同步傳輸不允許有間隙。同步方式下,傳送方除了傳送資料,還要傳輸同步時鐘訊號,

資訊傳輸的雙方用同乙個時鐘訊號確定傳輸過程中每1位的位置

非同步通訊(一根訊號線,沒有時鐘線):是一種很常用的通訊方式。非同步通訊在傳送字元時,所傳送的字元之間的時間

間隔可以是任意的。當然,接收端必須時刻做好接收的準備。傳送端可以在任意時刻開始傳送字元,

因此必須在每乙個字元的開始和結束的地方加上標誌,即加上開始位和停止位,以便使接收端能夠

正確地將每乙個字元接收下來。非同步通訊的好處是通訊裝置簡單、便宜,但傳輸效率較低(因為開始位和停止位的開銷所佔比例較大)。

同步通訊與非同步通訊區別:

1.同步通訊要求接收端時鐘頻率和傳送端時鐘頻率一致,傳送端傳送連續的位元流;非同步通訊時

不要求接收端時鐘和傳送端時鐘同步,傳送端傳送     完乙個位元組後,可經過任意長的時間間隔再傳送下乙個位元組。

2.同步通訊效率高;非同步通訊效率較低。

3.同步通訊較複雜,雙方時鐘的允許誤差較小;非同步通訊簡單,雙方時鐘可允許一定誤差。

4.同步通訊可用於點對多點;非同步通訊只適用於點對點。

微控制器中的spi、uart、i2c

1、spi

spi允許微控制器和外圍裝置或者微控制器之間高速同步資料傳輸,spi可以有主機和從機模式之選,通訊的主從機之間通過移位暫存器同時交換資料。目前自己用的以主機模式居多。spi需要四線:ss,miso,mosi,sck。

通訊過程:在設定好spi的工作模式:包括sck頻率(資料傳輸速率),工作速度,主從模式,以及資料接收傳送對應的時鐘極性。在主模式下,將ss拉低表示通訊的開始,然後通過向spi資料暫存器中寫入一位元組的資料後自動啟動時鐘sck開始進行一次通訊,通訊完成後會產生相應的中斷標誌,標誌乙個位元組資料的傳送完成。通訊完成後將ss腳拉高,表示通訊過程已經結束。

注意ss引腳的設定:當設定為從機模式時,ss引腳應設定為輸入,拉低的時候spi才能起作用,拉高的話是消極的spi模式;在主機模式下,ss引腳可以設定,一般應設定為輸出,如果設定為輸入的話應保持為高,否則將不能進行正常的主機模式操作。

2、usart

usart的操作比較簡單,主要是設定波特率,資料格式,以及中斷允許位等,值得至於的是其usart in spi mode,在spi模式下的usart的操作跟spi操作差不多,主要是clock的設定,然後傳送資料還是通過usart的中斷進行

3、i2c

i2c介面是簡單強大的通訊介面,只需要兩根雙向匯流排(時鐘和資料線),scl和sda,即可實現乙個主機和最多128個從機進行通訊。模擬i2c介面的過程:啟動i2c,一般是在scl為高時將sda拉低啟動資料傳送,sda只有在scl為低時才能拉高拉低有效,在scl為高時拉高拉低sda只是用於停止啟動i2c通訊

i2c匯流排是

內部匯流排

,用來連線內部系統內的晶元。

串列埠通訊是用來和系統外部的設別通訊的。比如裝置和裝置之間通訊。

spi,uar,i2c都是序列通訊方式,並行通訊方式一般用的少,因為只適合

短距離,一般用於mcu比較多,因為mcu它對資料的傳輸速度有要求,而且

與塔相連的晶元一般會比較近。

mcu他的屬性要比cpu(這裡指微控制器,其他地方應該也是) 強,它包括cpu的效能,

且還有cpu沒有的效能。

微控制器串列埠通訊

微控制器串列埠通訊 通常的usb序列通訊方式為全雙工,即兩條資料線 rxd和txd,一條用於傳送資料,一條用於接收資料。在序列通訊前,需要對序列通訊進行配置。對於微控制器 ri為接受中斷標誌位,未通訊時ri 0 當電腦傳送第乙個位元組幀a0到微控制器時,sbuf a0,中斷標誌位ri 1,微控制器呼...

微控制器 紅外通訊

人的眼睛能看到的可見光按波長從長到短排列,依次為紅 橙 黃 綠 青 藍 紫。其中紅光的波長範圍為0.62 0.76 m 紫光的波長範圍為0.38 0.46 m。比紫光波長還短的光叫紫外線,比紅光波長還長的光叫紅外線.紅外線遙控就是利用波長為0.76 1.5 m之間的近紅外線來傳送控制訊號的。紅外線遙...

微控制器串列埠通訊

1 需求 實現電腦端控制微控制器開啟燈光風扇,顯示微控制器傳遞過來的資料 如溫度 濕度等 2 工具 平台軟體 驅動人生 vs2012 keil4 3 下面就開始吧 4 檢視我們當前的通訊埠號 如圖 然後確定我們微控制器的晶振,我是用的是11.0592m的 即9600 差不多我們就可以開始我們的開發了...