專利名稱:運動控制器數據通訊及其中斷調度的方法和裝置的制作方法
技術領域:
本發明屬于機械設備的數控技術領域,具體涉及一種運動控制器的數 據通訊及其中斷調度方法及裝置。
背景技術:
運動控制器中通常采用多個CPU實現不同功能的數據處理,這樣能夠 充分發揮各種不同CPU功能和操作系統的優勢,以解決運動控制中的不同
任務特點與需求。
但在設計一個復雜的控制系統時,CPU需要對大量事務進行處理,同 時需要對同一個或者一批數據進行不同的處理,CPU之間數據的快速實時
交換是決定控制系統是否滿足要求的關鍵和核心,尤其在實際應用環境中 存在大量不確定的突發事件,而且必須對這些事件進行了實時處理,通過 一般定時查詢的方法來處理無論在效率上,還是在數據通信的可靠性上都
是很低的,對于一些要求實時性和非實時性共存的大規模軟件設計,CPU
之間的數據交換和協調直接決定系統的性能,甚至決定系統的成敗。
在設計運動控制器采用多CPU系統中,雖然采用雙端口 RAM或先進先 出存儲器(FIFO)緩沖等手段,使通信的時序要求得到了很大程度上的緩 解,但仍存在數據競爭的問題,如雙端口RAM正在對某地址單元進行寫操 作時,另一端口要讀取同一單元則讀取的數據是不可靠的。另外,多個CPU 的運行速度往往不同,若讀寫的時序、節拍安排不當,則很可能造成讀取 的一部分數據是本周期寫入的,而另一部分則是上個周期寫入的,而這種錯誤現象往往是隨機發生的,給系統的調試和性能測試造成了很大麻煩。 造成運動控制系統安全隱患,影響控制系統的安全性、穩定性和可靠性。
發明內容
本發明的目的在于提供一種解決高速運動控制器中多CPU通訊實時性 和可靠性問題,可以避免運動控制器中多CPU可能出現的數據競爭及讀寫 混亂問題的運動控制器的數據通訊及其中斷調度方法及裝置。
為達到上述目的,本發明的裝置包括包括第一CPU、第二CPU和可
編程邏輯器件CPLD,該可編程邏輯器件CPLD包含第一地址比較器、第二 地址比較器、第一地址計數器、第二地址計數器、雙端口 RAM、雙端口 RAM 地址選擇器和雙端口 RAM輸出選擇器;
所說的第一 CPU的地址線與第一地址比較器相連,第一 CPU的數據線 與雙端口 RAM的數據輸入端相連,第一地址比較器的輸出端1S1和第一CPU 的IOW信號進行邏輯或后,作為第一地址計數器裝載端的輸入信號,第一 CPU通過寫1S1地址來改變第一地址計數器的現行值,第一地址計數器的 輸出端與雙端口 RAM地址選擇器的第一地址輸入端相連,第一地址比較器 的輸出端1S2與雙端口RAM地址選擇器的選通輸入端相連,同時,第一地 址比較器的輸出端1S2和第一 CPU的IOW相或后作為雙端口 RAM的數據鎖 存端和第一地址計數器的加計數時鐘端的輸入信號,該信號的上升沿將第 一 CPU數據輸出端的數據寫入雙端口 RAM的數據輸入端,并使第一地址計 數器的內部計數值加一;連續向第一地址比較器的1S2端口寫數據,第一 CPU可訪問雙端口 RAM的全部存儲空間;
所說的第二CPU的地址線與第二地址比較器相連,雙端口 RAM的數據 輸出端與雙端口 RAM輸出選擇器的數據輸入端相連,雙端口 RAM輸出選擇器的數據輸出端與第二 CPU的數據線相連,第二地址比較器的輸出端2S1 與第二 CPU的寫信號WR進行邏輯或后,作為第二地址計數器的裝載端的
輸入信號,第二CPU通過寫2S1地址改變第二地址計數器的現行值;第二 地址計數器的地址計數輸出端與雙端口 RAM地址選擇器的第二地址輸入端 相連,第二地址比較器的輸出端2S2和第二 CPU的RD信號進行邏輯或后 作為雙端口 RAM輸出選擇器的控制端和第二地址計數器時鐘端的輸入信 號,當該信號為低電平時,雙端口 RAM4中的數據傳送到數據總線上輸入 到第二CPU,同時,該信號的上升沿,使第二地址計數器的內部計數值加 一,第二CPU連續讀2S2端口,便可訪問雙端口RAM的全部存儲空間。
本發明的CPLD還包含第一中斷地址比較器、第二中斷地址比較器、 第一中斷D觸發器和第二中斷D觸發器,第一 CPU的地址總線與第一中斷 地址比較器相連,第二CPU的地址總線與第二中斷地址比較器相連,第一 中斷地址比較器的輸出與第一 CPU的寫控制信號相或后作為第一中斷D觸 發器的時鐘輸入端,第二中斷地址比較器的輸出與第二CPU的讀控制信號 相或后作為第一中斷D觸發器的消除端輸入,第一中斷D觸發器的數據輸 入端接高電平,第一中斷D觸發器的數據輸出端接第二 CPU的中斷請求信 號,第二中斷地址比較器的輸出與第二CPU的寫控制信號相或后作為第二 中斷D觸發器的時鐘輸入端,第一中斷地址比較器的輸出與第一 CPU的讀 控制信號相或后作為第二中斷D觸發器的消除端輸入,第二中斷D觸發器 的數據輸入端接高電平,第二中斷D觸發器的數據輸出端接第一 CPU的中 斷請求信號。
本發明運動控制器的數據通訊及其中斷調度方法,利用CPLD內部邏 輯單元設計中斷同步結構來實現多CPU中斷調度,采用CPLD內部嵌入式陣列塊EAB所包含的RAM構建雙端串口 RAM結構并依靠中斷節拍來實現多 CPU之間的數據通訊。
其中數據通訊方法采用CPLD內部嵌入式陣列塊EAB中RAM單元構建 雙端口 RAM,將雙端口 RAM分為兩部分, 一部分由第一CPU寫,由第二CPU 讀,另一部分則是第二CPU寫,由第一CPU讀,第一 CPU和第二 CPU之間' 通過雙端口 RAM4實現數據通信,具體過程如下
1) 第一CPU寫1S1地址,改變第一地址計數器的現行值,并有第一 地址比較器的輸出端1S2與雙端口 RAM地址選擇器的選通端相連,雙端口 RAM地址選擇器選擇為第一地址計數器有效;
2) 第一 CPU寫1S2地址,第一地址比較器的輸出信號1S2和第一 CPU 的IOW邏輯或后將第一CPU輸出的數據鎖存,將數據寫入雙端口RAM,并 使第一地址計數器的值加一;
3) 第二CPU寫2S1地址,改變第二地址計數器的現行值,由于第一 CPU已完成寫操作,雙端口 RAM地址選擇器選擇第二地址計數器有效,
4) 第二 CPU寫2S2地址,第二地址比較器的2S2和第二 CPU的RD進 行邏輯或后使雙端口 RAM中的數據傳送到數據總線上輸入到第二 CPU,實 現雙端口RAM的讀操作,同時,該信號的上升沿,使第二地址計數器的值 加一;
所說的CPLD的邏輯單元通過可編程方式實現的中斷信號調度機制, 其過程如下
1) 第一 CPU將要通訊的數據寫到雙端口 RAM中,然后寫第一中斷地 址比較器的地址,第一中斷D觸發器觸發,觸發第二CPU的中斷信號;
2) 第二 CPU響應中斷,首先通過讀第一中斷地址比較器的地址,清除第一中斷D觸發器,并通過上述數據通訊方法讀取數據完成一次數據通 訊,第二CPU若選擇寫第二中斷地址比較器的地址,第二中斷D觸發器觸 發,觸發第一CPU的中斷信號轉到下一步驟,否則結束,只進行一次通信; 3)第一 CPU響應中斷,首先通過讀第二中斷地址比較器的地址,清
除第二中斷D觸發器,并通過上述數據通訊方法讀取數據完成一次數據通 訊,第二CPU若選擇寫第二中斷地址比較器的地址,第二中斷D觸發器觸 發,觸發第一CPU的中斷信號,轉到步驟2),保持持續通信狀態,否則結束。
本發明采用CPLD的EAB中RAM單元構建雙端口 RAM作為CPU1和CPU2 數據通信存儲區域;利用CPLD的內部邏輯單元設計實現一種中斷調度機 制,實現系統中斷信號的自動觸發和清除;利用上述的數據通信存儲區域 和中斷調度方法實現多CPU對數據通信區域的讀/寫。使多CPU之間的通 訊數據傳送按照其使用節拍來傳遞,不受CPU掃描周期的影響,這樣不但 使數據通信的可靠性大大提高,提高了系統效率。
圖1是本發明的多CPU之間數據通訊原理圖; 圖2是本發明的多CPU之間中斷信號觸發原理圖; 圖3是本發明的多CPU之間中斷調度及操作時序框圖,其中圖3a是 互相觸發模式下操作時序圖,圖3b是定時觸發模式下操作時序圖。 以下結合附圖對本發明作進一步的詳細說明。
具體實施例方式
如圖1所示。CPLD作為CPU1(1)和CPU2(5)數據通信的中間橋梁,內 部由第一、二地址比較器(2)、 (6)、第一、二地址計數器(3)、 (7)、雙端口 RAM(4)、雙端口 RAM輸出選擇器(8)和雙端口謹地址選擇器(9)組成。 當CPU1(1)向雙端口 RAM(4)讀寫數據時,CPU1 (1)的地址信號與第一地址 比較器(2)比較,可產生兩個輸出信號1S1和1S2。當CPU1(1)的操作地址 為1S1時,輸出信號1S1為低電平,選通第一地址計數器(3)的裝載(L0AD) 端,CPU1(1)通過寫1S1地址來改變第一地址計數器(3)的現行值,進而實 現對雙端口 RAM(4)的隨機讀寫。當CPU1的操作地址為1S2時,輸出信號 1S2為低電平,雙端口 RAM地址選擇器(9)選擇設為第一地址計數器(3)有 效,同時,1S2和IOW相或后作為雙端口 MM(4)的數據鎖存信號WE和第 一地址計數器(3)的時鐘輸入CLK的輸入,利用該信號的上升沿將CPU1輸 出的數據鎖存,將數據寫入雙端口 RAM(4),并使第一地址計數器(3)的值 加一,以便下一次寫操作。這樣,只要連續向1S2端口寫數據,便可訪問 雙端口 RAM (4)的全部存儲單元。
同樣,當CPU2(5)的操作地址為2S1時,第二地址比較器(6)的輸出信 號2S1為低電平,選通第二地址計數器(7)的裝載(LOAD)端,CPU2(5)通 過寫2S1地址來改變第二地址計數器(7)的現行值,進而實現雙端口 RAM(4) 的隨機讀寫。當CPU2(5)的操作地址為2S2時,輸出信號2S2為低電平, 將雙端口 RAM地址選擇器(9)選擇為第二地址計數器(7)有效,2S2和RD 進行邏輯或后,作為雙端口 RAM(4)的輸出允許和第二地址計數器(7)的時 鐘輸入,當該信號為低電平時,將雙端口RAM(4)中的數據傳送到數據總線 上,輸入到CPU2(5),實現雙端口RAM(4)的讀操作。同時,該信號的上升 沿,使第二地址計數器(7)的值加一,以便下次讀操作。這樣,只要連續 讀2S2端口 ,便可訪問實現雙端口全部存儲空間。
參見圖2,為避免雙端口 RAM(4)的讀寫沖突,利用CPU1 (l)和CPU2(5)的中斷功能,來安排數據的讀寫節拍,進而實現數據實時可靠傳遞并實現 中斷信號的觸發和自動清除。CPLD內部包含第一中斷地址比較器(IO)、第
二中斷地址比較器(ll)、第一中斷D觸發器(12)、第二中斷D觸發器(13)。 CPU1 (1)的地址總線與第一中斷地址比較器(10)相連,CPU2(2)的地址總線 與第二中斷地址比較器(11)相連。第一中斷地址比較器(10)的輸出與CPU1 的寫控制信號相或后作為第一中斷D觸發器(12)的時鐘輸入端,第二中斷 地址比較器(ll)的輸出與CPU2(2)的讀控制信號相或后作為第一中斷D觸 發器(12)的消除端輸入。第一中斷D觸發器(12)的數據輸入端接高電平, 第一中斷D觸發器(12)的數據輸出端接CPU2的中斷請求信號。第二中斷 地址比較器(ll)的輸出與CPU2的寫控制信號相或后作為第二中斷D觸發 器(13)的時鐘輸入端,第一中斷地址比較器(IO)的輸出與CPU1 (1)的讀控 制信號相或后作為第二中斷D觸發器(13)的消除端輸入。第二中斷D觸發 器(13)的數據輸入端接高電平,第二中斷D觸發器(13)的數據輸出端接 CPU1的中斷請求信號。
當CPU1(1)對第一中斷地址比較器(10)進行寫操作時,通過第一中斷 地址比較器(IO),自動觸發CPU2(5)的中斷信號,通知CPU2(5)讀取數據; 當CPU2(5)讀取數據完成后,通過第二中斷地址比較器(ll)進行讀操作時, 來清除中斷信號,以便下次通信傳輸。
同樣,CPU2(5)對第一中斷地址比較器(10)進行寫操作時的讀、寫操 作,也可自動觸發、清除CPU1(1)的中斷請求信號,進而實現通信數據的 安全、及時的讀寫操作。
雖然采用雙端口 RAM(4)和中斷同步機制,大大降低了通信的時序要 求,但并不是說對這些單元可任意讀寫。在遵循一定的讀寫順序的基礎上,參見圖3a,當系統起動后,第一CPU及第二CPU首先進行初始化。第 二CPU啟動后,就直接進行中斷等待狀態,等待數據通訊。第一CPU初始 化后,先將要通訊的數據寫入雙端口 RAM,并啟動第二CPU的中斷,然后 自身進入中斷等待狀態,等待第二 CPU處理完通訊數據后對觸發其中斷。 當第二CPU的中斷被觸發后,第二CPU立即響應中斷,并讀取本次通訊數 據,接著將新的通信數據寫入雙端口RAM中,并觸發第一CPU的中斷,然 后中斷程序結束并返回。當第一CPU中斷信號被觸發后,第一CPU響應中 斷,讀取通訊數據,并向雙端口RAM寫入新的通訊數據,然后再一次觸發 第二CPU的中斷,中斷程序結束并返回。這樣就了完成一次CPU之間的數 據交互。通過相互觸發對方中斷信號的方式,第一 CPU和第二 CPU之間便 可進行有序、不間斷和可靠的數據通信。
參見圖3b,在很多場合,通信數據需要定時傳送。可利用CPU內部的 定時功能,來實現第一CPU和第二CPU之間的定時數據通信。當系統起動 后,第一CPU及第二CPU首先進行初始化。第二CPU啟動后,直接進行中 斷等待狀態,等待通訊數據。第一CPU啟動后,先將要通訊的數據寫入雙 端口RAM,然后啟動第二CPU的中斷,自身進入中斷等待狀態,等待第二 CPU處理完通訊數據后再觸發其中斷。當第二CPU的中斷被觸發后,第二 CPU立即響應中斷。第二CPU讀取完數據后,并不馬上向雙端口 RAM寫入 通訊數據而是退出本次中斷,等待第二CPU內部的定時器產生定時中斷, 由定時中斷程序寫入通信數據。當第二CPU的定時中斷產生后,第二CPU 在定時中斷程序中向雙端口RAM(4)寫數據,進而觸發第一CPU中斷,然后 中斷程序結束退出。當第一CPU中斷被觸發后,第一CPU立即響應中斷,先讀取雙端口 RAM的數據,再向雙端口RAM寫入新的通訊數據,再一次觸 發第二CPU中斷,第一CPU中斷程序結束返回。本次通信結束,完成一次 數據通訊過程。這樣通過定時的方式也可以完成通訊數據的交換過程。
權利要求
1、一種運動控制器的數據通訊及其中斷調度裝置,其特征在于包括第一CPU(1)、第二CPU(5)和可編程邏輯器件CPLD,該可編程邏輯器件CPLD包含第一地址比較器(2)、第二地址比較器(6)、第一地址計數器(3)、第二地址計數器(7)、雙端口RAM(4)、雙端口RAM地址選擇器(8)和雙端口RAM輸出選擇器(9);所說的第一CPU(1)的地址線與第一地址比較器(2)相連,第一CPU(1)的數據線與雙端口RAM(4)的數據輸入端相連,第一地址比較器(2)的輸出端1S1和第一CPU(1)的IOW信號進行邏輯或后,作為第一地址計數器(3)裝載端的輸入信號,第一CPU(1)通過寫1S1地址來改變第一地址計數器(3)的現行值,第一地址計數器(3)的輸出端與雙端口RAM地址選擇器(9)的第一地址輸入端相連,第一地址比較器(2)的輸出端1S2與雙端口RAM地址選擇器(9)的選通輸入端相連,同時,第一地址比較器(2)的輸出端1S2和第一CPU(1)的IOW相或后作為雙端口RAM(4)的數據鎖存端和第一地址計數器(3)的加計數時鐘端的輸入信號,該信號的上升沿將第一CPU(1)數據輸出端的數據寫入雙端口RAM(4)的數據輸入端,并使第一地址計數器(3)的內部計數值加一;連續向第一地址比較器的1S2端口寫數據,第一CPU(1)可訪問雙端口RAM(4)的全部存儲空間;所說的第二CPU(5)的地址線與第二地址比較器(6)相連,雙端口RAM(4)的數據輸出端與雙端口RAM輸出選擇器(8)的數據輸入端相連,雙端口RAM輸出選擇器(8)的數據輸出端與第二CPU(5)的數據線相連,第二地址比較器(6)的輸出端2S1與第二CPU(5)的寫信號WR進行邏輯或后,作為第二地址計數器(7)的裝載端的輸入信號,第二CPU(5)通過寫2S1地址改變第二地址計數器(7)的現行值;第二地址計數器(7)的地址計數輸出端與雙端口RAM地址選擇器(9)的第二地址輸入端相連,第二地址比較器(6)的輸出端2S2和第二CPU(5)的RD信號進行邏輯或后作為雙端口RAM輸出選擇器(8)的控制端和第二地址計數器(7)時鐘端的輸入信號,當該信號為低電平時,雙端口RAM(4)中的數據傳送到數據總線上輸入到第二CPU(5),同時,該信號的上升沿,使第二地址計數器(7)的內部計數值加一,第二CPU(5)連續讀2S2端口,便可訪問雙端口RAM的全部存儲空間。
2、如權利要求1所述的運動控制器的數據通訊及其中斷調度裝置, 其特征在于所說的CPLD還包含第一中斷地址比較器(10)、第二中斷地 址比較器(11)、第一中斷D觸發器(12)和第二中斷D觸發器(13),第 一CPU (1)的地址總線與第一中斷地址比較器(10)相連,第二CPU (5) 的地址總線與第二中斷地址比較器(11)相連,第一中斷地址比較器(10) 的輸出與第一CPU (1)的寫控制信號相或后作為第一中斷D觸發器(12) 的時鐘輸入端,第二中斷地址比較器(11)的輸出與第二CPU (5)的讀控 制信號相或后作為第一中斷D觸發器(12)的消除端輸入,第一中斷D觸 發器(12)的數據輸入端接高電平,第一中斷D觸發器(12)的數據輸出 端接第二CPU (5)的中斷請求信號,第二中斷地址比較器(11)的輸出與 第二CPU (5)的寫控制信號相或后作為第二中斷D觸發器(13)的時鐘輸 入端,第一中斷地址比較器(10)的輸出與第一CPU (1)的讀控制信號相 或后作為第二中斷D觸發器(13)的消除端輸入,第二中斷D觸發器(13)的數據輸入端接高電平,第二中斷D觸發器U3)的數據輸出端接第一CPU (1)的中斷請求信號。
3、 一種基于權利要求1所述的裝置的運動控制器的數據通訊及其中 斷調度方法,其特征在于利用CPLD內部邏輯單元設計中斷同步結構來 實現多CPU中斷調度,采用CPLD內部嵌入式陣列塊EAB所包含的RAM構 建雙端串口 RAM結構并依靠中斷節拍來實現多CPU之間的數據通訊。
4、 根據權利要求3所述的運動控制器的數據通訊及其中斷調度方法, 其特征在于其中數據通訊方法采用CPLD內部嵌入式陣列塊EAB中RAM 單元構建雙端口RAM,將雙端口 RAM分為兩部分, 一部分由第一CPU (1) 寫,由第二CPU (5)讀,另一部分則是第二CPU (5)寫,由第一CPU (1) 讀,第一CPU1和第二CPU5之間通過雙端口RAM4實現數據通信,具體過 程如下1) 第一CPU (1)寫1S1地址,改變第一地址計數器(3)的現行值, 并有第一地址比較器(2)的輸出端1S2與雙端口RAM地址選擇器(9)的 選通端相連,雙端口 RAM地址選擇器(9)選擇為第一地址計數器(3)有 效;2) 第一CPU (1)寫1S2地址,第一地址比較器(2)的輸出信號1S2 和第一CPU (1)的IOW邏輯或后將第一 CPU (1)輸出的數據鎖存,將數 據寫入雙端口 RAM (4),并使第一地址計數器(3)的值加一;3) 第二CPU (5)寫2S1地址,改變第二地址計數器(7)的現行值, 由于第一CPU (1)已完成寫操作,雙端口RAM地址選擇器(9)選擇第二 地址計數器(7)有效;4) 第二 CPU (5)寫2S2地址,第二地址比較器(6)的2S2和第二CPU (5)的RD進行邏輯或后使雙端口 RAM (4)中的數據傳送到數據總線 上輸入到第二CPU (5),實現雙端口 RAM的讀操作,同時,該信號的上升 沿,使第二地址計數器(7)的值加一;所說的CPLD的邏輯單元通過可編程方式實現的中斷信號調度機制, 其過程如下1) 第一 CPU (1)將要通訊的數據寫到雙端口 RAM (4)中,然后寫第 一中斷地址比較器(10)的地址,第一中斷D觸發器(12)觸發,觸發第 二CPU (5)的中斷信號;2) 第二CPU (5)響應中斷,首先通過讀第一中斷地址比較器(10)的 地址,清除第一中斷D觸發器(12),并通過上述數據通訊方法讀取數據 完成一次數據通訊,第二CPU (5)若選擇寫第二中斷地址比較器(11)的 地址,第二中斷D觸發器(13)觸發,觸發第一CPU (1)的中斷信號轉到 下一歩驟,否則結束,只進行一次通信;3) 第一CPU (1)響應中斷,首先通過讀第二中斷地址比較器(11)的 地址,清除第二中斷D觸發器(13),并通過上述數據通訊方法讀取數據 完成一次數據通訊,第二CPU (5)若選擇寫第二中斷地址比較器(11)的 地址,第二中斷D觸發器(13)觸發,觸發第一CPU (1)的中斷信號,轉 到步驟2),保持持續通信狀態,否則結束。
全文摘要
本發明公開了一種運動控制器數據通訊及其中斷調度的方法和裝置。裝置通過采用可編程邏輯器件(CPLD)內部嵌入式陣列塊(EAB)所包含的隨機存貯器單元(RAM)構建一種雙端口RAM結構實現多CPU之間數據通信。利用CPLD內部邏輯單元設計一種中斷同步機制來實現多CPU之間的通訊協調。通過系統中斷信號的觸發和清除,運動控制器的多CPU可以實現對RAM特定單元地址的讀/寫,使多CPU系統的通訊數據傳送按照其使用節拍來傳遞,不受CPU掃描周期的影響。這樣不但使數據通信的可靠性大大提高,也節省了CPU查詢的時間。避免了中斷的重復響應或丟失現象,增加了高速運動控制系統的安全性、可靠性和穩定性。
文檔編號G05B19/414GK101446820SQ20081023644
公開日2009年6月3日 申請日期2008年12月24日 優先權日2008年12月24日
發明者棟 劉, 姜歌東, 虎 楊, 梅雪松, 許睦旬, 濤 陶, 馬振群 申請人:西安交通大學