第3章 通用串行通信接口技術(shù)_第1頁(yè)
第3章 通用串行通信接口技術(shù)_第2頁(yè)
第3章 通用串行通信接口技術(shù)_第3頁(yè)
第3章 通用串行通信接口技術(shù)_第4頁(yè)
第3章 通用串行通信接口技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第3章通用串行通信

接口技術(shù)IBM-PC及其兼容機(jī)是目前應(yīng)用較廣泛的一種計(jì)算機(jī),通常用它作為分布式測(cè)控系統(tǒng)的上位機(jī),而單片微處理器和單片微控制器軟硬件資源豐富,價(jià)格低,適合于作下位機(jī)。上位機(jī)與下位機(jī)一般采用串行通信技術(shù),常用的有RS-232C接口及RS-422和RS-485接口,并采用Modbus-RTU通信協(xié)議進(jìn)行通信。本章首先講述了串行通信基礎(chǔ),然后講述了RS-232C串行通信接口、RS-485串行通信接口和USB接口,最后講述了Modbus通信協(xié)議以及在PMM2000電力網(wǎng)絡(luò)儀表中的應(yīng)用。3.1串行通信基礎(chǔ)3.1.1串行異步通信數(shù)據(jù)格式無(wú)論是RS-232還是RS-485,均可采用串行異步收發(fā)數(shù)據(jù)格式。在串行端口的異步傳輸中,接收方一般事先并不知道數(shù)據(jù)會(huì)在什么時(shí)候到達(dá)。在它檢測(cè)到數(shù)據(jù)并做出響應(yīng)之前,第一個(gè)數(shù)據(jù)位就已經(jīng)過(guò)去了。因此每次異步傳輸都應(yīng)該在發(fā)送的數(shù)據(jù)之前設(shè)置至少一個(gè)起始位,以通知接收方有數(shù)據(jù)到達(dá),給接收方一個(gè)準(zhǔn)備接收數(shù)據(jù)、緩存數(shù)據(jù)和做出其他響應(yīng)所需要的時(shí)間。而在傳輸過(guò)程結(jié)束時(shí),則應(yīng)由一個(gè)停止位通知接收方本次傳輸過(guò)程已終止,以便接收方正常終止本次通信而轉(zhuǎn)入其他工作程序。串行異步收發(fā)(UART)通信的數(shù)據(jù)格式如圖3-1所示。圖3-1串行異步收發(fā)(UART)通信的數(shù)據(jù)格式3.1.2連接握手通信幀的起始位可以引起接收方的注意,但發(fā)送方并不知道,也不能確認(rèn)接收方是否已經(jīng)做好了接收數(shù)據(jù)的準(zhǔn)備。利用連接握手可以使收發(fā)雙方確認(rèn)已經(jīng)建立了連接關(guān)系,接收方已經(jīng)做好準(zhǔn)備,可以進(jìn)入數(shù)據(jù)收發(fā)狀態(tài)。連接握手過(guò)程是指發(fā)送者在發(fā)送一個(gè)數(shù)據(jù)塊之前使用一個(gè)特定的握手信號(hào)來(lái)引起接收者的注意,表明要發(fā)送數(shù)據(jù),接收者則通過(guò)握手信號(hào)回應(yīng)發(fā)送者,說(shuō)明它已經(jīng)做好了接收數(shù)據(jù)的準(zhǔn)備。連接握手可以通過(guò)軟件,也可以通過(guò)硬件來(lái)實(shí)現(xiàn)。3.1.3確認(rèn)接收者為表明數(shù)據(jù)已經(jīng)收到而向發(fā)送者回復(fù)信息的過(guò)程稱為確認(rèn)。有的傳輸過(guò)程可能會(huì)收到報(bào)文而不需要向相關(guān)節(jié)點(diǎn)回復(fù)確認(rèn)信息。但是在許多情況下,需要通過(guò)確認(rèn)告知發(fā)送者數(shù)據(jù)已經(jīng)收到。有的發(fā)送者需要根據(jù)是否收到確認(rèn)信息來(lái)采取相應(yīng)的措施,因而確認(rèn)對(duì)某些通信過(guò)程是必需的和有用的。即便接收者沒(méi)有其他信息要告訴發(fā)送者,也要為此單獨(dú)發(fā)一個(gè)確認(rèn)數(shù)據(jù)已經(jīng)收到的信息。確認(rèn)報(bào)文可以是一個(gè)特別定義過(guò)的字節(jié),例如一個(gè)標(biāo)識(shí)接收者的數(shù)值。發(fā)送者收到確認(rèn)報(bào)文就可以認(rèn)為數(shù)據(jù)傳輸過(guò)程正常結(jié)束。如果發(fā)送者沒(méi)有收到所希望回復(fù)的確認(rèn)報(bào)文,它就認(rèn)為通信出現(xiàn)了問(wèn)題,然后將采取重發(fā)或者其他行動(dòng)。3.1.4中斷中斷是一個(gè)信號(hào),它通知CPU有需要立即響應(yīng)的任務(wù)。每個(gè)中斷請(qǐng)求對(duì)應(yīng)一個(gè)連接到中斷源和中斷控制器的信號(hào)。通過(guò)自動(dòng)檢測(cè)端口事件發(fā)現(xiàn)中斷并轉(zhuǎn)入中斷處理。許多串行端口采用硬件中斷。在串口發(fā)生硬件中斷,或者一個(gè)軟件緩存的計(jì)數(shù)器到達(dá)一個(gè)觸發(fā)值時(shí),表明某個(gè)事件已經(jīng)發(fā)生,需要執(zhí)行相應(yīng)的中斷響應(yīng)程序,并對(duì)該事件做出及時(shí)的反應(yīng)。這種過(guò)程也稱為事件驅(qū)動(dòng)。3.1.5輪詢通過(guò)周期性地獲取特征或信號(hào)來(lái)讀取數(shù)據(jù)或發(fā)現(xiàn)是否有事件發(fā)生的工作過(guò)程稱為輪詢。它需要足夠頻繁地輪詢端口,以便不遺失任何數(shù)據(jù)或者事件。輪詢的頻率取決于對(duì)事件快速反應(yīng)的需求以及緩存區(qū)的大小。輪詢通常用于計(jì)算機(jī)與I/O端口之間較短數(shù)據(jù)或字符組的傳輸。由于輪詢端口不需要硬件中斷,因此可以在一個(gè)沒(méi)有分配中斷的端口運(yùn)行此類程序。很多輪詢使用系統(tǒng)計(jì)時(shí)器來(lái)確定周期性讀取端口的操作時(shí)間。3.1.6差錯(cuò)檢驗(yàn)數(shù)據(jù)通信中的接收者可以通過(guò)差錯(cuò)檢驗(yàn)來(lái)判斷所接收的數(shù)據(jù)是否正確。冗余數(shù)據(jù)校驗(yàn)、奇偶校驗(yàn)、校驗(yàn)和、循環(huán)冗余校驗(yàn)等都是串行通信中常用的差錯(cuò)檢驗(yàn)方法。1.冗余數(shù)據(jù)校驗(yàn)發(fā)送冗余數(shù)據(jù)是實(shí)行差錯(cuò)檢驗(yàn)的一種簡(jiǎn)單辦法。發(fā)送者對(duì)每條報(bào)文都發(fā)送兩次,由接收者根據(jù)這兩次收到的數(shù)據(jù)是否一致來(lái)判斷本次通信的有效性。當(dāng)然,采用這種方法意味著每條報(bào)文都要花兩倍的時(shí)間進(jìn)行傳輸。在傳送短報(bào)文時(shí)經(jīng)常會(huì)用到它。許多紅外線控制器就使用這種方法進(jìn)行差錯(cuò)檢驗(yàn)。2.奇偶校驗(yàn)串行通信中經(jīng)常采用奇偶校驗(yàn)來(lái)進(jìn)行錯(cuò)誤檢查。校驗(yàn)位可以按奇數(shù)位校驗(yàn),也可以按偶數(shù)位校驗(yàn)。許多串口支持5~8個(gè)數(shù)據(jù)位再加上奇偶校驗(yàn)位的工作方式。按數(shù)據(jù)位加上校驗(yàn)位共有偶數(shù)個(gè)0的規(guī)則填寫校驗(yàn)位的方式稱為偶校驗(yàn);而按數(shù)據(jù)位加上校驗(yàn)位共有奇數(shù)個(gè)0的規(guī)則填寫校驗(yàn)位的方式稱為奇校驗(yàn)。接收方檢驗(yàn)接收到的數(shù)據(jù),如果接收到的數(shù)據(jù)違背了事先約定的奇偶校驗(yàn)的規(guī)則,不是所期望的數(shù)值,說(shuō)明出現(xiàn)了傳輸錯(cuò)誤,則向發(fā)送方發(fā)送出錯(cuò)通知。3.1.6差錯(cuò)檢驗(yàn)3.校驗(yàn)和另一種差錯(cuò)檢驗(yàn)的方法是在通信數(shù)據(jù)中加入一個(gè)差錯(cuò)檢驗(yàn)字節(jié)。對(duì)一條報(bào)文中的所有字節(jié)進(jìn)行數(shù)學(xué)或者邏輯運(yùn)算,計(jì)算出校驗(yàn)和。將校驗(yàn)和形成的差錯(cuò)檢驗(yàn)字節(jié)作為該報(bào)文的組成部分。接收端對(duì)收到的數(shù)據(jù)重復(fù)這樣的計(jì)算,如果得到了一個(gè)不同的結(jié)果,就判定通信過(guò)程發(fā)生了差錯(cuò),說(shuō)明它接收到的數(shù)據(jù)與發(fā)送數(shù)據(jù)不一致。CRC循環(huán)冗余校驗(yàn)也是串行通信中常用的檢錯(cuò)方法,它采用比校驗(yàn)和更為復(fù)雜的數(shù)學(xué)計(jì)算,其校驗(yàn)結(jié)果也更加可靠。4.出錯(cuò)的簡(jiǎn)單處理當(dāng)一個(gè)節(jié)點(diǎn)檢測(cè)到通信中出現(xiàn)的差錯(cuò)或者接收到一條無(wú)法理解的報(bào)文時(shí),應(yīng)該盡量通知發(fā)送報(bào)文的節(jié)點(diǎn),要求它重新發(fā)送或者采取別的措施來(lái)糾正。經(jīng)過(guò)多次重發(fā),如果發(fā)送者仍不能糾正這個(gè)差錯(cuò),發(fā)送者應(yīng)該跳過(guò)對(duì)這個(gè)節(jié)點(diǎn)的發(fā)送,發(fā)布一條出錯(cuò)消息,通過(guò)報(bào)警或者其他操作來(lái)通知操作人員發(fā)生了通信差錯(cuò),并盡可能繼續(xù)執(zhí)行其他任務(wù)。接收者如果發(fā)現(xiàn)一條報(bào)文比期望的報(bào)文要短,應(yīng)該能最終停止連接,并讓主計(jì)算機(jī)知道出現(xiàn)了問(wèn)題,而不能無(wú)休止地等待一個(gè)報(bào)文結(jié)束。主計(jì)算機(jī)可以決定讓該報(bào)文繼續(xù)發(fā)送、重發(fā)或者停發(fā)。不應(yīng)因發(fā)現(xiàn)問(wèn)題而讓網(wǎng)絡(luò)處于無(wú)休止的等待狀態(tài)。3.2RS-232C串行通信接口3.2.1RS-232C端子RS-232C的連接插頭用25針或9針的EIA連接插頭座,其主要端子分配如表3-1所示。端

