一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MODBUS RTU傳輸模式介紹

CHANBAEK ? 來源:菱沃鉑智能技術(shù) ? 作者:菱沃鉑智能技術(shù) ? 2023-07-19 15:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上期我們學(xué)習(xí)了,第一篇MODBUS協(xié)議基本介紹,今天我們來研究第二篇MODBUS RTU傳輸模式介紹。

第二篇 MODBUS RTU傳輸模式介紹

當(dāng)設(shè)備使用 RTU(Remote Terminal Unit)模式在Modbus串行鏈路通信,消息中每個(gè)8位域都是由兩個(gè)十六進(jìn)制字符組成。該模式的主要優(yōu)點(diǎn)是較高的數(shù)據(jù)密度,在相同的波特率下比ASCII模式有更高的吞吐率。RTU模式的每個(gè)報(bào)文必須以連續(xù)的字符流傳送。

RTU模式每個(gè)字節(jié)(11位)的格式

  1. 編碼系統(tǒng):8 位二進(jìn)制,報(bào)文中每個(gè) 8 位字節(jié)含有兩個(gè) 4 位十六進(jìn)制字符(0-9,A-F)。
  2. 每字節(jié) bit 流:1 起始位、8 數(shù)據(jù)位,首先發(fā)送最低有效位、1 位奇偶檢驗(yàn)、1 停止位。

偶校驗(yàn)是要求的,其它模式(奇校驗(yàn)、無校驗(yàn))也可以使用,為了保證兼容性,同時(shí)支持無校驗(yàn)?zāi)J绞墙ㄗh的。默認(rèn)校驗(yàn)?zāi)J奖仨殲榕夹r?yàn)。

字符如何串行傳送:

每個(gè)字符或字節(jié)均由此順序發(fā)送(從左到右),最低有效位(LSB)…最高有效位(MSB)。

image.png

RTU模式位序列

設(shè)備配置為奇校驗(yàn)、偶校驗(yàn)或無校驗(yàn)都可以接受,如果無奇偶校驗(yàn),就傳送一個(gè)附加的停止位以填充字符幀。

image.png

RTU模式位序列(無校驗(yàn)的特殊情況)

幀檢驗(yàn)域: 循環(huán)冗余檢驗(yàn)(CRC)。

幀描述:

image.png

RTU報(bào)文幀

Modbus報(bào)文RTU幀

由發(fā)送設(shè)備將 Modbus 報(bào)文構(gòu)造為帶有已知起始和結(jié)束標(biāo)記的幀。這使設(shè)備可以在報(bào)文的開始接收新幀,并且知道何時(shí)報(bào)文結(jié)束。不完整的報(bào)文必須能夠被檢測(cè)到,而錯(cuò)誤標(biāo)志必須作為結(jié)果被設(shè)置。

在 RTU 模式中,報(bào)文幀由時(shí)長(zhǎng)至少為 3.5 個(gè)字符時(shí)間的空閑間隔區(qū)分。在后續(xù)部分,這個(gè)時(shí)間區(qū)間被稱為 t3.5。

圖片整個(gè)報(bào)文幀必須以連續(xù)的字符流發(fā)送。

如果兩個(gè)字符直接的空閑間隔大于 1.5 個(gè)字符時(shí)間,則報(bào)文被認(rèn)為不完整應(yīng)該被接收設(shè)備丟棄,如圖:

圖片

非正常報(bào)文幀

注:RTU 接受驅(qū)動(dòng)程序的實(shí)現(xiàn),由于 t1.5 和 t3.5 的定時(shí),隱含了大量的對(duì)中斷的管理。在高速通信速率下,這導(dǎo)致 CPU 負(fù)擔(dān)加重。因此,在通信速率等于或低于 19200bps 時(shí),這兩個(gè)定時(shí)必須嚴(yán)格遵守;對(duì)于波特率大于 19200bps 的情形,應(yīng)該使用 2 個(gè)定時(shí)的固定值:建議的字符間超時(shí)時(shí)間(t1.5)位 750us,幀間的超時(shí)時(shí)間(t1.5)位 1.750ms。

下圖表示了對(duì) RTU 傳輸模式狀態(tài)圖的描述?!爸髟O(shè)備”和“從設(shè)備”的不同角度均在相同的圖中表示:

圖片

1.從“初始”態(tài)到“空閑”態(tài)轉(zhuǎn)換需要 t3.5 定時(shí)超時(shí):這保證幀間延遲。

2.“空閑”態(tài)是沒有發(fā)送和接收?qǐng)?bào)文要處理的正常狀態(tài)。

