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