專利名稱:工業(yè)無(wú)線網(wǎng)接入工業(yè)以太網(wǎng)和現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān)及協(xié)議轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種將基于IEEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò)引入MODBUS/TCP工業(yè)以太網(wǎng)和 PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān)及協(xié)議轉(zhuǎn)換方法,涉及到多種通訊協(xié)議的轉(zhuǎn)換,屬于現(xiàn) 場(chǎng)總線控制技術(shù)領(lǐng)域。
背景技術(shù):
現(xiàn)場(chǎng)總線是用于生產(chǎn)制造現(xiàn)場(chǎng)的底層通信網(wǎng)絡(luò),它實(shí)現(xiàn)了微機(jī)化的現(xiàn)場(chǎng)測(cè)量控制儀器或 設(shè)備之間的雙向串行多節(jié)點(diǎn)數(shù)字通信,具有實(shí)時(shí)性、穩(wěn)定性高的特點(diǎn)。自從2000年國(guó)際電工 委員會(huì)(IEC)公布通過(guò)了 IEC61158現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),現(xiàn)在已有十多種現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)。
以太網(wǎng)是商業(yè)領(lǐng)域里普遍釆用的局域網(wǎng)絡(luò),結(jié)合TCP/IP協(xié)議構(gòu)成了 Internet的基礎(chǔ), 成為網(wǎng)絡(luò)應(yīng)用中事實(shí)上的標(biāo)準(zhǔn),這也使得現(xiàn)場(chǎng)總線控制系統(tǒng)通過(guò)以太網(wǎng)與企業(yè)信息網(wǎng)集成實(shí) 現(xiàn)工廠監(jiān)控一體化成為大勢(shì)所趨。
當(dāng)前現(xiàn)場(chǎng)總線、工業(yè)以太網(wǎng)技術(shù)在工業(yè)生產(chǎn)中得到廣泛應(yīng)用,然而流程工業(yè)的復(fù)雜性, 有線網(wǎng)絡(luò)無(wú)法滿足惡劣環(huán)境下的測(cè)控需求,而無(wú)線網(wǎng)絡(luò)技術(shù)為此提供了良好的解決途徑。所 以將無(wú)線網(wǎng)絡(luò)與有線網(wǎng)絡(luò)的相互融合的異構(gòu)網(wǎng)絡(luò)控制系統(tǒng)是解決復(fù)雜流程工業(yè)測(cè)控的必然趨 勢(shì)。
工業(yè)無(wú)線技術(shù)的概念由美國(guó)能源部在2002年首次提出。工業(yè)無(wú)線技術(shù)是一種新興的面向 設(shè)備間信息交互的無(wú)線通信技術(shù),適合在惡劣的工業(yè)現(xiàn)場(chǎng)環(huán)境使用,具有抗干擾能力強(qiáng)、能 耗低、通信實(shí)時(shí)性好等技術(shù)特征。
目前工業(yè)自動(dòng)化領(lǐng)域運(yùn)用的無(wú)線技術(shù)主要集中在WLAN/IEEE802. 11 、 BlueTooth/IEEE802. 15. 1和ZigBee/IEEE802.15. 4三種上。在研究中發(fā)現(xiàn)傳統(tǒng)的IEEE802. 11 無(wú)線通信網(wǎng)絡(luò)是面向辦公環(huán)境而設(shè)計(jì)的,其物理層的傳輸機(jī)制,如WLAN的DSSS (直接序列 擴(kuò)頻)技術(shù)傳送速率高,適合于高速大數(shù)據(jù)吞吐量的網(wǎng)絡(luò)應(yīng)用,耗能也高,抗干擾性不好, 不適于許多工業(yè)控制應(yīng)用節(jié)點(diǎn)的使用,必須在物理層、MAC層以及協(xié)議模型方面改進(jìn),以提 供可靠的實(shí)時(shí)服務(wù)。Bluetooth的FSSS (調(diào)頻擴(kuò)頻)機(jī)制對(duì)上述問(wèn)題改進(jìn)不明顯,且每一 cell 中的節(jié)點(diǎn)數(shù)量?jī)H為7個(gè),只能適合于某些特殊的工業(yè)應(yīng)用。IEEE 802. 15.4技術(shù)在短距離、 小數(shù)據(jù)量的無(wú)線傳感網(wǎng)絡(luò)應(yīng)用中具有很好的優(yōu)勢(shì)和發(fā)展前景,但在苛刻的流程工業(yè)環(huán)境應(yīng)用 中,網(wǎng)絡(luò)協(xié)議需要作一定改進(jìn),以降低空間反射、頻率干擾等帶來(lái)的延遲和丟包問(wèn)題。
目前新一代短距離無(wú)線數(shù)字傳輸技術(shù)是CSS (Chirp Spread Spectrum,寬帶線性調(diào)頻擴(kuò)頻,又簡(jiǎn)稱為切普擴(kuò)頻),該調(diào)制方法綜合了FSK、 PSK和ASK三種方法的優(yōu)點(diǎn),能十分有效 地抑制工業(yè)環(huán)境中各種噪音和多徑干擾。其每一位傳輸所需功耗是IEEE802. lib的1/6, Bluetooth的1/60。其數(shù)據(jù)傳送速率最高可達(dá)到2Mbps,室外傳播損耗距離達(dá)900m,接收靈 敏度為-92dBm/Mbps。因此,基于CSS的IEEE802. 15. 4a已經(jīng)在2006年10月份經(jīng)過(guò)投票被批 準(zhǔn)為IEEE的面向工業(yè)無(wú)線控制的最新的一個(gè)國(guó)際通信標(biāo)準(zhǔn)(正式頒布定于2007年7月)。簡(jiǎn) 單的說(shuō),CSS技術(shù)加上IEEE802. 15. 4的MAC協(xié)議和組網(wǎng)規(guī)則就構(gòu)成了改進(jìn)的IEEE802. 15. 4a, 特別適合在工業(yè)自動(dòng)化現(xiàn)場(chǎng)設(shè)備層控制網(wǎng)絡(luò)使用,具有低成本、高速率、低功耗的優(yōu)越性。
王平等人在2006年提交的實(shí)用新型專利"基于EPA標(biāo)準(zhǔn)的無(wú)線手持終端"(申請(qǐng) 號(hào)200620110844. 2)結(jié)合無(wú)線技術(shù)和EPA標(biāo)準(zhǔn),設(shè)計(jì)了一種基于EPA標(biāo)準(zhǔn)的無(wú)線手持終端, 將802. lib無(wú)線網(wǎng)絡(luò)引入了工業(yè)現(xiàn)場(chǎng)。劉健等人在2008年提交的發(fā)明專利"多協(xié)議工業(yè)以太 網(wǎng)適配器"(申請(qǐng)?zhí)?00710171777.4)提供了一種多協(xié)議工業(yè)以太網(wǎng)適配器,作為一種獨(dú)立 的接口產(chǎn)品,適用于通訊節(jié)點(diǎn)、協(xié)議轉(zhuǎn)換器和協(xié)議網(wǎng)關(guān)方面。但在已公布的專利文獻(xiàn)中尚未 有涉及到關(guān)于將802. 15. 4a工業(yè)無(wú)線網(wǎng)絡(luò)引入到M0DBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng) 總線的方法和裝置。
發(fā)明內(nèi)容
本發(fā)明的冃的在于針對(duì)已有技術(shù)存在的缺陷,提供一種基于IEEE802. 15. 4a的工業(yè)無(wú)線 網(wǎng)絡(luò)引入MODBUS/TCP工業(yè)以太網(wǎng)和FR0FIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān)及協(xié)議轉(zhuǎn)換方法。
本發(fā)明既考慮了當(dāng)前有線現(xiàn)場(chǎng)總線/工業(yè)以太網(wǎng)為主的現(xiàn)狀,又兼顧了與無(wú)線網(wǎng)絡(luò)前沿技 術(shù)的無(wú)縫連接。旨在實(shí)現(xiàn)一種符合工業(yè)實(shí)時(shí)要求和開放數(shù)據(jù)通信的有線/無(wú)線異構(gòu)控制網(wǎng)絡(luò)網(wǎng) 關(guān),構(gòu)建具有通用性的協(xié)議轉(zhuǎn)換機(jī)制,使得現(xiàn)場(chǎng)帶有線或無(wú)線網(wǎng)絡(luò)接口的傳感器、變送器和 執(zhí)行器等智能設(shè)備能夠接入統(tǒng)一的系統(tǒng)協(xié)議構(gòu)架內(nèi),從而為實(shí)現(xiàn)包括最底層實(shí)時(shí)信息的企業(yè) 綜合自動(dòng)化奠定基礎(chǔ)。
本發(fā)明涉及的IEEE802. 15. 4a是一種新型工業(yè)無(wú)線局域網(wǎng)標(biāo)準(zhǔn),特性上可以將這種新型 無(wú)線網(wǎng)絡(luò)描述為ZigBee和RFID的混合體,屬于超寬帶無(wú)線技術(shù)(Ultra Wide Band, UWB) 的一種。超寬帶無(wú)線技術(shù)是一種短距離、使用1GHz以上帶寬且信號(hào)功率譜密度低的最先進(jìn)的 無(wú)線通信技術(shù)。
PROFIBUS-DP符合EN50170歐洲標(biāo)準(zhǔn)且符合IEC1158-2標(biāo)準(zhǔn),專為自動(dòng)化系統(tǒng)和設(shè)備級(jí) 分散1/0之間的通信而設(shè)計(jì),主要用于分布式控制系統(tǒng)的高速數(shù)據(jù)傳輸。它釆用0SI模型中 的物理層,數(shù)據(jù)鏈路層包含了 ROFIBUS-DP基本功能與行規(guī)的用戶接口。
M0DBUS/TCP是M0DBUS的延伸,協(xié)議的物理層和數(shù)據(jù)鏈路層是基于以太網(wǎng)和標(biāo)準(zhǔn)TCP/IP協(xié)議,而應(yīng)用層的定義與MODBUS協(xié)議家族的其他協(xié)議通用。它定義了個(gè)結(jié)構(gòu)簡(jiǎn)單的、開放 和廣泛應(yīng)用的傳輸協(xié)議,用于主從式通信。
IEEE802. 15. 4a工業(yè)無(wú)線網(wǎng)絡(luò)標(biāo)準(zhǔn)、PROFIBUS-DP現(xiàn)場(chǎng)總線協(xié)議和MODBUS/TCP工業(yè)以太 網(wǎng)協(xié)議在物理層采用不同的規(guī)范,在數(shù)據(jù)鏈路層采用不同的介質(zhì)訪問(wèn)方式。為了實(shí)現(xiàn)在這三 種網(wǎng)絡(luò)之間的互通,多協(xié)議網(wǎng)關(guān)既要滿足三種協(xié)議物理層和數(shù)據(jù)鏈路層的要求,又能夠?qū)Σ?同的應(yīng)用層定義分別做出解釋。
為了實(shí)現(xiàn)上述目的,本發(fā)明的構(gòu)思是
本發(fā)明實(shí)現(xiàn)基于IEEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng)和 PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān)及協(xié)議轉(zhuǎn)換方法是它采用AT91RM9200微處理器作為核 心控制芯片,該芯片集成了以太網(wǎng)控制器,USB控制器;通過(guò)外擴(kuò)DM9161EP以太網(wǎng)物理層接 口芯片,并編寫了 MODBUS/TCP主站程序,從而實(shí)現(xiàn)一個(gè)MODBUS/TCP主站模塊。微處理器通 過(guò)內(nèi)部總線與西門子SPC3協(xié)議芯片連接,實(shí)現(xiàn)一個(gè)PROFIBUS-DP從站模塊。SPC3協(xié)議芯片 集成了 PROFIBUS-DP的全部協(xié)議,可以極大減輕相連微處理器的負(fù)荷。微處理器通過(guò)SPI總 線與NA1TR8無(wú)線芯片連接,并編寫了無(wú)線主站程序,從而實(shí)現(xiàn)一個(gè)無(wú)線主站模塊,順利將 IEEE802. 15.4a無(wú)線網(wǎng)絡(luò)接入。并且通過(guò)整個(gè)系統(tǒng)通過(guò)統(tǒng)一協(xié)議轉(zhuǎn)換模型,實(shí)現(xiàn)"兩主一從 站"之間的協(xié)議轉(zhuǎn)換。
在此協(xié)議轉(zhuǎn)換模型中,IEEE802. 15. 4a無(wú)線網(wǎng)絡(luò)和M0DBUS/TCP工業(yè)以太網(wǎng)各有一個(gè)主站, 兩者同時(shí)存在,它們能獨(dú)立完成相應(yīng)功能,且兩者之間相互對(duì)等。每個(gè)主站都有自己的輪詢 周期,系統(tǒng)為各主站建立了一個(gè)數(shù)據(jù)副本區(qū),對(duì)于需要轉(zhuǎn)換的從節(jié)點(diǎn)的數(shù)據(jù)信息,都在這個(gè) 數(shù)據(jù)副本區(qū)中儲(chǔ)存并一一對(duì)應(yīng)。各主站在輪詢?cè)擃愓军c(diǎn)時(shí),把獲取的數(shù)據(jù)或?qū)懭氲臄?shù)據(jù)映 射到對(duì)應(yīng)的副本區(qū)中。通過(guò)數(shù)據(jù)副本區(qū)和地址轉(zhuǎn)換技術(shù),使主站可以訪問(wèn)對(duì)方從站的數(shù)據(jù), 且兩主站之間可以互相訪問(wèn)對(duì)方的數(shù)據(jù)。對(duì)PROFIBUS從站點(diǎn),兩個(gè)主站都可以訪問(wèn)其數(shù)據(jù)區(qū)。
為了使系統(tǒng)中的兩個(gè)主站(A網(wǎng)絡(luò)與B網(wǎng)絡(luò))可以獨(dú)立地對(duì)所有的子節(jié)點(diǎn)進(jìn)行訪問(wèn),首 先需要對(duì)報(bào)文進(jìn)行地址轉(zhuǎn)換,即利用網(wǎng)關(guān)將B網(wǎng)絡(luò)中的子節(jié)點(diǎn)地址轉(zhuǎn)換成A網(wǎng)絡(luò)地址。在網(wǎng) 關(guān)的內(nèi)存中開辟地址轉(zhuǎn)換映射區(qū),預(yù)先儲(chǔ)存各子節(jié)點(diǎn)與其他網(wǎng)絡(luò)主站通信時(shí)地址的對(duì)應(yīng)關(guān)系。 當(dāng)收到需要轉(zhuǎn)換的報(bào)文時(shí),在地址轉(zhuǎn)換映射區(qū)內(nèi)比對(duì)查找,根據(jù)此映射關(guān)系將目標(biāo)地址轉(zhuǎn)換 為對(duì)應(yīng)的B網(wǎng)絡(luò)地址。對(duì)于從站(C網(wǎng)絡(luò))同樣操作。具體步驟如下
(1) 在微處理內(nèi)存中開辟一片內(nèi)存區(qū)作為地址轉(zhuǎn)換映射區(qū)。
(2) 根據(jù)IEEE802. 15. 4a網(wǎng)絡(luò)與MODBUS/TCP網(wǎng)絡(luò)分別建立一個(gè)結(jié)構(gòu)體數(shù)組。
(3) 根據(jù)網(wǎng)絡(luò)配置參數(shù),初始化結(jié)構(gòu)體數(shù)組,建立各個(gè)網(wǎng)絡(luò)之間節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系。(4) 根據(jù)當(dāng)前報(bào)文的地址,在地址轉(zhuǎn)換映射區(qū)內(nèi)比對(duì)査找。
(5) 根據(jù)映射關(guān)系,重新封裝新的目標(biāo)地址。
系統(tǒng)在的主程序流程為系統(tǒng)上電后微處理器初始化,讀入配置參數(shù),對(duì)無(wú)線主站模塊、 MODBUS/TCP主站模塊和PROFIBUS-DP從站模塊初始化,地址轉(zhuǎn)換映射區(qū)初始化,數(shù)據(jù)副本區(qū) 初始化,進(jìn)入數(shù)據(jù)交互與協(xié)議轉(zhuǎn)換流程。此后,若不發(fā)生異常情況,系統(tǒng)將始終處于數(shù)據(jù)交 互與協(xié)議轉(zhuǎn)換狀態(tài)中。
協(xié)議轉(zhuǎn)換的流程為
首先主站對(duì)MODBUS/TCP網(wǎng)絡(luò)進(jìn)行輪詢,若報(bào)文屬于自身網(wǎng)絡(luò),則可直接下發(fā)報(bào)文進(jìn)行操作。
若報(bào)文屬于無(wú)線協(xié)議站點(diǎn),則進(jìn)行地址轉(zhuǎn)換。若是普通報(bào)文轉(zhuǎn)發(fā),分析報(bào)文所需執(zhí)行的 操作。若是讀操作,則直接讀取該協(xié)議數(shù)據(jù)輸出副本區(qū)內(nèi)的數(shù)據(jù),返回報(bào)文響應(yīng),子節(jié)點(diǎn)將 在該協(xié)議的輪詢周期時(shí)更新輸出區(qū)的數(shù)據(jù);若是寫操作,則將數(shù)據(jù)寫入數(shù)據(jù)輸入副本區(qū),返 回報(bào)文相應(yīng),該部分?jǐn)?shù)據(jù)將在該協(xié)議的輪詢周期寫入到對(duì)應(yīng)子節(jié)點(diǎn)中。若是緊急報(bào)文轉(zhuǎn)發(fā), 在完成地址轉(zhuǎn)換后,對(duì)該協(xié)議的相應(yīng)的子節(jié)點(diǎn)進(jìn)行直接操作后返回,并更新該協(xié)議的數(shù)據(jù)副 本區(qū)。
若報(bào)文屬于PROFIBUS-DP從站,則進(jìn)行地址轉(zhuǎn)換,直接對(duì)從站模塊中的雙口 RAM進(jìn)行讀 寫操作,其數(shù)據(jù)更新取決于PR0FTBLS主站對(duì)其的輪詢周期。
上述協(xié)議轉(zhuǎn)換的流程假定當(dāng)時(shí)為M0DBUS/TCP主站輪詢其他節(jié)點(diǎn)的狀態(tài),若是無(wú)線主站輪 詢其他節(jié)點(diǎn)的狀態(tài),也遵從相對(duì)應(yīng)的流程,只需將兩主站的位置對(duì)換即可。而PROFIBUS-DP 從站只作為上述兩主站的從站站點(diǎn),不做輪詢。
根據(jù)上述發(fā)明構(gòu)思,本發(fā)明采用下述技術(shù)方案
一種基于IEEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入M0DBUS/TCP工業(yè)以太網(wǎng)和PR0FIBUS-DP現(xiàn) 場(chǎng)總線的多協(xié)議網(wǎng)關(guān),包括微處理器、M0DBUS/TCP主站、IEEE802. 15.4a無(wú)線主站、 PROFIBUS-DP從站、外擴(kuò)SDRAM存儲(chǔ)器和FLASH存儲(chǔ)器、RJ45網(wǎng)口 、 485物理層接口 、 USB接 口;其特征在于電路的連接方式是以所述微處理器為中心,通過(guò)MDIO接口連接所述 M0DBUS/TCP主站的DM9161 EP以太網(wǎng)物理層接口芯片,通過(guò)內(nèi)部總線連接所述PR0FIBUS-DP 從站的協(xié)議芯片SPC3、所述SDRAM存儲(chǔ)器和所述FLASH存儲(chǔ)器,通過(guò)SPI總線連接所述 IEEE802. 15. 4a無(wú)線主站的NA1TR8協(xié)議芯片,外擴(kuò)USB接口 。
基于IEEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng)總 線的多協(xié)議轉(zhuǎn)換方法,采用上述的基于1EEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān)進(jìn)行協(xié)議轉(zhuǎn)換,由IEEE802. 15. 4a無(wú)線主站實(shí) 現(xiàn)IEEE802. 15. 4a無(wú)線協(xié)議,由MODBUS/TCP主站實(shí)現(xiàn)MODBUS/TCP協(xié)議,由PROFIBUS-DP從 站實(shí)現(xiàn)PROFIBUS-DP協(xié)議,由微處理器實(shí)現(xiàn)所述三種網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換,其具體步驟如下
1) 微處理器初始化;
2) 將程序代碼從FLASH存儲(chǔ)器復(fù)制到SDRAM存儲(chǔ)器中運(yùn)行;
3) 微處理器通過(guò)USB讀入網(wǎng)絡(luò)配置參數(shù);
4) MODBUS/TCP主站模塊初始化;
5) IEEE802. 15. 4a無(wú)線主站模塊初始化;
6) PROFIBUS-DP從站模塊初始化;
7) 為地址轉(zhuǎn)換開辟結(jié)構(gòu)體數(shù)組,根據(jù)網(wǎng)絡(luò)參數(shù)的指示,對(duì)地址轉(zhuǎn)換映射區(qū)初始化;
8) MODBUS/TCP主站與無(wú)線主站內(nèi)數(shù)據(jù)副本區(qū)初始化;
9) MODBUS/TCP主站輪詢與協(xié)議轉(zhuǎn)換;
10) 基于IEEE802. 15. 4a的無(wú)線主站輪詢與協(xié)議轉(zhuǎn)換;
11) PROFIBUS-DP從站輪詢與協(xié)議轉(zhuǎn)換;
12) 返回步驟9),循環(huán)運(yùn)行。
本發(fā)明與現(xiàn)有的技術(shù)相比,具有以下的突出特點(diǎn)和顯著進(jìn)步
1. 微處理器的SPI接口與NA1TR8協(xié)議芯片連接,實(shí)現(xiàn)了將IEEE802. 15.4a工業(yè)無(wú)線網(wǎng)絡(luò)引 入到MODBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng)總線的系統(tǒng)結(jié)構(gòu)中。
2. 系統(tǒng)中存在兩個(gè)主站,既可以同時(shí)作為主站獨(dú)立并行工作,又可以配置為主從關(guān)系,系統(tǒng) 在上述兩種情況下均能夠穩(wěn)定運(yùn)行。
3. 基于IEEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng)總 線的多協(xié)議網(wǎng)關(guān)基于映射關(guān)系實(shí)現(xiàn)了地址轉(zhuǎn)換技術(shù),使兩主站之間能夠?qū)Φ鹊卦L問(wèn)對(duì)方的 從節(jié)點(diǎn)。
圖1是本發(fā)明實(shí)施例的硬件平臺(tái)示意圖。
圖2是本發(fā)明實(shí)施例的多協(xié)議網(wǎng)關(guān)主程序流程圖。
圖3是本發(fā)明實(shí)施例的MODBUS/TCP以太網(wǎng)初始化配置子程序流程圖。
圖4是本發(fā)明實(shí)施例的無(wú)線網(wǎng)絡(luò)初始化配置子程序流程圖。
圖5是本發(fā)明實(shí)施例的PROFIBUS-DP初始化配置子程序流程圖。
圖6是本發(fā)明實(shí)施例的地址轉(zhuǎn)換的結(jié)構(gòu)示意圖。圖7是本發(fā)明實(shí)施例的統(tǒng)一報(bào)文模型圖 圖8是本發(fā)明實(shí)施例的MODBUS/TCP主站輪詢流程圖。 圖9是本發(fā)明實(shí)施例的IEEE802. 15. 4a無(wú)線主站輪詢流程圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明的一個(gè)優(yōu)選實(shí)施例進(jìn)行說(shuō)明
參見圖1,本基于IEEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng)和 PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān),包括微處理器①、MODBUS/TCP主站、IEEE802. 15. 4a 無(wú)線主站、PR0FIBUS-DP從站、外擴(kuò)SDRAM存儲(chǔ)器⑦和FLASH存儲(chǔ)器⑧、RJ45網(wǎng)口④、485
物理層接口⑥、USB接口O;其電路的連接方式是以微處理器①為中心,通過(guò)MDI0接口⑩外
擴(kuò)DM9161 EP以太網(wǎng)物理層接口芯片③,通過(guò)內(nèi)部總線⑨連接PROFIBUS-DP協(xié)議芯片SPC35,
通過(guò)SPI總線③連接NA1TR8無(wú)線協(xié)議芯片②,外擴(kuò)USB接口O。
采用AT91脂9200微處理器①作為系統(tǒng)的核心控制芯片。微處理器①通過(guò)SPI總線 與
NA1TR8無(wú)線協(xié)議芯片②連接,形成一個(gè)無(wú)線主站模塊,無(wú)線網(wǎng)絡(luò)與無(wú)線子節(jié)點(diǎn)G互聯(lián)。無(wú)線
協(xié)議芯片采用了寬帶線性調(diào)頻擴(kuò)頻(Chirp Spread Spectrum)技術(shù)作為實(shí)現(xiàn)工業(yè)無(wú)線網(wǎng)絡(luò)協(xié) 議IEEE802. 15. 4a的基準(zhǔn)物理層標(biāo)準(zhǔn)。此外,無(wú)線協(xié)議芯片含有ISM通帶濾波器以提高抗干 擾性,用戶可以在500kbps、 1Mbps和2Mbps中選擇適合的數(shù)據(jù)傳輸率。
AT91RM9200微處理器①集成了以太網(wǎng)控制器,通過(guò)MDIO接口⑩外擴(kuò)DM9161EP以太網(wǎng)物 理層接口芯片③。它的功能包括物理編碼子層、物理媒體附件、雙絞線物理媒體子層、 10BASE-TX編碼/解碼器和雙絞線媒體訪問(wèn)單元等。接口芯片對(duì)外通過(guò)RJ45網(wǎng)口④與其他的
MODBUS子節(jié)點(diǎn)G進(jìn)行通信,形成一個(gè)MODBUS/TCP主站模塊。
AT91RM9200微處理器①通過(guò)內(nèi)部總線⑨與PROFIBUS協(xié)議芯片SPC3⑤連接,并加上485 物理層接口⑥形成一個(gè)PROFIBUS-DP從站模塊。SPC3芯片包括全部的DP協(xié)議,可獨(dú)立完成 全部通信協(xié)議,最高可用于12 Mbps總線,微處理器操作SPC3芯片就像操作其內(nèi)部RAM。
AT91RM9200微處理器①外擴(kuò)SDRAM存儲(chǔ)器⑦和FLASH存儲(chǔ)器⑧,前者存放程序運(yùn)行的代 碼,而后者儲(chǔ)存現(xiàn)場(chǎng)采集到的數(shù)據(jù)。當(dāng)任務(wù)運(yùn)行時(shí),程序代碼將從FLASH存儲(chǔ)器復(fù)制到SDRAM
存儲(chǔ)器中進(jìn)行運(yùn)行,提高系統(tǒng)速度。微處理器①還與USB接口D連接,用于基于PC機(jī)的軟件配置。參見圖2,本基于IEEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng)和 PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議轉(zhuǎn)換方法,采用上述的基于IEEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò) 接入MODBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān)進(jìn)行協(xié)議轉(zhuǎn)換, IEEE802. 15. 4a無(wú)線主站實(shí)現(xiàn)IEEE802. 15. 4a無(wú)線協(xié)議,由MODBUS/TCP主站實(shí)現(xiàn)MODBUS/TCP 協(xié)議,由PROFIBUS-DP從站實(shí)現(xiàn)PROFIBUS-DP協(xié)議,由微處理器實(shí)現(xiàn)所述三種網(wǎng)絡(luò)之間的協(xié) 議轉(zhuǎn)換,其具體步驟如下
1) 微處理器①初始化;
2) 將程序代碼從FLASH存儲(chǔ)器⑧復(fù)制到SDRAM存儲(chǔ)器⑦中運(yùn)行;
3) 微處理器①通過(guò)USB接口讀入網(wǎng)絡(luò)配置參數(shù);
4) M0DBUS/TCP主站模塊初始化;
5) IEEE802. 15. 4a無(wú)線主站模塊初始化;
6) PKOFIBUS-DP從站模塊初始化;
7) 為地址轉(zhuǎn)換開辟結(jié)構(gòu)體數(shù)組,根據(jù)網(wǎng)絡(luò)參數(shù)的指示,對(duì)地址轉(zhuǎn)換映射區(qū)初始化;
8) MODBUS/TCP主站與無(wú)線主站內(nèi)數(shù)據(jù)副本區(qū)初始化;
9) MODBUS/TCP主站輪詢與協(xié)議轉(zhuǎn)換;
10) 基于IEEE802. 15. 4a的無(wú)線主站輪詢與協(xié)議轉(zhuǎn)換;
11) PROFIBUS-DP從站輪詢與協(xié)議轉(zhuǎn)換;
12) 返回步驟9),循環(huán)運(yùn)行。
參見圖3,在M0DBUS/TCP以太網(wǎng)主站模塊正常工作前,需要對(duì)其進(jìn)行初始化,包括初始 化AT91RM9200微處理器①的EMAC接口,然后復(fù)位DM9161EP以太網(wǎng)物理接口芯片③。通過(guò) AT91RM9200微處理器①的MDIO接口初始化DM9161EP以太網(wǎng)物理接口芯片③,配置模式控制 寄存器,使能EMAC的接收/發(fā)送中斷。最后進(jìn)入?yún)f(xié)議主程序,使MODBUS/TCP主站模塊正常工 作。具體初始化的步驟如下
(1) 初始化AT91RM9200微處理器①中的EMAC接口 ;
(2) 通過(guò)微處理器①?gòu)?fù)位DM9161EP以太網(wǎng)物理層接口芯片(D;
(3) 通過(guò)微處理器①的MDI0接口初始化DM9161EP以太網(wǎng)物理層接口芯片③,配置以 太網(wǎng)物理層接口芯片以太網(wǎng)物理層接口芯片中的模式控制寄存器;
(4) 通過(guò)微處理器①使能EMAC的接收/發(fā)送中斷;
(5) 進(jìn)入MODBUS/TCP協(xié)議入口程序,使MODBUS/TCP主站進(jìn)入正常運(yùn)行狀態(tài)。
12參見圖4,在無(wú)線主站模塊IH常工作前,需要對(duì)NA1TR8協(xié)議芯片②進(jìn)行初始化,包括初 始化AT91RM9200微處理器①的SPI接口 ,然后復(fù)位NA1TR8無(wú)線協(xié)議芯片②。發(fā)送大小端同 步字,同時(shí)使能芯片內(nèi)部時(shí)鐘,配置寄存器的訪問(wèn)方式,設(shè)定數(shù)據(jù)的重發(fā)機(jī)制,使能接收/ 發(fā)送中斷等。最后啟動(dòng)無(wú)線芯片,使主站開始正常運(yùn)行。具體初始化的步驟如下
(1) 初始化AT91RM9200微處理器①中的SPI接n ;
(2) 通過(guò)微處理器①?gòu)?fù)位NA1TR8無(wú)線協(xié)議芯片②;
(3) 微處理器①發(fā)送同步字,使無(wú)線協(xié)議芯片②和微處理器①的數(shù)據(jù)大小端同步;
(4) 通過(guò)微處理器①使能無(wú)線協(xié)議芯片內(nèi)部時(shí)鐘,配置無(wú)線協(xié)議芯片內(nèi)寄存器的訪問(wèn) 方式,設(shè)定數(shù)據(jù)的重發(fā)機(jī)制,使能接收/發(fā)送中斷等;
(5) 由程序配置無(wú)線主站各參數(shù);
(6) 啟動(dòng)NA1TR8無(wú)線協(xié)議芯片②,無(wú)線主站進(jìn)入正常運(yùn)行狀態(tài)。
參見圖5, PROFIBUS-DP從站接口在上電之后還處于離線狀態(tài),不能接收任何報(bào)文,為此 必須對(duì)SPC3協(xié)議芯片⑤進(jìn)行初始化,需要完成從站基本信息及功能相關(guān)寄存器的配置,SPC3 協(xié)議芯片⑤內(nèi)部數(shù)據(jù)緩沖區(qū)指針的計(jì)算以及外部中斷相關(guān)的各種定義。在通電后,SPC3協(xié)議 芯片⑤上會(huì)獲得一個(gè)復(fù)位脈沖,從而進(jìn)入復(fù)位模式。隨后進(jìn)行初始化,以設(shè)置允許中斷、寫 入從站識(shí)別號(hào)和地址、片內(nèi)方式寄存器、診斷緩沖區(qū)、參數(shù)緩沖區(qū)、配置緩沖區(qū)、地址緩沖 區(qū)、初始長(zhǎng)度,并根據(jù)以上初始值求出各個(gè)緩沖區(qū)的指針及輔助緩沖區(qū)的指針,根據(jù)傳輸?shù)?數(shù)據(jù)長(zhǎng)度,確定輸入/輸出緩沖區(qū)及指針,開啟中斷等,然后對(duì)SPC3協(xié)議芯片⑤發(fā)送一個(gè)啟 動(dòng)命令。具體的初始化步驟如下
(1) 初始化AT91RM9200微處理器①的內(nèi)部總線接口 ;
(2) 由程序設(shè)置SPC3協(xié)議芯片⑤的中斷允許,寫入從站識(shí)別號(hào)和地址;
(3) 由程序設(shè)置SPC3協(xié)議芯片⑤的方式寄存器,設(shè)置診斷緩沖區(qū)、參數(shù)緩沖區(qū)、配 置緩沖區(qū)、地址緩沖區(qū)的長(zhǎng)度及其他參數(shù);
(4) 根據(jù)以上初始值得出各個(gè)緩沖區(qū)的指針和輔助緩沖^的指針;
(5) 進(jìn)入PROFIBUS-DP從站主程序,從站進(jìn)入正常運(yùn)行狀態(tài)。
參見圖6,為地址轉(zhuǎn)換開辟的結(jié)構(gòu)體數(shù)組的具體實(shí)現(xiàn)首先為不同的網(wǎng)絡(luò)開辟一個(gè)結(jié)構(gòu) 體數(shù)組。其中結(jié)構(gòu)體數(shù)組中結(jié)構(gòu)體第一個(gè)數(shù)據(jù)是當(dāng)前網(wǎng)絡(luò)的從站地址,第二個(gè)數(shù)據(jù)為一指針, 根據(jù)網(wǎng)絡(luò)的配置參數(shù),指向另一網(wǎng)絡(luò)相應(yīng)的從站地址的結(jié)構(gòu)體地址,如該網(wǎng)絡(luò)無(wú)對(duì)應(yīng)的從站, 就直接指向空。
參見圖7,本基于IEEE802. 15. 4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入M0DBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān)的統(tǒng)一報(bào)文模型為首先前兩個(gè)字節(jié)為該報(bào)文所涉及的 從站地址;第3個(gè)字節(jié)為該報(bào)文的狀態(tài),OO為普通報(bào)文,Ol為緊急報(bào)文;后面為報(bào)文,根據(jù) 報(bào)文的不同,字節(jié)長(zhǎng)度不同,最后兩字節(jié)為報(bào)文結(jié)朿符,為FE, FD。
參見圖8,在AT91RM9200微處理器①中寫有協(xié)議轉(zhuǎn)換程序?qū)崿F(xiàn)不同網(wǎng)絡(luò)間的協(xié)議轉(zhuǎn)換。 整個(gè)系統(tǒng)的輪詢周期由三部分組成由MODBUS/TCP主站輪詢自身網(wǎng)絡(luò)中的子節(jié)點(diǎn),然后輪詢 無(wú)線主站,最后輪詢PROFIBUS-DP從站。
由MODBUS/TCP主站輪詢與協(xié)議轉(zhuǎn)換步驟為
1. MODBUS/TCP主站收到報(bào)文,判斷報(bào)文的目標(biāo)地址是否在同一網(wǎng)絡(luò)中,若是,直接下發(fā)報(bào) 文進(jìn)行操作;若否,MODBUS/TCP主站則輪詢MODBUS/TCP網(wǎng)絡(luò)子節(jié)點(diǎn),更新數(shù)據(jù)副本區(qū);
2. MODBUS/TCP主站輪詢無(wú)線主站,若無(wú)線主站未收到報(bào)文,則輪詢無(wú)線子節(jié)點(diǎn),更新數(shù)據(jù) 副本區(qū),轉(zhuǎn)到步驟(5)繼續(xù);若無(wú)線主站收到報(bào)文,獲取網(wǎng)絡(luò)源地址與目標(biāo)地址,等待 地址轉(zhuǎn)換;
3. 讀微處理器中地址轉(zhuǎn)換映射區(qū)內(nèi)的結(jié)構(gòu)體數(shù)組,根據(jù)數(shù)組內(nèi)容進(jìn)行對(duì)應(yīng)的轉(zhuǎn)換;
4. 地址轉(zhuǎn)換完成后,MODBUS/TCP主站判斷報(bào)文性質(zhì)
A. 若是普通報(bào)文對(duì)無(wú)線主站的輸入/輸出數(shù)據(jù)副本區(qū)進(jìn)行操作,返回報(bào)文響應(yīng)。 在下一個(gè)輪詢周期內(nèi),無(wú)線主站輸入?yún)^(qū)內(nèi)數(shù)據(jù)將被寫入子節(jié)點(diǎn),無(wú)線主站輸出區(qū)內(nèi)數(shù) 據(jù)將被更新;
B. 若是緊急報(bào)文無(wú)線主站直接對(duì)子節(jié)點(diǎn)進(jìn)行相應(yīng)操作,返回報(bào)文響應(yīng);
5. MODBUS/TCP主站輪詢PROFIBUS-DP從站,若PROFIBUS-DP從站未收到報(bào)文,不進(jìn)行任何 操作;若PROFIBUS-DP從站收到報(bào)文,根據(jù)報(bào)文內(nèi)容對(duì)雙口 KAM進(jìn)行相應(yīng)操作。雙口 RAM 中的數(shù)據(jù)將根據(jù)PROFIBUS主站對(duì)從站的輪詢時(shí)間進(jìn)行隨時(shí)更新;
6. MODBUS/TCP主站輪詢結(jié)束,進(jìn)入無(wú)線主站輪詢各子節(jié)點(diǎn)狀態(tài)。
參見圖9,由無(wú)線主站輪詢與協(xié)議轉(zhuǎn)換步驟為
(1) 無(wú)線主站收到報(bào)文,判斷報(bào)文目標(biāo)地址是否在同一網(wǎng)絡(luò)中,若是,直接下發(fā)報(bào)文 進(jìn)行操作;若否,無(wú)線主站則輪詢無(wú)線網(wǎng)絡(luò)子節(jié)點(diǎn),更新數(shù)據(jù)副本區(qū);
(2) 無(wú)線主站輪詢MODBUS/TCP主站,若MODBUS/TCP主站未收到報(bào)文,輪詢MODBUS/TCP 子節(jié)點(diǎn),更新數(shù)據(jù)副本區(qū),轉(zhuǎn)到步驟(5)繼續(xù)若MODBUS/TCP主站收到報(bào)文,獲 取網(wǎng)絡(luò)源地址與目標(biāo)地址,等待地址轉(zhuǎn)換;
(3) 讀微處理器中地址轉(zhuǎn)換映射區(qū)內(nèi)的結(jié)構(gòu)體數(shù)組,根據(jù)數(shù)組內(nèi)容進(jìn)行對(duì)應(yīng)的轉(zhuǎn)換;
(4) 地址轉(zhuǎn)換完成后,無(wú)線主站判斷報(bào)文性質(zhì)A. 若是普通報(bào)文對(duì)MODBUS/TCP主站的輸入/輸出數(shù)據(jù)副本區(qū)進(jìn)行操作,返回 報(bào)文響應(yīng)。在下一個(gè)輪詢周期內(nèi),MODBUS/TCP主站輸入?yún)^(qū)內(nèi)數(shù)據(jù)將被寫入子 節(jié)點(diǎn),MODBUS/TCP主站輸出區(qū)內(nèi)數(shù)據(jù)將被更新;
B. 若是緊急報(bào)文MODBUS/TCP主站直接對(duì)子節(jié)點(diǎn)進(jìn)行相應(yīng)操作,返回報(bào)文響應(yīng);
(5) MODBUS/TCP主站輪詢PROFIBUS-DP從站,若PROFIBUS-DP從站未收到報(bào)文,不進(jìn) 行任何操作;若PROFIBUS-DP從站收到報(bào)文,根據(jù)報(bào)文內(nèi)容對(duì)雙口 RAM進(jìn)行相應(yīng)操 作。雙口 RAM中的數(shù)據(jù)將根據(jù)PROFIBUS主站對(duì)從站的輪詢時(shí)間進(jìn)行隨時(shí)更新;
(6) 無(wú)線主站輪詢結(jié)束,進(jìn)入MODBUS/TCP主站輪詢各子節(jié)點(diǎn)狀態(tài)。
例如,MODBUS/TCP主站收到如下的報(bào)文:
目標(biāo)網(wǎng)絡(luò)地址報(bào)文狀態(tài)報(bào)文內(nèi)容結(jié)束符
192. 168.10.10000 00 00 06 00 03 00 00 00 01FE FD
MODBUS/TCP主站在地址轉(zhuǎn)換映射區(qū)內(nèi)査詢結(jié)構(gòu)體數(shù)組,指針指向無(wú)線主站的從站地址,完成 地址轉(zhuǎn)換。分析報(bào)文內(nèi)容,其中OO OO代表節(jié)點(diǎn)編號(hào),03功能號(hào)代表讀操作,00 00代表 起始地址,01代表字節(jié)長(zhǎng)度,報(bào)文狀態(tài)00屬于普通報(bào)文。直接讀取無(wú)線從站的副本區(qū)的數(shù) 據(jù)。如報(bào)文狀態(tài)為01 ,為緊急報(bào)文,則將把報(bào)文重新轉(zhuǎn)換為無(wú)線報(bào)文00 04 01 01, 00代表節(jié)點(diǎn)編號(hào),04功能號(hào)代表讀操作,Ol代表字節(jié)長(zhǎng)度,Ol代表起始地址。直接通過(guò)無(wú) 線獲取該無(wú)線從站的數(shù)據(jù),并更新相應(yīng)的數(shù)據(jù)副本區(qū)。
權(quán)利要求
1. 一種基于IEEE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān),包括微處理器①、MODBUS/TCP主站、IEEE802.15.4a無(wú)線主站、PROFIBUS-DP從站、外擴(kuò)SDRAM存儲(chǔ)器⑦和FLASH存儲(chǔ)器⑧、RJ45網(wǎng)口④、485物理層接口⑥、USB接口其特征在于電路的連接方式是以所述微處理器①為中心,通過(guò)MDIO接口⑩連接所述MODBUS/TCP主站的DM9161EP以太網(wǎng)物理層接口芯片③,通過(guò)內(nèi)部總線⑨連接所述PROFIBUS-DP從站的協(xié)議芯片SPC3、所述SDRAM存儲(chǔ)器⑦和所述FLASH存儲(chǔ)器⑧,通過(guò)SPI總線連接所述IEEE802.15.4a無(wú)線主站的NA1TR8協(xié)議芯片②,外擴(kuò)USB接口
2. 如權(quán)利要求1所述的基于IEEE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng) 和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān),其特征在于所述微處理器①釆用AT91RM9200 為核心芯片,外擴(kuò)SDRAM存儲(chǔ)器⑦和FLASH存儲(chǔ)器⑧,所述FLASH內(nèi)存放程序代碼 和數(shù)據(jù),當(dāng)任務(wù)運(yùn)行吋,程序代碼將被復(fù)制到所述SDRAM中運(yùn)行,以提高系統(tǒng)速度。
3. —種基于正EE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP 現(xiàn)場(chǎng)總線的多協(xié)議轉(zhuǎn)換方法,采用權(quán)利要求1所述的基于IEEE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò) 接入MODBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān)進(jìn)行協(xié)議轉(zhuǎn)換, 其特征在于由IEEE802.15.4a無(wú)線主站實(shí)現(xiàn)IEEE802.15.4a無(wú)線協(xié)議,由MODBUS/TCP 主站實(shí)現(xiàn)MODBUS/TCP協(xié)議,由PROFIBUS-DP從站實(shí)現(xiàn)PROFIBUS-DP協(xié)議,由微處 理器控制實(shí)現(xiàn)所述三種網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換,其具體步驟如下1) 微處理器①初始化;2) 將程序代碼從FLASH存儲(chǔ)器⑧復(fù)制到SDRAM存儲(chǔ)器⑦中運(yùn)行;3) 微處理器①通過(guò)USB接口讀入網(wǎng)絡(luò)配置參數(shù);4) MODBUS/TCP主站模塊初始化;5) IEEE802.15.4a無(wú)線主站模塊初始化;6) PROFIBUS-DP從站模塊初始化;7) 為地址轉(zhuǎn)換開辟結(jié)構(gòu)體數(shù)組,根據(jù)網(wǎng)絡(luò)參數(shù),對(duì)地址轉(zhuǎn)換映射區(qū)初始化8) MODBUS/TCP主站與IEEE802.15.4a無(wú)線主站內(nèi)數(shù)據(jù)副本區(qū)初始化;9) MODBUS/TCP主站輪詢與協(xié)議轉(zhuǎn)換;10) 基于正EE802.15.4a的無(wú)線主站輪詢與協(xié)議轉(zhuǎn)換;11) PROFIBUS-DP從站輪詢與協(xié)議轉(zhuǎn)換;12) 返回歩驟9),循環(huán)運(yùn)行。
4. 如權(quán)利要求3所述的基于正EE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng) 和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議轉(zhuǎn)換方法,其特征在于所述步驟4)的MODBUS/TCP 主站模塊初始化的步驟為(1) 初始化AT91RM9200微處理器①中的EMAC;(2) 通過(guò)微處理器①?gòu)?fù)位DM9161EP以太網(wǎng)物理層接口芯片③;(3) 通過(guò)微處理器①的MDIO接口初始化DM9161EP以太網(wǎng)物理層接口芯片③,酉己 置以太網(wǎng)物理層接口芯片中的模式控制寄存器;(4) 使能EMAC的接收/發(fā)送中斷;(5) 進(jìn)入MODBUS/TCP協(xié)議入口程序,使MODBUS/TCP主站進(jìn)入正常運(yùn)行狀態(tài)。
5. 如權(quán)利要求3所述的基于IEEE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng) 和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議轉(zhuǎn)換方法,其特征在于所述歩驟5)的IEEE802.15.4a 無(wú)線主站模塊初始化的步驟為(1) 初始化AT91RM9200微處理器①中的SPI接口 ;(2) 通過(guò)微處理器①?gòu)?fù)位NA1TR8協(xié)議芯片②;(3) 微處理器①發(fā)送同步字,使NA1TR8協(xié)議芯片②和微處理器①的數(shù)據(jù)大小端同 步;(4) 通過(guò)微處理器①使能NA1TR8協(xié)議芯片②內(nèi)部時(shí)鐘,配置NA1TR8協(xié)議芯片② 內(nèi)寄存器的訪問(wèn)方式,設(shè)定數(shù)據(jù)的重發(fā)機(jī)制,使能接收/發(fā)送中斷;(5) 由程序配置IEEE802.15.4a無(wú)線主站各參數(shù);(6) 啟動(dòng)NA1TR8協(xié)議芯片②,IEEE802.15.4a無(wú)線主站進(jìn)入正常運(yùn)行狀態(tài)。
6. 如權(quán)利要求3所述的基于正EE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng) 和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議轉(zhuǎn)換方法,其特征在于所述步驟6)的PROFIBUS-DP 從站模塊初始化的步驟為(1) 初始化AT91RM9200微處理器①的內(nèi)部總線接口⑨;(2) 由程序設(shè)置SPC3協(xié)議芯片⑤的中斷允許,寫入從站識(shí)別號(hào)和地址;(3) 由程序設(shè)置SPC3協(xié)議芯片⑤的方式寄存器,設(shè)置診斷緩沖區(qū)、參數(shù)緩沖區(qū)、配 置緩沖區(qū)及地址緩沖區(qū)的長(zhǎng)度;(4) 根據(jù)以上初始值得出各個(gè)緩沖區(qū)的指針和輔助緩沖區(qū)的指針;(5) 進(jìn)入PROFIBUS-DP從站主程序,PROFIBUS-DP從站進(jìn)入正常運(yùn)行狀態(tài)。
7. 如權(quán)利要求3所述的基于正EE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太M 和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議轉(zhuǎn)換方法,其特征在于所述步驟7)的地址轉(zhuǎn)換映射 區(qū)初始化的步驟如下(1) 在微處理器內(nèi)存中開辟一片內(nèi)存區(qū)作為地址轉(zhuǎn)換映射區(qū);(2) 為IEEE802.15.4a無(wú)線網(wǎng)絡(luò),MODBUS/TCP網(wǎng)絡(luò)和PROFIBUS-DP網(wǎng)絡(luò)分別建立 一個(gè)結(jié)構(gòu)體數(shù)組;(3) 微處理器①根據(jù)各網(wǎng)絡(luò)的配置參數(shù),分別初始化結(jié)構(gòu)體數(shù)組。
8. 如權(quán)利要求3所述的基于正EE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng) 和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議轉(zhuǎn)換方法,其特征在于所述步驟9)的MODBUS/TCP 主站輪詢與協(xié)議轉(zhuǎn)換的步驟為(1) MODBUS/TCP主站收到報(bào)文,判斷報(bào)文的目標(biāo)地址是否在同一網(wǎng)絡(luò)屮,若是, 直接下發(fā)報(bào)文進(jìn)行操作;若否,MODBUS/TCP主站則輪詢MODBUS/TCP網(wǎng)絡(luò)子節(jié) 點(diǎn),更新數(shù)據(jù)副本區(qū);(2) MODBUS/TCP主站輪詢IEEE802.15.4a無(wú)線主站,若IEEE802.15.4a無(wú)線主站未 收到報(bào)文,則輪詢無(wú)線子節(jié)點(diǎn),更新數(shù)據(jù)副本區(qū),轉(zhuǎn)到歩驟(5)繼續(xù);若IEEE802.15.4a 無(wú)線主站收到報(bào)文,獲取網(wǎng)絡(luò)源地址與目標(biāo)地址,等待地址轉(zhuǎn)換;(3) 讀微處理器中地址轉(zhuǎn)換映射區(qū)內(nèi)的結(jié)構(gòu)體數(shù)組,根據(jù)數(shù)組內(nèi)容進(jìn)行對(duì)應(yīng)的轉(zhuǎn)換;(4) 地址轉(zhuǎn)換完成后,MODBUS/TCP主站判斷報(bào)文性質(zhì)A. 若是普通報(bào)文對(duì)IEEE802.15.4a無(wú)線主站的輸入/輸出數(shù)據(jù)副本區(qū)進(jìn)行操作, 返回報(bào)文響應(yīng);在下一個(gè)輪詢周期內(nèi),IEEE802.15.4a無(wú)線主站輸入?yún)^(qū)內(nèi)數(shù)據(jù) 將被寫入子節(jié)點(diǎn),IEEE802.15.4a無(wú)線主站輸出區(qū)內(nèi)數(shù)據(jù)將被更新;B. 若是緊急報(bào)文IEEE802.15.4a無(wú)線主站直接對(duì)子節(jié)點(diǎn)進(jìn)行相應(yīng)操作,返回報(bào) 文響應(yīng);(5) MODBUS/TCP主站輪詢PROFIBUS-DP從站,若PROFIBUS-DP從站未收到報(bào) 文,不進(jìn)行任何操作;若PROFIBUS-DP從站收到報(bào)文,根據(jù)報(bào)文內(nèi)容對(duì)雙口 RAM 進(jìn)行相應(yīng)操作;雙口 RAM中的數(shù)據(jù)將根據(jù)PROFIBUS主站對(duì)從站的輪詢時(shí)間進(jìn)行 隨時(shí)更新;(6) MODBUS/TCP主站輪詢結(jié)束,進(jìn)入無(wú)線主站輪詢各子節(jié)點(diǎn)狀態(tài)。
9. 如權(quán)利要求3所述的基于IEEE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng) 和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議轉(zhuǎn)換方法,其特征所述步驟10)基于IEEE802.15.4a 的無(wú)線主站輪詢與協(xié)議轉(zhuǎn)換的步驟為(1) 正EE802.15.4a無(wú)線主站收到報(bào)文,判斷報(bào)文目標(biāo)地址是否在同一網(wǎng)絡(luò)中,若是, 直接下發(fā)報(bào)文進(jìn)行操作;若否,IEEE802.15.4a無(wú)線主站則輪詢無(wú)線網(wǎng)絡(luò)子節(jié)點(diǎn),更 新數(shù)據(jù)副本區(qū);(2) IEEE802.15.4a無(wú)線主站輪詢MODBUS/TCP主站,若MODBUS/TCP主站未收到 報(bào)文,輪詢MODBUS/TCP子節(jié)點(diǎn),更新數(shù)據(jù)副本區(qū),轉(zhuǎn)到步驟(5)繼續(xù);若 MODBUS/TCP主站收到報(bào)文,獲取網(wǎng)絡(luò)源地址與目標(biāo)地址,等待地址轉(zhuǎn)換;(3) 讀微處理器中地址轉(zhuǎn)換映射區(qū)內(nèi)的結(jié)構(gòu)體數(shù)組,根據(jù)數(shù)組內(nèi)容進(jìn)行對(duì)應(yīng)的轉(zhuǎn)換;(4) 地址轉(zhuǎn)換完成后,IEEE802.15.4a無(wú)線主站判斷報(bào)文性質(zhì)A. 若是普通報(bào)文對(duì)MODBUS/TCP主站的輸入/輸出數(shù)據(jù)副本區(qū)進(jìn)行操作,返 回報(bào)文響應(yīng);在下一個(gè)輪詢周期內(nèi),MODBUS/TCP主站輸入?yún)^(qū)內(nèi)數(shù)據(jù)將被寫 入子節(jié)點(diǎn),MODBUS/TCP主站輸出區(qū)內(nèi)數(shù)據(jù)將被更新;B. 若是緊急報(bào)文MODBUS/TCP主站直接對(duì)子節(jié)點(diǎn)進(jìn)行相應(yīng)操作,返回報(bào)文響 應(yīng);(5) MODBUS/TCP主站輪詢PROFIBUS-DP從站,若PROFIBUS-DP從站未收到報(bào) 文,不進(jìn)行任何操作;若PROFIBUS-DP從站收到報(bào)文,根據(jù)報(bào)文內(nèi)容對(duì)雙口 RAM 進(jìn)行相應(yīng)操作;雙口 RAM中的數(shù)據(jù)將根據(jù)PROFIBUS主站對(duì)從站的輪詢時(shí)間進(jìn)行 隨時(shí)更新;(6) 正EE802.15.4a無(wú)線主站輪詢結(jié)束,進(jìn)入MODBUS/TCP主站輪詢各子節(jié)點(diǎn)狀態(tài)。
10. 如權(quán)利要求3所述的基于lEEE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng) 和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議轉(zhuǎn)換方法,其特征在于所述步驟11 )的PROFIBUS-DP 從站輪詢與協(xié)議轉(zhuǎn)換的步驟為(1) 若PROFIBUS-DP從站未收到報(bào)文,不進(jìn)行任何操作,轉(zhuǎn)至步驟(4);(2) 若PROFIBUS-DP從站收到報(bào)文,根據(jù)報(bào)文內(nèi)容對(duì)雙口 RAM進(jìn)行相應(yīng)操作; G) 雙口 RAM中的數(shù)據(jù)將根據(jù)PROFIBUS主站對(duì)從站的輪詢時(shí)間進(jìn)行隨時(shí)更新;(4) 程序返回。
全文摘要
本發(fā)明涉及一種基于IEEE802.15.4a的工業(yè)無(wú)線網(wǎng)絡(luò)接入MODBUS/TCP工業(yè)以太網(wǎng)和PROFIBUS-DP現(xiàn)場(chǎng)總線的多協(xié)議網(wǎng)關(guān)及協(xié)議轉(zhuǎn)換方法。本多協(xié)議網(wǎng)關(guān)包括微處理器、MODBUS/TCP主站、IEEE802.15.4a無(wú)線主站、PROFIBUS-DP從站、外擴(kuò)SDRAM存儲(chǔ)器和FLASH存儲(chǔ)器、RJ45網(wǎng)口、485物理層接口、USB接口;電路的連接方式是以微處理器為中心,通過(guò)MDIO接口外擴(kuò)DM9161EP以太網(wǎng)物理層接口芯片,通過(guò)內(nèi)部總線連接PROFIBUS-DP協(xié)議芯片SPC3,通過(guò)SPI總線連接NA1TR8無(wú)線協(xié)議芯片,外擴(kuò)USB接口。本多協(xié)議網(wǎng)關(guān)的協(xié)議轉(zhuǎn)換方法是由微處理器控制實(shí)現(xiàn)三種網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換。本發(fā)明考慮了以當(dāng)前有線現(xiàn)場(chǎng)總線/工業(yè)以太網(wǎng)為主的現(xiàn)狀,又兼顧了與無(wú)線網(wǎng)絡(luò)前沿技術(shù)的無(wú)縫連接,實(shí)現(xiàn)一種符合工業(yè)實(shí)時(shí)要求和開放數(shù)據(jù)通信的有線/無(wú)線異構(gòu)控制網(wǎng)絡(luò)網(wǎng)關(guān)。
文檔編號(hào)H04L12/28GK101425948SQ200810201578
公開日2009年5月6日 申請(qǐng)日期2008年10月23日 優(yōu)先權(quán)日2008年10月23日
發(fā)明者付敬奇, 王佳承, 王海寬, 費(fèi)敏銳, 馬成喜, 黃丹青 申請(qǐng)人:上海大學(xué)