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