異步通信的工作原理基于事件驅(qū)動模型。例如,當(dāng)一個進程想要向另一個進程發(fā)送數(shù)據(jù)時,它會發(fā)送一個請求并繼續(xù)執(zhí)行。當(dāng)接收方準(zhǔn)備好處理該請求時,它會觸發(fā)一個事件來通知發(fā)送方,從而達到異步通信的目的。
具體來說,異步通信中的兩個字符間的時間間隔是不固定的,然而在同一個字符中的兩個相鄰位代碼間的時間間隔是固定的。通信協(xié)議(通信規(guī)程)規(guī)定有空閑位、起始位、資料位、奇偶校驗位、停止位。起始位表示傳輸字符的開始,資料位緊接著起始位之后,資料位的個數(shù)可以是4、5、6、7、8等,構(gòu)成一個字符。通常采用ASCII碼。從最低位開始傳送,靠時鐘定位。奇偶校驗位用于校驗資料傳送的正確性。停止位是一個字符數(shù)據(jù)的結(jié)束標(biāo)志。可以是1位、1.5位、2位的高電平??臻e位處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒有資料傳送。
異步通信是指發(fā)送方和接收方在執(zhí)行相應(yīng)操作時不需要同時存在或同時運行的通信方式。在異步通信中,發(fā)送方和接收方?jīng)]有同步的時序限制,即它們可以獨立于對方進行操作。異步通信的工作原理是,發(fā)送方將數(shù)據(jù)打包成數(shù)據(jù)包,并在數(shù)據(jù)包中攜帶一定的控制信息,如目標(biāo)地址、數(shù)據(jù)長度、數(shù)據(jù)校驗等信息。發(fā)送方將數(shù)據(jù)包發(fā)送到通信介質(zhì)上,接收方在收到數(shù)據(jù)包后,根據(jù)控制信息對數(shù)據(jù)進行解析和處理。在異步通信中,發(fā)送方和接收方不需要同時工作,而是可以分別獨立工作,通過一定的協(xié)議來實現(xiàn)通信。異步通信的優(yōu)點在于可以提高系統(tǒng)的性能和可伸縮性,因為它允許在等待響應(yīng)時執(zhí)行其他任務(wù)。在客戶端-服務(wù)器通信中,異步通信可以減少客戶端的等待時間,并允許服務(wù)器處理多個客戶端請求。
異步通信最常見的有485通信,UART串口通信,RS232通信等。
485通信介紹
RS-485(一般稱作RS485/EIA-485)是隸屬于OSI模型物理層的電氣特性規(guī)定為2線、半雙工、多點通信的標(biāo)準(zhǔn)。它的電氣特性和RS-232大不一樣。用纜線兩端的電壓差值來表示傳遞信號。RS485僅僅規(guī)定了接受端和發(fā)送端的電氣特性。它沒有規(guī)定或推薦任何數(shù)據(jù)協(xié)議。
RS485的特點包括:
接口電平低,不易損壞芯片。RS485的電氣特性:邏輯“1”以兩線間的電壓差為+(2~6)V表示;邏輯“0”以兩線間的電壓差為-(2~6)V表示。接口信號電平比RS232降低了,不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。
傳輸速率高:10米時,RS485的數(shù)據(jù)最高傳輸速率可達35Mbps,在1200m時,傳輸速度可達100Kbps。
抗干擾能力強:RS485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干擾能力增強,即抗噪聲干擾性好。
傳輸距離遠,支持節(jié)點多:RS485總線最長可以傳輸1200m以上(速率≤100Kbps)一般最大支持32個節(jié)點,如果使用特制的485芯片,可以達到128個或者256個節(jié)點,最大的可以支持到400個節(jié)點。
UART串口通信
UART串口通信是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。在UART通信中,數(shù)據(jù)以二進制形式進行傳輸,最低位先發(fā)、高位后發(fā)。TXD先拉低電平,持續(xù)一段時間,發(fā)送一位;然后接著重復(fù),直到全部發(fā)送完畢。一段時間=1/波特率,波特率又稱作比特率(baud)。在UART通信時,一個字節(jié)是8位。
UART通信雖然用到了TXD和RXD兩根線,但是實際一次通信中,1條線就可以完成,兩條線是把發(fā)送和接收分開而已。通信雙方需要確定通信波特率和數(shù)據(jù)格式一致,才能實現(xiàn)串口通信。一般情況下,設(shè)備之間的通信方式可以分為并行通信和串行通信。它們的區(qū)別在于數(shù)據(jù)格式的不同。串行通信是按位發(fā)送和接收數(shù)據(jù)包,每個數(shù)據(jù)包有固定的格式:起始位、數(shù)據(jù)位、奇偶校驗位、停止位。長度可以是1、8、11、1.5、2等。
在UART串口通信中,波特率是一個衡量符號傳輸速率的參數(shù)。它表示每秒鐘傳輸?shù)臄?shù)據(jù)包的個數(shù)或者每秒鐘傳輸?shù)腷it數(shù)。例如,如果波特率為9600,那么每秒鐘可以傳輸9600個bit。常見的波特率包括4800、9600、14400、19200、38400、57600和115200等。UART串口通信可以用于各種場合,如計算機與外設(shè)之間的通信、工業(yè)控制、智能家居等。它是一種簡單、可靠、易于實現(xiàn)的通信方式,被廣泛應(yīng)用于各種嵌入式系統(tǒng)和智能設(shè)備中。
RS232通信
RS-232標(biāo)準(zhǔn)接口(又稱EIA RS-232)是常用的串行通信接口標(biāo)準(zhǔn)之一,它是由美國電子工業(yè)協(xié)會(Electronic Industry Association,EIA)聯(lián)合貝爾系統(tǒng)公司、調(diào)制解調(diào)器廠家及計算機終端生產(chǎn)廠家于1970年共同制定,其全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)之間串行二進制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”。它被廣泛用于計算機串行接口外設(shè)連接。連接電纜和機械、電氣特性、信號功能及傳送過程。