www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]摘要:提出利用MODBUS協(xié)議實現(xiàn)多CPU系統(tǒng)中信息交互的方案,分析了軟硬件通信機(jī)制的設(shè)計和系統(tǒng)協(xié)同開發(fā)的方法,以及各種提高通信效率的措施。關(guān)鍵詞:MODBUS通信協(xié)議 多CPU系

摘要:提出利用MODBUS協(xié)議實現(xiàn)多CPU系統(tǒng)中信息交互的方案,分析了軟硬件通信機(jī)制的設(shè)計和系統(tǒng)協(xié)同開發(fā)的方法,以及各種提高通信效率的措施。

關(guān)鍵詞:MODBUS通信協(xié)議 多CPU系統(tǒng) 通信

在電力系統(tǒng)微機(jī)綜合保護(hù)和自控裝置以及其它工業(yè)自動化控制領(lǐng)域,微控制器的應(yīng)用越來越廣泛,其裝置的復(fù)雜性也越來越高。為了解決其開發(fā)對象實時多任務(wù)性的要求,單CPU、單入開發(fā)的模式下在被多個、多類型 CPU和多人協(xié)同開發(fā)的模式所代替。在這新的開發(fā)模式中,面臨一個新問題——在實施信息交互的過程中如何將實現(xiàn)CPU之間信息交互的軟硬件標(biāo)準(zhǔn)化,這是關(guān)系到該模式能否成功實施的關(guān)鍵。在眾多的通信方式中,基于UART的RS-485串行通信模式以其連線簡捷、可靠性高和可帶動多CPU、多設(shè)備級連的能力而被廣泛采用。在軟件通信協(xié)議的選擇上,MODBUS協(xié)議由于其通用、成熟的第三方標(biāo)準(zhǔn)測試軟件,為用戶使用提供了諸多優(yōu)勢。因此,在開發(fā)新型電動機(jī)綜合保護(hù)裝置TH21-4M的過程中,采用RS-485串行通信方式和MODBUS通信協(xié)議,實現(xiàn)了多CPU之間的數(shù)據(jù)和控制命令的信息交互。為了增強(qiáng)串行通信的高效、協(xié)調(diào)性,筆者在通信機(jī)制的軟硬件結(jié)構(gòu)上采取了很多措施,并取得了很好的效果。在調(diào)試系統(tǒng)通信階段,使用了各CPU模塊先與MODBUS標(biāo)準(zhǔn)測試軟件通信,之后再互相聯(lián)調(diào)的方法,大大提高了協(xié)同開發(fā)的效率。實踐證明,該設(shè)計思想簡化了系統(tǒng)的結(jié)構(gòu),大大提高了裝置的運行效率和可靠性。本文將結(jié)合 TH21-4M的設(shè)計思路,從硬件設(shè)計和軟件規(guī)劃兩方面,介紹如何利用MODBUS通信協(xié)議,實現(xiàn)多CPU結(jié)構(gòu)的協(xié)同開發(fā)。

1 TH21-4M電動機(jī)綜合保護(hù)裝置的特點

TH21-4M電動機(jī)綜合保護(hù)裝置綜合保護(hù)功能以外,兼有測量、遠(yuǎn)動和通信的功能;大屏幕的漢字液晶顯示,可以實現(xiàn)友好的人機(jī)界面;利用CAN總線,與監(jiān)控主機(jī)進(jìn)行通信,從而構(gòu)成分級分散式的變電站綜合自動化系統(tǒng)的子系統(tǒng)。

在設(shè)計上,由于裝置需要實現(xiàn)多任務(wù),為了優(yōu)化系統(tǒng)功能,采用了多CPU的系統(tǒng)結(jié)構(gòu)。其中一個CPU負(fù)責(zé)定時采樣脈沖發(fā)送;主CPU模塊負(fù)責(zé)數(shù)據(jù)處理、電量計算、故障判斷和開關(guān)操作;而板模塊上CPU負(fù)責(zé)人機(jī)交互,并實現(xiàn)與主保護(hù)模塊和監(jiān)控主機(jī)的通信任務(wù)。各個CPU模塊有明確的任務(wù)分工,研制時也容易實現(xiàn)多人協(xié)同開發(fā)。在整個構(gòu)成中,串行通信溝通了主CPU和面板CPU,使人機(jī)交互成為可能,因而點有重要的地位。建立合理的通信機(jī)制則是串行通信部分的核心的所在,它決定著通信的協(xié)調(diào)性和系統(tǒng)開發(fā)后期調(diào)試的效率。

 

