新聞動(dòng)態(tài)???News
聯(lián)系我們???Contact

為什么都喜歡用串口通訊?那 RS485,SPI 和 I2C 呢?

2024/4/9 16:13:41??????點(diǎn)擊:

     

       1、為什么都喜歡用串口通訊?


       之前在做單片機產(chǎn)品的時(shí)候,用的最多的就是串口通訊,凡是單片機的外設,優(yōu)先選用帶串口功能的,比如藍牙模塊,WIFI模塊,4G模塊,電表和顯示屏等等。

 

       為什么都喜歡用串口通訊?


       因為簡(jiǎn)單啊,通常僅需2條通訊線(xiàn),1條電源線(xiàn)和1條地線(xiàn)相連。






       雙方約定好相同的速度,比如115200bps,以這種數據包的形式給對方發(fā)送數據,一次發(fā)送8位,也就是一個(gè)字節的數據。


     






      2、串口通訊的缺點(diǎn)  
       雖然串口簡(jiǎn)單,但是它也有缺點(diǎn):


       1、遠距離信號不能傳輸;
       2、通訊速度較慢;
       3、只支持一對一通訊,不能一對多通訊。


       所以,針對這幾個(gè)缺點(diǎn),我們需要采用其它的方式來(lái)彌補串口的不足。



      3、RS232,RS485,SPI通訊  


      3.1、RS232,RS485


       像我開(kāi)始舉的例子,單片機跟外設之間距離短可以正常通信,要是我們長(cháng)距離傳輸數據就容易受到干擾,導致通信異常,這時(shí)候聰明的人類(lèi)就發(fā)明了RS232和RS485通信。

       .RS232通信距離可達30m左右;


       .RS485的通信距離理想情況下能超過(guò)1000m,且485的總線(xiàn)上可掛多個(gè)負載。







       通常,串口通信最大的波特率為115200


       如果沒(méi)有校驗位,就應該除以10,得到的是每秒字節數:115200÷10= 11520 (字節/秒)。再除以 1024,就是每秒 KB 數:11520÷1024=11.25 (KB/秒)。

      
       如果有一位奇偶校驗位,就應該除以 11,得到的是每秒 KB 數:115200÷11÷1024= 10.27 (KB/秒)。


      所以串口的速度是非常的慢,之所以這么慢是因為早期的單片機頻率比較低,時(shí)鐘精度也不高,所以通信雙方的波特率不能做到完全一致,速率太快就會(huì )通信異常。


      3.2、SPI


      那如果在通信雙方之間加一個(gè)clock時(shí)鐘信號,不給通信雙方約定相同的速度,我們只需根據時(shí)鐘信號的上升沿進(jìn)行發(fā)送接收數據,大大提高了通信速率,于是產(chǎn)生了SPI通信,它可以輕松突破10M。





      3.3、I2C


      如果我們的單片機要同時(shí)控制多個(gè)外設,用很多串口分別連接是很浪費的,要是一條通信線(xiàn)上可同時(shí)掛多個(gè)外設,那是相當的節約資源,所以就產(chǎn)生了I2C。