01----RS485與RS232通訊協議

第一:硬件層協議

通訊協議主要是實現兩個設備之間的數據交換功能,通訊協議分硬件層協議和軟件層協議。硬件層協議決定數據如何傳輸問題,比如要在設備1向設備2發送0x63,0x63的二進制數為0110 0011,這8個二進制數從設備1傳輸到設備2,涉及到1怎麼傳,0怎麼傳的問題,這就是硬件層要解決的問題。

硬件層協議目前比較多見的有RS-232、RS-485、SPI、IIC等。RS-232規定,線上的電壓為x伏都表示傳輸的是0,y伏傳輸的則是1。再者,比如要選擇多少條線傳輸數據,選擇什麼材質的線傳輸輸入,這些也屬於硬件層協議約束的。

第二:RS-485通訊協議MCU管腳輸出TTL電平,TTL電平的意思是,當MCU管腳輸出0電平時,一般情況下電壓是0V,當MCU管腳輸出1電平時,電壓是5V。因TTL電平的是由一條信號線,一條地線產生,信號線上的幹擾信號會跟隨有效信號傳送到接收端,使得有效信號受到幹擾,485通訊實際上是把MCU出來的TTL電平通過硬件層的一個轉換器芯片進行轉換:

把MCU出來的一條的TTL信號經過芯片轉換為兩根線(線A、線B)上的信號。當MCU給轉換器輸入低TTL電平時,轉換器會使得B的電壓比A的電壓高,反之,A的電壓比B的電壓高。 485協議規約兩條電平線上差值為多少表示0或者1,電壓是通過儀表可以測量得到的,所以說RS-485是硬件層協議。 485協議的接收端可能是另一個MCU,MCU管腳也隻接受TTL電平,轉換芯片過來的是兩條線的電壓,所以需要對此兩條線差分電壓轉換為TTL電平。

把TTL轉為485,實質是一個集成芯片,其間無任何程序代碼,純粹硬件邏輯。同理,將485電平轉為TTL也是如此。現在很多芯片把接收和轉換都集成到一塊IC,註意,轉換器和接收器依舊是沒有同時工作的,常見的轉換芯片是MAX485。 可以這樣理解,硬件層協議是公路,路的目的是為瞭讓車輛能夠過去。

第三:RS485半雙工通訊

首先瞭解什麼是單工通訊,單工通訊是指數據隻能朝著一個方向傳輸的通訊方式。而半雙工通訊則是指對於通訊兩端,不能同時相對方法發送數據,必須錯開時間段發送。 RS-485的通訊線隻有2條,且這兩條通訊線在一次傳輸中都需要用到,因此485隻可實現半雙工通訊。485實現半雙工通訊,會遇到一個問題,MCU1向MCU2發數據時,並不知道線上是否正傳來MCU2數據,因為沒有其他線可用來判斷對方的收發狀態,那麼可能也會導致數據沖突。因此,RS-485要實現半雙工通訊,就需要上層的軟件協議加以規約,也就是做到”不能你想發數據就發數據”。可以理解,軟件層協議就好像交通規則,它能讓數據有序傳輸。

第四:RS232通訊

RS-232是美國電子工業聯盟制定的串行數據通信接口。現在RS232接口常用於儀器儀表設備,PLC以及嵌入式領域當作調試口來使用。

第五:RS232接口形態

按照引腳數量分類有兩種:

25pin–DB25 協議標準推薦的接口類型

由於接口物理尺寸較大,很少使用,此處不做具體介紹。

9pin—DE9(通常誤叫做DB9) 自IBM PC/AT開始改用9針連接器起,目前是主流接口形態。9針RS232接口按照接口類型,又可以分為:

公頭(Male):帶針腳

0e1b02feb3e2b8de928a804495e9e4a3

母座(Female):帶孔座

671c7dc17d915b1934294a66a74f62e7

其中DTR/DSR和RTS/CTS用於硬件流控。

DTR/DSR狀態表明DTE和DCE處於可用狀態,有時候設備上電這兩個信號即有效,表示設備本身可用使用,但要開始進行數據傳輸通訊,則需要RTS/CTS流控信號。

RTS即DTE發送數據時,該信號有效(ON),向DCE請求發送數據;CTS是對請求發送RTS信號的響應,當DCE已經準備好接收數據時,該信號有效(ON),通知DTE可用使用TXD發送數據瞭。

比如A向B發送數據簡單如下邏輯:

A先設置RTS為1,表示要發數據給B

B檢測到RTS為1,先看看自己是否準備好:

如果準備好,就設置CTS為1表示A可用發數據給B瞭

如果沒有準備好,繼續處理自己的數據。弄完瞭,再將CTS設置為1,讓A發數據

A發現CTS置1瞭,將數據通過TXD信號線發送出去

A每發送一次數據給B之前,都會繼續上面的邏輯

A發送完數據後,就將RTS置0,表示數據發送完畢

第六:RS232硬件連接方式

連接分為3種

第一種:9線方式連接示意圖

ef555d8f50f6b8dd234a1ac0199618f9

第二種:5線方式連接示意圖

第三種:3線式連接示意圖

註:3線連接中,DTE使用TXD和RXD兩條數據線,無法實現硬件流控功能,在做大量數據傳輸應用時,建議使用5線或9線連接方式。

第七:電平及時序

下圖是使用RS232接口按照UART串口協議進行傳輸,UART協議具體請參考 UART詳解。圖中傳輸的數據為0100 1011b 即0x4B,按照1bit開始位,8bit數據位,1bit停止位格式傳輸。

第八:最大通訊距離及速率

協議最初規定設備最大速率為20kbps。

註:協議規定最大速率為20kbps,現在看來這個速率已經很低瞭。一些芯片制造商已經做出瞭高速率的芯片驅動,具體速率上限請查看器件手冊。

发表回复

相关推荐

仿真學科知識科普(上)

從1929年美國空軍第一臺林克飛行訓練模擬器誕生算起,仿真作為一門專門技術已有近百年發展歷史。中國仿真技術的發展始於20世...

· 36秒前

各种类型阀门的知识及选择!

阀门是控制流体介质的流量、流向、压力、温度等的机械装置,是管道系统中十分重要的部件。这是最全的阀门分类,快来看看吧!

· 41秒前

國學經典丨不識廬山真面目,隻緣身在此山中!

《題西林壁》——[宋]蘇軾橫看成嶺側成峰,遠近高低各不同。不識廬山真面目,隻緣身在此山中。【註釋】(1)題西林壁:寫在西林...

· 2分钟前

和谐号CRH3型电力动车组 – 辽观搬运的中英文维基百科词条

0. 序言 The CRH3 Hexie (simplified Chinese: 和谐号; traditional Chinese: 和谐号; pinyin: Héxié Hào; literally: " ...

· 2分钟前

Vol.5 嵯峨天皇 | 開創日本填詞史的領航者

歡迎回到《不知名宋詞》,我是卡米。上一期,我們說瞭張志和在文學造詣上其實離天才還是有點距離的,而他的五闕《漁歌子》則...

· 3分钟前