現(xiàn)在那個網(wǎng)站做視頻最賺錢嗎湖南靠譜關(guān)鍵詞優(yōu)化
我們嵌入式系統(tǒng)的總線接口可以分為兩類,一類是并行接口,另一類是串行接口。
并行通信就是用多個數(shù)據(jù)線,每條數(shù)據(jù)線表示一個位來進行傳輸數(shù)據(jù),串行接口就是一根數(shù)據(jù)線可以來一位一位地傳遞數(shù)據(jù)。
從上圖也可以看出,并行通信的優(yōu)點就是傳輸效率高,缺點就是占用的數(shù)據(jù)線比較多。而串行通信的優(yōu)缺點是和并行通信相反的,優(yōu)點是省數(shù)據(jù)線,缺點是傳輸速率較低。
并行通信用的不是很多(跟串行通信相比),我們就記幾個總線知道它們是并行的就行:IEEE488,SCSI,MXI。
串行將數(shù)據(jù)一位一位傳輸,也就是每一位數(shù)據(jù)都占一段固定的時間長度。
通信模式上分為三種:單工,半雙工,全雙工。
單工就是只能是A給B傳輸數(shù)據(jù),而B不能給A傳輸數(shù)據(jù),也就是數(shù)據(jù)是單向流動的。
半雙工就是A和B可以相互發(fā)送數(shù)據(jù),但是不能同時發(fā)送,也就是A給B發(fā)的時候B不能給A發(fā),而B給A發(fā)的時候A不能給B發(fā),因為數(shù)據(jù)線就一條,兩邊同時發(fā)會讓信號混在一起。
全雙工就是A和B在任何時候都可以給對方發(fā)送數(shù)據(jù),一般是擁有多條數(shù)據(jù)線的時候才能實現(xiàn)。
通信方式上分為兩種:同步和異步。
同步通信對硬件的要求比較高,因為需要雙方的時鐘信號一致(同頻同相),但是傳輸速率高,因為不需要過多的控制位去控制雙方同步。同步通信可以將多個字符聚集成一個字符塊,在字符塊的開始和結(jié)尾加上同步字符,這和異步差不多,區(qū)別在于同步通信傳輸?shù)淖址麎K可以有多個bit,而異步通信則是較少的bit組成一個字符塊,可以參考我們之前說過的UART,我們常用的配置是8位數(shù)據(jù)位,一位停止位,無校驗位,也就是說一個字符塊只有一個Byte。
異步通信的數(shù)據(jù)是一幀一幀傳輸?shù)?#xff0c;每幀數(shù)據(jù)需要包含起始位,數(shù)據(jù)位,校驗位(不一定要),停止位,因此每次發(fā)送數(shù)據(jù),實際上發(fā)送的內(nèi)容中只有中間的數(shù)據(jù)位才是有用的數(shù)據(jù),因此跟同步相比,數(shù)據(jù)傳輸?shù)乃俾瘦^低。但是好處就在于對硬件的要求低,我們用軟件模擬都行。不需要同步時鐘,還是拿UART舉例,我們用串口通信的時候只需要通信雙方共地,然后連接RX和TX即可對吧,不需要同步時鐘。
關(guān)于接口我們再介紹一下RS家族(Recommand Standard,推薦標(biāo)準(zhǔn)):
RS-232,由美國電子工業(yè)協(xié)會提出的一種串行通用接口標(biāo)準(zhǔn)。在這個規(guī)定中規(guī)定了25條線,但是實際上我們只用九條線,也就是DB-9的插接件。
可能小伙伴一聽到這個RS-232就懵逼了,但是實際上我們都見過(應(yīng)該吧)。
在實驗室里還蠻常見的,一些看起來很屌的儀器用的通信接口用的都是這些。
我們就拿上面的圖片來簡單介紹一下這九根線分別是做什么的。
上圖中有標(biāo)號1、5、6、9,1和5之間大家腦補一下2~4,6和9之間大家腦補一下7和8。
1、CD,載波檢測,用于通知是否處于在線狀態(tài)。
2、RXD,接收數(shù)據(jù)線。
3、TXD,發(fā)送數(shù)據(jù)線。
4、DTR,數(shù)據(jù)終端就緒,高電平時表示可以傳輸數(shù)據(jù)。
5、SG,接地信號線。
6、DSR,數(shù)據(jù)設(shè)備就緒。
7、RTS,請求發(fā)送。
8、CTS,清除允許發(fā)送。
9、RI,振鈴提醒。
雖然RS-232已經(jīng)從原本的25條線被砍到9條線了,但是我們可以更極端一點,只連接RXD,TXD和SG(共地)就可以進行最簡單的通信了,就跟我們的串口通信一樣了。
在RS-232的基礎(chǔ)上還有RS-422和RS-485。
RS-422是RS-232的改進版,將原本的RXD和TXD替換成了差分信號,也就是平衡傳輸。
原本我們用一根TXD(RXD)就用來傳輸信號了,高電平就是邏輯1,低電平就是邏輯0,但是這種方式很容易受外界干擾使得傳輸出現(xiàn)誤差。
差分信號則是使用兩根線來傳輸信號,邏輯1就是其中一根數(shù)據(jù)線是+5V(舉個例子,這邊可以看成是+nV),另一根數(shù)據(jù)線是-5V,則兩根數(shù)據(jù)線的電壓差就是10V,這表示邏輯1。邏輯0則是兩根數(shù)據(jù)線都是0V(也是舉個例子,實際上兩根數(shù)據(jù)線的電壓差相差不多即可)。這樣使用差分信號,那么就算干擾,也是兩根數(shù)據(jù)線一起受到干擾,它們之間的電壓差不會有很明顯的改變,也就是傳輸更加可靠了。并且因為是全雙工的,因此傳輸線路有兩條,每條需要兩根差分信號線,所以在極簡的狀態(tài)下只需要4根數(shù)據(jù)線即可(RXD-,RXD+,TXD-,TXD+)。
RS-485是建立在RS-422的基礎(chǔ)上的,它們的差別首先是差分電壓不一樣,RS-485的差分信號的電壓差更大,這意味著出現(xiàn)誤差的概率進一步減小,因此RS-285的傳輸距離也就比RS-422更遠了。并且RS-285是半雙工的,因此所需的數(shù)據(jù)線只需要兩條。
最后簡單總結(jié)一下RS家族。
RS-232,一對一,全雙工,傳輸距離小。
RS-422,一對多,全雙工,使用差分信號。最多連接10個設(shè)備。
RS-485,多對多,半雙工,使用差分信號。最多連接32個設(shè)備。
我們來看個選擇題。我們知道RS-422和RS-485都是使用的差分信號,差分信號每條通道是兩根差分信號線,因此RS-422最少是4根線,而RS-485最少只要2根線。