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