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