淮安侣拘广告传媒有限公司

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

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

     

       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í)鐘精度也不高,所以通信雙方的波特率不能做到完全一致,速率太快就會通信異常。


      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。



永康市| 东丽区| 什邡市| 前郭尔| 安溪县| 泾川县| 剑阁县| 定远县| 秦皇岛市| 松阳县| 平乡县| 荆门市| 江华| 汝南县| 杂多县| 镇赉县| 彭州市| 太仆寺旗| 铜川市| 崇文区| 会理县| 明星| 安泽县| 额尔古纳市| 聂荣县| 长宁县| 梨树县| 兴隆县| 五原县| 中西区| 雅安市| 兴国县| 平潭县| 盘锦市| 大安市| 安岳县| 藁城市| 铜山县| 文登市| 应城市| 北碚区|