腳方

向符

號(hào)功

能25針9針23輸出TXD發(fā)送數(shù)據(jù)32輸入RXD接收數(shù)據(jù)47輸出RTS請(qǐng)求發(fā)送58輸入CTS為發(fā)送清零66輸入DSR數(shù)據(jù)設(shè)備準(zhǔn)備好75

GND信號(hào)地81輸入DCD數(shù)據(jù)信號(hào)檢測(cè)204輸出DTR229輸入RI表3-1RS-232C主要端子3.2.1RS-232C端子1.信號(hào)含義(1)從計(jì)算機(jī)到MODEM的信號(hào)DTR——數(shù)據(jù)終端(DTE)準(zhǔn)備好:告訴MODEM計(jì)算機(jī)已接通電源,并準(zhǔn)備好。RTS——請(qǐng)求發(fā)送:告訴MODEM現(xiàn)在要發(fā)送數(shù)據(jù)。(2)從MODEM到計(jì)算機(jī)的信號(hào)DSR——數(shù)據(jù)設(shè)備(DCE)準(zhǔn)備好:告訴計(jì)算機(jī)MODEM已接通電源,并準(zhǔn)備好了。CTS——為發(fā)送清零:告訴計(jì)算機(jī)MODEM已作好了接收數(shù)據(jù)的準(zhǔn)備。DCD——數(shù)據(jù)信號(hào)檢測(cè):告訴計(jì)算機(jī)MODEM已與對(duì)端的MODEM建立連接了。RI——振鈴指示器:告訴計(jì)算機(jī)對(duì)端電話已在振鈴了。(3)數(shù)據(jù)信號(hào)TXD——發(fā)送數(shù)據(jù)。RXD——接收數(shù)據(jù)。3.2.1RS-232C端子2.電氣特性RS-232C的電氣線路連接如圖3-2所示。圖3-2RS-232C的電氣連接接口為非平衡型,每個(gè)信號(hào)用一根導(dǎo)線,所有信號(hào)回路共用一根地線。信號(hào)速率限于20kbit/s內(nèi),電纜長(zhǎng)度限于15m之內(nèi)。由于是單線,線間干擾較大。其電性能用±12V標(biāo)準(zhǔn)脈沖。值得注意的是RS-232C采用負(fù)邏輯。在數(shù)據(jù)線上:傳號(hào)Mark=-5~-15V,邏輯“1”電平空號(hào)Space=+5~+15V,邏輯“0”電平在控制線上:通On=+5~+15V,邏輯“0”電平斷Off=-5~-15V,邏輯“1”電平RS-232C的邏輯電平與TTL電平不兼容,為了與TTL器件相連必須進(jìn)行電平轉(zhuǎn)換。由于RS-232C采用電平傳輸,在通信速率為19.2kbit/s時(shí),其通信距離只有15m。若要延長(zhǎng)通信距離,必須以降低通信速率為代價(jià)。3.2.2通信接口的連接當(dāng)兩臺(tái)計(jì)算機(jī)經(jīng)RS-232C口直接通信時(shí),兩臺(tái)計(jì)算機(jī)之間的聯(lián)絡(luò)線可用圖3-3和圖3-4表示。雖然不接MODEM,圖中仍連接著有關(guān)的MODEM信號(hào)線,這是由于INT14H中斷使用這些信號(hào),假如程序中沒(méi)有調(diào)用INT14H,在自編程序中也沒(méi)有用到MODEM的有關(guān)信號(hào),兩臺(tái)計(jì)算機(jī)直接通信時(shí),只連接2、3、7(25針EIA)或3、2、5(9針EIA)就可以了。圖3-3使用MODEM信號(hào)的RS-232C接口圖3-4不使用MODEM信號(hào)的RS-232C接口3.2.3RS-232C電平轉(zhuǎn)換器為了實(shí)現(xiàn)采用+5V供電的TTL和CMOS通信接口電路能與RS-232C標(biāo)準(zhǔn)接口連接,必須進(jìn)行串行口的輸入/輸出信號(hào)的電平轉(zhuǎn)換。目前常用的電平轉(zhuǎn)換器有MOTOROLA公司生產(chǎn)的MC1488驅(qū)動(dòng)器、MC1489接收器,TI公司的SN75188驅(qū)動(dòng)器、SN75189接收器及美國(guó)MAXIM公司生產(chǎn)的單一+5V電源供電、多路RS-232驅(qū)動(dòng)器/接收器,如MAX232A等。MAX232A內(nèi)部具有雙充電泵電壓變換器,把+5V變換成±10V,作為驅(qū)動(dòng)器的電源,具有兩路發(fā)送器及兩路接收器,使用相當(dāng)方便。MAX232A引腳如圖3-5所示,典型應(yīng)用如圖3-6所示。單一+5V電源供電的RS-232C電平轉(zhuǎn)換器還有TL232、ICL232等。圖3-5MAX232A引腳圖圖3-6MAX232A典型應(yīng)用3.3RS-485串行通信接口3.3.1RS-485接口標(biāo)準(zhǔn)RS-485接口采用二線差分平衡傳輸,其信號(hào)定義如下。當(dāng)采用+5V電源供電時(shí):若差分電壓信號(hào)為-2500~-200mV時(shí),為邏輯“0”;若差分電壓信號(hào)為+2500~+200mV時(shí),為邏輯“1”;若差分電壓信號(hào)為-200~+200mV時(shí),為高阻狀態(tài)。RS-485的差分平衡電路如圖3-7所示。其一根導(dǎo)線上的電壓是另一根導(dǎo)線上的電壓值取反。接收器的輸入電壓為這兩根導(dǎo)線電壓的差值。圖3-7差分平衡電路3.3.1RS-485接口標(biāo)準(zhǔn)RS-485價(jià)格比較便宜,能夠很方便地添加到一個(gè)系統(tǒng)中,還支持比RS-232更長(zhǎng)的距離、更快的速度以及更多的節(jié)點(diǎn)。RS-485、RS-422、RS-232C之間的主要性能指標(biāo)的比較如表3-2所示。規(guī)

