-
您的位置:
- 網(wǎng)站首頁(yè)
- > 物聯(lián)百科
- > 技術(shù)問答
您的位置:
RS232則是其中最簡(jiǎn)單最常用的通訊方式。但是初學(xué)者往往搞不清有關(guān)的名詞如UART和RS232或RS485之間是什么關(guān)系,因?yàn)樗鼈兘?jīng)常被放到語句中同等的位置使用。
通訊問題,和交通是一樣的。串口通信,我們這里可以用公交來類比。
公交運(yùn)行可以簡(jiǎn)單分成兩個(gè)部分:
1、車站
2、公路
其中車站決定了車上裝什么(人),怎么發(fā)送(班次)等。
當(dāng)汽車跑在路上,就要遵守公路交通的規(guī)則,過橋有過橋的規(guī)則,高速有高速的規(guī)則,和車站沒有關(guān)系了。
回到串口通訊,其實(shí),UART就相當(dāng)于車站,而RS232/RS485則對(duì)應(yīng)于公路的規(guī)則。
UART,是通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),既然是“器”,顯然,它就是個(gè)設(shè)備而已,要完成一個(gè)特定的功能的硬件,它本身并不是協(xié)議。那么它要完成什么功能呢?它的最基本功能,是串行數(shù)據(jù)和并行數(shù)據(jù)之間的轉(zhuǎn)換。我們知道,計(jì)算機(jī)中的數(shù)據(jù)以Byte為基本單位,對(duì)一個(gè)Byte的存取是并行的,即,同時(shí)取得/寫入8個(gè)bit。而串行通信,需要把這個(gè)Byte“打碎”,按照時(shí)間順序來收發(fā)以實(shí)現(xiàn)串行。例如:
內(nèi)存中的數(shù)據(jù)是: 1 1 1 0 0 1 0 1
串行發(fā)送的實(shí)際效果是(按時(shí)間排序【注1】):
1
0
1
0
0
1
1
1
接收則是上述過程的逆過程。
這就是UART做的最基本工作,進(jìn)一步的,它還要控制“發(fā)車的班次”,比如確認(rèn)一個(gè)Byte的這8個(gè)bit是什么時(shí)候開始的,又是什么時(shí)候結(jié)束的,兩個(gè)班次之間至少要隔多長(zhǎng)時(shí)間的緩沖,等等。這一部分,也具有協(xié)議的特征,但是相對(duì)于道路上的協(xié)議,更具有一般性,或曰,是與車在什么道路上開,相對(duì)獨(dú)立的。
那么道路上的規(guī)定是什么樣的呢?
RS232/RS485,是兩種不同的電氣協(xié)議,也就是說,是對(duì)電氣特性以及物理特性的規(guī)定,作用于數(shù)據(jù)的傳輸通路上,它并不內(nèi)含對(duì)數(shù)據(jù)的處理方式。比如,最顯著的特征是:RS232使用3-15v有效電平,而UART,因?yàn)閷?duì)電氣特性并沒有規(guī)定,所以直接使用CPU使用的電平,就是所謂的TTL電平(可能在0~3.3V之間)。更具體的,電氣的特性也決定了線路的連接方式,比如RS232,規(guī)定用電平表示數(shù)據(jù),因此線路就是單線路的,用兩根線才能達(dá)到全雙工的目的;而RS485, 使用差分電平表示數(shù)據(jù),因此,必須用兩根線才能達(dá)到傳輸數(shù)據(jù)的基本要求,要實(shí)現(xiàn)全雙工,必需用4根線。但是,無論使用RS232還是RS485,它們與UART是相對(duì)獨(dú)立的,但是由于電氣特性的差別,必須要有專用的器件和UART接駁,才能完成數(shù)據(jù)在線路和UART之間的正常流動(dòng)。
總結(jié):從某種意義上,可以說,線路上存在的僅僅是電流,RS232/RS485規(guī)定了這些電流在什么樣的線路上流動(dòng)和流動(dòng)的樣式;在UART那里,電流才被解釋和組裝成數(shù)據(jù),并變成CPU可直接讀寫的形式。