周晨鐘+李劍偉+皮佑國
摘 要: 在以德州儀器(TI)公司的DSP為主控芯片,F(xiàn)PGA為輔助控制的運動控制器硬件平臺上,采用TI公司的BIOS實時內核,提出一種運動控制器軟件架構方案。該方案可以針對不同用戶需求進行功能組件二次開發(fā)和移植,軟件源代碼采用模塊化設計,具有標準化函數(shù)接口,可維護性良好。經(jīng)過實驗測試,能滿足開放性、實時性、可移植性的要求。
關鍵詞: 數(shù)控系統(tǒng); 軟件架構; 數(shù)字信號處理器; BIOS
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2014)20?0065?05
Software system architecture of motion controller based on DSP and BIOS kernel
ZHOU Chen?zhong, LI Jian?wei, PI You?guo
(DOE Key Lab of Autonomous System and Network Control, South China University of Technology, Guangzhou 510640, China)
Abstract: Texas Instruments (TI) companys BIOS real?time kernel was used on the controller hardware platform, which takes TIs DSP as the main control chip and FPGA as the auxiliary control device. A software architecture solution for a motion controller is proposed, in which the secondary development and transplantation of functional components can be achieved according to the needs of different users. The modular design is adopted for software source code, which has standardized function interface and good maintainability. The experimental test indicates it can meet the requirements of openness, real time and portability.
Keywords: CNC system; software architecture; DSP; BIOS
0 引 言
作為數(shù)控系統(tǒng)核心控制部件的運動控制器,市場上有基于單片機、基于ARM為主控處理+FPGA/CPLD作為輔控處理、基于DSP為主控處理+FPGA/CPLD作為輔控處理等多種硬件平臺的解決方案。在不同的硬件平臺上,軟件系統(tǒng)調度方案可以采用μC/OS?Ⅱ,BIOS,RT?Linux,VxWorks等多種實時操作系統(tǒng)內核,因而衍生出各種軟件系統(tǒng)的架構方案[1]。采用TI公司TMS320C6713系列DSP芯片為主控芯片+FPGA作為輔控芯片的硬件平臺的解決方案,其數(shù)據(jù)吞吐量和高速浮點運算上具有一般單片機不可比擬的優(yōu)勢。而采用TI公司的DSP芯片和CCS的開發(fā)平臺,可以使用配套的非開放源代碼的BIOS實時內核,在中小型數(shù)控系統(tǒng)應用開發(fā)上,其更加專業(yè),相比采用ARM硬件平臺而使用的開放性源代碼的實時操作系統(tǒng)內核,采用DSP硬件平臺與BIOS內核的運動控制器穩(wěn)定性更好,能夠節(jié)約實時操作系統(tǒng)移植和測試時間,縮短開發(fā)周期,因而其是一種合理有效的解決方案[2]。
為了能夠在該平臺上進行有效的模塊化數(shù)控功能組件的開發(fā)、維護和移植,本文提出了一種標準化的軟件分層與接口架構方案。該方案可作為一種設計模式,滿足不同用戶的基本功能與二次開發(fā)需求。
1 系統(tǒng)整體方案
1.1 運動控制器硬件實現(xiàn)平臺
本文采用的運動控制器的硬件系統(tǒng)[3]框圖如圖1所示。其中,TMS320C6713系列DSP具有浮點運算器,能快速高效地完成工件加工軌跡插補計算。其集成外部擴展擴的EDMA和EMIF總線具有數(shù)據(jù)吞吐量大的特點。該DSP主頻為225 MHz,對應的指令周期為4.4 ns,相應的運算速度可達1 800 MIPS/1 350 MFLOPS,適用于中小型數(shù)控系統(tǒng)主控制器的需求[4]。
ACTEL公司的A3P400系類FPGA是一種高密度,等效40萬門器件,其可配置的I/O可以兼容多種類型的數(shù)字電平。另外ACTEL公司提供的Libero集成開發(fā)工具,能提供數(shù)字PLL、高速FIFO等多種通用型軟核模塊,能夠節(jié)約開開發(fā)時間與成本,是作為運動控制器外部通信總線接口的一種可靠高效的硬件方案。
圖1 運動控制器硬件結構圖
1.2 系統(tǒng)軟件層次劃分
本文軟件系統(tǒng)采用三層結構劃分[1],其層次結構如圖2所示。
圖2 軟件架構層次圖
(1) 用戶應用接口層??筛鶕?jù)具體的用戶需求開發(fā)各種功能的數(shù)控應用模塊,并將各功能模塊作為組件通過接口嵌入到系統(tǒng)軟件中來。本文所開發(fā)的基礎用戶組件塊及其功能將在下一節(jié)詳細描述。
(2) BIOS內核層。采用TI公司的CCS3.3提供的BIOS內核以及其各種內核組件,可有效縮短內核移植和測試時間。CCS3.3提供圖形化界面接口,如圖3所示。其可對內核各個組件進行配置和應用。它的內核通過編譯后將在文件鏈接時植入程序,生成最后可執(zhí)行文件。
(3) 硬件驅動層。用于管理運動控制器板卡上與DSP相連的各個硬件設備的驅動,并為內核與用戶應用層提供硬件訪問接口。板卡硬件包括:FIFO通信緩沖器、CNC脈沖發(fā)生器、UART總線控制器、SERCOS總線控制器等。外部模擬數(shù)字硬件設備采用FPGA或專用IC實現(xiàn)。
圖3 BIOS內核圖形化配置界面
2 用戶應用軟件任務劃分
用戶應用軟件組件模塊可分為基礎組件和擴展組件[5]?;A組件提供數(shù)控系統(tǒng)基本的加工、維護、調試、監(jiān)控等各種接口控制功能。擴展組件根據(jù)特定的用戶需求可選擇性裁剪安裝,一般擴展組件包括軟PLC編程接口,SERCOS總線、脈沖、TCP/IP、UART等各種通信協(xié)議數(shù)據(jù)包解析與格式轉換等功能。BIOS內核是一款多任務實時內核,可以在系統(tǒng)多個用戶基礎任務之間進行調度。本文所描述系統(tǒng)基本用戶組件任務劃分見圖4。
圖4 運動控制器硬件結構圖
2.1 HMI任務
HMI通信數(shù)據(jù)包幀格式如表1所示。HIM任務處理流程如圖5所示。
(1) 通信數(shù)據(jù)包格式。通信數(shù)據(jù)包格式固定,但功能信息結構格式不固定[6]。不同的信息,如調試信息、G代碼腳本信息的內容等采用不同的信息格式,這樣用戶在增加新的功能組件時,只要自己編寫新的信息格式和編碼與解析方式,就能利用原有的通信協(xié)議進行開發(fā),使得系統(tǒng)代碼能夠移植和重新利用。
表1 HMI數(shù)據(jù)包幀格式
圖5 HIM任務處理流程圖
(2) 數(shù)據(jù)包生成器。從已處理完的HMI信息隊列中按照不同約定信息格式讀取信息,并按照數(shù)據(jù)包的格式為其添加幀頭、物理地址、校驗碼等,生成一組數(shù)據(jù)幀,并將該數(shù)據(jù)幀通過EMIF總線寫入FPGA中的UART發(fā)送FIFO,待其轉換為對應數(shù)字電平發(fā)送給上位機。
(3) 數(shù)據(jù)包解析器。通過EMIF總線從在FPGA中實現(xiàn)的UART總線接收FIFO中讀取一個數(shù)據(jù)幀,并按照約定的用戶應用的解析方式解析成對應的信息,并將信息加載到HMI接收信息隊列,等待數(shù)據(jù)處理與交換任務啟動進行處理。
2.2 用戶數(shù)據(jù)處理與交換任務
用戶數(shù)據(jù)處理與交換任務流程如圖6所示。
本系統(tǒng)提供G代碼腳本解釋器、調試維護命令殼、系統(tǒng)錯誤診斷器三個基礎組件。用戶可根據(jù)特定需求植入新的組件,并編寫對應組件接口信息編碼與解析方式。
(1) G代碼腳本解釋器[7]
數(shù)控G代碼解釋的方案很多。部分廠商采用在上位機解析成配置信息碼,并發(fā)送給運動控制器的方案。但此方案會增加數(shù)據(jù)通信量,使得通信時延增加。本系統(tǒng)采用的方案是:上位機以字符串格式將數(shù)控G代碼腳本信息打包發(fā)送給運動控制器,運動控制器對字符串進行重新組合,并通過識別組合碼配置數(shù)控參數(shù)控制塊。該方案可以減少通信負擔,減小通信延時,但是將增大DSP的運算處理量。因為DSP運算速度明顯要塊于通信傳輸速率,所以該方案是一種合理的折中方案。
圖6 用戶數(shù)據(jù)處理與交換任務流程圖
(2) 調試維護命令殼
該功能用于系統(tǒng)開發(fā)階段和系統(tǒng)維護階段。系統(tǒng)集成該功能夠之后,根據(jù)開發(fā)人員提供的維護指令手冊,在上位機輸入維護指令,返回運動控制器相應的關鍵系統(tǒng)數(shù)據(jù)結構的運行狀態(tài)碼,能幫助維護人員快速地判斷系統(tǒng)運行中的故障,并為數(shù)控機床每個加工軸提供電機測試接口。
(3) 系統(tǒng)錯誤診斷器
負責管理和存儲數(shù)控系統(tǒng)需要監(jiān)控運行的重要模塊信息,一旦重要模塊運行發(fā)生故障,則把錯誤編碼保存在系統(tǒng)錯誤診斷器中,并在任務運行時將錯誤碼發(fā)送給上位機。
2.3 運動控制任務
運動控制任務是運動控制器最核心的部分,也是BIOS內核所管理的任務中優(yōu)先級最高的一個任務。不同廠商的控制器有不同的實現(xiàn)方案。為了能夠清晰理解與移植本文所述系統(tǒng)的運動控制程序,圖7給出了運動控制的行為與數(shù)據(jù)流框圖。
根據(jù)圖7所描述的運動控制行為,編寫的運動控制任務程序的流程圖如圖8所示。
圖7 運動控制的行為與數(shù)據(jù)流圖
圖8 運動控制任務流程圖
(1) 加工軌跡計算。加工軌跡計算控制器,綜合數(shù)控配置參數(shù)與實時的反饋數(shù)據(jù),通過各種數(shù)值計算方法,進行各種數(shù)控插補計算,得到最終的加工數(shù)據(jù),可以通過脈沖編碼格式或者SERCOS通信總線,發(fā)送給控制CNC的每個軸的伺服電機驅動器,控制電機的旋轉與進給。
(2) 電機驅動管理。實時地管理監(jiān)控CNC每個軸的電機驅動器。讀取驅動器的工作狀態(tài),將需要上位機進行實時監(jiān)控的數(shù)控實時運行數(shù)據(jù)寫入CNC接收信息隊列,并通過數(shù)據(jù)交換控制任務,發(fā)送到上位機用于監(jiān)控。當有電機驅動器運行出現(xiàn)異常時,可以及時進行保護停止,并發(fā)送運行故障編碼。
3 軟件方案的驗證性測試
在本實驗室研發(fā)的嵌入式數(shù)控系統(tǒng)測試平臺如圖9所示。其中,HMI板通過JTAG接口與調試主機1相連,運動控制板通過JTAG接口與調試主機2相連。HMI板與運動控制板通過RS 422總線連接,并在采用UART協(xié)議進行通信[6,8]。
由于電機運行軌跡與效果無法很好通過圖片展示,并且本實驗目的主要是驗證整個軟件系統(tǒng)架構的可行性,并修補程序BUG。因而建議采用硬件模擬運行加Matlab仿真的驗證方法。
圖9 運動控制測試平臺
采用圓弧插補測試的方法,在上位機通過G代碼腳本格式導入測試指令腳本,運動控制器讀取數(shù)據(jù)包,解析出測試腳本信息后,進行處理和運算,得出的運算數(shù)據(jù)保存后,導入Matlab仿真軟件,生成運行軌跡圖,以便模擬仿真電機的實際運行軌跡。表2為CNC測試腳本的加工軌跡數(shù)據(jù)。
表2 測試加工軌跡數(shù)據(jù)
圖10為經(jīng)過系統(tǒng)運行得到的加工軌跡與原始測試數(shù)據(jù)的軌跡對照。
圖中點線:測試腳本數(shù)據(jù)擬合曲線;實線:DSP計算的加工數(shù)據(jù)擬合曲線。從方案驗證性測試實驗得到的模擬數(shù)據(jù)擬合圖像和原始腳本測試數(shù)據(jù)對比,可以驗證該軟件架構方案和基礎用戶組件能在實驗室的CNC系統(tǒng)平臺上穩(wěn)定可靠地運行,因而驗證了該軟件架構方案的可行性。
圖10 加工軌跡測試與模擬軌跡
4 結 語
本文基于TI公司的C6713系列DSP+FPGA作為硬件實現(xiàn)方案的運動控制器平臺,提出一種可移植性軟件架構方案。通過三層軟件結構模型的描述和基礎性用戶組件與接口的任務劃分,為用戶的功能的二次開發(fā)與軟件代碼的維護提供的一個基礎性平臺。并通過加工腳本測試驗證了方案的可行性與穩(wěn)定性。
參考文獻
[1] 王濤,王太勇,許愛芬,等.嵌入式實時操作系統(tǒng)在數(shù)控系統(tǒng)設計中的應用[J].計算機工程,2008,34(4):250?268.
[2] 孫禾鳳.基于DSP/BIOS的運動控制器軟件開發(fā)[D].南京:南京航空航天大學,2008.
[3] 吳紅軍,皮佑國.基于DSP和FPGA的運動控制器的設計與實現(xiàn)[J].組合機床與自動化加工技術,2011(2):75?82.
[4] Texas Instruments Incorporated. TMS320C6713B floating?point digital signal processor SPRS294B [R]. USA: Texas Instruments Incorporated, 2006.
[5] 毛軍紅,李黎川,吳序堂.機床數(shù)控軟件化結構體系[J].機械工程學報,2006,36(7):48?51.
[6] 蔣明柯,皮佑國.數(shù)控系統(tǒng)中RS 485串行通信協(xié)議的設計[J].組合機床與自動化加工技術,2013(5):23?26.
[7] [美]凱賽達.計算機數(shù)控技術應用:加工中心和切削中心[M].北京:清華大學出版社,2006.
[8] 范德和,皮佑國.基于DSP和FPGA的運動控制器高速串行通信設計[J].組合機床與自動化加工技術,2011(9):58?62.
[9] 任偉,張彥軍,李京蔓,等.基于FPGA的數(shù)字量變換器測試系統(tǒng)設計[J].計算機測量與控制,2013,21(1):71?77.
[10] 李善鋒,劉敬猛,徐東,等.基于ARM+DSP的嵌入式Linux數(shù)控系統(tǒng)設計[J].機床與液壓,2012,40(13):94?97.
由于電機運行軌跡與效果無法很好通過圖片展示,并且本實驗目的主要是驗證整個軟件系統(tǒng)架構的可行性,并修補程序BUG。因而建議采用硬件模擬運行加Matlab仿真的驗證方法。
圖9 運動控制測試平臺
采用圓弧插補測試的方法,在上位機通過G代碼腳本格式導入測試指令腳本,運動控制器讀取數(shù)據(jù)包,解析出測試腳本信息后,進行處理和運算,得出的運算數(shù)據(jù)保存后,導入Matlab仿真軟件,生成運行軌跡圖,以便模擬仿真電機的實際運行軌跡。表2為CNC測試腳本的加工軌跡數(shù)據(jù)。
表2 測試加工軌跡數(shù)據(jù)
圖10為經(jīng)過系統(tǒng)運行得到的加工軌跡與原始測試數(shù)據(jù)的軌跡對照。
圖中點線:測試腳本數(shù)據(jù)擬合曲線;實線:DSP計算的加工數(shù)據(jù)擬合曲線。從方案驗證性測試實驗得到的模擬數(shù)據(jù)擬合圖像和原始腳本測試數(shù)據(jù)對比,可以驗證該軟件架構方案和基礎用戶組件能在實驗室的CNC系統(tǒng)平臺上穩(wěn)定可靠地運行,因而驗證了該軟件架構方案的可行性。
圖10 加工軌跡測試與模擬軌跡
4 結 語
本文基于TI公司的C6713系列DSP+FPGA作為硬件實現(xiàn)方案的運動控制器平臺,提出一種可移植性軟件架構方案。通過三層軟件結構模型的描述和基礎性用戶組件與接口的任務劃分,為用戶的功能的二次開發(fā)與軟件代碼的維護提供的一個基礎性平臺。并通過加工腳本測試驗證了方案的可行性與穩(wěn)定性。
參考文獻
[1] 王濤,王太勇,許愛芬,等.嵌入式實時操作系統(tǒng)在數(shù)控系統(tǒng)設計中的應用[J].計算機工程,2008,34(4):250?268.
[2] 孫禾鳳.基于DSP/BIOS的運動控制器軟件開發(fā)[D].南京:南京航空航天大學,2008.
[3] 吳紅軍,皮佑國.基于DSP和FPGA的運動控制器的設計與實現(xiàn)[J].組合機床與自動化加工技術,2011(2):75?82.
[4] Texas Instruments Incorporated. TMS320C6713B floating?point digital signal processor SPRS294B [R]. USA: Texas Instruments Incorporated, 2006.
[5] 毛軍紅,李黎川,吳序堂.機床數(shù)控軟件化結構體系[J].機械工程學報,2006,36(7):48?51.
[6] 蔣明柯,皮佑國.數(shù)控系統(tǒng)中RS 485串行通信協(xié)議的設計[J].組合機床與自動化加工技術,2013(5):23?26.
[7] [美]凱賽達.計算機數(shù)控技術應用:加工中心和切削中心[M].北京:清華大學出版社,2006.
[8] 范德和,皮佑國.基于DSP和FPGA的運動控制器高速串行通信設計[J].組合機床與自動化加工技術,2011(9):58?62.
[9] 任偉,張彥軍,李京蔓,等.基于FPGA的數(shù)字量變換器測試系統(tǒng)設計[J].計算機測量與控制,2013,21(1):71?77.
[10] 李善鋒,劉敬猛,徐東,等.基于ARM+DSP的嵌入式Linux數(shù)控系統(tǒng)設計[J].機床與液壓,2012,40(13):94?97.
由于電機運行軌跡與效果無法很好通過圖片展示,并且本實驗目的主要是驗證整個軟件系統(tǒng)架構的可行性,并修補程序BUG。因而建議采用硬件模擬運行加Matlab仿真的驗證方法。
圖9 運動控制測試平臺
采用圓弧插補測試的方法,在上位機通過G代碼腳本格式導入測試指令腳本,運動控制器讀取數(shù)據(jù)包,解析出測試腳本信息后,進行處理和運算,得出的運算數(shù)據(jù)保存后,導入Matlab仿真軟件,生成運行軌跡圖,以便模擬仿真電機的實際運行軌跡。表2為CNC測試腳本的加工軌跡數(shù)據(jù)。
表2 測試加工軌跡數(shù)據(jù)
圖10為經(jīng)過系統(tǒng)運行得到的加工軌跡與原始測試數(shù)據(jù)的軌跡對照。
圖中點線:測試腳本數(shù)據(jù)擬合曲線;實線:DSP計算的加工數(shù)據(jù)擬合曲線。從方案驗證性測試實驗得到的模擬數(shù)據(jù)擬合圖像和原始腳本測試數(shù)據(jù)對比,可以驗證該軟件架構方案和基礎用戶組件能在實驗室的CNC系統(tǒng)平臺上穩(wěn)定可靠地運行,因而驗證了該軟件架構方案的可行性。
圖10 加工軌跡測試與模擬軌跡
4 結 語
本文基于TI公司的C6713系列DSP+FPGA作為硬件實現(xiàn)方案的運動控制器平臺,提出一種可移植性軟件架構方案。通過三層軟件結構模型的描述和基礎性用戶組件與接口的任務劃分,為用戶的功能的二次開發(fā)與軟件代碼的維護提供的一個基礎性平臺。并通過加工腳本測試驗證了方案的可行性與穩(wěn)定性。
參考文獻
[1] 王濤,王太勇,許愛芬,等.嵌入式實時操作系統(tǒng)在數(shù)控系統(tǒng)設計中的應用[J].計算機工程,2008,34(4):250?268.
[2] 孫禾鳳.基于DSP/BIOS的運動控制器軟件開發(fā)[D].南京:南京航空航天大學,2008.
[3] 吳紅軍,皮佑國.基于DSP和FPGA的運動控制器的設計與實現(xiàn)[J].組合機床與自動化加工技術,2011(2):75?82.
[4] Texas Instruments Incorporated. TMS320C6713B floating?point digital signal processor SPRS294B [R]. USA: Texas Instruments Incorporated, 2006.
[5] 毛軍紅,李黎川,吳序堂.機床數(shù)控軟件化結構體系[J].機械工程學報,2006,36(7):48?51.
[6] 蔣明柯,皮佑國.數(shù)控系統(tǒng)中RS 485串行通信協(xié)議的設計[J].組合機床與自動化加工技術,2013(5):23?26.
[7] [美]凱賽達.計算機數(shù)控技術應用:加工中心和切削中心[M].北京:清華大學出版社,2006.
[8] 范德和,皮佑國.基于DSP和FPGA的運動控制器高速串行通信設計[J].組合機床與自動化加工技術,2011(9):58?62.
[9] 任偉,張彥軍,李京蔓,等.基于FPGA的數(shù)字量變換器測試系統(tǒng)設計[J].計算機測量與控制,2013,21(1):71?77.
[10] 李善鋒,劉敬猛,徐東,等.基于ARM+DSP的嵌入式Linux數(shù)控系統(tǒng)設計[J].機床與液壓,2012,40(13):94?97.