專利名稱:現(xiàn)場總線外圍設備主站的軟件實現(xiàn)方法
技術領域:
本發(fā)明屬于計算機現(xiàn)場總線外圍設備領域,尤其涉及一種現(xiàn)場總線外圍設備主站的軟件實現(xiàn)方法。
在目前的現(xiàn)場總線外圍設備主站,即PROFIBUS-DP主站,均采用專用協(xié)議芯片,大多為SIEMENS制造的協(xié)議芯片ASPC2,在此協(xié)議芯片中,集成了全部EN50170層1和層2協(xié)議。但是,采用此種方法實現(xiàn)PROFIBUS-DP主站,運行成本很高。
本發(fā)明的目的是提供一種能夠代替專用協(xié)議芯片,降低運行成本的現(xiàn)場總線外圍設備主站的軟件實現(xiàn)方法。
本發(fā)明的技術方案是一種現(xiàn)場總線分散外圍設備主站的軟件實現(xiàn)方法,其特征是(1)在DSP數(shù)字信號處理器中,集成現(xiàn)場總線分散外圍設備即PROFIBUS-DP主站的所有協(xié)議,與PROFIBUS-DP從站連接,同時外接總線接口及驅(qū)動裝置和雙口RAM,其中總線接口包括一個有大輸入輸出FIFO的UART,DSP數(shù)字信號處理器、總線接口及驅(qū)動裝置和雙口RAM共同構成通訊卡,DSP數(shù)字信號處理裝置通過UART發(fā)送和接收總線上的數(shù)據(jù);DSP數(shù)字信號處理器通過雙口RAM與用戶交互,雙口RAM有兩個重要的數(shù)據(jù)區(qū)域,一個是郵箱,另一個數(shù)據(jù)交換區(qū),在通訊時,用戶和通訊卡通過郵箱傳遞命令和響應,通過數(shù)據(jù)交換區(qū)傳遞輸入輸出數(shù)據(jù),同時郵箱還是數(shù)據(jù)集下裝的通道;為了實現(xiàn)PROFIBUS-DP主站自動機的主要功能,DSP數(shù)字信號處理器,還需要運行一些輔助程序,這些輔助程序包括定時器和啟動邏輯程序、郵箱命令執(zhí)行程序;(2)通過運行DSP數(shù)字信號處理器內(nèi)的程序,就可以達到PROFIBUS-DP軟件實現(xiàn)的功能,其具體工作步驟是1)系統(tǒng)上電,用戶根據(jù)通訊系統(tǒng)的組態(tài),向郵箱輸入供通訊卡運行的數(shù)據(jù)集,同時,DSP開始循環(huán)執(zhí)行主自動機及定時、啟動邏輯程序和郵箱命令執(zhí)行器程序;①主自動機首先首先進行初始化過程,即主自動機首先設置為離線狀態(tài),并在此狀態(tài)下,讀取用戶輸入到郵箱中的數(shù)據(jù)集,為通訊作準備;
②在主自動機初始化時,同時循環(huán)執(zhí)行定時器和啟動邏輯程序,軟件利用定時器和啟動邏輯程序,第一個用途是產(chǎn)生若干軟定時器,為主自動機的運行提供軟件定時器,第二個用途是維護獨立于任何軟件部件運行的看門狗,以檢測各個軟件的運行情況,看門狗檢測到程序運行出現(xiàn)差錯時,將重新啟動程序的運行;③主自動機讀取完用戶通過郵箱輸入的數(shù)據(jù)集后,主自動機的初始化過程結束,讀取完數(shù)據(jù)集,就可以進行隨機通訊和與從站的循環(huán)數(shù)據(jù)交換工作;2)主自動機根據(jù)讀取用戶通過郵箱輸入的數(shù)據(jù)集,可以進行兩種工作狀態(tài),即主動站和偵聽站,如果是主動站則進行隨機通訊,如果是偵聽站則接收總線上的數(shù)據(jù);①隨機通訊狀態(tài)主要進行隨機通訊任務,執(zhí)行用戶通過郵箱發(fā)出的通訊命令,包括的狀態(tài)有數(shù)據(jù)重發(fā)、剩余時間檢查、參數(shù)設置、設置從站地址、請求組態(tài)數(shù)據(jù)、讀取輸入數(shù)據(jù)、讀取輸出數(shù)據(jù)、發(fā)送全局控制命令;②循環(huán)數(shù)據(jù)交換狀態(tài)在此狀態(tài)下,執(zhí)行主自動機與從站循環(huán)數(shù)據(jù)交換,在主自動機與從站進行數(shù)據(jù)交換之前,要經(jīng)歷診斷、傳參數(shù)、查組態(tài)、再診斷、數(shù)據(jù)交換、幾個步驟,在進入數(shù)據(jù)交換之后,若從站有診斷的信息,會利用數(shù)據(jù)交換的機會通知通訊卡,通訊卡會臨時進入診斷狀態(tài),然后再回復數(shù)據(jù)交換,若在整個過程中有錯誤,從站會重新開始初始化過程。
本發(fā)明的工作原理是PROFIBUS-DP主站的軟件實現(xiàn),不采用協(xié)議芯片,而是采用軟件方式,在高速數(shù)字信號處理器DSP中,集成PROFIBUS-DP一類主站的全部協(xié)議,并實現(xiàn)了二類主站的部分功能,完全可以替代專用協(xié)議芯片。軟件的核心部位是一個有限自動機,與通訊卡的任務相對應,自動機的狀分為不同的狀態(tài)群,自動機通過在狀態(tài)圖上行走來完成各種任務,圖的狀態(tài)是根據(jù)通訊卡的任務來設置的,與任務相對應,可以歸為不同的狀態(tài)群。軟件的任務有數(shù)據(jù)下裝、隨機通訊和數(shù)據(jù)交換三項內(nèi)容(1)通訊需要一個大的數(shù)據(jù)集才能進行,軟件的第一個任務就是數(shù)據(jù)下裝,以得到通訊所用的數(shù)據(jù)集。用戶根據(jù)通訊系統(tǒng)的組態(tài),形成一個供通訊卡運行的大的數(shù)據(jù)集,然后按照一定的步驟將這個數(shù)據(jù)集分塊送到雙口RAM的郵箱,通訊卡將接收到的數(shù)據(jù)塊拼接起來,復原這個數(shù)據(jù)集。在復原的同時,將數(shù)據(jù)集中有用的信息記錄下來,為通訊作好準備,得到數(shù)據(jù)集和運行信息之后,通訊卡就可以通訊了,DP是令牌總線協(xié)議,本軟件采用單主系統(tǒng),隨機通訊和數(shù)據(jù)交換是通訊的主題內(nèi)容。
(2)在通訊卡通訊時,用戶可以將一個通訊請求放入命令郵箱,通訊卡執(zhí)行這個請求,然后將響應結果放入響應郵箱,這就是隨機通訊。
(3)通訊卡的最重要的內(nèi)容是與從站的數(shù)據(jù)交換,數(shù)據(jù)集中擁有與從站數(shù)據(jù)交換的所有信息,包括參數(shù)、組態(tài)、輸入輸出的首址和長度、診斷數(shù)據(jù)的地址等。數(shù)據(jù)交換是通訊卡根據(jù)這些信息自動進行的,其最終的目的是建立與所述從站間的循環(huán)數(shù)據(jù)交換,在進行數(shù)據(jù)交換支前,要經(jīng)歷診斷、傳參數(shù)、檢查組態(tài)、再診斷、數(shù)據(jù)交換幾個步驟。在進入數(shù)據(jù)交換之后若從站有診斷信息,會利用數(shù)據(jù)交換的機會通知通訊卡,通訊卡會臨時進入數(shù)據(jù)交換狀態(tài),然后在恢復數(shù)據(jù)交換。若在整個過程中有錯誤,從站自動機會重新開始初始化過程。
本發(fā)明的效果是采用軟件實現(xiàn)PROFIBUS-DP主站協(xié)議,可以代替專用協(xié)議芯片,因此,能夠降低開發(fā)成本,實現(xiàn)自主開發(fā)。
下面結合附圖和實施例對本發(fā)明作進一步的說明。
圖1是本發(fā)明的硬件框圖;圖2是本發(fā)明的主程序流程圖;圖3是本發(fā)明的主自動機程序流程圖;圖4是本發(fā)明的定時器和啟動邏輯程序流程圖;圖5是本發(fā)明的郵箱命令執(zhí)行器流程圖。
圖1中,在DSP數(shù)字信號處理器1中,集成PROFIBUS-DP主站的所有協(xié)議,與PROFIBUS-DP從站2連接,同時外接總線接口及驅(qū)動裝置3和雙口RAM4,其中總線接口及驅(qū)動裝置3包括一個有大輸入輸出FIFO的UART,DSP數(shù)字信號處理器1、總線接口及驅(qū)動裝置3和雙口RAM4共同構成通訊卡5,DSP數(shù)字信號處理裝置1通過UART發(fā)送和接收總線上的數(shù)據(jù),發(fā)送時軟件將發(fā)送緩沖區(qū)中準備好的一楨數(shù)據(jù)連續(xù)地寫往UART的輸出保存寄存器,而UART將每個字節(jié)加上一個起始位,一個偶校驗位和一個停止位,然后轉(zhuǎn)換成串行輸出到線路上,接收時,UART將收到的每個字節(jié)都壓入FIFO,軟件則及時地將收到的字節(jié)取走,經(jīng)過分析后放入接收緩沖區(qū)中;DSP數(shù)字信號處理器1通過雙口RAM4與用戶交互,雙口RAM4有兩個重要的數(shù)據(jù)區(qū)域,一個是郵箱,另一個數(shù)據(jù)交換區(qū),在通訊時,用戶和通訊卡通過郵箱傳遞命令和響應,通過數(shù)據(jù)交換區(qū)傳遞輸入輸出數(shù)據(jù),同時郵箱還是數(shù)據(jù)集下裝的通道;圖2中,主自動機首先判斷初始化是否完畢;如果初始化完畢,則執(zhí)行主自動機程序,執(zhí)行完主自動機程序后,執(zhí)行定時和啟動邏輯程序;如果初始化沒有完畢,則執(zhí)行定時器及啟動邏輯程序;執(zhí)行完定時器及啟動邏輯程序后,再重新運行主自動機程序;
圖3中,主自動機程序流程圖,主自動機開始處于離線狀態(tài),在此狀態(tài)下,進行數(shù)據(jù)集的離線下裝,讀取用戶通過郵箱輸入的數(shù)據(jù)集,數(shù)據(jù)集中擁有與從站數(shù)據(jù)交換的所有信息,包括參數(shù)數(shù)據(jù)、組態(tài)數(shù)據(jù)、輸入輸出數(shù)據(jù)的首址和長度、診斷數(shù)據(jù)的地址帶等,為通訊做好準備,主自動機根據(jù)讀取用戶通過郵箱輸入的數(shù)據(jù)集,可以進行兩種工作狀態(tài),即主動站和偵聽站,如果是主動站則進行隨機通訊,如果是偵聽站則接收總線上的數(shù)據(jù);隨機通訊和數(shù)據(jù)交換是通訊的主題內(nèi)容隨機通訊狀態(tài)(FDL-STATE-USE-TOKEN HIGH)主要進行隨機通訊任務,執(zhí)行用戶通過郵箱發(fā)出的通訊命令,包括的狀態(tài)有數(shù)據(jù)重發(fā)(FDL-STATE-REPEAT-HIGH)、剩余時間檢查(FDL-STATE-CHECK-ACCESS-TIME-HIGH)、參數(shù)設置(FDL-STATE-AWAIT-HIGH-SET-PRM)、設置從站地址(FDL-STATE-AWAIT-HIGH-SET-SLAVE-ADD)、請求組態(tài)數(shù)據(jù)(FDL-STATE-AWAIT-HIGH-GET-CFG)、讀取輸入數(shù)據(jù)(FDL-STATE-AWAIT-HIGH-RD-INP)、讀取輸出數(shù)據(jù)(FDL-AWAIT-HIGH-RD-OUTP)、發(fā)送全局控制命令(FDL-STATE-AWAIT-HIGH-GLOBAL-CONTRAL);循環(huán)數(shù)據(jù)交換狀態(tài)(FDL-STATE-USE-TOKEN-LOW)在此狀態(tài)下,執(zhí)行主自動機與從站循環(huán)數(shù)據(jù)交換,在主自動機與從站進行數(shù)據(jù)交換之前,要經(jīng)歷診斷(FDL-STATE-AWAIT-LOW-DIAG)、傳參數(shù)(FDL-STATE-AWAIT-LOW-PRM)、查組態(tài)(FDL-STATE-AWAIT-LOW-CFG)、再診斷(FDL-STATE-AWAIT-LOW-DIAG2)、數(shù)據(jù)交換(FDL-STATE-AWAIT-LOW-DATA-IN、FDL-STATE-AWAIT-LOW-NO-DATA-IN)幾個步驟,再進入數(shù)據(jù)交換之后,若從站有診斷的信息,會利用數(shù)據(jù)交換的機會通知通訊卡通訊卡會臨時進入診斷狀態(tài),然后再回復數(shù)據(jù)交換,若在整個過程中有錯誤,從站會重新開始初始化過程。
圖4中,定時器和啟動邏輯程序,首先維護各個軟定時器;然后判斷看門狗是否有動作,程序執(zhí)行過程中,如果出現(xiàn)死機等故障時,看門狗就會發(fā)生動作,進行啟動程序,如果看門狗有動作,則此次程序結束;如果看門狗沒有動作,則繼續(xù)判斷是否要啟動系統(tǒng)啟動(BOOT-START)程序,如果需要啟動,則啟動BOOT-START,啟動BOOT-START后結束,如果不需要啟動BOOT-START,則繼續(xù)判斷是否需要運行冷啟動(COLD-START),如果需要啟動冷啟動,則啟動冷啟動,程序結束,如果不需要啟動冷啟動,則進一步判斷是否需要啟動熱啟動(WARM-START),如果需要,則啟動熱啟動,如果不需要,則程序結束。
圖5中,郵箱命令執(zhí)行器程序,首先判斷主自動機是否處于OFFLINE狀態(tài),如果主自動機是處于OFFLINE狀態(tài),則檢查從站和總線參數(shù)是否存在,如果參數(shù)存在,則程序結束;如果參數(shù)不存在,或者參數(shù)不全,則執(zhí)行下裝從站參數(shù)、裝載從站參數(shù)、下裝總線參數(shù)、裝載總線參數(shù);如果主自動機不是處于OFFLINE狀態(tài),則進一步判斷是否有隨機通訊任務,如果有隨機通訊任務,則處理隨機通訊任務,處理完隨機通訊任務后結束,如果沒有隨機通訊任務,則返回循環(huán)執(zhí)行上述步驟。
權利要求
1.一種現(xiàn)場總線分散外圍設備主站的軟件實現(xiàn)方法,其特征是(1)在DSP數(shù)字信號處理器中,集成現(xiàn)場總線分散外圍設備即PROFIBUS-DP主站的所有協(xié)議,與PROFIBUS-DP從站連接,同時外接總線接口及驅(qū)動裝置和雙口RAM,其中總線接口包括一個有大輸入輸出FIFO的UART,DSP數(shù)字信號處理器、總線接口及驅(qū)動裝置和雙口RAM共同構成通訊卡,DSP數(shù)字信號處理器通過UART發(fā)送和接收總線上的數(shù)據(jù);DBP數(shù)字信號處理器通過雙口RAM與用戶交互,雙口RAM有兩個重要的數(shù)據(jù)區(qū)域,一個是郵箱,另一個數(shù)據(jù)交換區(qū),在通訊時,用戶和通訊卡通過郵箱傳遞命令和響應,通過數(shù)據(jù)交換區(qū)傳遞輸入輸出數(shù)據(jù),同時郵箱還是數(shù)據(jù)集下裝的通道;為了實現(xiàn)PROFIBUS-DP主站自動機的主要功能,DSP數(shù)字信號處理器,還需要運行一些輔助程序,這些輔助程序包括定時器和啟動邏輯程序、郵箱命令執(zhí)行程序;(2)通過運行DBP數(shù)字信號處理器內(nèi)的程序,就可以達到PROFIBUS-DP主站軟件實現(xiàn)的功能,其具體工作步驟是1)系統(tǒng)上電,用戶根據(jù)通訊系統(tǒng)的組態(tài),向郵箱輸入供通訊卡運行的數(shù)據(jù)集,同時,DBP開始循環(huán)執(zhí)行主自動機及定時、啟動邏輯程序和郵箱命令執(zhí)行器程序;①主自動機首先首先進行初始化過程,即主自動機首先設置為離線狀態(tài),并在此狀態(tài)下,讀取用戶輸入到郵箱中的數(shù)據(jù)集,為通訊作準備;⑦在主自動機初始化時,同時循環(huán)執(zhí)行定時器和啟動邏輯程序,軟件利用定時器和啟動邏輯程序,第一個用途是產(chǎn)生若干軟定時器,為主自動機的運行提供軟件定時器,第二個用途是維護獨立于任何軟件部件運行的看門狗,以檢測各個軟件的運行情況,看門狗檢測到程序運行出現(xiàn)差錯時,將重新啟動程序的運行;③主自動機讀取完用戶通過郵箱輸入的數(shù)據(jù)集后,主自動機的初始化過程結束,讀取完數(shù)據(jù)集,就可以進行隨機通訊和與從站的循環(huán)數(shù)據(jù)交換工作;2)主自動機根據(jù)讀取用戶通過郵箱輸入的數(shù)據(jù)集,可以進行兩種工作狀態(tài),即主動站和偵聽站,如果是主動站則進行隨機通訊,如果是偵聽站則接收總線上的數(shù)據(jù);①隨機通訊狀態(tài)主要進行隨機通訊任務,執(zhí)行用戶通過郵箱發(fā)出的通訊命令,包括的狀態(tài)有數(shù)據(jù)重發(fā)、剩余時間檢查、參數(shù)設置、設置從站地址、請求組態(tài)數(shù)據(jù)、讀取輸入數(shù)據(jù)、讀取輸出數(shù)據(jù)、發(fā)送全局控制命令;②循環(huán)數(shù)據(jù)交換狀態(tài)在此狀態(tài)下,執(zhí)行主自動機與從站循環(huán)數(shù)據(jù)交換,在主自動機與從站進行數(shù)據(jù)交換之前,要經(jīng)歷診斷、傳參數(shù)、查組態(tài)、再診斷、數(shù)據(jù)交換、幾個步驟,在進入數(shù)據(jù)交換之后,若從站有診斷的信息,會利用數(shù)據(jù)交換的機會通知通訊卡,通訊卡會臨時進入診斷狀態(tài),然后再回復數(shù)據(jù)交換,若在整個過程中有錯誤,從站會重新開始初始化過程。
全文摘要
本發(fā)明公開了一種現(xiàn)場總線分散外圍設備主站的軟件實現(xiàn)方法,其特征是:在DSP數(shù)字信號處理器中,集成現(xiàn)場總線分散外圍設備即PROFIBUS-DP主站的所有協(xié)議,與PROFIBUS-DP從站連接,同時外接總線接口及驅(qū)動裝置和雙口RAM,通過運行DSP數(shù)字信號處理器內(nèi)的程序,就可以達到PROFIBUS-DP主站軟件實現(xiàn)的功能,采用軟件實現(xiàn)PROFIBUS-DP主站協(xié)議,可以代替專用協(xié)議芯片,因此,能夠降低開發(fā)成本,實現(xiàn)自主開發(fā)。
文檔編號G06F9/48GK1298150SQ0013627
公開日2001年6月6日 申請日期2000年12月26日 優(yōu)先權日2000年12月26日
發(fā)明者郝莉 申請人:北京和利時系統(tǒng)工程股份有限公司