關(guān)于基于DSP與BIOS內(nèi)核的運(yùn)動(dòng)控制器軟件技術(shù)創(chuàng)新的論文
0 引 言
作為數(shù)控系統(tǒng)核心控制部件的運(yùn)動(dòng)控制器,市場上有基于單片機(jī)、基于ARM為主控處理+FPGA/CPLD作為輔控處理、基于DSP為主控處理+FPGA/CPLD作為輔控處理等多種硬件平臺的解決方案。在不同的硬件平臺上,軟件系統(tǒng)調(diào)度方案可以采用μC/OS?Ⅱ,BIOS,RT?Linux,VxWorks等多種實(shí)時(shí)操作系統(tǒng)內(nèi)核,因而衍生出各種軟件系統(tǒng)的架構(gòu)方案。采用TI公司TMS320C6713系列DSP芯片為主控芯片+FPGA作為輔控芯片的硬件平臺的解決方案,其數(shù)據(jù)吞吐量和高速浮點(diǎn)運(yùn)算上具有一般單片機(jī)不可比擬的優(yōu)勢。而采用TI公司的DSP芯片和CCS的開發(fā)平臺,可以使用配套的非開放源代碼的BIOS實(shí)時(shí)內(nèi)核,在中小型數(shù)控系統(tǒng)應(yīng)用開發(fā)上,其更加專業(yè),相比采用ARM硬件平臺而使用的開放性源代碼的實(shí)時(shí)操作系統(tǒng)內(nèi)核,采用DSP硬件平臺與BIOS內(nèi)核的運(yùn)動(dòng)控制器穩(wěn)定性更好,能夠節(jié)約實(shí)時(shí)操作系統(tǒng)移植和測試時(shí)間,縮短開發(fā)周期,因而其是一種合理有效的解決方案。
為了能夠在該平臺上進(jìn)行有效的模塊化數(shù)控功能組件的開發(fā)、維護(hù)和移植,本文提出了一種標(biāo)準(zhǔn)化的軟件分層與接口架構(gòu)方案。該方案可作為一種設(shè)計(jì)模式,滿足不同用戶的基本功能與二次開發(fā)需求。
1 系統(tǒng)整體方案
1.1 運(yùn)動(dòng)控制器硬件實(shí)現(xiàn)平臺
本文采用的運(yùn)動(dòng)控制器的硬件系統(tǒng)框圖如圖1所示。其中,TMS320C6713系列DSP具有浮點(diǎn)運(yùn)算器,能快速高效地完成工件加工軌跡插補(bǔ)計(jì)算。其集成外部擴(kuò)展擴(kuò)的EDMA和EMIF總線具有數(shù)據(jù)吞吐量大的特點(diǎn)。該DSP主頻為225 MHz,對應(yīng)的指令周期為4.4 ns,相應(yīng)的運(yùn)算速度可達(dá)1 800 MIPS/1 350 MFLOPS,適用于中小型數(shù)控系統(tǒng)主控制器的需求。
ACTEL公司的A3P400系類FPGA是一種高密度,等效40萬門器件,其可配置的I/O可以兼容多種類型的數(shù)字電平。另外ACTEL公司提供的Libero集成開發(fā)工具,能提供數(shù)字PLL、高速FIFO等多種通用型軟核模塊,能夠節(jié)約開開發(fā)時(shí)間與成本,是作為運(yùn)動(dòng)控制器外部通信總線接口的一種可靠高效的'硬件方案。
圖1 運(yùn)動(dòng)控制器硬件結(jié)構(gòu)圖
1.2 系統(tǒng)軟件層次劃分
本文軟件系統(tǒng)采用三層結(jié)構(gòu)劃分,其層次結(jié)構(gòu)如圖2所示。
圖2 軟件架構(gòu)層次圖
(1) 用戶應(yīng)用接口層。可根據(jù)具體的用戶需求開發(fā)各種功能的數(shù)控應(yīng)用模塊,并將各功能模塊作為組件通過接口嵌入到系統(tǒng)軟件中來。本文所開發(fā)的基礎(chǔ)用戶組件塊及其功能將在下一節(jié)詳細(xì)描述。
(2) BIOS內(nèi)核層。采用TI公司的CCS3.3提供的BIOS內(nèi)核以及其各種內(nèi)核組件,可有效縮短內(nèi)核移植和測試時(shí)間。CCS3.3提供圖形化界面接口,如圖3所示。其可對內(nèi)核各個(gè)組件進(jìn)行配置和應(yīng)用。它的內(nèi)核通過編譯后將在文件鏈接時(shí)植入程序,生成最后可執(zhí)行文件。
(3) 硬件驅(qū)動(dòng)層。用于管理運(yùn)動(dòng)控制器板卡上與DSP相連的各個(gè)硬件設(shè)備的驅(qū)動(dòng),并為內(nèi)核與用戶應(yīng)用層提供硬件訪問接口。板卡硬件包括:FIFO通信緩沖器、CNC脈沖發(fā)生器、UART總線控制器、SERCOS總線控制器等。外部模擬數(shù)字硬件設(shè)備采用FPGA或?qū)S肐C實(shí)現(xiàn)。
圖3 BIOS內(nèi)核圖形化配置界面
2 用戶應(yīng)用軟件任務(wù)劃分
用戶應(yīng)用軟件組件模塊可分為基礎(chǔ)組件和擴(kuò)展組件。基礎(chǔ)組件提供數(shù)控系統(tǒng)基本的加工、維護(hù)、調(diào)試、監(jiān)控等各種接口控制功能。擴(kuò)展組件根據(jù)特定的用戶需求可選擇性裁剪安裝,一般擴(kuò)展組件包括軟PLC編程接口,SERCOS總線、脈沖、TCP/IP、UART等各種通信協(xié)議數(shù)據(jù)包解析與格式轉(zhuǎn)換等功能。BIOS內(nèi)核是一款多任務(wù)實(shí)時(shí)內(nèi)核,可以在系統(tǒng)多個(gè)用戶基礎(chǔ)任務(wù)之間進(jìn)行調(diào)度。本文所描述系統(tǒng)基本用戶組件任務(wù)劃分見圖4。
圖4 運(yùn)動(dòng)控制器硬件結(jié)構(gòu)圖
2.1 HMI任務(wù)
HMI通信數(shù)據(jù)包幀格式如表1所示。HIM任務(wù)處理流程如圖5所示。
(1) 通信數(shù)據(jù)包格式。通信數(shù)據(jù)包格式固定,但功能信息結(jié)構(gòu)格式不固定。不同的信息,如調(diào)試信息、G代碼腳本信息的內(nèi)容等采用不同的信息格式,這樣用戶在增加新的功能組件時(shí),只要自己編寫新的信息格式和編碼與解析方式,就能利用原有的通信協(xié)議進(jìn)行開發(fā),使得系統(tǒng)代碼能夠移植和重新利用。
表1 HMI數(shù)據(jù)包幀格式
圖5 HIM任務(wù)處理流程圖
(2) 數(shù)據(jù)包生成器。從已處理完的HMI信息隊(duì)列中按照不同約定信息格式讀取信息,并按照數(shù)據(jù)包的格式為其添加幀頭、物理地址、校驗(yàn)碼等,生成一組數(shù)據(jù)幀,并將該數(shù)據(jù)幀通過EMIF總線寫入FPGA中的UART發(fā)送FIFO,待其轉(zhuǎn)換為對應(yīng)數(shù)字電平發(fā)送給上位機(jī)。
(3) 數(shù)據(jù)包解析器。通過EMIF總線從在FPGA中實(shí)現(xiàn)的UART總線接收FIFO中讀取一個(gè)數(shù)據(jù)幀,并按照約定的用戶應(yīng)用的解析方式解析成對應(yīng)的信息,并將信息加載到HMI接收信息隊(duì)列,等待數(shù)據(jù)處理與交換任務(wù)啟動(dòng)進(jìn)行處理。
2.2 用戶數(shù)據(jù)處理與交換任務(wù)
用戶數(shù)據(jù)處理與交換任務(wù)流程如圖6所示。
本系統(tǒng)提供G代碼腳本解釋器、調(diào)試維護(hù)命令殼、系統(tǒng)錯(cuò)誤診斷器三個(gè)基礎(chǔ)組件。用戶可根據(jù)特定需求植入新的組件,并編寫對應(yīng)組件接口信息編碼與解析方式。
(1) G代碼腳本解釋器
數(shù)控G代碼解釋的方案很多。部分廠商采用在上位機(jī)解析成配置信息碼,并發(fā)送給運(yùn)動(dòng)控制器的方案。但此方案會增加數(shù)據(jù)通信量,使得通信時(shí)延增加。本系統(tǒng)采用的方案是:上位機(jī)以字符串格式將數(shù)控G代碼腳本信息打包發(fā)送給運(yùn)動(dòng)控制器,運(yùn)動(dòng)控制器對字符串進(jìn)行重新組合,并通過識別組合碼配置數(shù)控參數(shù)控制塊。該方案可以減少通信負(fù)擔(dān),減小通信延時(shí),但是將增大DSP的運(yùn)算處理量。因?yàn)镈SP運(yùn)算速度明顯要塊于通信傳輸速率,所以該方案是一種合理的折中方案。
圖6 用戶數(shù)據(jù)處理與交換任務(wù)流程圖
(2) 調(diào)試維護(hù)命令殼
該功能用于系統(tǒng)開發(fā)階段和系統(tǒng)維護(hù)階段。系統(tǒng)集成該功能夠之后,根據(jù)開發(fā)人員提供的維護(hù)指令手冊,在上位機(jī)輸入維護(hù)指令,返回運(yùn)動(dòng)控制器相應(yīng)的關(guān)鍵系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的運(yùn)行狀態(tài)碼,能幫助維護(hù)人員快速地判斷系統(tǒng)運(yùn)行中的故障,并為數(shù)控機(jī)床每個(gè)加工軸提供電機(jī)測試接口。
(3) 系統(tǒng)錯(cuò)誤診斷器
負(fù)責(zé)管理和存儲數(shù)控系統(tǒng)需要監(jiān)控運(yùn)行的重要模塊信息,一旦重要模塊運(yùn)行發(fā)生故障,則把錯(cuò)誤編碼保存在系統(tǒng)錯(cuò)誤診斷器中,并在任務(wù)運(yùn)行時(shí)將錯(cuò)誤碼發(fā)送給上位機(jī)。
2.3 運(yùn)動(dòng)控制任務(wù)
運(yùn)動(dòng)控制任務(wù)是運(yùn)動(dòng)控 制器最核心的部分,也是BIOS內(nèi)核所管理的任務(wù)中優(yōu)先級最高的一個(gè)任務(wù)。不同廠商的控制器有不同的實(shí)現(xiàn)方案。為了能夠清晰理解與移植本文所述系統(tǒng)的運(yùn)動(dòng)控制程序,圖7給出了運(yùn)動(dòng)控制的行為與數(shù)據(jù)流框圖。
根據(jù)圖7所描述的運(yùn)動(dòng)控制行為,編寫的運(yùn)動(dòng)控制任務(wù)程序的流程圖如圖8所示。
圖7 運(yùn)動(dòng)控制的行為與數(shù)據(jù)流圖
圖8 運(yùn)動(dòng)控制任務(wù)流程圖
(1) 加工軌跡計(jì)算。加工軌跡計(jì)算控制器,綜合數(shù)控配置參數(shù)與實(shí)時(shí)的反饋數(shù)據(jù),通過各種數(shù)值計(jì)算方法,進(jìn)行各種數(shù)控插補(bǔ)計(jì)算,得到最終的加工數(shù)據(jù),可以通過脈沖編碼格式或者SERCOS通信總線,發(fā)送給控制CNC的每個(gè)軸的伺服電機(jī)驅(qū)動(dòng)器,控制電機(jī)的旋轉(zhuǎn)與進(jìn)給。
(2) 電機(jī)驅(qū)動(dòng)管理。實(shí)時(shí)地管理監(jiān)控CNC每個(gè)軸的電機(jī)驅(qū)動(dòng)器。讀取驅(qū)動(dòng)器的工作狀態(tài),將需要上位機(jī)進(jìn)行實(shí)時(shí)監(jiān)控的數(shù)控實(shí)時(shí)運(yùn)行數(shù)據(jù)寫入CNC接收信息隊(duì)列,并通過數(shù)據(jù)交換控制任務(wù),發(fā)送到上位機(jī)用于監(jiān)控。當(dāng)有電機(jī)驅(qū)動(dòng)器運(yùn)行出現(xiàn)異常時(shí),可以及時(shí)進(jìn)行保護(hù)停止,并發(fā)送運(yùn)行故障編碼。
3 軟件方案的驗(yàn)證性測試
在本實(shí)驗(yàn)室研發(fā)的嵌入式數(shù)控系統(tǒng)測試平臺如圖9所示。其中,HMI板通過JTAG接口與調(diào)試主機(jī)1相連,運(yùn)動(dòng)控制板通過JTAG接口與調(diào)試主機(jī)2相連。HMI板與運(yùn)動(dòng)控制板通過RS 422總線連接,并在采用UART協(xié)議進(jìn)行通信。
由于電機(jī)運(yùn)行軌跡與效果無法很好通過圖片展示,并且本實(shí)驗(yàn)?zāi)康闹饕球?yàn)證整個(gè)軟件系統(tǒng)架構(gòu)的可行性,并修補(bǔ)程序BUG。因而建議采用硬件模擬運(yùn)行加Matlab仿真的驗(yàn)證方法。
圖9 運(yùn)動(dòng)控制測試平臺
采用圓弧插補(bǔ)測試的方法,在上位機(jī)通過G代碼腳本格式導(dǎo)入測試指令腳本,運(yùn)動(dòng)控制器讀取數(shù)據(jù)包,解析出測試腳本信息后,進(jìn)行處理和運(yùn)算,得出的運(yùn)算數(shù)據(jù)保存后,導(dǎo)入Matlab仿真軟件,生成運(yùn)行軌跡圖,以便模擬仿真電機(jī)的實(shí)際運(yùn)行軌跡。表2為CNC測試腳本的加工軌跡數(shù)據(jù)。
表2 測試加工軌跡數(shù)據(jù)
圖10為經(jīng)過系統(tǒng)運(yùn)行得到的加工軌跡與原始測試數(shù)據(jù)的軌跡對照。
圖中點(diǎn)線:測試腳本數(shù)據(jù)擬合曲線;實(shí)線:DSP計(jì)算的加工數(shù)據(jù)擬合曲線。從方案驗(yàn)證性測試實(shí)驗(yàn)得到的模擬數(shù)據(jù)擬合圖像和原始腳本測試數(shù)據(jù)對比,可以驗(yàn)證該軟件架構(gòu)方案和基礎(chǔ)用戶組件能在實(shí)驗(yàn)室的CNC系統(tǒng)平臺上穩(wěn)定可靠地運(yùn)行,因而驗(yàn)證了該軟件架構(gòu)方案的可行性。
圖10 加工軌跡測試與模擬軌跡
4 結(jié) 語
本文基于TI公司的C6713系列DSP+FPGA作為硬件實(shí)現(xiàn)方案的運(yùn)動(dòng)控制器平臺,提出一種可移植性軟件架構(gòu)方案。通過三層軟件結(jié)構(gòu)模型的描述和基礎(chǔ)性用戶組件與接口的任務(wù)劃分,為用戶的功能的二次開發(fā)與軟件代碼的維護(hù)提供的一個(gè)基礎(chǔ)性平臺。并通過加工腳本測試驗(yàn)證了方案的可行性與穩(wěn)定性。
參考文獻(xiàn)
王濤,王太勇,許愛芬,等.嵌入式實(shí)時(shí)操作系統(tǒng)在數(shù)控系統(tǒng)設(shè)計(jì)中的應(yīng)用.計(jì)算機(jī)工程,2008,34(4):250?268.
孫禾鳳.基于DSP/BIOS的運(yùn)動(dòng)控制器軟件開發(fā).南京:南京航空航天大學(xué),2008.
吳紅軍,皮佑國.基于DSP和FPGA的運(yùn)動(dòng)控制器的設(shè)計(jì)與實(shí)現(xiàn).組合機(jī)床與自動(dòng)化加工技術(shù),2011(2):75?82.
Texas Instruments Incorporated. TMS320C6713B floating?point digital signal processor SPRS294B . USA: Texas Instruments Incorporated, 2006.
毛軍紅,李黎川,吳序堂.機(jī)床數(shù)控軟件化結(jié)構(gòu)體系.機(jī)械工程學(xué)報(bào),2006,36(7):48?51.
蔣明柯,皮佑國.數(shù)控系統(tǒng)中RS 485串行通信協(xié)議的設(shè)計(jì).組合機(jī)床與自動(dòng)化加工技術(shù),2013(5):23?26.
凱賽達(dá).計(jì)算機(jī)數(shù)控技術(shù)應(yīng)用:加工中心和切削中心.北京:清華大學(xué)出版社,2006.
范德和,皮佑國.基于DSP和FPGA的運(yùn)動(dòng)控制器高速串行通信設(shè)計(jì).組合機(jī)床與自動(dòng)化加工技術(shù),2011(9):58?62.
【基于DSP與BIOS內(nèi)核的運(yùn)動(dòng)控制器軟件技術(shù)創(chuàng)新的論文】相關(guān)文章:
基于DSP與BIOS內(nèi)核的運(yùn)動(dòng)控制器軟件技術(shù)創(chuàng)新論文11-02
基于DSP的矢量控制交流驅(qū)動(dòng)系統(tǒng)設(shè)計(jì)及仿真論文04-17
基于模型的軟件測試技術(shù)探析論文05-03
基于知識本體的職業(yè)教學(xué)軟件發(fā)展論文07-05
基于單片機(jī)的液位模糊控制器設(shè)計(jì)論文04-21
基于DSP+FPGA的嵌入式圖像處理系統(tǒng)的發(fā)展的論文02-11