新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于TMS320F2812的多軸運(yùn)動(dòng)控制卡設(shè)計(jì)

基于TMS320F2812的多軸運(yùn)動(dòng)控制卡設(shè)計(jì)

作者: 時(shí)間:2008-11-19 來源:網(wǎng)絡(luò) 收藏
引 言
開放式體系結(jié)構(gòu)的數(shù)控系統(tǒng)已成為當(dāng)今數(shù)控技術(shù)的發(fā)展方向,而其中的基于計(jì)算機(jī)標(biāo)準(zhǔn)總線的“PC+運(yùn)動(dòng)控制卡”結(jié)構(gòu)則是今后開放式數(shù)控技術(shù)發(fā)展的主流。此類數(shù)控系統(tǒng)通常選用高速DSP作為運(yùn)動(dòng)控制卡CPU,采用主從式控制策略,利用PC和DSP都讀取內(nèi)存的方式來實(shí)現(xiàn)上/下位機(jī)的通信;具有信息處理能力強(qiáng)、開放程度高、運(yùn)動(dòng)軌跡控制準(zhǔn)確、通用性好等特點(diǎn),被廣泛應(yīng)用于制造業(yè)自動(dòng)化控制各個(gè)領(lǐng)域。

1 硬件電路總體設(shè)計(jì)
本項(xiàng)目是設(shè)計(jì)一款基于PCI總線的,以DSP芯片TMS320F2812為核心的多軸運(yùn)動(dòng)控制卡。將PC機(jī)的信息處理能力和開放式的特點(diǎn)與運(yùn)動(dòng)控制器的運(yùn)動(dòng)軌跡控制能力有機(jī)地結(jié)合在一起,利用雙口RAM作為公共存儲(chǔ)單元實(shí)現(xiàn)上/下位機(jī)的通信。為實(shí)現(xiàn)對多電機(jī)的半閉環(huán)控制提供了一個(gè)良好的開發(fā)平臺(tái)。
系統(tǒng)中,PC機(jī)發(fā)送各種控制命令,經(jīng)PC程序進(jìn)行譯碼、預(yù)處理等處理后,通過PCI總線接口芯片傳送到公共存儲(chǔ)器――雙口RAM中;DSP程序從雙口RAM中讀取指令或數(shù)據(jù),并根據(jù)讀入的指令或數(shù)據(jù)進(jìn)行插補(bǔ)運(yùn)算,然后產(chǎn)生位置控制脈沖輸入到各個(gè)電機(jī)軸的伺服驅(qū)動(dòng)器;伺服驅(qū)動(dòng)器根據(jù)DSP發(fā)送的位置指令再進(jìn)行插補(bǔ),同時(shí)由插補(bǔ)運(yùn)算計(jì)算的理論位置與位置反饋模塊反饋的實(shí)際位置進(jìn)行比較,得到跟隨誤差,經(jīng)誤差補(bǔ)償后形成真正的電機(jī)實(shí)際位置,并由跟隨誤差算出速度指令值,最后產(chǎn)生PWM脈沖控制電機(jī)運(yùn)行。在本系統(tǒng)中,TMS320F2812芯片作為總控制器,統(tǒng)籌協(xié)調(diào)數(shù)控系統(tǒng)中各個(gè)軸的運(yùn)動(dòng),而伺服驅(qū)動(dòng)器則作為執(zhí)行元件控制每個(gè)電機(jī)的實(shí)際運(yùn)行。運(yùn)動(dòng)控制卡與伺服驅(qū)動(dòng)器各司其職,相互配合,都發(fā)揮了各自的長處。由此組成的數(shù)控系統(tǒng)開放性好,可靠性高,能夠很好地滿足現(xiàn)階段大多數(shù)用戶對多軸聯(lián)動(dòng)數(shù)控系統(tǒng)的要求。
系統(tǒng)硬件總體設(shè)計(jì)功能框圖如圖1所示。

本系統(tǒng)的運(yùn)動(dòng)控制卡所選用的DSP芯片TMS320F2812有2個(gè)事件管理器(EVA、EVB),每個(gè)事件管理器可以產(chǎn)生5路獨(dú)立的PWM信號,其中比較寄存器3路,通用定時(shí)器2路。理論上講,1片TMS320F2812芯片最多可以控制10個(gè)伺服驅(qū)動(dòng)器。而常見的數(shù)控系統(tǒng)有三軸聯(lián)動(dòng)、五軸聯(lián)動(dòng)等,運(yùn)動(dòng)控制卡可以控制的電機(jī)數(shù)目遠(yuǎn)大于一個(gè)數(shù)控系統(tǒng)中電機(jī)的數(shù)目。因此,本系統(tǒng)的“PC+運(yùn)動(dòng)控制卡”數(shù)控系統(tǒng)不僅能夠滿足多軸聯(lián)動(dòng)數(shù)控系統(tǒng)的基本要求,還具有很高的擴(kuò)展性,甚至可以實(shí)現(xiàn)多個(gè)數(shù)控機(jī)床聯(lián)合控制,極大地增強(qiáng)了多軸聯(lián)動(dòng)數(shù)控系統(tǒng)的功能。

