眾所周知通信協(xié)議就是一種數(shù)據(jù)傳輸?shù)膮f(xié)議規(guī)范,從軟硬件層面可以分為硬件層通信協(xié)議和軟件層通信協(xié)議。為了更加形象的理解軟硬件層面的通信協(xié)議,我們將通信比作交通,通信的硬件層協(xié)議比作各國(guó)的公路標(biāo)準(zhǔn),各國(guó)的公路標(biāo)準(zhǔn)類(lèi)似于不同的硬件層協(xié)議標(biāo)準(zhǔn);通信的軟件層協(xié)議比作各國(guó)的交通規(guī)則,各國(guó)的交通規(guī)則類(lèi)似于不同的軟件層協(xié)議標(biāo)準(zhǔn)。圖1生動(dòng)的對(duì)上述描述進(jìn)行了解釋。
1. 通訊硬件層協(xié)議(解決邏輯傳輸?shù)姆绞剑?/p>
利用設(shè)備1向設(shè)備2傳輸0xA3(1010 0011)這樣一組數(shù)據(jù),從硬件層面將1010 0011這組數(shù)據(jù)定義為1為高電平,0為低電平,我們就可以通過(guò)改變傳輸線電平的高低實(shí)現(xiàn)這組數(shù)據(jù)的順利傳輸。為了對(duì)這種硬件層面的數(shù)據(jù)傳輸形式進(jìn)行規(guī)范定義便有了硬件通信接口協(xié)議,入RS-232、RS-485、CAN總線等,詳細(xì)介紹見(jiàn)鏈接:RS-232、RS-485、RS-422通信接口標(biāo)準(zhǔn)介紹
下節(jié)講解的MODBUS通信協(xié)議是基于RS-485信號(hào)傳輸方式,以MCU作為信號(hào)發(fā)送設(shè)備,MCU的GPIO引腳輸出的是TTL電平(設(shè)邏輯0:0V;邏輯1:5V),RS-485硬件協(xié)議則是將其TTL電平轉(zhuǎn)換成差分信號(hào),通過(guò)通訊轉(zhuǎn)換器將一個(gè)GPIO引腳的TTL電平轉(zhuǎn)變成兩根根線上的信號(hào)A/B,也稱(chēng)之為差分信號(hào)。當(dāng)TTL電平為0時(shí),使得VB>VA,當(dāng)TTL電平為1時(shí),使得VB<VA。
RS-485通信為半雙工通信,意思是MCU1和MCU2可以互相發(fā)送和接受數(shù)據(jù),但有一點(diǎn)應(yīng)注意,由于RS-485只有一對(duì)差分信號(hào)線A/B故對(duì)于MCU1來(lái)說(shuō)發(fā)送和接受數(shù)據(jù)不能同時(shí)進(jìn)行。故在MCU1要順利實(shí)現(xiàn)發(fā)送和接受數(shù)據(jù)則需要在軟件層面上指定通信協(xié)議。
2. 通訊軟件層協(xié)議(解決邏輯傳輸?shù)哪康模?/p>
2.1主從通信模式
(1) 為實(shí)現(xiàn)半雙工通信需要引入主從通信模式這個(gè)概念,即指定通信雙方一方為主機(jī),其余為從機(jī);
(2) 規(guī)定系統(tǒng)中所有從機(jī)不可主動(dòng)把數(shù)據(jù)發(fā)送到主機(jī);
(3) 系統(tǒng)中主機(jī)和所有從機(jī)上電后都處于接收狀態(tài);
(4) 任何一次的數(shù)據(jù)交換都由主機(jī)發(fā)起。
對(duì)于主機(jī)向從機(jī)發(fā)送數(shù)據(jù)控制從機(jī)或主機(jī)查詢(xún)從機(jī)返回的數(shù)據(jù)都應(yīng)由主機(jī)發(fā)起。當(dāng)主機(jī)向從機(jī)發(fā)送數(shù)據(jù)控制從機(jī)時(shí),主機(jī)應(yīng)當(dāng)處于發(fā)送狀態(tài);當(dāng)主機(jī)查詢(xún)從機(jī)返回的數(shù)據(jù),首先應(yīng)按照預(yù)先約定的格式發(fā)送一組尋址數(shù)據(jù)幀??偨Y(jié)來(lái)說(shuō)主機(jī)找從機(jī)第一個(gè)目的是向從機(jī)發(fā)送數(shù)據(jù),第二個(gè)目的是主機(jī)找到從及后將從機(jī)的數(shù)據(jù)發(fā)送到主機(jī)。即在硬件通信層確保數(shù)據(jù)能夠傳輸和接收的前提下,再利用軟件層來(lái)約束傳輸?shù)臄?shù)據(jù)形式和傳輸規(guī)則。
最簡(jiǎn)單的一種主機(jī)控制從機(jī)可以見(jiàn)圖4,但這種隨意的約定格式通用適配性差,因此需要一款統(tǒng)用的軟件層通信協(xié)議來(lái)對(duì)所需功能進(jìn)行規(guī)定。
地址:柳州市陽(yáng)光100-3號(hào)樓-7-23
公司名稱(chēng):柳州智慧星網(wǎng)絡(luò)科技有限公司
開(kāi)戶(hù)行:柳州銀行紅光支行
賬戶(hù):7080 0500 0000 0003 2067
15807738124(技術(shù)總監(jiān))
15807730604(產(chǎn)品經(jīng)理)
柳州智慧星網(wǎng)絡(luò)公司-專(zhuān)注柳州網(wǎng)站建設(shè),柳州小程序制作,柳州軟件開(kāi)發(fā),擁有15年廣西網(wǎng)站建設(shè)團(tuán)隊(duì)開(kāi)發(fā)經(jīng)驗(yàn),擁有5000余成功案例!
Copyright ?2006 - 2020 999xing.com All Rights Reserved.
公司承接: 柳州網(wǎng)站建設(shè),柳州小程序開(kāi)發(fā),柳州公眾號(hào)維護(hù),柳州網(wǎng)站制作,柳州團(tuán)購(gòu)商城開(kāi)發(fā),柳州軟件開(kāi)發(fā),柳州網(wǎng)站設(shè)計(jì),柳州公眾號(hào)維護(hù)
柳州智慧星網(wǎng)絡(luò)科技有限公司版權(quán)所有
智慧星備案號(hào): 桂ICP備20001182號(hào)-1
桂公網(wǎng)安備 45020402000142號(hào)