專利名稱:基于profibus報文快速識別的多端口控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種不需要解析PROFIBUS報文、波特率自適應(yīng)的 PROFIBUS報文數(shù)據(jù)流快速識別方法以及基于此種方法的PROFIBUS多 端口數(shù)據(jù)流控制技術(shù)。本方法可以應(yīng)用于多端口 PROFIBUS網(wǎng)絡(luò)設(shè)備, 如PROFIBUS中繼器、集線器、光纖轉(zhuǎn)換接口及多端口 PROFIBUS網(wǎng)關(guān)、 網(wǎng)橋產(chǎn)品的開發(fā);也可以應(yīng)用于其它基于RS-485網(wǎng)絡(luò)的中繼器、集線器 等多端口網(wǎng)絡(luò)設(shè)備的產(chǎn)品開發(fā)。
背景技術(shù):
在基于RS-485的PROFIBUS網(wǎng)絡(luò)中,需要中繼器增加網(wǎng)段,以增加 PROFIBUS站點、延長PROFIBUS傳輸距離。利用PROFIBUS多端口設(shè) 備,如PROFIBUS集線器,可以改變PROFIBUS總線型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu), 實現(xiàn)樹型或混合型網(wǎng)絡(luò)結(jié)構(gòu)。無論是中繼器、集線器、還是其它多端口網(wǎng) 絡(luò)設(shè)備,其控制方法都要涉及PROFIBUS報文數(shù)據(jù)流方向、報文啟止的 判別,以實現(xiàn)多端口數(shù)據(jù)流控制。首先是要能夠檢測到接收PROFIBUS 報文啟始時刻。現(xiàn)有技術(shù)的方法是檢測接收信號的下降沿,來確定 PROFIBUS總線上接收報文啟始信號。此方法的缺點是在高波特率傳輸 條件下會造成信號發(fā)送的延誤而產(chǎn)生PROFIBUS波形損失。對于報文結(jié) 束時刻的快速判別則難度更大,現(xiàn)有技術(shù)采用的方法是解析報文字符,截 取報文中報文長度字段、并結(jié)合識別報文結(jié)束符的方法來判斷報文的結(jié) 束。這種方法硬件設(shè)計復(fù)雜、解析報文有延時、速度慢;由于解析報文涉 及網(wǎng)絡(luò)上層協(xié)議,因此這種方法與協(xié)議有關(guān),不適應(yīng)其它RS-485網(wǎng)絡(luò)。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明的目的是提供一種基于PROFIBUS報文快 速識別的多端口控制方法,不用解析報文字符,不需對波特率逐次試探測 試、不需要檢測時間,是一種快速、波特率自適應(yīng)的報文數(shù)據(jù)流判別方法。
為實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案
一種基于PROFIBUS報文快速識別的多端口控制方法,包括以下步 驟其特征是
步驟①上電復(fù)位電路上電,復(fù)位電路對多路收/發(fā)控制邏輯電路發(fā)
復(fù)位信號,將多路收/發(fā)控制邏輯電路的各個發(fā)送允許端置為o,同時將多
路收/發(fā)控制邏輯電路的各個接收允許端置為0,使所有通道處在接收狀 態(tài);
步驟②各通道的檢測及隔離電路檢測相應(yīng)端口的信號線電平,等待 出現(xiàn)報文啟始信號;
步驟③當(dāng)某一通道的檢測及隔離電路檢測到該端口出現(xiàn)報文啟始信
號,該檢測及隔離電路立即向多路收/發(fā)控制邏輯電路發(fā)送第一波觸發(fā)信
號;
步驟 :多路收/發(fā)控制邏輯電路收到第一波觸發(fā)信號后,立即將其余 通道的發(fā)送允許端置1,接收允許端置1,使其余通道處于發(fā)送狀態(tài),同 時,多路收/發(fā)控制邏輯電路將接收端接收到的報文信號轉(zhuǎn)換成發(fā)送報文信 號,通過發(fā)送端發(fā)送給其余通道的驅(qū)動及隔離電路,其余通道的驅(qū)動及隔 離電路再將發(fā)送報文信號輸送到各自端口中;
步驟⑤上述步驟③中的檢測及隔離電路在發(fā)送完第一波觸發(fā)信號 后,繼續(xù)檢測該端口接收到的報文信號,每當(dāng)檢測及隔離電路檢測到端口 的信號線的電平由發(fā)送狀態(tài)轉(zhuǎn)變?yōu)獒尫艩顟B(tài),檢測及隔離電路都要向多路 收/發(fā)控制邏輯電路的觸發(fā)端發(fā)送第二波觸發(fā)信號;
步驟⑥當(dāng)多路收/發(fā)控制邏輯電路收到第二波觸發(fā)信號并確認(rèn)該端口 信號線上報文確已發(fā)送結(jié)束,多路收/發(fā)控制邏輯電路立即將其余通道的發(fā) 送允許端置0,接收允許端置0,關(guān)閉其余通道的驅(qū)動及隔離電路,使它 們回到接收狀態(tài),這時,所有通道均回到接收狀態(tài);
步驟⑦返回步驟②。
所述步驟③中,檢測及隔離電路是通過如下方式檢測該端口出現(xiàn)報文 啟始信號檢測及隔離電路檢測端口外端PROFIBUS信號線電平,當(dāng)某一 端口的PROFIBUS信號線電平由釋放狀態(tài)轉(zhuǎn)到發(fā)送狀態(tài),即可判定該端 口接收到PROFIBUS報文啟始信號。
所述步驟⑥中多路收/發(fā)控制邏輯電路每當(dāng)收到第二波觸發(fā)信號后, 都要通過判定觸發(fā)信號的持續(xù)時間來確定報文是否確已發(fā)送結(jié)束,當(dāng)觸發(fā) 信號的持續(xù)時間大于等于0.17微秒且小于0.92微秒時,多路收/發(fā)控制邏 輯電路就確定報文確已發(fā)送結(jié)束。
本發(fā)明有以下積極有益效果
本方法采用檢測端口外端PROFIBUS信號線電平由釋放狀態(tài)轉(zhuǎn)到發(fā) 送狀態(tài),從而判定該端口接收到PROFIBUS報文啟始信號。因而在高波 特率傳輸條件下會造成信號發(fā)送的延誤而產(chǎn)生PROFIBUS波形損失。
本方法通過判定觸發(fā)信號的持續(xù)時間來確定報文是否確已發(fā)送結(jié)束, 因而不用解析報文字符,硬件開銷小、速度快;不需對波特率逐次試探測 試、不需要檢測時間;是一種快速、波特率自適應(yīng)的報文數(shù)據(jù)流判別方法, 檢測原理基于PROFIBUS純物理層,不涉及上層協(xié)議,可適用于所有基 于RS-485的PROFIBUS應(yīng)用層協(xié)議,包括PROFIBUS-DP/V0、 VI、 V2,及各種應(yīng)用行規(guī),包括PROFIsafe (安全),Redundancy (冗余)。 等等,也部分適用于其它RS-485傳輸技術(shù)的現(xiàn)場總線或網(wǎng)絡(luò),如 MODBUS。
圖1是采用多端口 PROFIBUS集線器實現(xiàn)的混合型組網(wǎng)結(jié)構(gòu)。 圖2是多端口 PROFIBUS集線器電路硬件方框圖。
圖3是圖2的電路原理圖。
圖4是多端口 PROFIBUS集線器的工作過程狀態(tài)轉(zhuǎn)換圖。 圖5是PROFIBUS報文字符格式的示意圖。 圖6是PROFIBUS總線開始接收報文信號的示意圖。 圖7是PROFIBUS總線發(fā)送報文結(jié)束信號的示意圖。
具體實施例方式
請參照圖1: PROFIBUS組網(wǎng)中采用PROFIBUS集線器可以方便實 現(xiàn)樹形及混合型結(jié)構(gòu)。
PROFIBUS集線器可以有多個端口,下面以六端口為例,說明 PROFIBUS集線器的硬件組成,請參照圖2、圖3,六端口 PROFIBUS集 線器由六個總線通道、復(fù)位電路、多路收/發(fā)控制邏輯電路組成,六個通道 分別是一號、二號、三號、四號、五號、六號總線通道。
一號通道由PROFIBUS的端口Dl、 RS —485驅(qū)動及隔離電路U1、檢測 及隔離電路N1組成。
二號通道由PROFIBUS的端口D2、 RS — 485驅(qū)動及隔離電路U2、檢測 及隔離電路N2組成。
三號通道由PROFIBUS的端口D3、 RS — 485驅(qū)動及隔離電路U3、檢測 及隔離電路N3組成。
四號通道由PROFIBUS的端口D4、 RS — 485驅(qū)動及隔離電路U4、檢測 及隔離電路N4組成。
五號通道由PROFIBUS的端口D5、 RS —485驅(qū)動及隔離電路U5、檢測 及隔離電路N5組成。
六號通道由PROFIBUS的端口D6、 RS —485驅(qū)動及隔離電路U6、檢測 及隔離電路N6組成。
每個檢測及隔離電路由比較器芯片、放大器芯片、反相器芯片、光隔 芯片組成。
多路收/發(fā)控制邏輯電路U7由復(fù)雜可編程邏輯器件(CPLD)組成,多 路收/發(fā)控制邏輯電路U7的有六組收/發(fā)控制端。每組收/發(fā)控制端由五個通 用I/0端口組成,各組收/發(fā)控制端中的五個通用i/o端口都經(jīng)過程序編程被 定義為發(fā)送端、接收端、發(fā)送允許端、接收允許端與觸發(fā)信號端。
六個通道中的RS — 485驅(qū)動及隔離電路的發(fā)送端、接收端、發(fā)送允許 端、接收允許端,分別與多路收/發(fā)控制邏輯電路U7中的六組收/發(fā)控制端 中的發(fā)送端、接收端、發(fā)送允許端、接收允許端一一對應(yīng)相連。
例如,多路收/發(fā)控制邏輯電路U7的第一組收發(fā)控制端的五個通用I/0 端口經(jīng)過程序編程被定義為發(fā)送端TXD1、接收端RXD1、發(fā)送允許端 RST1、接收允許端REN1與觸發(fā)信號端CMP1。 一號通道中的RS — 485驅(qū)
動及隔離電路U1的發(fā)送端D、接收端R、發(fā)送允許端DE、接收允許端RE 分別與多路收/發(fā)控制邏輯電路U7中的第一組收/發(fā)控制端中的發(fā)送端 TXD1、接收端RXD1、發(fā)送允許端RST1、接收允許端REN1——對應(yīng)相連。
請參照圖3、圖4,六端口PROFIBUS集線器由多路收/發(fā)控制邏輯電路 U7 (CPLD)中的程序自動完成收/發(fā)控制。收/發(fā)控制整個流程包括四個 狀態(tài),即上電復(fù)位狀態(tài)T1,接收狀態(tài)S1、接收轉(zhuǎn)發(fā)狀態(tài)S2、關(guān)閉發(fā)送狀態(tài) S3。其中接收狀態(tài)S1、接收轉(zhuǎn)發(fā)狀態(tài)S2、關(guān)閉發(fā)送狀態(tài)S3構(gòu)成了一個閉環(huán) 的循環(huán)過程。
下面詳述多端口 PROFIBUS集線器的工作過程
① 上電復(fù)位狀態(tài)T1:復(fù)位電路對多路收/發(fā)控制邏輯電路U7進(jìn)行復(fù) 位后,所有通道進(jìn)入接收狀態(tài)S1;
② 接收狀態(tài)S1:所有通道處于接收狀態(tài),各通道的檢測及隔離電路 隨時檢測PROFIBUS通信線路是否有數(shù)據(jù)信號傳送。任意端口一旦檢測 到PROFIBUS信號傳送,立即進(jìn)入接收轉(zhuǎn)發(fā)狀態(tài)S2。
③ 接收轉(zhuǎn)發(fā)狀態(tài)S2:當(dāng)某一端口 (Dl — D6)—旦接收到PROFIBUS 通信信號,多路收/發(fā)控制邏輯電路U7立即控制其余端口進(jìn)入發(fā)送狀態(tài), 將該端口接收到的PROFIBUS信號通過其它所有端口發(fā)送出去。當(dāng)該通 道的檢測及隔離電路檢測到PROFIBUS報文發(fā)送結(jié)束后,立即進(jìn)入關(guān)閉 發(fā)送狀態(tài)S3。
關(guān)閉發(fā)送狀態(tài)S3:當(dāng)多路收/發(fā)控制邏輯電路U7接收到該通道檢 測電路檢測到的PROFIBUS報文發(fā)送結(jié)束信號,將其他端口由發(fā)送狀態(tài) 切換到接收狀態(tài),集線器回到接收狀態(tài)S1。
RS-485驅(qū)動及隔離電路采用單雙工差動輸出(A 、 B) , NRZ (不歸 零)比特編碼;由發(fā)送允許端DE控制發(fā)送、由接收允許端RE控制接收。 當(dāng)RE-0,且DE-0時,RS-485驅(qū)動及隔離電路處于接收狀態(tài),此時其單 雙工差動輸出(A、 B)為高阻,也稱釋放狀態(tài)。當(dāng)RE-1,且DE-1時, RS-485驅(qū)動及隔離電路處于發(fā)送狀態(tài)。此時,RS-485驅(qū)動及隔離電路將 發(fā)送端信號轉(zhuǎn)換成PROFIBUS/485電平和NRZ編碼,再通過A、 B輸出。
PROFIBUS/485網(wǎng)絡(luò)不允許有一個以上站點同時發(fā)送數(shù)據(jù)。為此, PROFIBUS協(xié)議規(guī)定主站與從站之間采用主/從通信方式、主站與主站之 間采用令牌控制,以保證總線控制的正確性。因此,多端口 PROFIBUS 集線器控制要求就是當(dāng)任意的一個端口接收到報文信號,立即通過其他 端口,無延時地將報文轉(zhuǎn)發(fā)出去。
無論是中繼器、集線器、還是其它多端口網(wǎng)絡(luò)設(shè)備,要實現(xiàn)多端口 PROFIBUS數(shù)據(jù)流控制,就要解決以下兩項關(guān)鍵技術(shù)
關(guān)鍵技術(shù)1:任意通道檢測到PROFIBUS接收報文應(yīng)立即打開其它通 道將報文轉(zhuǎn)發(fā)出去。
關(guān)鍵技術(shù)2:檢測接收報文結(jié)束時刻并及時關(guān)閉其它發(fā)送通道。
下面分別詳細(xì)闡述
關(guān)鍵技術(shù)1:任意通道檢測到PROFIBUS接收報文應(yīng)立即打開其它通
道將報文轉(zhuǎn)發(fā)出去。
首先是要能夠檢測到接收PROFIBUS報文啟始時刻?,F(xiàn)有技術(shù)的方 法是檢測RS-485驅(qū)動及隔離電路U1、 U2、 U3、 U4、 U5、 U6的信號接收 端RXD1、 RXD2、 RXD3、 RXD4、 RXD5、 RXD6的下降沿,來確定本端 口 PROFIBUS總線上接收報文信號。該方法依據(jù)的原理是RS-485驅(qū)動 及隔離電路Ul、 U2、 U3、 U4 、 U5、 U6的接收端RXD1、 RXD2、 RXD3、 RXD4、 RXD5、 RXD6已將PROFIBUS信號(A1陽B1、 A2-B2、 A3誦B3、 A4-B4、 A5-B5、 A6-B6)轉(zhuǎn)換成異步串行通信接口信號。請參照圖5, PROFIBUS報文異步串行通信數(shù)據(jù)格式是1啟始位+8數(shù)據(jù)位+偶校驗+l 停止位。無報文時RXD1 — RXD6為"1"電平,啟始位為"0"電平。當(dāng)RXD1 一RXD6中任意一個檢測到有下降沿(由"1"變"0")時說明該端口接收到 PROFIBUS報文啟始位。
此方法的缺點是以端口 D1為例,由于RS-485驅(qū)動及隔離電路U2-U6 打開發(fā)送有延時,因此RTS2、 RTS3、 RTS4、 RTS5、 RTS6發(fā)送允許信 號必須超前報文發(fā)送信號TXD2、 TXD3、 TXD4、 TXD5、 TXD6。因此, 當(dāng)RXD1檢測到啟始位為"0"電平,再依此信號打開U2、 U3、 U4、 U5、 U6發(fā)送允許RTS2、 RTS3、 RTS4、 RXD5、 RXD6為時已晚。尤其是在高 波特率傳輸條件下會造成U2、 U3、 U4、 U5、 U6對TXD2、 TXD3、 TXD4、 TXD5、 TXD6信號發(fā)送的延誤而產(chǎn)生PROFIBUS波形損失。
本發(fā)明采用方法是請參照圖3、圖6,檢測端口外端PROFIBUS信 號線電平(A1-B1、 A2-B2、 A3-B3、 A4國B4、 A5-B5、 A6-B6),當(dāng)某一端 口 (以端口 Dl為例)PROFIBUS信號線A1、 Bl電平由釋放狀態(tài)轉(zhuǎn)到發(fā) 送狀態(tài),即判定端口 Dl接收到PROFIBUS報文啟始信號,并依此信號打 開U2-U6的發(fā)送允許端RTS2-RTS6。直接檢測PROFIBUS信號線電平可 及時打開其他端口發(fā)送,這對高波特率(如12M bit/s)數(shù)據(jù)傳輸十分重要。
關(guān)鍵技術(shù)2:檢測接收報文結(jié)束時刻并及時關(guān)閉其它發(fā)送通道。
根據(jù)PROFIBUS標(biāo)準(zhǔn),當(dāng)PROFIBUS總線上發(fā)送站點發(fā)送完畢后, 所有站點將回到接收狀態(tài),這種總線釋放狀態(tài)最短時只延續(xù)llbits時間, 該時間稱為Tsdr。 Tsdr之后其它站點就會向PROFIBUS總線發(fā)送數(shù)據(jù)。 對多端口設(shè)備來說(如PROFIBUS集線器),在某一端口 (如端口 Dl) 接收報文最后一個bit結(jié)束后,在Tsdr時間之內(nèi)必須將所有端口 (Dl正 在接收狀態(tài),D2-D6正在發(fā)送狀態(tài))全部恢復(fù)到接收狀態(tài)。
如果是12M波特率,Tsdr (12M) =11 (bit) / 12M (bit/s)=0.92 微秒;
如果是9.6K波特率,Tsdr(9.6K)= ll(bit) / 9.6K (bit / s)= 1145.83
微秒;
如何檢測與識別接收到的報文結(jié)束字符的最后一個bit 現(xiàn)有技術(shù)采 用的方法是解析報文字符,截取報文中報文長度字段、并結(jié)合識別報文結(jié) 束符的方法來判斷報文的結(jié)束。這種方法的缺點是
需要設(shè)計波特率自適應(yīng)的PROFIBUS接收通道(一種高速異步串行 通信接口),最高波特率高達(dá)12Mbit/s,為此硬件設(shè)計復(fù)雜、開銷大。
解析報文涉及到網(wǎng)絡(luò)鏈路層協(xié)議,因此這種方法與協(xié)議有關(guān),不適應(yīng) 其它RS-485網(wǎng)絡(luò)。PROFIBUS報文長短不一,結(jié)束符與報文中的數(shù)據(jù)多 有重合,報文解析方法設(shè)計復(fù)雜,延時長。
本發(fā)明采用方法是不解析報文,而是通過檢測PROFIBUS總線釋 放狀態(tài)來確定PROFIBUS報文結(jié)束。詳細(xì)原理敘述如下請參見圖7, PROFIBUS標(biāo)準(zhǔn)規(guī)定PROFIBUS總線電平有三種狀態(tài)發(fā)送"l"狀態(tài)、 發(fā)送"0"狀態(tài)、釋放狀態(tài)(也就是全線/段站點處在接收狀態(tài))。其中發(fā)送"l" 狀態(tài)和發(fā)送"0"狀態(tài)統(tǒng)稱為發(fā)送狀態(tài)。注意PROFIBUS總線采用NRZ (不歸零)編碼。PROFIBUS標(biāo)準(zhǔn)規(guī)定站點發(fā)送報文結(jié)束后應(yīng)立即將發(fā) 送關(guān)閉,PROFIBUS全線處于釋放狀態(tài)。因此當(dāng)檢測及隔離電路檢測到 PROFIBUS總線處于釋放狀態(tài)電平,可能是
① 報文發(fā)送完畢,或者
② 由發(fā)送"1"向發(fā)送"0"轉(zhuǎn)變的過渡中經(jīng)過釋放狀態(tài)電平,或者
③ 由發(fā)送"0"向發(fā)送"l"轉(zhuǎn)變的過渡中經(jīng)過釋放狀態(tài)電平。 由于發(fā)送電平轉(zhuǎn)換("0" — "1"、 "l"一"0")很陡,上述②③兩種可能
狀態(tài)都是非常短暫的。因此當(dāng)某一通道在接收到的PROFIBUS報文中檢 測到一個釋放狀態(tài)并持續(xù)足夠長時間Td,則說明報文結(jié)束,應(yīng)立即關(guān)閉 所有發(fā)送端,轉(zhuǎn)換成接收狀態(tài)。這個持續(xù)時間Td應(yīng)大于2Tbit時間,在 12M波特率時,Td (2bits) =0.17微秒,因此取TdX).17微秒。
持續(xù)時間Td必須小于Tsdr,對不同波特率來說有Td < 11 bits時 間;如果要做到波特率自適應(yīng),應(yīng)按照最小Td,即最大波特率12M時考 慮在12M波特率時Td (llbits) =0.92微秒,因此取Td<0.92微秒。
本發(fā)明是一種基于PROFIBUS報文快速識別的多端口控制方法,包 括以下步驟
步驟①上電復(fù)位電路上電,復(fù)位電路對多路收/發(fā)控制邏輯電路 U7發(fā)復(fù)位信號,將多路收/發(fā)控制邏輯電路U7的各個發(fā)送允許端RTS1、 RTS2、 RTS3、 RTS4、 RTS5、 RTS6置為0,同時將多路收/發(fā)控制邏輯電 路U7的各個接收允許端REN1、 REN2、 REN3、 REN4、 REN5、 REN6 置為0,使所有通道處在接收狀態(tài);
步驟②各通道的檢測及隔離電路Nl、 N2、 N3、 N4、 N5、 N6檢測 相應(yīng)端口D1、 D2、 D3、 D4、 D5、 D6的PROFIBUS信號線電平;等待出 現(xiàn)報文啟始信號。
步驟(D:當(dāng)某一通道的檢測及隔離電路檢測到該端口出現(xiàn)報文啟始 信號,該檢測及隔離電路立即向多路收/發(fā)控制邏輯電路U7發(fā)送第一波觸 發(fā)信號;檢測及隔離電路是通過如下方式檢測該端口出現(xiàn)報文啟始信號:
檢測及隔離電路檢測端口外端PROFIBUS信號線電平,當(dāng)某一端口的 PROFIBUS信號線電平由釋放狀態(tài)轉(zhuǎn)到發(fā)送狀態(tài),即可判定該端口接收到 PROFIBUS報文啟始信號。例如一號通道的端口 Dl的信號線Al、 Bl電 平由釋放狀態(tài)轉(zhuǎn)為發(fā)送狀態(tài),則該通道的檢測及隔離電路N1即可判定該 端口接收到報文啟始信號,該檢測及隔離電路Nl立即向多路收/發(fā)控制邏 輯電路U7的觸發(fā)端發(fā)送第一波觸發(fā)信號CMP1;
步驟④多路收/發(fā)控制邏輯電路U7收到第一波觸發(fā)信號后,立即將 其余通道的發(fā)送允許端置l,接收允許端置l,即將RTS2、 RTS3、 RTS4、 RTS5、 RTS6-1,將REN2、 REN3、 REN4、 REN5、 REN6=1;使其余通 道處于發(fā)送狀態(tài);同時,多路收/發(fā)控制邏輯電路U7將信號接收端RXDl 接收到的報文信號轉(zhuǎn)換成發(fā)送報文信號,通過信號發(fā)送端TXD2、 TXD3、 TXD4、 TXD5、 TXD6發(fā)送給其余通道的驅(qū)動及隔離電路U2、 U3、 U4、 U5、 U6,其余通道驅(qū)動及隔離電路U2、 U3、 U4、 U 5、 U6再將發(fā)送報文 信號(A2-B2、 A3-B3、 A4-B4、 A5-B5、 A6-B6)輸送到各自端口D2、 D3、 D4、 D5、 D6上;
步驟⑤上述步驟③中的檢測及隔離電路Nl在發(fā)送完第一波觸發(fā)信
號后,繼續(xù)檢測該端口 Dl接收到的報文信號,每當(dāng)檢測及隔離電路Nl 檢測到端口 Dl的信號線的電平由發(fā)送狀態(tài)轉(zhuǎn)變?yōu)獒尫艩顟B(tài),檢測及隔離 電路Nl都要向可多路收/發(fā)控制邏輯電路U7的觸發(fā)端CPM1發(fā)送第二波 觸發(fā)信號;
步驟⑥多路收/發(fā)控制邏輯電路U7每當(dāng)收到一個第二波觸發(fā)信號后, 都通過判定觸發(fā)信號的持續(xù)時間以確定報文是否確已發(fā)送結(jié)束,只有當(dāng)觸 發(fā)信號的持續(xù)時間Td大于等于0.17微秒且小于0.92微秒,多路收/發(fā)控 制邏輯電路U7即可確定報文確已發(fā)送結(jié)束。
以端口 Dl為例,多路收/發(fā)控制邏輯電路U7的觸發(fā)端CPM1收到第 二波觸發(fā)信號,經(jīng)持續(xù)時間Td以確認(rèn)端口 Dl的信號線Bl、 Al上報文發(fā) 送確已結(jié)束,多路收/發(fā)控制邏輯電路U7立即將與其余端口對應(yīng)的發(fā)送允 許端置0,接收允許端置0,即將RTS2、 RTS3、 RTS4、 RTS5、 RTS6=0, REN2、 REN3、 REN4、 REN5、 REN6-0;關(guān)閉其余通道,使它們回到接 收狀態(tài);這時,所有通道均回到接收狀態(tài);
步驟⑦返回步驟②,等待下一次某一端口出現(xiàn)報文啟始信號。
權(quán)利要求
1.一種基于PROFIBUS報文快速識別的多端口控制方法,包括以下步驟其特征是步驟①上電復(fù)位電路上電,復(fù)位電路對多路收/發(fā)控制邏輯電路發(fā)復(fù)位信號,將多路收/發(fā)控制邏輯電路的各個發(fā)送允許端置為0,同時將多路收/發(fā)控制邏輯電路的各個接收允許端置為0,使所有通道處在接收狀態(tài);步驟②各通道的檢測及隔離電路檢測相應(yīng)端口的信號線電平,等待出現(xiàn)報文啟始信號;步驟③當(dāng)某一通道的檢測及隔離電路檢測到該端口出現(xiàn)報文啟始信號,該檢測及隔離電路立即向多路收/發(fā)控制邏輯電路發(fā)送第一波觸發(fā)信號;步驟④多路收/發(fā)控制邏輯電路收到第一波觸發(fā)信號后,立即將其余通道的發(fā)送允許端置1,接收允許端置1,使其余通道處于發(fā)送狀態(tài),同時,多路收/發(fā)控制邏輯電路將接收端接收到的報文信號轉(zhuǎn)換成發(fā)送報文信號,通過發(fā)送端發(fā)送給其余通道的驅(qū)動及隔離電路,其余通道的驅(qū)動及隔離電路再將發(fā)送報文信號輸送到各自端口中;步驟⑤上述步驟③中的檢測及隔離電路在發(fā)送完第一波觸發(fā)信號后,繼續(xù)檢測該端口接收到的報文信號,每當(dāng)檢測及隔離電路檢測到端口的信號線的電平由發(fā)送狀態(tài)轉(zhuǎn)變?yōu)獒尫艩顟B(tài),檢測及隔離電路都要向多路收/發(fā)控制邏輯電路的觸發(fā)端發(fā)送第二波觸發(fā)信號;步驟⑥當(dāng)多路收/發(fā)控制邏輯電路收到第二波觸發(fā)信號并確認(rèn)該端口信號線上報文確已發(fā)送結(jié)束,多路收/發(fā)控制邏輯電路立即將其余通道的發(fā)送允許端置0,接收允許端置0,關(guān)閉其余通道的驅(qū)動及隔離電路,使它們回到接收狀態(tài),這時,所有通道均回到接收狀態(tài);步驟⑦返回步驟②。
2. 如權(quán)利要求1所述的基于PROFIBUS報文快速識別的多端口控制 方法,其特征是所述步驟③中,檢測及隔離電路是通過如下方式檢測該 端口出現(xiàn)報文啟始信號檢測及隔離電路檢測端口外端PROFIBUS信號 線電平,當(dāng)某一端口的PROFIBUS信號線電平由釋放狀態(tài)轉(zhuǎn)到發(fā)送狀態(tài), 即可判定該端口接收到PROFIBUS報文啟始信號。
3. 如權(quán)利要求1所述的基于PROFIBUS報文快速識別的多端口控制 方法,其特征是所述步驟⑥中多路收/發(fā)控制邏輯電路每當(dāng)收到第二波 觸發(fā)信號后,都要通過判定觸發(fā)信號的持續(xù)時間來確定報文是否確已發(fā)送 結(jié)束,當(dāng)觸發(fā)信號的持續(xù)時間大于等于0.17微秒且小于0.92微秒時,多 路收/發(fā)控制邏輯電路就確定報文確巳發(fā)送結(jié)束。
全文摘要
一種基于PROFIBUS報文快速識別的多端口控制方法,包括步驟①上電復(fù)位;步驟②檢測及隔離電路檢測端口信號電平;步驟③檢測及隔離電路檢測端口PROFIBUS信號電平,當(dāng)信號電平由釋放狀態(tài)轉(zhuǎn)到發(fā)送狀態(tài)即可判定該端口收到報文啟始信號;步驟④多路收/發(fā)控制邏輯電路使其余端口處于發(fā)送狀態(tài);并將接收報文轉(zhuǎn)成發(fā)送報文信號,經(jīng)驅(qū)動及隔離電路輸出到其余端口;步驟⑤當(dāng)檢測及隔離電路檢測到信號電平由發(fā)送狀態(tài)轉(zhuǎn)變?yōu)獒尫艩顟B(tài),則發(fā)送第二波觸發(fā)信號;步驟⑥多路收/發(fā)控制邏輯電路通過判定第二波觸發(fā)信號的持續(xù)時間以確定報文發(fā)送結(jié)束,并關(guān)閉其余端口;步驟⑦返回步驟②。本方法不用解析報文,不需對波特率測試,是一種快速、波特率自適應(yīng)的報文數(shù)據(jù)流判別方法。
文檔編號H04L12/56GK101374115SQ200810223199
公開日2009年2月25日 申請日期2008年9月28日 優(yōu)先權(quán)日2008年9月28日
發(fā)明者唐濟(jì)揚 申請人:北京鼎實創(chuàng)新科技有限公司