2 雙口RAM接口電路設(shè)計(jì)
2.1 雙口RAM與DSP和CH365的連接
本系統(tǒng)選用雙口RAM芯片IDT7025作為DSP與CH365雙向通信的緩沖芯片。IDT7025芯片是一款高速的8K16位雙口靜態(tài)RAM,它提供2個(gè)獨(dú)立的端口,允許兩個(gè)(左、右)端口同時(shí)讀/寫數(shù)據(jù),每個(gè)端口具有自己獨(dú)立的控制信號線、地址線和數(shù)據(jù)線,可高速存取數(shù)據(jù),可與大多數(shù)高速處理器配合使用,而無需插入等待狀態(tài)。
雙口RAM允許2個(gè)CPU同時(shí)讀取任何存儲(chǔ)單元(包括同時(shí)讀同一地址單元),但不允許同時(shí)寫或一讀一寫同一地址單元。利用雙口RAM進(jìn)行通信的關(guān)鍵是,如何處理好爭用沖突現(xiàn)象,避免由此而產(chǎn)生的讀/寫錯(cuò)誤。常用的雙口RAM解決地址競爭的途徑有:令牌傳遞法、基于郵箱機(jī)制的INT中斷法以及插入等待周期的BUSY法等。本系統(tǒng)采用第2種方法。
下面簡要介紹一下IDT7025中斷的原理:當(dāng)用戶要用到中斷功能時(shí),內(nèi)存中的1FFE和1FFF單元將作為中斷標(biāo)志郵箱傳遞命令信息。當(dāng)左端口定義為寫狀態(tài)(CEL=R/WL=VIL),且在內(nèi)存1FFF中進(jìn)行寫操作時(shí),右端口的中斷標(biāo)志INTR為低電平,可以向右端口發(fā)出中斷請求;當(dāng)右端口對地址1FFF進(jìn)行訪問時(shí)(CER=OER=VIL),無論讀寫都可以清除右端口中斷標(biāo)志INTR。相反也是一樣的,當(dāng)右端口對內(nèi)存1FFE進(jìn)行寫操作時(shí),左端口可以發(fā)出中斷請求;當(dāng)左端口訪問地址1FFE時(shí),清除左端口中斷標(biāo)志。使用中斷時(shí),向1FFF和1FFE寫的內(nèi)容由用戶自行定義,本系統(tǒng)中設(shè)定:申請中斷時(shí)向郵箱寫入1或其他大于O的整數(shù),清除中斷時(shí)向郵箱寫入O。
系統(tǒng)中雙口RAM IDT7025作為DSP與PC機(jī)之間的共享數(shù)據(jù)空間,右端口與CH365相連,映射到CH365的存儲(chǔ)空間;左端口與DSP相連,映射到TMS320F2812的區(qū)域0。由于IDT7025的供電電壓為5 V,因此,在DSP芯片與雙口RAM芯片之間加入了一個(gè)電壓轉(zhuǎn)換芯片SN74LVTHl6245,其硬件連接示意圖如圖2所示。將圖2中的雙口RAM劃為2個(gè)存儲(chǔ)空間,即PC通過寫高4 KB空間向DSP發(fā)送指令,DSP通過寫低4KB空間向PC機(jī)反饋數(shù)據(jù)。

2.2 數(shù)據(jù)總線擴(kuò)展電路設(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ù)總線擴(kuò)展的使能信號。
TMS320F2812與IDT7025的數(shù)據(jù)寬度皆為16位,由于TMS320F2812的I/O電源為3.3 V,IDT7025的電源為5 V,因此二者數(shù)據(jù)線之間需要連接一個(gè)電壓轉(zhuǎn)化芯片SN74LVTHl6245,并通過XR/W信號控制數(shù)據(jù)傳遞的方向;而CH365的數(shù)據(jù)寬度為8位,為使其與16位雙口RAM正常通信,系統(tǒng)利用CPLD對CH365的數(shù)據(jù)總線進(jìn)行了擴(kuò)展。CPLD芯片選用A1tera公司生產(chǎn)的EPM7064,通過CH365地址線A0的使能對16位數(shù)據(jù)進(jìn)行分時(shí)讀/寫,從而解決了數(shù)據(jù)總線的擴(kuò)展問題。其內(nèi)部邏輯電路如圖3所示,其中主要包括2個(gè)鎖存器(74373b),和2個(gè)三態(tài)門緩沖器(74541b)。

