服務(wù)熱線: 0755-83261303
郵箱:ht@htsemi.com
地址:深圳市龍華區(qū)大浪街道浪口社區(qū)華昌路315號(hào)華昌工業(yè)園
金譽(yù)半導(dǎo)體筆記:什么是MCU單片機(jī)的SPI、UART、I2C通訊接口
正如我們之前所了解的 ,MCU單片機(jī)是一個(gè)集成芯片 ,但這個(gè)集成芯片有一些特殊的功能 ,可以控制外部設(shè)備 ,處理外部設(shè)備收到的數(shù)據(jù),就像人腦一樣 ,可以控制手腳的運(yùn)動(dòng) ,可以處理感官收到的信息,這就是獨(dú)特的 MCU單片機(jī) 。
單片機(jī)的常用功能包括:定時(shí)器(TImer)、I/O口、外部中斷、通訊接口、A/D轉(zhuǎn)換、PWM等。之前金譽(yù)半導(dǎo)體已經(jīng)帶大家重點(diǎn)了解過定時(shí)器(TImer)和I/O口這兩個(gè)功能,那接下來我們了解一下通訊接口的功能是怎樣的。
MCU單片機(jī)所提供的通訊接口一般包括SPI接口,UART,I2C接口等,它們的功能如下:
SPI接口:此類接口是絕大多數(shù)MCU都提供的一種最基本通訊方式,其數(shù)據(jù)傳輸采用同步時(shí)鐘來控制,信號(hào)包括:SDI(串行數(shù)據(jù)輸入)、SDO(串行數(shù)據(jù)輸出)、SCLK(串行時(shí)鐘)及Ready信號(hào);有些情況下則可能沒有Ready信號(hào);此類接口可以工作在Master方式或Slave方式下,通俗說法就是看誰提供時(shí)鐘信號(hào),提供時(shí)鐘的一方為Master,相反的一方則為Slaver。
UART(Universal Asynchronous Receive Transmit):屬于最基本的一種異步傳輸接口,工作原理是將傳輸數(shù)據(jù)的每個(gè)字符一位接一位地傳輸,這個(gè)特點(diǎn)使得UART只要2 根傳輸線就可以實(shí)現(xiàn)雙向通信,一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。那就是Rx和Tx兩條,一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。基本的數(shù)據(jù)格式為:Start Bit + Data Bit(7-bits/8-bits) + Parity Bit(Even,Odd or None) + Stop Bit(1~2Bit)。一位數(shù)據(jù)所占的時(shí)間稱為Baud Rate(波特率)。
對(duì)于大多數(shù)的MCU來講,數(shù)據(jù)位的長度、數(shù)據(jù)校驗(yàn)方式(奇校驗(yàn)、偶校驗(yàn)或無校驗(yàn))、停止位(Stop Bit)的長度及Baud Rate是可以通過程序編程進(jìn)行靈活設(shè)定。此類接口最常用的方式就是與PC機(jī)的串口進(jìn)行數(shù)據(jù)通訊。
I2C接口:I2C是由Philips開發(fā)的一種數(shù)據(jù)傳輸協(xié)議,同樣采用2根信號(hào)來實(shí)現(xiàn):SDAT(串行數(shù)據(jù)輸入輸出)和SCLK(串行時(shí)鐘),SCL線——負(fù)責(zé)產(chǎn)生同步時(shí)鐘脈沖。SDA線——負(fù)責(zé)在設(shè)備間傳輸串行數(shù)據(jù)。其優(yōu)勢(shì)是可以在此總線上掛接多個(gè)設(shè)備,連接到I2C總線上的設(shè)備既可以用作主設(shè)備,也可以用作從設(shè)備,支持多個(gè)主設(shè)備的同時(shí)存在。I2C總線的一個(gè)最大的好處就是非常方便用軟件通過IO口來實(shí)現(xiàn),其傳輸?shù)臄?shù)據(jù)速率完全由SCLK來控制,可快可慢,不像UART接口,有嚴(yán)格的速率要求。
任何一款 MCU,其基本原理和功能都是大同小異,不同的只是其外圍功能模塊的配置及數(shù)量、指令系統(tǒng)等。對(duì)于指令系統(tǒng),雖然形式上看似千差萬別,但實(shí)際上只是符號(hào)的不同,其所代表的含義、所要完成的功能和尋址方式基本上是類似的,所以在編程時(shí)只要根據(jù)自己的邏輯和程序的邏輯要求來編寫相關(guān)的指令即可。