新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > UART、IrDA、SPI、I2C MSP430學(xué)習(xí)

UART、IrDA、SPI、I2C MSP430學(xué)習(xí)

作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏

SPI、IIC、UART區(qū)別 第一個區(qū)別當然是名字:

本文引用地址:http://butianyuan.cn/article/201611/321223.htm

SPI(Serial Peripheral Interface:串行外設(shè)接口);

I2C(INTER IC BUS)

UART(Universal Asynchronous Receiver Transmitter:通用異步收發(fā)器)
第二,區(qū)別在電氣信號線上:

SPI總線由三條信號線組成:串行時鐘(SCLK)、串行數(shù)據(jù)輸出(SDO)、串行數(shù)據(jù)輸入(SDI)。SPI總線可以實現(xiàn)多個SPI設(shè)備互相連接。提供SPI串行時鐘的SPI設(shè)備為SPI主機或主設(shè)備(Master),其他設(shè)備為SPI從機或從設(shè)備(Slave)。主從設(shè)備間可以實現(xiàn)全雙工通信,當有多個從設(shè)備時,還可以增加一條從設(shè)備選擇線。 如果用通用IO口模擬SPI總線,必須要有一個輸出口(SDO),一個輸入口(SDI),另一個口則視實現(xiàn)的設(shè)備類型而定,如果要實現(xiàn)主從設(shè)備,則需輸入輸出口,若只實現(xiàn)主設(shè)備,則需輸出口即可,若只實現(xiàn)從設(shè)備,則只需輸入口即可。
I2C總線是雙向、兩線(SCL、SDA)、串行、多主控(multi-master)接口標準,具有總線仲裁機制,非常適合在器件之間進行近距離、非經(jīng)常性的數(shù)據(jù)通信。在它的協(xié)議體系中,傳輸數(shù)據(jù)時都會帶上目的設(shè)備的設(shè)備地址,因此可以實現(xiàn)設(shè)備組網(wǎng) 如果用通用IO口模擬I2C總線,并實現(xiàn)雙向傳輸,則需一個輸入輸出口(SDA),另外還需一個輸出口(SCL)。(注:I2C資料了解得比較少,這里的描述可能很不完備)
UART總線是異步串口,因此一般比前兩種同步串口的結(jié)構(gòu)要復(fù)雜很多,一般由波特率產(chǎn)生器(產(chǎn)生的波特率等于傳輸波特率的16倍)、UART接收器、UART發(fā)送器組成,硬件上由兩根線,一根用于發(fā)送,一根用于接收。 顯然,如果用通用IO口模擬UART總線,則需一個輸入口,一個輸出口。


第三,從第二點明顯可以看出,SPI和UART可以實現(xiàn)全雙工,但I2C不行;


第四,看看牛人們的意見吧!

wudanyu:I2C線更少,我覺得比UART、SPI更為強大,但是技術(shù)上也更加麻煩些,因為I2C需要有雙向IO的支持,而且使用上拉電阻,我覺得抗干擾能力較弱,一般用于同一板卡上芯片之間的通信,較少用于遠距離通信。SPI實現(xiàn)要簡單一些,UART需要固定的波特率,就是說兩位數(shù)據(jù)的間隔要相等,而SPI則無所謂,因為它是有時鐘的協(xié)議。 quickmouse:I2C的速度比SPI慢一點,協(xié)議比SPI復(fù)雜一點,但是連線也比標準的SPI要少。


SPI通信

USCI簡介:
新型的高性能雙通信模塊

異步通信模式:UART標準與多處理器協(xié)議;帶自動波特率檢測的UART(即LIN);IrDA(低紅外,最大115kbit);
同步通信模式:SPI(主從模式,3或4線),I2C模式(主從模式)。


uart

TX中斷:

UCA0TXIFG當TX buffer Ready時會被set. UCA0TXIE及GIE也被set時會進中斷.UCA0TXIFG當TX Buffer被寫入數(shù)據(jù),或是Interrupt request被處理完時會自動清除.系統(tǒng)上電默認UCA0TXIFG為1,UCA0RXIFG為0;

MSP430 SPI 或 UART 的速度
  在 SPI 主模式下,通信速率可以達到 4Mbps,而在 UART 模式下,速率也可達到 2Mbps。USART 可進行配置,以便同時支持同步 (SPI) 與異步 (UART) 操作,并且可從幾個內(nèi)部及外部時鐘源(與 CPU 時鐘無關(guān))中進行選擇。在 SPI 主模式下,USART 的運行速率可達到應(yīng)用時鐘的 1/2。例如,如果使用 8MHz 時鐘,則 SPI 主模式的傳輸速率可達到 4Mbps。在 UART 模式下,實現(xiàn)可靠通信至少要求每位 3 或 4 個時鐘。例如,8MHz 時鐘除以 4 可以支持高達 2Mbps 的速率。MSP430xxxx 用戶指南中提供了有關(guān) USART 功能的完整說明。(對應(yīng)于8M)


原文地址:http://hi.baidu.com/yangbme/blog/item/da54ca36149611320a55a99a.html

通信的 SPI 概念