CH365支持PC機(jī)以單字節(jié)、雙字節(jié)(字)、四字節(jié)(雙字)為單位對I/O端口或存儲(chǔ)器進(jìn)行讀/寫。在多字節(jié)連續(xù)讀/寫操作期間,CH365每讀完一個(gè)字節(jié)數(shù)據(jù)后,就會(huì)自動(dòng)將偏移地址加1,以指向下一字節(jié)的偏移地址。在本系統(tǒng)中,將16位數(shù)據(jù)的讀/寫轉(zhuǎn)化為8位數(shù)據(jù)(1字節(jié))的分時(shí)讀/寫。CH365讀取雙口RAM數(shù)據(jù)時(shí),首先CH365_A0為低電平,低8位數(shù)據(jù)通過三態(tài)門U3直接讀入到CH365中,高8位數(shù)據(jù)鎖存到鎖存器U4中;然后偏移地址自動(dòng)加1,CH365_A0為高電平,高8位數(shù)據(jù)由鎖存器U4讀入CH365。CH365向雙口RAM寫入數(shù)據(jù)時(shí),首先CH365_A0為低電平,鎖存器U1使能信號G高電平有效,三態(tài)門U2無效(GN2為高電平),低8位寫入鎖存器;然后偏移地址加1,CH365_A0為高電平,三態(tài)門U2使能信號有效,高8位數(shù)據(jù)直接寫入雙口RAM,同時(shí)低8位數(shù)據(jù)通過鎖存器U1寫入雙口RAM(OEN為低電平)。
對上述邏輯關(guān)系用“MAX+PLUS”進(jìn)行仿真后,得到圖4所示的時(shí)序。圖中RAM_DD和CH365_DD表示仿真結(jié)果,從圖中可知仿真結(jié)果完全符合設(shè)計(jì)要求。由此可見,利用最低地址位CH365_A0的不同電平,CH365通過兩次連續(xù)的讀或?qū)懖僮鳎晒Φ貙?shí)現(xiàn)了對雙口RAM中16位數(shù)據(jù)的讀/寫,并且數(shù)據(jù)的讀/寫時(shí)序完全符合CH365的讀/寫時(shí)序,可以方便地進(jìn)行軟件編程。

3 上/下位機(jī)通信軟件設(shè)計(jì)
在硬件電路實(shí)現(xiàn)之后,把完成的板卡插于PC機(jī)的PCI插槽,上電后根據(jù)系統(tǒng)提示安裝CH365驅(qū)動(dòng)程序,在正確安裝好硬件之后,利用API函數(shù),就可以在VC環(huán)境下編寫和調(diào)試PCI和DSP的通信軟件了。
由上述可知,雙口RAM的高4 KB空間用于PC機(jī)向DSP下載數(shù)據(jù),如果數(shù)據(jù)大于4 KB,則存在著一次不能夠把全部數(shù)據(jù)下載到DSP中的問題。因此,采取了向雙口RAM中循環(huán)寫入數(shù)據(jù)的辦法,即PC機(jī)向雙口RAM一次只寫入4 KB數(shù)據(jù),接著向DSP申請中斷。DSP響應(yīng)中斷一次性將4 KB數(shù)據(jù)復(fù)制到DSP其他大容量存儲(chǔ)空間(如擴(kuò)展SRAM)中,然后釋放雙口RAM空間。此時(shí)PC機(jī)便可再寫入4 KB數(shù)據(jù),如此循環(huán)往復(fù),直到將所有數(shù)據(jù)都寫入DSP中。部分代碼如下:


數(shù)據(jù)反饋功能主要是通過CH365響應(yīng)DSP中斷來實(shí)現(xiàn)的。DSP程序?qū)?shù)據(jù)寫入雙口RAM低4 KB空間后向CH365申請中斷,CH365響應(yīng)中斷將數(shù)據(jù)反饋到PC并顯示到人機(jī)界面。中斷函數(shù)部分代碼如下:


結(jié) 語
隨著計(jì)算機(jī)技術(shù)和電子技術(shù)的發(fā)展,將運(yùn)算高速、功能強(qiáng)大的數(shù)字信號處理器應(yīng)用于運(yùn)動(dòng)控制,可以實(shí)現(xiàn)復(fù)雜的控制算法和實(shí)現(xiàn)高精度、高速度、多軸聯(lián)動(dòng),在數(shù)控應(yīng)用中,將會(huì)占據(jù)越來越重要的地位。而快速準(zhǔn)確的通信又是這種運(yùn)動(dòng)控制器的基礎(chǔ)。本文介紹的通信方式,具有性能可靠,硬件結(jié)構(gòu)簡單,價(jià)格便宜的優(yōu)點(diǎn),具有較好的應(yīng)用前景。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