亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式系統(tǒng)中MODBUS通信的教學研究與實踐

        2019-07-08 03:32:55王雪
        無線互聯(lián)科技 2019年8期
        關(guān)鍵詞:單片機

        王雪

        摘 ? 要:文章針對MODBUS通信協(xié)議進行了實踐和教學研究。首先,指出了MODBUS協(xié)議的重要性以及地位作用;其次,分析了MODBUS幀的結(jié)構(gòu)和通信原理,再利用一個通信項目分析了MODBUS通信的詳細過程和開發(fā)代碼;最后,指出MODBUS通信過程中需要注意的問題,并進行了總結(jié),這對于MODBUS項目的研究與開發(fā)有重要的參考價值。

        關(guān)鍵詞:MODBUS通信協(xié)議;STC單片機;485通信;工業(yè)物聯(lián)網(wǎng)

        1 ? ?網(wǎng)絡(luò)通信概述

        隨著計算機通信技術(shù)的發(fā)展,越來越多的計算機系統(tǒng)連接到網(wǎng)絡(luò)當中,網(wǎng)絡(luò)通信成為當前信息科學最為熱點的問題之一,尤其在工業(yè)控制與物聯(lián)網(wǎng)領(lǐng)域,如何安全、快速、便捷地傳送數(shù)據(jù),成為衡量工業(yè)發(fā)展水平的重要標志之一。與傳統(tǒng)PC機相比,工業(yè)領(lǐng)域的信息通信的特點[1]在于:通信主機結(jié)構(gòu)類型不盡相同;通信環(huán)境有可能會受到輻射干擾;通信設(shè)備成本限制;通信組網(wǎng)信息安全;網(wǎng)絡(luò)拓撲結(jié)構(gòu)各異。在這種背景下,選擇什么樣的通信方式和通信協(xié)議,就顯得異常關(guān)鍵。

        2 ? ?MODBUS通信協(xié)議

        MODBUS[2]是由施耐德電氣(現(xiàn)在的Modicon公司)于1979年為PLC之間的通信而研發(fā)的一種串行通信協(xié)議,它為連接至不同類型總線或網(wǎng)絡(luò)的設(shè)備之間提供了C/S通信,目前已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標準。自1979年以來,使成千上萬的自動化設(shè)備能夠通信,很好地解決工業(yè)領(lǐng)域面臨的通信難題,成為目前主流的工業(yè)物聯(lián)網(wǎng)通信協(xié)議。

        MODBUS協(xié)議定義了一個與基礎(chǔ)通信層無關(guān)的簡單協(xié)議數(shù)據(jù)單元(Protocol Data Unit,PDU)。特定總線或網(wǎng)絡(luò)上的 MODBUS協(xié)議映射能夠在應用數(shù)據(jù)單元(Application Data Unit,ADU)上引入一些附加域。啟動MODBUS事務(wù)處理的客戶機創(chuàng)建MODBUS應用數(shù)據(jù)單元。功能碼向服務(wù)器指示將執(zhí)行哪種操作。MODBUS協(xié)議建立了客戶機啟動的請求格式。MODBUS事務(wù)處理流程如圖1所示。

        3 ? ?MODBUS通信實踐與教學

        3.1 ?總體結(jié)構(gòu)

        采用單片機與PC上位機的串口通信方式,并采用RS485總線進行信號傳輸,以保證信號的總體質(zhì)量。單片機一端作為服務(wù)器端,不主動發(fā)送數(shù)據(jù),只是等待應答客戶端請求的數(shù)據(jù)。PC機作為客戶端,負責啟動請求與接收響應。

        與RS232相比,采用RS485總線的好處在于:(1)傳輸方式不同。RS-232采取不平衡傳輸方式,即所謂單端通信。而RS485則采用平衡傳輸,即差分傳輸方式。在穩(wěn)定性和抗干擾性方面都有明顯優(yōu)勢。(2)傳輸距離不同。RS-232適合本地設(shè)備之間的通信,傳輸距離一般不超過20 m。而RS-485的傳輸距離為幾十米到上千米。(3)主機數(shù)量不同。RS-232只允許一對一通信,而RS-485接口在總線上是允許連接收發(fā)器多達128個。

        3.2 ?MODBUS軟件設(shè)計

        MODBUS公共功能碼是MODBUS協(xié)議通用的功能碼,這個功能碼是預先被定義好的,并且需要保證是唯一的、公開證明的。對應于每個操作訪問,相關(guān)程序代碼如下:

        void readCoil(void); //讀線圈

        void readRegisters(void); //讀寄存器

        void forceSingleCoil(void); //強制單個線圈

        void presetSingleRegister(void); //設(shè)置單個寄存器

        void presetMultipleRegisters(void); //設(shè)置多個寄存器

        void forceMultipleCoils(void); //強制多個線圈

        3.3 ?MODBUS通信從機軟件設(shè)計

        MOBUS通信的主要過程包括:(1)進行系統(tǒng)初始化設(shè)置,主要包括定時器初始化,串口初始化,中斷服務(wù)函數(shù)的編寫和變量定義。(2)定時處理,不是指定時器與計數(shù)器的初始化,而是指判斷一個完整的MODBUS幀是否結(jié)束的時間。關(guān)于區(qū)分兩個幀的間隔時間,有許多衡量方法,一般采用延時幾十微秒的方法。(3)循環(huán)監(jiān)聽MODBUS狀態(tài),一旦收到完整的數(shù)據(jù)幀,便開始處理,利用前面講到的MODBUS庫函數(shù)進行處理。在完成讀寫任務(wù)后,按照MODBUS幀規(guī)則,應答數(shù)據(jù)通過MODBUS總線傳回客戶端。部分初始化代碼如下。

        //串口初始化代碼

        void UartInit (ULONG baud, UCHAR mode)

        { IE=0x90;

        TMOD = (TMOD & 0X0F) | 0X20;

        TH1 = -22118400L/12/32/9600;

        TL1 = -22118400L/12/32/9600;

        TR1 = 1;

        SCON = 0X50;

        PCON |= 0X80; }

        //串口中斷服務(wù)函數(shù)代碼

        void commIntProc(void) interrupt 4

        { if (!RI) return;

        RI = 0;

        receTimeOut = 20;

        receBuf[receCount] = SBUF;

        receCount ++;

        receCount &= 0x0f; }

        4 ? ?開發(fā)過程需要注意的問題

        4.1 ?單片機型號的選擇

        單片機最常用的主要包括89C51和89C52系列,許多型號的單片機均可采用這種型號的工程。然而,單片機開發(fā)時最好要用自己的工程型號以及頭文件。如本例用到的STC15系列單片機,需要在建立工程時便選定型號,并且加入其特有的頭文件:#include “stc15.h”。這樣,才能保證工程能夠編譯通過并正確下載到芯片中。

        4.2 ?波特率的控制

        在傳輸過程中,客戶機與服務(wù)器的波特率設(shè)置必須完全一致,否則將接收不到正確的數(shù)據(jù)。受到傳輸距離和單片機性能的約束,在速度選擇上要適中,具體情況要通過實驗得以驗證,一般不宜過高或過低。

        4.3 ?傳輸距離

        MODBUS通信物理層多采用的是串行通信,在通信過程中不同類型的串行通信差別很大,如RS232和RS485在通信原理和通信性能上都存在很大差異,在開發(fā)過程中,應該根據(jù)需要合理選擇,避免造成信號不穩(wěn)定。

        4.4 ?CRC校驗碼

        循環(huán)冗余校驗碼(Cyclic Redundancy Check,CRC)可以有效地檢測到傳輸問題導致的數(shù)據(jù)錯誤,它的原理是利用CRC算法將數(shù)據(jù)幀轉(zhuǎn)換成一個CRC檢驗碼,接收方在接收到數(shù)據(jù)以后,再重新計算校驗碼并與發(fā)送時的檢驗碼相比對,以檢驗數(shù)據(jù)的準確性。在實踐過程中,CRC校驗碼的生成和檢測一般直接利用庫函數(shù)完成,不是MODBUS研究的重點,在開發(fā)和教學過程中應當注意區(qū)分。

        4.5 ?節(jié)點數(shù)量

        有的項目可能需要幾百甚至上千個節(jié)點進行485通信,從理論上講,無論是MODBUS還是485總線都是有數(shù)量限制的,MODBUS的數(shù)量最多240個。485總線根據(jù)芯片的不同,差異也很大,在幾十到幾百之間。同時,還受到線路長度的影響。如果想讓更多的設(shè)備連接在一起,需要采用中繼器或者多串口服務(wù)器一類的設(shè)備進行網(wǎng)絡(luò)拓撲。

        5 ? ?結(jié)語

        通過對MODBUS的系統(tǒng)研究與實驗論證,證明MODBUS協(xié)議在單片機平臺上,利用RS485通信是十分可靠并可以實現(xiàn)的,可以應用到嵌入式系統(tǒng)等相關(guān)課程的教學當中。通過合理的組織教學,讓學生能夠熟悉并掌握工業(yè)現(xiàn)場的應用技術(shù),更接近市場的人才需求,內(nèi)容適合物聯(lián)網(wǎng)相關(guān)專業(yè)的學生學習。同時,還要注意講授內(nèi)容的取舍,把重點放在MODBUS協(xié)議本身,以免使學生產(chǎn)生畏難心理。

        猜你喜歡
        單片機
        基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        基于單片機的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機的多功能智能插排
        電子制作(2019年11期)2019-07-04 00:34:48
        基于單片機的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        小議PLC與單片機之間的串行通信及應用
        電子制作(2018年12期)2018-08-01 00:48:04
        MSP430單片機在仿真中要注意的幾點問題
        電子制作(2017年9期)2017-04-17 03:00:53
        基于單片機的平衡控制系統(tǒng)設(shè)計
        電子制作(2017年19期)2017-02-02 07:08:27
        基于單片機的三維LED點陣設(shè)計
        電子制作(2016年21期)2016-05-17 03:52:51
        Microchip推出兩個全新PIC單片機系列
        基于Proteus的單片機控制系統(tǒng)的仿真設(shè)計
        你懂的视频网站亚洲视频| 美女露屁股无内裤视频| 国产第一页屁屁影院| 亚洲av熟妇高潮30p| 欧美在线专区| 久久久亚洲精品午夜福利| av毛片一区二区少妇颜射| 97青草超碰久久国内精品91| 蜜桃视频免费进入观看| 欧美 日韩 人妻 高清 中文| 国产欧美日韩精品专区| 欧美性xxxx极品高清| 中文字幕一区二区三区久久网站| 精品中文字幕制服中文| 久久亚洲av成人无码软件| 日韩精品夜色二区91久久久| 日本黄色一区二区三区| 亚洲av五月天一区二区| 久久久久99精品成人片| 欧美成人片在线观看| 亚洲精品成人网站在线观看| 亚洲aⅴ无码日韩av无码网站| 国产精品视频一区二区三区,| 粉嫩的18在线观看极品精品| 免费在线亚洲视频观看| 国产三级精品三级| 人人爽人人爱| 久久久窝窝午夜精品| 国产午夜激情视频自拍| 国产最新一区二区三区| 桃色一区一区三区蜜桃视频| 免费a级毛片18禁网站| 免费看黑人男阳茎进女阳道视频| 236宅宅理论片免费| 区无码字幕中文色| 亚洲无精品一区二区在线观看| 99久久无色码中文字幕人妻蜜柚| 天天天天躁天天爱天天碰2018| 久久免费看少妇高潮v片特黄| 日韩最新在线不卡av| 午夜国产在线精彩自拍视频|