3.在 RTU 模式,當(dāng)沒有活動(dòng)的傳輸?shù)膶?shí)際間隔打達(dá) 3.5 個(gè)字符長(zhǎng)時(shí),通信鏈路被認(rèn)為在“空閑”態(tài)。

4.在鏈路空閑時(shí),在鏈路上檢測(cè)到的任何傳輸?shù)淖址急蛔R(shí)別為幀起始。鏈路變?yōu)椤盎顒?dòng)”狀態(tài)。然后,當(dāng)鏈路上沒有字符傳輸?shù)臅r(shí)間間隔達(dá)到 t3.5 后,被識(shí)別為幀結(jié)束。

5.檢測(cè)到幀結(jié)束后,完成 CRC 計(jì)算和校驗(yàn)。然后,分析地址域以確定幀是否發(fā)往此設(shè)備,如果不是,則丟棄此幀。為了減少接收處理時(shí)間,地址域可以在一接到就分析,而不需要等到整個(gè)幀結(jié)束。這樣,CRC 計(jì)算只需要在幀尋址到該節(jié)點(diǎn)(包括廣播幀)時(shí)進(jìn)行。

CRC計(jì)算

在 RTU 模式包含一個(gè)對(duì)全部報(bào)文內(nèi)容執(zhí)行的,基于循環(huán)冗余校驗(yàn)(CRC-Cyclical Redundancy Checking)算法的錯(cuò)誤檢驗(yàn)域。CRC域檢驗(yàn)整個(gè)報(bào)文的內(nèi)容。不管報(bào)文有無奇偶校驗(yàn),均執(zhí)行此檢驗(yàn)。

CRC 包含由兩個(gè) 8 位字節(jié)組成的一個(gè) 16 位值。

CRC 域作為報(bào)文的最后的域附加在報(bào)文之后。計(jì)算后,首先附加低字節(jié)。然后是高字節(jié)。CRC 高字節(jié)為報(bào)文發(fā)送的最后一個(gè)字節(jié)。

附加在報(bào)文后面的 CRC 的值由發(fā)送設(shè)備計(jì)算。接收設(shè)備在接收?qǐng)?bào)文時(shí)重新計(jì)算 CRC 的值,并將計(jì)算結(jié)果于實(shí)際接收到的 CRC 值相比較,如果兩個(gè)值不相等,則為錯(cuò)誤。

CRC 的計(jì)算,開始對(duì)一個(gè) 16位寄存器預(yù)裝全“1”,然后將報(bào)文中連續(xù)的 8位字節(jié)對(duì)其進(jìn)行后續(xù)的計(jì)算。只有字符中的 8 個(gè)數(shù)據(jù)位參與到生成 CRC 的運(yùn)算,起始位、停止位和校驗(yàn)位不參與 CRC 計(jì)算。

CRC 生成的過程中,每個(gè) 8 位字符與寄存器中的值異或,然后結(jié)果向最低有效位(LSB)方向移動(dòng) 1 位,而最高有效位(MSB)置 0.然后提取并檢查 LSB:如果LSB 為 1,則寄存器中的值與一個(gè)固定的預(yù)置值異或;如果LSB 為 0,則不進(jìn)行異或操作。

這個(gè)過程將重復(fù)直到執(zhí)行完 8 次移位,完成最后一次(第八次)移位及相關(guān)操作后,下一個(gè) 8 位字節(jié)與寄存器的當(dāng)前值異或,然后又同上面描述過的一樣重復(fù) 8 次。當(dāng)所有報(bào)文中字節(jié)都預(yù)算之后得到的寄存器中的最終值,就是 CRC。

簡(jiǎn)單代碼如下:

image.png