2.1、SPI:高速同步串行口 Serial Peripheral interface

  SPI:高速同步串行口。是一種標準的四線同步雙向串行總線。

  SPI接口主要應(yīng)用在 EEPROM,F(xiàn)LASH,實時時鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。

SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線。

4條線:事實上3根也可以(用于單向傳輸時,也就是半雙工方式)

它們是SDI(數(shù)據(jù)輸入),SDO(數(shù)據(jù)輸出),SCLK(時鐘),CS(片選)。

 ?。?)MOSI– SPI 總線主機輸出/ 從機輸入(SPI Bus Master Output/Slave Input)

  (2)MISO– SPI 總線主機輸入/ 從機輸出(SPI Bus Master Input/Slave Output)

 ?。?)SCLK – 時鐘信號,由主設(shè)備產(chǎn)生

 ?。?)CS – 從設(shè)備使能信號,由主設(shè)備控制(Chip select),有的IC此pin腳叫SS

  其中CS是控制芯片是否被選中的,也就是說只有片選信號為預(yù)先規(guī)定的使能信號時(高電位或低電位),對此芯片的操作才有效。這就允許在同一總線上連接多個SPI設(shè)備成為可能。

  接下來就負責通訊的3根線了。通訊是通過數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)?。這就是SCLK時鐘線存在的原因,由SCK提供時鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過 SDO線,數(shù)據(jù)在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時鐘信號的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。

  要注意的是,SCLK信號線只由主設(shè)備控制,從設(shè)備不能控制信號線。

同樣,在一個基于SPI的設(shè)備中,至少有一個主控設(shè)備。這樣傳輸?shù)奶攸c:這樣的傳輸方式有一個優(yōu)點,與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因為SCLK時鐘線由主控設(shè)備控制,當沒有時鐘跳變時,從設(shè)備不采集或傳送數(shù)據(jù)。也就是說,主設(shè)備通過對SCLK時鐘線的控制可以完成對通訊的控制。

SPI還是一個數(shù)據(jù)交換協(xié)議:因為SPI的數(shù)據(jù)輸入和輸出線獨立,所以允許同時完成數(shù)據(jù)的輸入和輸出。

不同的SPI設(shè)備的實現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時間不同,在時鐘信號上沿或下沿采集有不同定義,具體請參考相關(guān)器件的文檔。

  在點對點的通信中,SPI接口不需要進行尋址操作,且為全雙工通信,顯得簡單高效。在多個從設(shè)備的系統(tǒng)中,每個從設(shè)備需要獨立的使能信號,硬件上比I2C系統(tǒng)要稍微復(fù)雜一些。

2.7、SPI協(xié)議心得

  SPI接口時鐘配置心得:

  在主設(shè)備這邊配置SPI接口時鐘的時候一定要弄清楚從設(shè)備的時鐘要求,因為主設(shè)備這邊的時鐘極性和相位都是以從設(shè)備為基準的。因此在時鐘極性的配置上一定要搞清楚從設(shè)備是在時鐘的上升沿還是下降沿接收數(shù)據(jù),是在時鐘的下降沿還是上升沿輸出數(shù)據(jù)。但要注意的是,由于主設(shè)備的SDO連接從設(shè)備的SDI,從設(shè)備的SDO連接主設(shè)備的SDI,從設(shè)備SDI接收的數(shù)據(jù)是主設(shè)備的SDO發(fā)送過來的,主設(shè)備SDI接收的數(shù)據(jù)是從設(shè)備SDO發(fā)送過來的,所以主設(shè)備這邊SPI時鐘極性的配置(即SDO的配置)跟從設(shè)備的SDI接收數(shù)據(jù)的極性是相反的,跟從設(shè)備SDO發(fā)送數(shù)據(jù)的極性是相同的。

http://baike.baidu.com/view/245026.htm

I2C總線特征

  1、只要求兩條總線線路:一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL;
  2、每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機/從機關(guān)系軟件設(shè)定地址,主機可以作為主機發(fā)送器或主機接收器;
  3、它是一個真正的多主機總線,如果兩個或更多主機同時初始化,數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞;
  4、串行的8 位雙向數(shù)據(jù)傳輸位速率在標準模式下可達100kbit/s,快速模式下可達400kbit/s,高速模式下可達3.4Mbit/s;
  5、連接到相同總線的IC 數(shù)量只受到總線的最大電容400pF 限制。

I2C總線術(shù)語

  發(fā)送器:發(fā)送數(shù)據(jù)到總線的器件;
  接收器:從總線接收數(shù)據(jù)的器件;
  主機:初始化發(fā)送產(chǎn)生時鐘信號和終止發(fā)送的器件;
  從機:被主機尋址的器件;
  多主機:同時有多于一個主機嘗試控制總線但不破壞傳輸;
  仲裁:是一個在有多個主機同時嘗試控制總線但只允許其中一個控制總線并使傳輸不被破壞
  的過程;
  同步:兩個或多個器件同步時鐘信號的過程 。


關(guān)鍵詞: UARTIrDASPII2CMSP43

評論


技術(shù)專區(qū)

關(guān)閉