2 通信機(jī)制介紹

2.1 通信機(jī)制硬件設(shè)計原理

本系統(tǒng)通信機(jī)制的提出以高效、可靠為目的。RS-485為半雙工結(jié)構(gòu),現(xiàn)場中比全雙工往往更接近于實用,在此采用只有2條信號線的最簡型連接。系統(tǒng)接口電路圖由圖1所示。主保護(hù)模塊上的80C196單片機(jī)輸出的TTL邏輯電平通過光電隔離后,由MAX485芯片轉(zhuǎn)換為RS-495電平,再由面板模塊上的MAX485芯片轉(zhuǎn)換為TTL邏輯電平,由80C31單片機(jī)讀取;以之亦然。在 80C196單片機(jī)一側(cè),使用并行輸入輸出口2(IO_PORT2)的一位P2.7對MAX輸入使能端RE、輸出使能端DE進(jìn)行控制。由圖1可知,當(dāng) P2.7輸出高電平時,RE使能,單片機(jī)一側(cè)接收數(shù)據(jù);當(dāng)P2.7輸出低電平時,DE使能,單片機(jī)一側(cè)發(fā)送數(shù)據(jù)。這樣,避免了盲目發(fā)送造成的數(shù)據(jù)疊加丟失現(xiàn)象,通信質(zhì)量高,通信速度也能得到保證。

2.2 通信協(xié)議介紹

為了保證保護(hù)裝置中兩個模塊之間能夠正確地傳遞數(shù)據(jù),必須有一套關(guān)于信息傳輸?shù)哪J?、?shù)據(jù)格式和內(nèi)容等的規(guī)定,即規(guī)約[1]或通信協(xié)議。雖然保護(hù)裝置內(nèi)部的通信相對簡單,兩具模塊之間傳遞的數(shù)據(jù)也不是很多,但是自定義內(nèi)部通信協(xié)議的弊端是很明顯的。首先,自定義通信協(xié)議很難在時序、任務(wù)的協(xié)調(diào)上配合得很好,數(shù)據(jù)傳送的可靠性也難以保證;首次,由于沒有現(xiàn)成的較成熟的調(diào)試軟件,主 CPU模塊基本是黑匣子,系統(tǒng)聯(lián)調(diào)時的困難較多且難以克服。因此,采用了當(dāng)前流行的MODBUS通信協(xié)議,并結(jié)合本裝置的特點加以簡化,從而實現(xiàn)了模塊間的通信,事實證明效果很好。

MODBUS的通信方式為主從方式[2]。主方首先向從方發(fā)送通信請求指令,從方根據(jù)請求指令中的功能碼向主方發(fā)回數(shù)據(jù)。每個從方都有自己獨立的地址。主方所發(fā)的請求幀和從方所發(fā)的應(yīng)答幀都是以從方地址開頭的。從方只讀發(fā)給自己的指令,對以其他從方地址開頭的報文不作應(yīng)答。這種一問一答的通信模式,大大提高了通信的正確率。但對于微機(jī)保護(hù)來說,該主從方式也存在著弊端,即當(dāng)保護(hù)主模塊進(jìn)行保護(hù)動作后,無法立刻向上位機(jī)傳送故障信息,只能由上位機(jī)不斷向保護(hù)主模塊詢問保護(hù)是否動作,若有,則再進(jìn)一步要求具體故障信息。

MODBUS有RTU(Remote Terminal Unit)和ASCII兩種傳送方式。為了保證較高的通信速度,采用了RTU方式,數(shù)據(jù)字節(jié)無奇偶校驗位,加上起始、終止位后字節(jié)長度為10bit,數(shù)據(jù)間隔在24bit以內(nèi),采用循環(huán)冗余檢驗方式對報文進(jìn)行校驗。