image.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    807

    瀏覽量

    42313
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    2115

    瀏覽量

    79519
  • ASCII
    +關(guān)注

    關(guān)注

    5

    文章

    172

    瀏覽量

    35853
  • RTU
    RTU
    +關(guān)注

    關(guān)注

    0

    文章

    435

    瀏覽量

    29509
  • 傳輸模式
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    7090
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32L431RC通過命令切換到MODBUS/RTU模式,為什么RTU模式的CMF中斷一直在工作?

    我使用的芯片是STM32L431RC,用USART2和上位機(jī)通信。默認(rèn)使用MODBUS/ASCII模式,CMF字符匹配中斷工作沒有問題?,F(xiàn)在需要通過命令切換到MODBUS/RTU
    發(fā)表于 03-27 06:01

    Modbus TCP轉(zhuǎn)Modbus RTU的實(shí)現(xiàn)

    。串行鏈路的Modbus分為ASCII和RTU,其中RTU傳輸效率高,用得比較多。所以這里基本上以Modbus
    發(fā)表于 08-10 10:04

    基于Modbus RTU的串口調(diào)試軟件的實(shí)現(xiàn)

    摘 要:文中介紹Modbus RTU通訊協(xié)議的特點(diǎn),闡述了該協(xié)議在VC2005編程環(huán)境下串口調(diào)試軟件的具體實(shí)現(xiàn)方法。并編制了相關(guān)的程序,該程序采用了模塊化思想,結(jié)構(gòu)清晰,操作簡(jiǎn)便,實(shí)現(xiàn)了良好
    發(fā)表于 12-18 19:18

    Labview Modbus RTU編寫心得

    由于近期編寫了一個(gè)小型的溫控,其通訊基于Modbus RTU模式,所以淺談下這次編寫過程中,遇到的問題和解決方法。
    發(fā)表于 05-06 18:27

    modbus三種通訊方式的字符介紹

    兩個(gè)字符之間發(fā)送或者接收的時(shí)間間隔不能超過1.5倍 字符傳輸時(shí)間。如果兩個(gè)字符時(shí)間間隔超過了3.5倍的字符傳輸時(shí)間,規(guī)約就認(rèn)為一幀數(shù)據(jù)已經(jīng)接收,新的一幀數(shù)據(jù)傳輸開始。RTU
    發(fā)表于 04-27 06:00

    Modbus-RTU協(xié)議模式學(xué)習(xí)下載

    、ASCII、TCP三種模式,其中RTU模式(即Modbus-RTU)最常用。3.協(xié)議定義: 所謂協(xié)議,就是互相之間的約定。如果不讓別人知道那就是暗號(hào)。4.協(xié)議定義...
    發(fā)表于 07-02 06:12

    Modbus_RTU的通訊方式是什么

    是ZNZS2 轉(zhuǎn)速表。首先我們要收集到該轉(zhuǎn)速表的波特率(9600)、功能碼(03:保持型寄存器 40001)、地址(3)等信息。創(chuàng)建通信指令介紹RTU通訊有兩種通信指令:ModbusRTU
    發(fā)表于 02-16 06:52

    介紹S7-1200 Modbus RTU主站通信組態(tài)及編程步驟

      S7-1200 支持Modbus RTU通信模式的模塊可作為Modbus RTU主站。以下以 CPU1215C DC/DC/DC和CM1
    發(fā)表于 03-15 16:13

    modbus TCP和modbus RTU有什么區(qū)別?

    modbus TCP和modbus RTU有什么區(qū)別
    發(fā)表于 10-09 06:20

    基于S7-200下的Modbus RTU通信協(xié)議

    我們都知道Modbus是公開通信協(xié)議,具有兩種串行傳輸模式,ASCII和RTU
    的頭像 發(fā)表于 07-05 08:58 ?6239次閱讀

    淺析無線RTU傳輸工作模式

    無線RTU傳輸模式應(yīng)用有自報(bào)、兼容、查詢、以及調(diào)試四種工作模式。
    發(fā)表于 09-07 09:31 ?2490次閱讀

    Modbus RTUModbus TCP的區(qū)別

    將每個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成固定的二位十六進(jìn)制字符串,然后依次串聯(lián),以TCP代碼的形式傳輸數(shù)據(jù)。RTU通常使用最多。 2.不同的通信方式:以太網(wǎng),相應(yīng)的通信模式MODBUS TCP。
    發(fā)表于 08-03 17:00 ?5.6w次閱讀

    一文詳解Modbus RTU數(shù)據(jù)幀格式

    介紹Modbus RTU數(shù)據(jù)幀格式之前,首先讓我們先了解一下Modbus的通訊模式。
    發(fā)表于 04-07 09:40 ?2.5w次閱讀
    一文詳解<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>數(shù)據(jù)幀格式

    MODBUS ASCII傳輸模式介紹

    前面2期我們學(xué)習(xí)了,第一篇MODBUS協(xié)議基本介紹,第二篇MODBUS RTU傳輸模式
    的頭像 發(fā)表于 07-19 15:58 ?5194次閱讀
    <b class='flag-5'>MODBUS</b> ASCII<b class='flag-5'>傳輸</b><b class='flag-5'>模式</b><b class='flag-5'>介紹</b>

    簡(jiǎn)單介紹Modbus RTU協(xié)議

    介紹modbus rtu之前,我們可以了解到,Modbus是施耐德電氣公司,于1979年發(fā)明的,是全球第一個(gè)真正用于工業(yè)現(xiàn)場(chǎng)的總線協(xié)議。
    的頭像 發(fā)表于 05-09 09:13 ?3701次閱讀
    簡(jiǎn)單<b class='flag-5'>介紹</b><b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>協(xié)議