范RS-232CRS-422RS-485最大傳輸距離15m1200m(速率100kbit/s)1200m(速率100kbit/s)最大傳輸速度20kbit/s10Mbit/s(距離12m)10Mbit/s(距離12m)驅(qū)動(dòng)器最小輸出/V±5±2±1.5驅(qū)動(dòng)器最大輸出/V±15±10±6接收器敏感度/V±3±0.2±0.2最大驅(qū)動(dòng)器數(shù)量1132單位負(fù)載最大接收器數(shù)量11032單位負(fù)載傳輸方式單端差分差分表3-2RS-485、RS-422、RS-232C的主要技術(shù)參數(shù)3.3.2RS-485收發(fā)器RS-485收發(fā)器種類較多,如MAXIM公司的MAX485,TI公司的SN75LBC184、SN65LBC184,高速型SN65ALS1176等。它們的引腳是完全兼容的,其中SN65ALS1176主要用于高速應(yīng)用場(chǎng)合,如PROFIBUS-DP現(xiàn)場(chǎng)總線等。下面僅介紹SN75LBC184。SN75LBC184為具有瞬變電壓抑制的差分收發(fā)器,SN75LBC184為商業(yè)級(jí),其工業(yè)級(jí)產(chǎn)品為SN65LBC184。引腳如圖3-8所示。引腳介紹如下:R:接收端。:接收使能,低電平有效。DE:發(fā)送使能,高電平有效。D:發(fā)送端A:差分正輸入端。B:差分負(fù)輸入端。VCC:+5V電源。GND:地。SN75LBC184和SN65LBC184具有如下特點(diǎn)。具有瞬變電壓抑制能力,能防雷電和抗靜電放電沖擊;限斜率驅(qū)動(dòng)器,使電磁干擾減到最小,并能減少傳輸線終端不匹配引起的反射;總線上可掛接64個(gè)收發(fā)器;接收器輸入端開路故障保護(hù);具有熱關(guān)斷保護(hù);低禁止電源電流,最大300μA;引腳與SN75176兼容。3.3.3應(yīng)用電路在圖3-9中,RS-485收發(fā)器可為SN75LBC184、SN65LBC184、MAX485等。當(dāng)P10為低電平時(shí),接收數(shù)據(jù);當(dāng)P10為高電平時(shí),發(fā)送數(shù)據(jù)。如果采用RS-485組成總線拓?fù)浣Y(jié)構(gòu)的分布式測(cè)控系統(tǒng),在雙絞線終端應(yīng)接120Ω的終端電阻。圖3-9RS-485應(yīng)用電路3.3.4RS-485網(wǎng)絡(luò)互聯(lián)利用RS-485接口可以使一個(gè)或者多個(gè)信號(hào)發(fā)送器與接收器互聯(lián),在多臺(tái)計(jì)算機(jī)或帶微控制器的設(shè)備之間實(shí)現(xiàn)遠(yuǎn)距離數(shù)據(jù)通信,形成分布式測(cè)控網(wǎng)絡(luò)系統(tǒng)。1.RS-485的半雙工通信方式在大多數(shù)應(yīng)用條件下,RS-485的端口連接都采用半雙工通信方式。有多個(gè)驅(qū)動(dòng)器和接收器共享一條信號(hào)通路。圖3-10為RS-485端口半雙工連接的電路圖。其中RS-485差動(dòng)總線收發(fā)器采用SN75LBC184。圖3-10中的兩個(gè)120Ω電阻是作為總線的終端電阻存在的。當(dāng)終端電阻等于電纜的特征阻抗時(shí),可以削弱甚至消除信號(hào)的反射。特征阻抗是導(dǎo)線的特征參數(shù),它的數(shù)值隨著導(dǎo)線的直徑、在電纜中與其他導(dǎo)線的相對(duì)距離以及導(dǎo)線的絕緣類型而變化。特征阻抗值與導(dǎo)線的長(zhǎng)度無(wú)關(guān),一般雙絞線的特征阻抗為100~150Ω。RS-485的驅(qū)動(dòng)器必須能驅(qū)動(dòng)32個(gè)單位負(fù)載加上一個(gè)60Ω的并聯(lián)終端電阻,總的負(fù)載,包括驅(qū)動(dòng)器、接收器和終端電阻,不低于54Ω。圖中兩個(gè)120Ω電阻的并聯(lián)值為60Ω,32個(gè)單位負(fù)載中接收器的輸入阻抗會(huì)使得總負(fù)載略微降低;而驅(qū)動(dòng)器的輸出與導(dǎo)線的串聯(lián)阻抗又會(huì)使總負(fù)載增大。最終需要滿足不低于54Ω的要求。還應(yīng)該注意的是,在一個(gè)半雙工連接中,在同一時(shí)間內(nèi)只能有一個(gè)驅(qū)動(dòng)器工作。如果發(fā)生兩個(gè)或多個(gè)驅(qū)動(dòng)器同時(shí)啟用,一個(gè)企圖使總線上呈現(xiàn)邏輯1,另一個(gè)企圖使總線上呈現(xiàn)邏輯0,則會(huì)發(fā)生總線競(jìng)爭(zhēng),在某些元件上就會(huì)產(chǎn)生大電流。因此所有RS-485的接口芯片上都必須包括限流和過(guò)熱關(guān)閉功能,以便在發(fā)生總線競(jìng)爭(zhēng)時(shí)保護(hù)芯片。3.3.4RS-485網(wǎng)絡(luò)互聯(lián)1.RS-485的半雙工通信方式圖3-10RS-485端口的半雙工連接3.3.4RS-485網(wǎng)絡(luò)互聯(lián)2.RS-485的全雙工連接盡管大多數(shù)RS-485的連接是半雙工的,但是也可以形成全雙工RS-485連接。圖3-11和圖3-12分別表示兩點(diǎn)和多點(diǎn)之間的全雙工RS-485連接。在全雙工連接中信號(hào)的發(fā)送和接收方向都有它自己的通路。在全雙工、多節(jié)點(diǎn)連接中,一個(gè)節(jié)點(diǎn)可以在一條通路上向所有其他節(jié)點(diǎn)發(fā)送信息,而在另一條通路上接收來(lái)自其他節(jié)點(diǎn)的信息。圖3-11兩個(gè)RS-485端口的全雙工連接圖3-12多個(gè)RS-485端口的全雙工連接兩點(diǎn)之間全雙工連接的通信在發(fā)送和接收上都不會(huì)存在問(wèn)題。但當(dāng)多個(gè)節(jié)點(diǎn)共享信號(hào)通路時(shí),需要以某種方式對(duì)網(wǎng)絡(luò)控制權(quán)進(jìn)行管理。這是在全雙工、半雙工連接中都需要解決的問(wèn)題。RS-232C和RS-485之間的轉(zhuǎn)換可采用相應(yīng)的轉(zhuǎn)換模塊。3.4USB接口3.4.1USB接口的定義USB(UniversalSerialBus)即通用串行總線,是連接計(jì)算機(jī)系統(tǒng)與外部設(shè)備的一種串口總線標(biāo)準(zhǔn),也是一種輸入輸出接口的技術(shù)規(guī)范。USB總線接口從USB1.0、USB1.1、USB2.0發(fā)展到現(xiàn)在的最新版本USB3.0,在發(fā)展過(guò)程中新舊版本都保持著良好的兼容性,這也是USB迅速發(fā)展成為計(jì)算機(jī)標(biāo)準(zhǔn)擴(kuò)展接口的重要原因。目前,Windows系統(tǒng)自帶USB驅(qū)動(dòng)程序以識(shí)別USB外部設(shè)備,使用起來(lái)非常方便。USB不同版本的主要區(qū)別在最大傳輸速率上,目前最常用的是USB2.0和超高速USB3.0。下面以USB2.0A型插頭為例,介紹其引腳功能。USB2.0A型插座和插頭的示意圖如圖3-13所示。圖3-13USB2.0A型插座和插頭示意圖各引腳功能介紹如下:VBUS:引腳1,為USB接口的+5V電源。D-:引腳2,為USB差分負(fù)信號(hào)數(shù)據(jù)線。D+:引腳3,為USB差分正信號(hào)數(shù)據(jù)線。GND:引腳4,為USB接口的地線。3.4.2USB接口的特點(diǎn)USB接口具有以下特點(diǎn):①可熱插拔。用戶可以在計(jì)算機(jī)正常工作的情況下任意連接或斷開USB設(shè)備。②高速串行數(shù)據(jù)通信。USB總線接口通信采用的是串行通信的方式,具有高速傳輸能力。其中USB2.0采用的是半雙工通信方式,而USB3.0采用的是全雙工通信方式,大大加快了傳輸速度。③數(shù)據(jù)傳輸模式多樣。USB接口支持4種傳輸模式:控制傳輸、中斷傳輸、同步傳輸和塊傳輸。不同的USB設(shè)備可根據(jù)自身特點(diǎn)選擇不同的傳輸模式。④連接靈活。一個(gè)USB控制器理論上可以連接多達(dá)127個(gè)外設(shè)。3.4.3USB接口的應(yīng)用隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,新的計(jì)算機(jī)外設(shè)大量涌現(xiàn),USB接口以其顯著的優(yōu)勢(shì)迅速在計(jì)算機(jī)接口領(lǐng)域占據(jù)了主導(dǎo)地位。目前USB接口已成為臺(tái)式機(jī)、筆記本電腦、平板電腦的標(biāo)準(zhǔn)接口,并且越來(lái)越多的外部設(shè)備采用了USB接口,例如鼠標(biāo)、鍵盤、打印機(jī)、數(shù)字電視、U盤、移動(dòng)硬盤、手機(jī)、數(shù)據(jù)采集卡等。3.5Modbus通信協(xié)議3.5.1概述Modbus協(xié)議是應(yīng)用于PLC或其他控制器上的一種通用語(yǔ)言。通過(guò)此協(xié)議,控制器之間、控制器通過(guò)網(wǎng)絡(luò)(如以太網(wǎng))和其他設(shè)備之間可以實(shí)現(xiàn)串行通信。該協(xié)議已經(jīng)成為通用工業(yè)標(biāo)準(zhǔn)。采用Modbus協(xié)議,不同廠商生產(chǎn)的控制設(shè)備可以互連成工業(yè)網(wǎng)絡(luò),實(shí)現(xiàn)集中監(jiān)控。此協(xié)議定義了一個(gè)控制器能識(shí)別使用的消息結(jié)構(gòu),而不管它們是經(jīng)過(guò)何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了控制器請(qǐng)求訪問(wèn)其他設(shè)備的過(guò)程,如何響應(yīng)來(lái)自其他設(shè)備的請(qǐng)求,以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格式和內(nèi)容的公共格式。3.5.1概述標(biāo)準(zhǔn)的Modbus接口使用RS-232C兼容串行接口,它定義了連接器的引腳、電纜、信號(hào)位、傳輸波特率、奇偶校驗(yàn)??刂破髂苤苯踊蛲ㄟ^(guò)調(diào)制解調(diào)器組網(wǎng)。控制器通信使用主-從技術(shù),即僅某一設(shè)備(主設(shè)備)能主動(dòng)傳輸(查詢),其他設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出響應(yīng)。典型的主設(shè)備有:主機(jī)和可編程儀表。典型的從設(shè)備:可編程控制器。主設(shè)備可單獨(dú)和從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。如果單獨(dú)通信,從設(shè)備返回一消息作為響應(yīng),如果是以廣播方式查詢的,則不作任何響應(yīng)。Modbus協(xié)議建立了主設(shè)備查詢的格式:設(shè)備(或廣播)地址、功能代碼、所有要發(fā)送的數(shù)據(jù)、一個(gè)錯(cuò)誤檢測(cè)域。從設(shè)備響應(yīng)消息也由Modbus協(xié)議構(gòu)成,包括確認(rèn)要?jiǎng)幼鞯挠?、任何要返回的?shù)據(jù)和一個(gè)錯(cuò)誤檢測(cè)域。如果在消息接收過(guò)程中發(fā)生一錯(cuò)誤,或從設(shè)備不能執(zhí)行其命令,從設(shè)備將建立一錯(cuò)誤消息并把它作為響應(yīng)發(fā)送出去。1.Modbus網(wǎng)絡(luò)上傳輸3.5.1概述在其他網(wǎng)絡(luò)上,控制器使用“對(duì)等”技術(shù)通信,任何控制器都能初始化和其他控制器的通信。這樣在單獨(dú)的通信過(guò)程中,控制器既可作為主設(shè)備也可作為從設(shè)備。提供的多個(gè)內(nèi)部通道可允許同時(shí)發(fā)生的傳輸進(jìn)程。在消息級(jí),Modbus協(xié)議仍提供了主-從原則,盡管網(wǎng)絡(luò)通信方法是“對(duì)等”的。如果一個(gè)控制器發(fā)送一消息,它只是作為主設(shè)備,并期望從從設(shè)備得到響應(yīng)。同樣,當(dāng)控制器接收到一消息,它將建立一從設(shè)備響應(yīng)格式并返回給發(fā)送的控制器。2.其他類型網(wǎng)絡(luò)上傳輸3.查詢-響應(yīng)周期(1)查詢查詢消息中的功能代碼告知被選中的從設(shè)備要執(zhí)行何種功能。數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。例如功能代碼03是要求從設(shè)備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告知從設(shè)備的信息:從何種寄存器開始讀及要讀的寄存器數(shù)量。錯(cuò)誤檢測(cè)域?yàn)閺脑O(shè)備提供了一種驗(yàn)證消息內(nèi)容是否正確的方法。(2)響應(yīng)如果從設(shè)備產(chǎn)生一正常的響應(yīng),在響應(yīng)消息中的功能代碼是在查詢消息中的功能代碼的響應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù),像寄存器值或狀態(tài)。如果有錯(cuò)誤發(fā)生,功能代碼將被修改以用于指出響應(yīng)消息是錯(cuò)誤的,同時(shí)數(shù)據(jù)段包含了描述此錯(cuò)誤信息的代碼。錯(cuò)誤檢測(cè)域允許主設(shè)備確認(rèn)消息內(nèi)容是否可用。3.5.2兩種傳輸方式控制器能設(shè)置為兩種傳輸模式(ASCII或RTU)中的任何一種在標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò)通信。用戶選擇想要的模式,包括串口通信參數(shù)(波特率、校驗(yàn)方式等),在配置每個(gè)控制器的時(shí)候,在一個(gè)Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。ASCII模式如圖3-14所示,RTU模式如圖3-15所示。圖3-14ASCII模式圖3-15RTU模式所選的ASCII或RTU方式僅適用于標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò),它定義了在這些網(wǎng)絡(luò)上連續(xù)傳輸?shù)南⒍蔚拿恳晃?,以及決定怎樣將信息打包成消息域和如何解碼。在其他網(wǎng)絡(luò)上(如MAP和ModbusPlus),Modbus消息被轉(zhuǎn)成與串行傳輸無(wú)關(guān)的幀。3.5.3Modbus消息幀兩種傳輸模式中(ASCII或RTU),傳輸設(shè)備可以將Modbus消息轉(zhuǎn)為有起點(diǎn)和終點(diǎn)的幀,這就允許接收的設(shè)備在消息起始處開始工作,讀地址分配信息,判斷哪一個(gè)設(shè)備被選中(廣播方式則傳給所有設(shè)備),判知何時(shí)信息已完成。部分的消息也能偵測(cè)到并且能將錯(cuò)誤設(shè)置為返回結(jié)果。使用ASCII模式,消息以冒號(hào)“:”字符(ASCII碼3AH)開始,以回車換行符(ASCII碼0DH,0AH)結(jié)束。其他域可以使用的傳輸字符是十六進(jìn)制的0~9,A~F。網(wǎng)絡(luò)上的設(shè)備不斷偵測(cè)“:”字符,當(dāng)有一個(gè)冒號(hào)接收到時(shí),每個(gè)設(shè)備都解碼下個(gè)域(地址域)來(lái)判斷是否是發(fā)給自己的。消息中字符間發(fā)送的時(shí)間間隔最長(zhǎng)不能超過(guò)1s,否則接收的設(shè)備將認(rèn)為傳輸錯(cuò)誤。一個(gè)典型消息幀如圖3-16所示。1.ASCII幀圖3-16ASCII消息幀3.5.3Modbus消息幀使用RTU模式,消息發(fā)送至少要以3.5個(gè)字符時(shí)間的停頓間隔開始。在網(wǎng)絡(luò)波特率下設(shè)置多個(gè)字符時(shí)間(比如圖3-15中的T1-T2-T3-T4),這是最容易實(shí)現(xiàn)的。傳輸?shù)牡谝粋€(gè)域是設(shè)備地址,可以使用的傳輸字符是十六進(jìn)制的0~9,A~F。網(wǎng)絡(luò)設(shè)備不斷偵測(cè)網(wǎng)絡(luò)總線,包括停頓間隔時(shí)間。當(dāng)?shù)谝粋€(gè)域(地址域)接收到,每個(gè)設(shè)備都進(jìn)行解碼以判斷是否是發(fā)給自己的。在最后一個(gè)傳輸字符之后,一個(gè)至少3.5個(gè)字符時(shí)間的停頓標(biāo)注了消息的結(jié)束,一個(gè)新的消息可在此停頓后開始。整個(gè)消息幀必須作為一連續(xù)的流傳輸。如果在幀完成之前有超過(guò)1.5個(gè)字符的停頓時(shí)間,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個(gè)新消息的地址域。同樣地,如果一個(gè)新消息在小于3.5個(gè)字符時(shí)間內(nèi)接著前一個(gè)消息開始,接收的設(shè)備將認(rèn)為它是前一消息的延續(xù)。這將導(dǎo)致一個(gè)錯(cuò)誤,因?yàn)樵谧詈蟮腃RC域的值不可能是正確的。一個(gè)典型的消息幀如圖3-17所示。2.RTU幀圖3-17RTU消息幀3.5.3Modbus消息幀消息幀的地址域包含兩個(gè)字符(ASCII)或8bit(RTU)。允許的從設(shè)備地址是0~247(十進(jìn)制)。單個(gè)從設(shè)備的地址范圍是1~247。主設(shè)備通過(guò)將從設(shè)備的地址放入消息中的地址域來(lái)選通從設(shè)備。當(dāng)從設(shè)備發(fā)送響應(yīng)消息時(shí),它把自己的地址放入響應(yīng)的地址域中,以便主設(shè)備知道是哪一個(gè)設(shè)備作出的響應(yīng)。地址0是用作廣播地址,以使所有的從設(shè)備都能識(shí)別。當(dāng)Modubs協(xié)議用于更高級(jí)的網(wǎng)絡(luò)時(shí),廣播可能不允許或以其他方式代替。3.地址域4.功能域消息幀中的功能代碼域包含了兩個(gè)字符(ASCII)或8bit(RTU)。允許的代碼范圍是十進(jìn)制的1~255。當(dāng)然,有些代碼是適用于所有控制器的,有些只適用于某種控制器,還有些保留以備后用。當(dāng)消息從主設(shè)備發(fā)往從設(shè)備時(shí),功能代碼域?qū)⒏嬷獜脑O(shè)備需要執(zhí)行哪些動(dòng)作。例如去讀取輸入的開關(guān)狀態(tài),讀一組寄存器的數(shù)據(jù)內(nèi)容,讀從設(shè)備的診斷狀態(tài),允許調(diào)入、記錄、校驗(yàn)在從設(shè)備中的程序等。當(dāng)從設(shè)備響應(yīng)時(shí),它使用功能代碼域來(lái)指示是正常響應(yīng)(無(wú)誤)還是有某種錯(cuò)誤發(fā)生(稱作異常響應(yīng))。對(duì)正常響應(yīng),從設(shè)備僅響應(yīng)相應(yīng)的功能代碼。對(duì)異常響應(yīng),從設(shè)備返回一個(gè)在正常功能代碼的最高位置1的代碼。3.5.3Modbus消息幀數(shù)據(jù)域是由兩位十六進(jìn)制數(shù)構(gòu)成的,范圍為00H~FFH。根據(jù)網(wǎng)絡(luò)傳輸模式,這可以是由一對(duì)ASCII字符組成或由一RTU字符組成。主設(shè)備發(fā)給從設(shè)備消息的數(shù)據(jù)域包含附加的信息:從設(shè)備必須采用該信息執(zhí)行由功能代碼所定義的動(dòng)作。這包括了像不連續(xù)的寄存器地址,要處理項(xiàng)目的數(shù)量,域中實(shí)際數(shù)據(jù)字節(jié)數(shù)。5.?dāng)?shù)據(jù)域6.錯(cuò)誤檢測(cè)域標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò)有兩種錯(cuò)誤檢測(cè)方法,錯(cuò)誤檢測(cè)域的內(nèi)容與所選的傳輸模式有關(guān)。(1)ASCII當(dāng)選用ASCII模式作字符幀,錯(cuò)誤檢測(cè)域包含兩個(gè)ASCII字符。這是使用LRC(縱向冗余檢測(cè))方法對(duì)消息內(nèi)容計(jì)算得出的,不包括開始的冒號(hào)符及回車換行符。LRC字符附加在回車換行符前面。(2)RTU當(dāng)選用RTU模式作字符幀,錯(cuò)誤檢測(cè)域包含一16bit值(用兩個(gè)8位的字符來(lái)實(shí)現(xiàn))。錯(cuò)誤檢測(cè)域的內(nèi)容是通過(guò)對(duì)消息內(nèi)容進(jìn)行循環(huán)冗余檢測(cè)方法得出的。CRC域附加在消息的最后,添加時(shí)先是低字節(jié)然后是高字節(jié)。故CRC的高位字節(jié)是發(fā)送消息的最后一個(gè)字節(jié)。3.5.3Modbus消息幀當(dāng)消息在標(biāo)準(zhǔn)的Modbus系列網(wǎng)絡(luò)上傳輸時(shí),每個(gè)字符或字節(jié)以如下方式發(fā)送(從左到右):最低有效位…最高有效位使用ASCII字符幀時(shí),位順序如圖3-18所示。7.字符的連續(xù)傳輸有奇偶校驗(yàn)無(wú)奇偶校驗(yàn)使用RTU字符幀時(shí),位順序如圖3-19所示。有奇偶校驗(yàn)無(wú)奇偶校驗(yàn)3.5.4錯(cuò)誤檢測(cè)方法標(biāo)準(zhǔn)的Modbus串行網(wǎng)絡(luò)采用兩種錯(cuò)誤檢測(cè)方法。奇偶校驗(yàn)對(duì)每個(gè)字符都可用,幀檢測(cè)(LRC或CRC)應(yīng)用于整個(gè)消息。它們都是在消息發(fā)送前由主設(shè)備產(chǎn)生的,從設(shè)備在接收過(guò)程中檢測(cè)每個(gè)字符和整個(gè)消息幀。退出傳輸前用戶要給主設(shè)備配置一預(yù)先定義的超時(shí)時(shí)間間隔,這個(gè)時(shí)間間隔要足夠長(zhǎng),以使任何從設(shè)備都能作為正常響應(yīng)。如果從設(shè)備檢測(cè)到一傳輸錯(cuò)誤,消息將不會(huì)接收,也不會(huì)向主設(shè)備作出響應(yīng)。這樣超時(shí)事件將觸發(fā)主設(shè)備來(lái)處理錯(cuò)誤。發(fā)往不存在的從設(shè)備的消息也會(huì)產(chǎn)生超時(shí)。1.奇偶校驗(yàn)用戶可以配置控制器是奇校驗(yàn)還是偶校驗(yàn),或無(wú)校驗(yàn)。這將決定每個(gè)字符中的奇偶校驗(yàn)位是如何設(shè)置的。2.LRC檢測(cè)使用ASCII模式,消息包括了一基于LRC方法的錯(cuò)誤檢測(cè)域。LRC域檢測(cè)消息域中除開始的冒號(hào)及結(jié)束的回車換行符以外的內(nèi)容。LRC域包含一個(gè)8位二進(jìn)制數(shù)的字節(jié)。LRC值由傳輸設(shè)備來(lái)計(jì)算并放到消息幀中,接收設(shè)備在接收消息的過(guò)程中計(jì)算LRC,并將它和接收到消息中LRC域中的值比較,如果兩值不相等,說(shuō)明有錯(cuò)誤。LRC方法是將消息中的8bit的字節(jié)連續(xù)累加,不考慮進(jìn)位。3.5.4錯(cuò)誤檢測(cè)方法3.CRC檢測(cè)使用RTU模式,消息包括了一基于CRC方法的錯(cuò)誤檢測(cè)域。CRC域檢測(cè)整個(gè)消息的內(nèi)容。CRC域是兩個(gè)字節(jié),包含一個(gè)16位的二進(jìn)制數(shù)。它由傳輸設(shè)備計(jì)算后加入到消息中。接收設(shè)備重新計(jì)算收到消息的CRC,并與接收到的CRC域中的值比較,如果兩值不同,則有錯(cuò)誤。CRC是先調(diào)入一數(shù)值是全“1”的16位寄存器,然后調(diào)用一過(guò)程將消息中連續(xù)的8bit字節(jié)和當(dāng)前寄存器中的值進(jìn)行處理。僅每個(gè)字符中的8bit數(shù)據(jù)對(duì)CRC有效,起始位和停止位以及奇偶校驗(yàn)位均無(wú)效。CRC產(chǎn)生過(guò)程中,每個(gè)8bit字符都單獨(dú)和寄存器內(nèi)容相或(OR),結(jié)果向最低有效位方向移動(dòng),最高有效位以0填充。LSB被提取出來(lái)檢測(cè),如果LSB為1,寄存器單獨(dú)和預(yù)置的值相或,如果LSB為0,則不進(jìn)行。整個(gè)過(guò)程要重復(fù)8次。在最后一位(第8位)完成后,下一個(gè)8bit字節(jié)又單獨(dú)和寄存器的當(dāng)前值相或。最終寄存器中的值,是消息中所有的字節(jié)都執(zhí)行之后的CRC值。CRC添加到消息中時(shí),低字節(jié)先加入,然后加入高字節(jié)。3.5.5Modbus的編程方法由RTU模式消息幀格式可以看出,在完整的一幀消息開始傳輸時(shí),必須和上一幀消息之間至少有3.5個(gè)字符時(shí)間的間隔,這樣接收方在接收時(shí)才能將該幀作為一個(gè)新的數(shù)據(jù)幀接收。另外,在本數(shù)據(jù)幀進(jìn)行傳輸時(shí),幀中傳輸?shù)拿總€(gè)字符之間必須不能超過(guò)1.5個(gè)字符時(shí)間的間隔,否則,本幀將被視為無(wú)效幀,但接收方將繼續(xù)等待和判斷下一次3.5個(gè)字符的時(shí)間間隔之后出現(xiàn)的新一幀并進(jìn)行相應(yīng)的處理。因此,在編程時(shí)首先要考慮1.5個(gè)字符時(shí)間和3.5個(gè)字符時(shí)間的設(shè)定和判斷。3.5.5Modbus的編程方法在RTU模式中,1個(gè)字符時(shí)間是指按照用戶設(shè)定的波特率傳輸一個(gè)字節(jié)所需要的時(shí)間。例如,當(dāng)傳輸波特率為2400bit/s時(shí),1個(gè)字符時(shí)間為:11×1/2400=4583μs同樣,可得出1.5個(gè)字符時(shí)間和3.5個(gè)字符時(shí)間分別為:11×1.5/2400=6875μs11×3.5/2400=16041μs為了節(jié)省定時(shí)器,在設(shè)定這兩個(gè)時(shí)間段時(shí)可以使用同一個(gè)定時(shí)器,定時(shí)時(shí)間取為1.5個(gè)字符時(shí)間和3.5個(gè)字符時(shí)間的最大公約數(shù)即0.5個(gè)字符時(shí)間,同時(shí)設(shè)定兩個(gè)計(jì)數(shù)器變量為m和n,用戶可以在需要開始啟動(dòng)時(shí)間判斷時(shí)將m和n清零。而在定時(shí)器的中斷服務(wù)程序中,只需要對(duì)m和n分別做加一運(yùn)算,并判斷是否累加到3和7。當(dāng)m=3時(shí),說(shuō)明1.5個(gè)字符時(shí)間已到,此時(shí)可以將1.5個(gè)字符時(shí)間已到標(biāo)志T15FLG置成01H,并將m重新清零;當(dāng)n=7時(shí),說(shuō)明3.5個(gè)字符時(shí)間已到,此時(shí)將3.5個(gè)字符時(shí)間已到標(biāo)志T35FLG置成01H,并將n重新清零。波特率從1200bit/s至19200bit/s,定時(shí)器定時(shí)時(shí)間均采用此方法計(jì)算而得。當(dāng)波特率為38400bit/s時(shí),Modbus通信協(xié)議推薦此時(shí)1個(gè)字符時(shí)間為500μs,即定時(shí)器定時(shí)時(shí)間為250μs。1.字符時(shí)間的設(shè)定3.5.5Modbus的編程方法在實(shí)現(xiàn)Modbus通信時(shí),設(shè)每個(gè)字節(jié)的一幀信息需要11位,其中1位起始位、8位數(shù)據(jù)位、2位停止位、無(wú)校驗(yàn)位。通過(guò)串行口的中斷接收數(shù)據(jù),中斷服務(wù)程序每次只接收并處理一字節(jié)數(shù)據(jù),并啟動(dòng)定時(shí)器實(shí)現(xiàn)時(shí)序判斷。在接收新一幀數(shù)據(jù)時(shí),接收完第一個(gè)字節(jié)之后,置一幀標(biāo)志FLAG為0AAH,表明當(dāng)前存在一有效幀正在接收,在接收該幀的過(guò)程中,一旦出現(xiàn)時(shí)序不對(duì),則將幀標(biāo)志FLAG置成55H,表明當(dāng)前存在的幀為無(wú)效幀。其后,接收到本幀的剩余字節(jié)仍然放入接收緩沖區(qū),但標(biāo)志FLAG不再改變,直至接收到3.5字符時(shí)間間隔后的新一幀數(shù)據(jù)的第一個(gè)字節(jié),主程序即可根據(jù)FLAG標(biāo)志判斷當(dāng)前是否有有效幀需要處理。Modbus數(shù)據(jù)串行口接收中斷服務(wù)程序如圖3-20所示。2.?dāng)?shù)據(jù)幀接收的編程方法3.5.5Modbus的編程方法2.?dāng)?shù)據(jù)幀接收的編程方法圖3-20Modbus數(shù)據(jù)串行口接收中斷服務(wù)程序結(jié)構(gòu)框圖3.6PMM2000電力網(wǎng)絡(luò)儀表及其應(yīng)用3.6.1PMM2000電力網(wǎng)絡(luò)儀表Modbus-RTU通信協(xié)議PMM2000電力網(wǎng)絡(luò)儀表Modbus-RTU通信協(xié)議詳細(xì)介紹如下。1.串口初始化參數(shù)串行通信方式:2位停止位、8位數(shù)據(jù)位、無(wú)校驗(yàn)位,RS-485ModbusRTU。波特率支持:1200bit/s,2400bit/s,4800bit/s,9600bit/s,19200bit/s, 38400bit/s。默認(rèn)地址:0x06。波特率:9600bit/s。3.6.1