MODBUS典型的報文格式如下:

主方發(fā)報文:

從方正常時回答:

一個通信報文的具體內(nèi)容取決于該指令字符串的功能碼,MODBUS中定義的標(biāo)準(zhǔn)功能碼如表1所示。

表1 MODBUS協(xié)議中的標(biāo)準(zhǔn)功能碼

由功能碼的定義可以看出,傳送的報文對象主要分為模擬量和數(shù)字量兩類,由報文頭的功能碼來確定報文的內(nèi)容。在實際應(yīng)用中,主要使用02、04、05和06這四種功能碼,完成對數(shù)字量和模擬量的讀取及設(shè)置。

數(shù)據(jù)起始地址和數(shù)據(jù)量是報文的主要內(nèi)容。MODBUS規(guī)定的數(shù)據(jù)量是從通信對象的器件中讀取的數(shù)據(jù)或是往通對象的器件中寫入的數(shù)據(jù)。每個通信對象器件都有自己的地址。在保護(hù)裝置的內(nèi)部通信中,指定各通信對象器件為主機(jī)板的RAM中保存的數(shù)字量和模擬量,以及EEPROM中設(shè)定的保護(hù)配置和定值。在處理通信報文時,由報文的數(shù)據(jù)起始地址和對應(yīng)的數(shù)據(jù)量長度進(jìn)行讀取或發(fā)送任務(wù)。當(dāng)傳送數(shù)字量時,不同地址的數(shù)據(jù)值用報文中數(shù)據(jù)量不同的位來表示,這樣就能傳送更多的數(shù)據(jù)信息,從而高效地利用通信報文。由于每幀數(shù)據(jù)不定長,方便靈活,因而避免了固定幀長造成的對CPU時間和內(nèi)存空間的浪費。另外,MODBUS通信協(xié)議規(guī)定在通信字符串中的地址比實際地址小“1”,這對數(shù)組進(jìn)行操作時是一個方便之處。

報文末的兩個字節(jié)為校驗字節(jié)。RTU方式通信采用CRC-16位循環(huán)碼冗余校驗,即將整個字符串(不包括最后兩個字節(jié))按規(guī)定的方式進(jìn)行位移并進(jìn)行異或計算,計算結(jié)果存在字符串的最后兩個字節(jié)內(nèi),并由接收方按同樣的計算方法進(jìn)行校驗是否一致。這種校驗方法對隨機(jī)或突發(fā)差錯造成的幀破壞有很好的校驗效果。

3 提高通信效率的措施

在確立硬件平臺和通信協(xié)議后的軟件設(shè)計過程中,筆者采用了很多方法提高通信的效率和可靠性。

3.1 將通信分為接收和發(fā)送兩個獨立的任務(wù)[3]

80C196單片機(jī)可以使用查詢和中斷兩種方法通過串行口發(fā)送和接收數(shù)據(jù)。對于中斷方式,80C196單片機(jī)提供了兩種串口中斷方式:第一種方式為一個單獨的串口中斷,由中斷屏蔽寄存器INT_MASK的D6位控制,對應(yīng)中斷向量 200CH,串行口狀態(tài)寄存器SP_STAT(11H)的D5(發(fā)送完標(biāo)志TI)和D6(接收完標(biāo)志RI)置位都將觸發(fā)該中斷;第二種方式為接收、發(fā)送分別設(shè)置了中斷號,使用INT_MASK1的D0位對應(yīng)發(fā)送中斷,中斷向量2030H,TI置位觸發(fā)該中斷;INT_MASK1的D1位對應(yīng)收中斷,中斷向量2032H,RI置位觸發(fā)該中斷。筆者采用了第二種通信方式。這樣每接收完或發(fā)送完一個字節(jié)后就觸發(fā)相應(yīng)的中斷,直接進(jìn)行下一輪的接收、發(fā)送任務(wù),而不必判斷串口控制/狀態(tài)寄存器SP_CON/SP_STAT(11H),使得中斷子程序更為簡練、高效。

