新聞中心

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

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

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

SPI、IIC、UART區(qū)別 第一個(gè)區(qū)別當(dāng)然是名字:

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

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

I2C(INTER IC BUS)

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

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


第三,從第二點(diǎn)明顯可以看出,SPI和UART可以實(shí)現(xiàn)全雙工,但I(xiàn)2C不行;


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

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


SPI通信

USCI簡(jiǎn)介:
新型的高性能雙通信模塊

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


uart

TX中斷:

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

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


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

通信的 SPI 概念

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

  SPI:高速同步串行口。是一種標(biāo)準(zhǔn)的四線同步雙向串行總線。

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

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

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

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

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

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

  (3)SCLK – 時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生

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

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

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

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

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

SPI還是一個(gè)數(shù)據(jù)交換協(xié)議:因?yàn)镾PI的數(shù)據(jù)輸入和輸出線獨(dú)立,所以允許同時(shí)完成數(shù)據(jù)的輸入和輸出。

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

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

2.7、SPI協(xié)議心得

  SPI接口時(shí)鐘配置心得:

  在主設(shè)備這邊配置SPI接口時(shí)鐘的時(shí)候一定要弄清楚從設(shè)備的時(shí)鐘要求,因?yàn)橹髟O(shè)備這邊的時(shí)鐘極性和相位都是以從設(shè)備為基準(zhǔn)的。因此在時(shí)鐘極性的配置上一定要搞清楚從設(shè)備是在時(shí)鐘的上升沿還是下降沿接收數(shù)據(jù),是在時(shí)鐘的下降沿還是上升沿輸出數(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時(shí)鐘極性的配置(即SDO的配置)跟從設(shè)備的SDI接收數(shù)據(jù)的極性是相反的,跟從設(shè)備SDO發(fā)送數(shù)據(jù)的極性是相同的。

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

I2C總線特征

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

I2C總線術(shù)語

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


關(guān)鍵詞: UARTIrDASPII2CMSP43

評(píng)論


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

關(guān)閉