PMM2000電力網(wǎng)絡(luò)儀表Modbus-RTU通信協(xié)議2.開關(guān)量輸入功能號(hào):0x02(1)發(fā)送數(shù)據(jù)開關(guān)量輸入0X02命令發(fā)送數(shù)據(jù)格式如表3-3所示。表3-3開關(guān)量輸入0X02命令發(fā)送數(shù)據(jù)格式(2)正常響應(yīng)數(shù)據(jù)開關(guān)量輸入0X02命令正常響應(yīng)數(shù)據(jù)格式如表3-4所示。表3-4開關(guān)量輸入0X02命令正常響應(yīng)數(shù)據(jù)格式注:如果N/8余數(shù)為0,則N*=N/8,否則N*=N/8+1。3.6.1

PMM2000電力網(wǎng)絡(luò)儀表Modbus-RTU通信協(xié)議2.開關(guān)量輸入例子:○1讀取當(dāng)前開關(guān)量輸入狀態(tài)(DI1~DI4)共四路,其中DI1=“1”,DI4=“1”(閉合);DI2,DI3=“0”(斷開)。(讀到的數(shù)據(jù)應(yīng)為09H,即“00001001”)主機(jī)發(fā)送數(shù)據(jù):060200000004CRCCRC從機(jī)正常響應(yīng)數(shù)據(jù):06020109CRCCRC上傳數(shù)據(jù)中:09H為DI1~DI4狀態(tài);Bit0~Bite3對(duì)應(yīng)DI1~DI4?!?讀取當(dāng)前開關(guān)量輸入狀態(tài)(DI1~DI16)共十六路,其中DI1=“1”,DI4=“1”(閉合);DI8=“1”(閉合);DI9=“1”,DI11=“1”(閉合),其余斷開。(讀到的數(shù)據(jù)應(yīng)為05H89H,即“0000010110001001”)主機(jī)發(fā)送數(shù)據(jù):06020000000CCRCCRC從機(jī)正常響應(yīng)數(shù)據(jù):0602020589CRCCRC上傳數(shù)據(jù)中:89H為DI1~DI8狀態(tài);Bit0~Bite7對(duì)應(yīng)DI1~DI8;

05H為DI9~DI12狀態(tài);Bit0~Bite3對(duì)應(yīng)DI9~DI12。3.6.1

PMM2000電力網(wǎng)絡(luò)儀表Modbus-RTU通信協(xié)議3.繼電器控制繼電器地址從0x0000開始。功能號(hào):0x05輸出值:“FF00”為控制繼電器“合”;

“0000”為控制繼電器“分”。(1)發(fā)送數(shù)據(jù)繼電器輸出0X05命令發(fā)送數(shù)據(jù)格式如表3-5所示。表3-5繼電器輸出0X05命令發(fā)送數(shù)據(jù)格式3.6.1PMM2000電力網(wǎng)絡(luò)儀表Modbus-RTU通信協(xié)議3.繼電器控制(2)正常響應(yīng)數(shù)據(jù)繼電器輸出0X05命令正常響應(yīng)數(shù)據(jù)格式如表3-6所示。表3-6繼電器輸出0X05命令正常響應(yīng)數(shù)據(jù)格式例子:繼電器2當(dāng)前狀態(tài)為“開”狀態(tài),控制繼電器2輸出“合”狀態(tài)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論