3.2 盡量縮短中斷時間

由于設(shè)計軟件結(jié)構(gòu)時使用了多個中斷,為了保證程序的可靠運行,減少不同不斷間互沖突的機(jī)率,在編制軟件時盡可能簡練各種中斷的任務(wù),縮短中斷執(zhí)行時間。在通信中斷子程序中,進(jìn)入中斷后執(zhí)行必要的任務(wù),如:清串行口狀態(tài)寄存器 SP_STAT中相應(yīng)的狀態(tài)位,將剛接收到的字符或需要發(fā)送的字符從緩沖區(qū)內(nèi)讀出或?qū)懭刖彌_區(qū),已接收或發(fā)送字符數(shù)增1等,之后便立即退出中斷。其它任務(wù)如判斷幀的有效性、對接收幀命令(遙測、遙控命令)的應(yīng)答,準(zhǔn)備發(fā)送幀等,都放在主程序中完成。

3.3 可靠地判斷幀結(jié)束,防止通信停滯

利用單獨的軟件定時器,來判斷一幀接收報文結(jié)束,可以防止若報文接收不完整,該幀通信任務(wù)無法結(jié)束而影響下一幀的接收。

由于一幀報文中字節(jié)與字節(jié)之間的時間間隔和幀與幀之間的時間間隔相比要小得多,因此每當(dāng)接收一個新字節(jié),就啟動軟件定時器開始計時,定時器的時間設(shè)定為幀與幀的最小時間間隔。波特率不同,該時間間隔也不同。若不到預(yù)定的時間內(nèi)又接收到下一個字節(jié),則說明一幀報文未結(jié)束,定時器重新計時;若定時器順利計數(shù)到預(yù)定時間,就會觸發(fā)相應(yīng)的中斷號,在該定時器中斷子程序中設(shè)定幀結(jié)束標(biāo)志字節(jié),表明一幀報文接收完畢。當(dāng)主程序內(nèi)檢測到一幀報文接收完畢后,會通過核查從方地址及循環(huán)冗余校驗字節(jié)是否正確來判斷該幀的有效性。若確定接收到的是一幀發(fā)送給已方的正確報文,則會根據(jù)報文內(nèi)的功能碼對該幀命令進(jìn)行相應(yīng)的處理,并準(zhǔn)備發(fā)送幀。

MODBUS協(xié)議還規(guī)定了從方接收報文不正確時發(fā)回的出錯幀。考慮到裝置內(nèi)部通信的過程不很復(fù)雜,在實際應(yīng)用中如果從方收到的報文校驗不正確,采取不作應(yīng)答的方式。主方若在規(guī)定時間內(nèi)未收到從方的應(yīng)答報文時,將重發(fā)請求報文;若多次未收到從方應(yīng)答報文,則報通訊故障。

3.4 通信速率的確定

由于所開的裝置都在同一機(jī)箱內(nèi),模塊與模塊之間的間距很短,而MODBUS是基于RS485的長距離通信,可以不考慮距離對通信波特率的影響,并且由于采用主從式通信模式,不會出現(xiàn)線路堵塞現(xiàn)象。因此,僅從通信效率來看,只要不超過模塊所使用芯片對最高波特率的限制,則設(shè)定的波特率越高,信息交互越快,通信效率也越高。但是,對于實時多任務(wù)系統(tǒng),必須注意各任務(wù)的協(xié)調(diào)。MODBUS 通信協(xié)議中只對各種通信報文格式作了規(guī)定,對通信波特率和奇偶校驗等不作硬性規(guī)定。當(dāng)一幀報文的長度較長,而波特率又很高,會導(dǎo)致CPU忙于處理通信而可能丟失其它實時性任務(wù),如實時采樣等。因此,選擇通信波特率時必須注意與其它任務(wù)相協(xié)調(diào),而不是越高越好。在實際應(yīng)用中,將波將率設(shè)置到 19200bps,系統(tǒng)調(diào)調(diào)運作。由于設(shè)定通信雙方波特率完全一致,可以使接收端對每一個數(shù)據(jù)位的采樣都發(fā)生在位周期的中點,實現(xiàn)可靠通信。另外,在字符傳送時不使用奇偶校驗位,以此相對提高了有效字節(jié)傳遞的速率。

