基于TMS320F2812的多軸運動控制卡設計
引 言
開放式體系結構的數(shù)控系統(tǒng)已成為當今數(shù)控技術的發(fā)展方向,而其中的基于計算機標準總線的“PC+運動控制卡”結構則是今后開放式數(shù)控技術發(fā)展的主流。此類數(shù)控系統(tǒng)通常選用高速DSP作為運動控制卡CPU,采用主從式控制策略,利用PC和DSP都讀取內(nèi)存的方式來實現(xiàn)上/下位機的通信;具有信息處理能力強、開放程度高、運動軌跡控制準確、通用性好等特點,被廣泛應用于制造業(yè)自動化控制各個領域。1 硬件電路總體設計本項目是設計一款基于PCI總線的,以DSP芯片TMS320F2812為核心的多軸運動控制卡。將PC機的信息處理能力和開放式的特點與運動控制器的運動軌跡控制能力有機地結合在一起,利用雙口RAM作為公共存儲單元實現(xiàn)上/下位機的通信。為實現(xiàn)對多電機的半閉環(huán)控制提供了一個良好的開發(fā)平臺。系統(tǒng)中,PC機發(fā)送各種控制命令,經(jīng)PC程序進行譯碼、預處理等處理后,通過PCI總線接口芯片傳送到公共存儲器——雙口RAM中;DSP程序從雙口RAM中讀取指令或數(shù)據(jù),并根據(jù)讀入的指令或數(shù)據(jù)進行插補運算,然后產(chǎn)生位置控制脈沖輸入到各個電機軸的伺服驅(qū)動器;伺服驅(qū)動器根據(jù)DSP發(fā)送的位置指令再進行插補,同時由插補運算計算的理論位置與位置反饋模塊反饋的實際位置進行比較,得到跟隨誤差,經(jīng)誤差補償后形成真正的電機實際位置,并由跟隨誤差算出速度指令值,最后產(chǎn)生PWM脈沖控制電機運行。在本系統(tǒng)中,TMS320F2812芯片作為總控制器,統(tǒng)籌協(xié)調(diào)數(shù)控系統(tǒng)中各個軸的運動,而伺服驅(qū)動器則作為執(zhí)行元件控制每個電機的實際運行。運動控制卡與伺服驅(qū)動器各司其職,相互配合,都發(fā)揮了各自的長處。由此組成的數(shù)控系統(tǒng)開放性好,可靠性高,能夠很好地滿足現(xiàn)階段大多數(shù)用戶對多軸聯(lián)動數(shù)控系統(tǒng)的要求。系統(tǒng)硬件總體設計功能框圖如圖1所示。本系統(tǒng)的運動控制卡所選用的DSP芯片TMS320F2812有2個事件管理器(EVA、EVB),每個事件管理器可以產(chǎn)生5路獨立的PWM信號,其中比較寄存器3路,通用定時器2路。理論上講,1片TMS320F2812芯片最多可以控制10個伺服驅(qū)動器。而常見的數(shù)控系統(tǒng)有三軸聯(lián)動、五軸聯(lián)動等,運動控制卡可以控制的電機數(shù)目遠大于一個數(shù)控系統(tǒng)中電機的數(shù)目。因此,本系統(tǒng)的“PC+運動控制卡”數(shù)控系統(tǒng)不僅能夠滿足多軸聯(lián)動數(shù)控系統(tǒng)的基本要求,還具有很高的擴展性,甚至可以實現(xiàn)多個數(shù)控機床聯(lián)合控制,極大地增強了多軸聯(lián)動數(shù)控系統(tǒng)的功能。2 雙口RAM接口電路設計2.1 雙口RAM與DSP和CH365的連接本系統(tǒng)選用雙口RAM芯片IDT7025作為DSP與CH365雙向通信的緩沖芯片。IDT7025芯片是一款高速的8K×16位雙口靜態(tài)RAM,它提供2個獨立的端口,允許兩個(左、右)端口同時讀/寫數(shù)據(jù),每個端口具有自己獨立的控制信號線、地址線和數(shù)據(jù)線,可高速存取數(shù)據(jù),可與大多數(shù)高速處理器配合使用,而無需插入等待狀態(tài)。雙口RAM允許2個CPU同時讀取任何存儲單元(包括同時讀同一地址單元),但不允許同時寫或一讀一寫同一地址單元。利用雙口RAM進行通信的關鍵是,如何處理好爭用沖突現(xiàn)象,避免由此而產(chǎn)生的讀/寫錯誤。常用的雙口RAM解決地址競爭的途徑有:令牌傳遞法、基于郵箱機制的INT中斷法以及插入等待周期的BUSY法等。本系統(tǒng)采用第2種方法。下面簡要介紹一下IDT7025中斷的原理:當用戶要用到中斷功能時,內(nèi)存中的1FFE和1FFF單元將作為中斷標志郵箱傳遞命令信息。當左端口定義為寫狀態(tài)(CEL=R/WL=VIL),且在內(nèi)存1FFF中進行寫操作時,右端口的中斷標志INTR為低電平,可以向右端口發(fā)出中斷請求;當右端口對地址1FFF進行訪問時(CER=OER=VIL),無論讀寫都可以清除右端口中斷標志INTR。相反也是一樣的,當右端口對內(nèi)存1FFE進行寫操作時,左端口可以發(fā)出中斷請求;當左端口訪問地址1FFE時,清除左端口中斷標志。使用中斷時,向1FFF和1FFE寫的內(nèi)容由用戶自行定義,本系統(tǒng)中設定:申請中斷時向郵箱寫入1或其他大于O的整數(shù),清除中斷時向郵箱寫入O。系統(tǒng)中雙口RAM IDT7025作為DSP與PC機之間的共享數(shù)據(jù)空間,右端口與CH365相連,映射到CH365的存儲空間;左端口與DSP相連,映射到TMS320F2812的區(qū)域0。由于IDT7025的供電電壓為5 V,因此,在DSP芯片與雙口RAM芯片之間加入了一個電壓轉(zhuǎn)換芯片SN74LVTHl6245,其硬件連接示意圖如圖2所示。將圖2中的雙口RAM劃為2個存儲空間,即PC通過寫高4 KB空間向DSP發(fā)送指令,DSP通過寫低4KB空間向PC機反饋數(shù)據(jù)。2.2 數(shù)據(jù)總線擴展電路設計由于系統(tǒng)采用了雙口RAM作為DSP和CH365之間數(shù)據(jù)傳輸?shù)木彌_芯片,而TMS320F2812的地址總線為19位,IDT7025為13位,CH365為16位,因此,把IDT7025的13位地址線A[O..12]分別與DSP的地址線XA[O..12]和CH365的地址線A[O..12]相連,并將CH365的地址線A0用作數(shù)據(jù)總線擴展的使能信號。TMS320F2812與IDT7025的數(shù)據(jù)寬度皆為16位,由于TMS320F2812的I/O電源為3.3 V,IDT7025的電源為5 V,因此二者數(shù)據(jù)線之間需要連接一個電壓轉(zhuǎn)化芯片SN74LVTHl6245,并通過XR/W信號控制數(shù)據(jù)傳遞的方向;而CH365的數(shù)據(jù)寬度為8位,為使其與16位雙口RAM正常通信,系統(tǒng)利用CPLD對CH365的數(shù)據(jù)總線進行了擴展。CPLD芯片選用A1tera公司生產(chǎn)的EPM7064,通過CH365地址線A0的使能對16位數(shù)據(jù)進行分時讀/寫,從而解決了數(shù)據(jù)總線的擴展問題。其內(nèi)部邏輯電路如圖3所示,其中主要包括2個鎖存器(74373b),和2個三態(tài)門緩沖器(74541b)。CH365支持PC機以單字節(jié)、雙字節(jié)(字)、四字節(jié)(雙字)為單位對I/O端口或存儲器進行讀/寫。在多字節(jié)連續(xù)讀/寫操作期間,CH365每讀完一個字節(jié)數(shù)據(jù)后,就會自動將偏移地址加1,以指向下一字節(jié)的偏移地址。在本系統(tǒng)中,將16位數(shù)據(jù)的讀/寫轉(zhuǎn)化為8位數(shù)據(jù)(1字節(jié))的分時讀/寫。CH365讀取雙口RAM數(shù)據(jù)時,首先CH365_A0為低電平,低8位數(shù)據(jù)通過三態(tài)門U3直接讀入到CH365中,高8位數(shù)據(jù)鎖存到鎖存器U4中;然后偏移地址自動加1,CH365_A0為高電平,高8位數(shù)據(jù)由鎖存器U4讀入CH365。CH365向雙口RAM寫入數(shù)據(jù)時,首先CH365_A0為低電平,鎖存器U1使能信號G高電平有效,三態(tài)門U2無效(GN2為高電平),低8位寫入鎖存器;然后偏移地址加1,CH365_A0為高電平,三態(tài)門U2使能信號有效,高8位數(shù)據(jù)直接寫入雙口RAM,同時低8位數(shù)據(jù)通過鎖存器U1寫入雙口RAM(OEN為低電平)。對上述邏輯關系用“MAX+PLUS”進行仿真后,得到圖4所示的時序。圖中RAM_DD和CH365_DD表示仿真結果,從圖中可知仿真結果完全符合設計要求。由此可見,利用最低地址位CH365_A0的不同電平,CH365通過兩次連續(xù)的讀或?qū)懖僮?,成功地實現(xiàn)了對雙口RAM中16位數(shù)據(jù)的讀/寫,并且數(shù)據(jù)的讀/寫時序完全符合CH365的讀/寫時序,可以方便地進行軟件編程。3 上/下位機通信軟件設計在硬件電路實現(xiàn)之后,把完成的板卡插于PC機的PCI插槽,上電后根據(jù)系統(tǒng)提示安裝CH365驅(qū)動程序,在正確安裝好硬件之后,利用API函數(shù),就可以在VC環(huán)境下編寫和調(diào)試PCI和DSP的通信軟件了。由上述可知,雙口RAM的高4 KB空間用于PC機向DSP下載數(shù)據(jù),如果數(shù)據(jù)大于4 KB,則存在著一次不能夠把全部數(shù)據(jù)下載到DSP中的問題。因此,采取了向雙口RAM中循環(huán)寫入數(shù)據(jù)的辦法,即PC機向雙口RAM一次只寫入4 KB數(shù)據(jù),接著向DSP申請中斷。DSP響應中斷一次性將4 KB數(shù)據(jù)復制到DSP其他大容量存儲空間(如擴展SRAM)中,然后釋放雙口RAM空間。此時PC機便可再寫入4 KB數(shù)據(jù),如此循環(huán)往復,直到將所有數(shù)據(jù)都寫入DSP中。部分代碼如下:數(shù)據(jù)反饋功能主要是通過CH365響應DSP中斷來實現(xiàn)的。DSP程序?qū)?shù)據(jù)寫入雙口RAM低4 KB空間后向CH365申請中斷,CH365響應中斷將數(shù)據(jù)反饋到PC并顯示到人機界面。中斷函數(shù)部分代碼如下:結 語隨著計算機技術和電子技術的發(fā)展,將運算高速、功能強大的數(shù)字信號處理器應用于運動控制,可以實現(xiàn)復雜的控制算法和實現(xiàn)高精度、高速度、多軸聯(lián)動,在數(shù)控應用中,將會占據(jù)越來越重要的地位。而快速準確的通信又是這種運動控制器的基礎。本文介紹的通信方式,具有性能可靠,硬件結構簡單,價格便宜的優(yōu)點,具有較好的應用前景。