1、什么是串行通信?
串行通信(英語:Serial communication)是指在計算機(jī)總線或其他數(shù)據(jù)通道上,每次傳輸一個位元數(shù)據(jù),并連續(xù)進(jìn)行以上單次過程的通信方式。與之對應(yīng)的是并行通信,它在串行端口上通過一次同時傳輸若干位元數(shù)據(jù)的方式進(jìn)行通信。
簡言之:串行通訊就是排成一隊走,并行就是排成一列走,如下圖
2、同步串行通信(Synchronous serial communication)和異步串行通信(Asynchronous serial communication)
-
發(fā)送端在發(fā)送串行數(shù)據(jù)的同時,提供一個時鐘信號,并按照一定的約定(例如在時鐘信號的上升沿的時候,將數(shù)據(jù)發(fā)送出去)發(fā)送數(shù)據(jù),接收端根據(jù)發(fā)送端提供的時鐘信號,以及大家的約定,接收數(shù)據(jù)。這就是常說的同步串行通信(Synchronous serial communication),I2C、SPI等有時鐘信號的協(xié)議,都屬于這種通信方式。
-
發(fā)送端在數(shù)據(jù)發(fā)送之前和之后,通過特定形式的信號(例如START信號和STOP信號),告訴接收端,可以開始(或者停止)接收數(shù)據(jù)了。與此同時,收發(fā)兩方會約定一個數(shù)據(jù)發(fā)送的速度(就是大名鼎鼎的波特率),發(fā)送端在發(fā)送START信號之后,就按照固定的節(jié)奏發(fā)送串行數(shù)據(jù),與此同時,接收端在收到START信號之后,也按照固定的節(jié)奏接收串行數(shù)據(jù)。這就是常說的異步串行通信(Asynchronous serial communication)。
? SPI:高速同步串行口。3~4線接口,收發(fā)獨立、可同步進(jìn)行串行外圍設(shè)備接口,是Motorola公司推出的一種同步串行通訊方式,是一種三線同步總線,因其硬件功能很強(qiáng),與SPI有關(guān)的軟件就相當(dāng)簡單,使CPU有更多的時間處理其他事務(wù)。SPI通常有SCK時鐘,STB片選,DATA數(shù)據(jù)信號三個信號。 I2C通常有 SDA數(shù)據(jù)和SCL時鐘兩個信號。SPI總線真正實現(xiàn)了全雙工數(shù)據(jù)傳輸,SPI 有3線跟4線兩種,4線的話,就是多了一條叫SDC的線,用來告知從設(shè)備現(xiàn)在傳輸?shù)氖菙?shù)據(jù)還是指令。這個接口較快,可以傳輸較連續(xù)的數(shù)據(jù)。SPI的速度要大于IIC,一般用在產(chǎn)品內(nèi)部元件之間的高速數(shù)據(jù)通信上面,如大容量存儲器等。
? UART:通用異步串行口,一般我們說的單片機(jī)上的“串口”大多是特指UART。可以全雙工通信,線數(shù)也比較少。數(shù)據(jù)是異步傳輸?shù)模瑢﹄p方的時序要求比較嚴(yán)格,通信速度也不是很快。在多機(jī)(單片機(jī)與單片機(jī)之間)通信上面用的最多。
? IIC:一種串行傳輸方式,三線制,網(wǎng)上可找到其通信協(xié)議和用法的,IIC 接口的協(xié)議里面包括設(shè)備地址信息,可以同一總線上連接多個從設(shè)備,通過應(yīng)答來互通數(shù)據(jù)及命令。但是傳輸速率有限,標(biāo)準(zhǔn)模式下可達(dá)到100Kbps,快速模式下可達(dá)到400Kbps,高速模式下達(dá)到Mbps,不能實現(xiàn)全雙工,不適合傳輸很多的數(shù)據(jù)。
? USB:這個肯定是很熟悉的了,幾乎每天都打交道。通用串行總線(英語:Universal Serial Bus,縮寫:USB)是連接計算機(jī)系統(tǒng)與外部設(shè)備的一種串口總線標(biāo)準(zhǔn),也是一種輸入輸出接口的技術(shù)規(guī)范,被廣泛地應(yīng)用于個人電腦和移動設(shè)備等信息通訊產(chǎn)品,并擴(kuò)展至攝影器材、數(shù)字電視(機(jī)頂盒)、游戲機(jī)等其它相關(guān)領(lǐng)域。很多單片機(jī)上也帶有USB接口例如ST的STM32。
以上各種接口的通訊協(xié)議是不一樣的,如UART最簡單的協(xié)議是一個起始位一個終止位中間八個數(shù)據(jù)位,而USB的話通訊協(xié)議就復(fù)雜的多的多。
4、串行接口電氣標(biāo)準(zhǔn)。
TTL電平:TTL電平指的是低電平為0,高電平為1(+5V電平),大多數(shù)的單片機(jī)自帶的串口用的就是這種電平。一般用于芯片之間通信,TTL電平通信距離較短。
UART使用的是單片機(jī)自帶的電平,單片機(jī)是什么電平標(biāo)準(zhǔn)那么該單片機(jī)上的UART就是什么電平標(biāo)準(zhǔn),例如51單片機(jī)的UART就是用的TTL電平。而這種電平是沒辦法用于遠(yuǎn)程數(shù)據(jù)傳輸?shù)模瑸榱四茏尨袛?shù)據(jù)能夠傳輸?shù)母h(yuǎn),我們需要更加強(qiáng)大的傳輸標(biāo)準(zhǔn),于是就有了RS-232、RS-422、RS485等。
? RS-232-C
RS-232-C也稱標(biāo)準(zhǔn)串口,是目前最常用的一種串行通訊接口。它是在1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、 調(diào)制解調(diào)器廠家及計算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”。傳統(tǒng)的RS-232-C接口標(biāo)準(zhǔn)有22根線,采用標(biāo)準(zhǔn)25芯D型插頭座。自IBM PC/AT開始使用簡化了的9芯D型插座。至今25芯插頭座現(xiàn)代應(yīng)用中已經(jīng)很少采用。電腦一般有兩個串行口:COM1和COM2,9針D形接口通常在計算機(jī)后面能看到。現(xiàn)在有很多手機(jī)數(shù)據(jù)線或者物流接收器都采用COM口與計算機(jī)相連。
? RS-422
為改進(jìn)RS-232通信距離短、速率低的缺點,RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,傳輸距離延長到4000英尺(速率低于100kb/s時),并允許在一條平衡總線上連接最多10個接收器。RS- 422是一種單機(jī)發(fā)送、多機(jī)接收的單向、平衡傳輸規(guī)范,被命名為TIA/EIA-422-A標(biāo)準(zhǔn)。
? RS-485
為擴(kuò)展應(yīng)用范圍,EIA又于1983年在RS-422基礎(chǔ)上制定了RS-485 標(biāo)準(zhǔn),增加了多點、雙向通信能力,即允許多個發(fā)送器連接到同一條總線上,同時增加了發(fā)送器的驅(qū)動能力和沖突保護(hù)特性,擴(kuò)展了總線共模范圍,后命名為 TIA/EIA-485-A標(biāo)準(zhǔn)。
下圖是一般傳輸過程:單片機(jī)匹配電平到RS-232,通過RS-232傳輸,再從RS-232匹配到TTL再給另一個單片機(jī)。
5、其他
各種串行通訊是可以相互轉(zhuǎn)換的,如下圖中我們最經(jīng)常使用的CH340芯片就能夠把USB轉(zhuǎn)成TTL電平的UART串口通訊。
-
RS485
+關(guān)注
關(guān)注
39文章
1143瀏覽量
82137 -
串行通訊
+關(guān)注
關(guān)注
2文章
77瀏覽量
16356
原文標(biāo)題:單片機(jī)串行通信全解析
文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論