3.5 合理的調(diào)試方法

在開發(fā)初期,使用仿真器等工具只能對單一CPU模塊進(jìn)行實時監(jiān)測,而無法同時監(jiān)測串行通信雙方,難以確定問題所在,使調(diào)試效率受到很大影響。因此先將各CPU模塊分別通過 RS485/RS232數(shù)據(jù)轉(zhuǎn)換模塊與微機(jī)進(jìn)行通信測試,成功后再進(jìn)行模塊間聯(lián)調(diào),大大提高了聯(lián)調(diào)的效率。在調(diào)試各模塊與微機(jī)通信的過程中,微機(jī)使用 MODBUS調(diào)試軟件,模仿主方的通信過程,主動向從方(各CPU模塊)索要信息。整個接收、發(fā)送過程都是透明、清晰的,使得模塊中存在的絕大多數(shù)問題都能在與微機(jī)通信的過程發(fā)現(xiàn)并及時解決。CPU模塊間聯(lián)調(diào)時,可以利用總線監(jiān)控軟件,觀察雙方發(fā)送的數(shù)據(jù)。當(dāng)遇到通信問題的時候,就能比較容易地確定是哪一個模塊發(fā)送數(shù)據(jù)不正確,從而確定問題所在。采用這樣的調(diào)試方法,大大增強(qiáng)了不同開發(fā)人員、不同CPU之間的協(xié)調(diào)性,提高了裝置研發(fā)的效率和進(jìn)度。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

Arm 控股有限公司(納斯達(dá)克股票代碼:ARM,以下簡稱 Arm)今日宣布推出全新 Arm? Lumex? 計算子系統(tǒng) (Compute Subsystem, CSS) 平臺,這是一套專為旗艦級智能手機(jī)及下一代個人電腦加...

關(guān)鍵字: CPU AI 消費電子

Arm 控股有限公司(納斯達(dá)克股票代碼:ARM,以下簡稱 Arm)今日宣布推出全新 Arm? Lumex?計算子系統(tǒng) (Compute Subsystem, CSS) 平臺,這是一套專為旗艦級智能手機(jī)及下一代個人電腦加速...

關(guān)鍵字: 消費電子 CPU AI

8位單片機(jī)在嵌入式設(shè)計領(lǐng)域已經(jīng)成為半個多世紀(jì)以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復(fù)雜,8位單片機(jī)依然不斷發(fā)展,積極應(yīng)對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機(jī)系列,配備了先進(jìn)的獨立...

關(guān)鍵字: 單片機(jī) 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計與硬件實現(xiàn)的關(guān)鍵環(huán)節(jié)。當(dāng)前主流的單片機(jī)燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應(yīng)用編程)三大技術(shù)體系,分別對應(yīng)開發(fā)調(diào)試、量產(chǎn)燒錄、遠(yuǎn)程升級等不同場景。...

關(guān)鍵字: 單片機(jī) ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機(jī)的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機(jī) 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機(jī)予以介紹,如果你想對它的詳細(xì)情況有所認(rèn)識,或者想要增進(jìn)對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: 單片機(jī) 開發(fā)板 Keil

隨著單片機(jī)系統(tǒng)越來越廣泛地應(yīng)用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機(jī)系統(tǒng)面臨著電磁干擾(EMI)日益嚴(yán)重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關(guān)鍵字: 單片機(jī) 電磁兼容

以下內(nèi)容中,小編將對單片機(jī)的相關(guān)內(nèi)容進(jìn)行著重介紹和闡述,希望本文能幫您增進(jìn)對單片機(jī)的了解,和小編一起來看看吧。

關(guān)鍵字: 單片機(jī) 復(fù)位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C(jī)的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機(jī) 異常復(fù)位
關(guān)閉