為什么都喜歡用串口通訊?那 RS485,SPI 和 I2C 呢?
1、為什么都喜歡用串口通訊?
之前在做單片機(jī)產(chǎn)品的時(shí)候,用的最多的就是串口通訊,凡是單片機(jī)的外設(shè),優(yōu)先選用帶串口功能的,比如藍(lán)牙模塊,WIFI模塊,4G模塊,電表和顯示屏等等。
為什么都喜歡用串口通訊?
因?yàn)楹唵伟。ǔH需2條通訊線,1條電源線和1條地線相連。
雙方約定好相同的速度,比如115200bps,以這種數(shù)據(jù)包的形式給對方發(fā)送數(shù)據(jù),一次發(fā)送8位,也就是一個(gè)字節(jié)的數(shù)據(jù)。
2、串口通訊的缺點(diǎn)
雖然串口簡單,但是它也有缺點(diǎn):
1、遠(yuǎn)距離信號不能傳輸;
2、通訊速度較慢;
3、只支持一對一通訊,不能一對多通訊。
所以,針對這幾個(gè)缺點(diǎn),我們需要采用其它的方式來彌補(bǔ)串口的不足。
3、RS232,RS485,SPI通訊
3.1、RS232,RS485
像我開始舉的例子,單片機(jī)跟外設(shè)之間距離短可以正常通信,要是我們長距離傳輸數(shù)據(jù)就容易受到干擾,導(dǎo)致通信異常,這時(shí)候聰明的人類就發(fā)明了RS232和RS485通信。
.RS232通信距離可達(dá)30m左右;
.RS485的通信距離理想情況下能超過1000m,且485的總線上可掛多個(gè)負(fù)載。
通常,串口通信最大的波特率為115200
如果沒有校驗(yàn)位,就應(yīng)該除以10,得到的是每秒字節(jié)數(shù):115200÷10= 11520 (字節(jié)/秒)。再除以 1024,就是每秒 KB 數(shù):11520÷1024=11.25 (KB/秒)。
如果有一位奇偶校驗(yàn)位,就應(yīng)該除以 11,得到的是每秒 KB 數(shù):115200÷11÷1024= 10.27 (KB/秒)。
所以串口的速度是非常的慢,之所以這么慢是因?yàn)樵缙诘膯纹瑱C(jī)頻率比較低,時(shí)鐘精度也不高,所以通信雙方的波特率不能做到完全一致,速率太快就會(huì)通信異常。
3.2、SPI
那如果在通信雙方之間加一個(gè)clock時(shí)鐘信號,不給通信雙方約定相同的速度,我們只需根據(jù)時(shí)鐘信號的上升沿進(jìn)行發(fā)送接收數(shù)據(jù),大大提高了通信速率,于是產(chǎn)生了SPI通信,它可以輕松突破10M。
3.3、I2C
如果我們的單片機(jī)要同時(shí)控制多個(gè)外設(shè),用很多串口分別連接是很浪費(fèi)的,要是一條通信線上可同時(shí)掛多個(gè)外設(shè),那是相當(dāng)?shù)墓?jié)約資源,所以就產(chǎn)生了I2C。
- 上一篇:實(shí)例講解:LED恒流電路的電路原理 2024/4/18
- 下一篇:慶祝第1000款產(chǎn)品研發(fā)成功 2024/3/27