<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > CNC動(dòng)態(tài)卡在總線方式下的實(shí)現(xiàn)

          CNC動(dòng)態(tài)卡在總線方式下的實(shí)現(xiàn)

          ——
          作者:李戈文 時(shí)間:2007-01-26 來源:《現(xiàn)代電子技術(shù)》 收藏


          1 引言

          本文引用地址:http://www.ex-cimer.com/article/21411.htm

          20世紀(jì)90年代以來,隨著現(xiàn)代微電子技術(shù),計(jì)小閉式系統(tǒng)沒有一個(gè)強(qiáng)有力的體系結(jié)構(gòu)給以支足以持,在控制軟件開發(fā)讓缺乏持久的開發(fā)能力,并且不能進(jìn)行高可靠性的軟件擴(kuò)展,不能滿足用戶對(duì)其進(jìn)行二次開發(fā)的需求,因此人們提出了放開式的數(shù)控系統(tǒng)方案,他具有加工控制的高速化、高精度化,應(yīng)用環(huán)境網(wǎng)絡(luò)化,集成化,體系結(jié)構(gòu)柔性化,開放化等特點(diǎn)。

          現(xiàn)有的放開式數(shù)控系統(tǒng)實(shí)現(xiàn)方案主要采用pc機(jī)和數(shù)控系統(tǒng)結(jié)合的方法,pc機(jī)作為上位機(jī)實(shí)現(xiàn)較為復(fù)雜的網(wǎng)絡(luò)通信,人機(jī)交互等功能,數(shù)控系統(tǒng)作為下位機(jī)將上位機(jī)輸入的運(yùn)行參數(shù)經(jīng)過處理交給執(zhí)行部件執(zhí)行,同時(shí)將檢測(cè)系統(tǒng)的反饋信息上傳給上位機(jī)實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,各個(gè)模塊之間協(xié)調(diào)工作互不干擾,給系統(tǒng)升級(jí)帶來了方便。

          放開式系統(tǒng)動(dòng)態(tài)控制器的核心是dsp,它具有運(yùn)算速度快,支持復(fù)雜運(yùn)動(dòng)算法的特點(diǎn),可以滿足高精度運(yùn)動(dòng)控制的要求,因此,以dsp為核心的多軸動(dòng)態(tài)控制卡越來越廣泛地應(yīng)用在運(yùn)動(dòng)控制系統(tǒng)中,將多軸動(dòng)態(tài)控制卡插在pc機(jī)擴(kuò)展槽上,就可以組成高精度運(yùn)動(dòng)控制系統(tǒng),位置反饋信號(hào)的采集、閉環(huán)控制計(jì)算及控制量的輸出均由動(dòng)態(tài)控制卡完成,極大的提高了運(yùn)算速度和控制響應(yīng)速度,將工控機(jī)的資源從煩瑣的數(shù)據(jù)采集和計(jì)算中解決出來,從而可以更好的實(shí)施整個(gè)控制系統(tǒng)的管理。

          作者經(jīng)過綜合調(diào)研,采用ti公司的2407系列dsp作為微處理單元,采用pci總線作為并行總線與pc機(jī)進(jìn)行通訊,同時(shí)采用現(xiàn)在比較流行的現(xiàn)場(chǎng)總線技術(shù)同現(xiàn)場(chǎng)設(shè)備進(jìn)行通訊,所以這是一個(gè)基于現(xiàn)場(chǎng)總線和pci總線的智能動(dòng)態(tài)控制器。

          2 動(dòng)態(tài)控制器的系統(tǒng)構(gòu)成

          2.1 現(xiàn)場(chǎng)總線

          基于pci總線的動(dòng)態(tài)控制器采用現(xiàn)場(chǎng)總線技術(shù),解決了傳統(tǒng)串行總線傳輸速率低,響應(yīng)速度慢,出錯(cuò)率高等缺點(diǎn),同時(shí)由于現(xiàn)場(chǎng)總線采用數(shù)字信號(hào)而不是傳統(tǒng)的模擬信號(hào)作為通信手段,解決了傳統(tǒng)數(shù)控系統(tǒng)中的難以解決的零漂問題,簡(jiǎn)化了系統(tǒng)的實(shí)現(xiàn)方案,同時(shí)這種總線有利于放開式系統(tǒng)的發(fā)展。

          can是德國(guó)bosch公司為解決現(xiàn)代汽車中眾多控制與測(cè)試儀器之間的數(shù)控交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,他是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光纖,通信速率可達(dá)1mb/s,該協(xié)議由數(shù)據(jù)鏈路層和物理層組成,數(shù)據(jù)鏈路層分為邏輯鏈路控制子層(lic)和媒體訪問控制子層(mac)?,F(xiàn)在已形成該協(xié)議的國(guó)際標(biāo)準(zhǔn)(iso1898),can總線通信接口中集成了can協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的幀處理(包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余校驗(yàn)等)、can總線有can2.0a和can2.0b兩種協(xié)議,can協(xié)議的一個(gè)最大的特點(diǎn)是對(duì)通信數(shù)據(jù)塊進(jìn)行編碼(取消了傳統(tǒng)的對(duì)站地址編碼),can協(xié)議采用crc校驗(yàn)并提供相應(yīng)的錯(cuò)誤信息處理功能,保證了數(shù)據(jù)通信的可靠性。

          can總線以其可靠性高、通信速率快、穩(wěn)定性好,抗干擾能力強(qiáng),開發(fā)成本低等特點(diǎn), 而被工控領(lǐng)域普遍采用,被公認(rèn)為最有前途的現(xiàn)場(chǎng)總線之一。

          2.2 pci 總線

          作為目前微型計(jì)算機(jī)主流總線標(biāo)準(zhǔn)的pci總線,原來是專門為了提高系統(tǒng)數(shù)據(jù)傳輸性能,現(xiàn)在作為高性能外設(shè)接口,與傳統(tǒng)的isa總線相比,pci總線有以下特點(diǎn):

          突出的數(shù)據(jù)傳輸性能 總線寬度32位(可擴(kuò)展到64位,)支持突發(fā)傳輸方式,pci總線規(guī)范2.0版支持3mhz總線操作,32位33mhz總線在讀寫操作中峰值傳輸速率達(dá)到132mb/s(isa最大傳輸速率8mb/s);

          良好的兼容性能 pci總線部件和插卡的設(shè)計(jì)獨(dú)立于處理器, 定義了3.3-5v兩種信號(hào)環(huán)境,5-3.3v的組件技術(shù)可以是使電平平穩(wěn)過渡;

          即插即用 每個(gè)pci設(shè)備上都有配置空間能實(shí)現(xiàn)自動(dòng)配置,使系統(tǒng)bios和操作系統(tǒng)的系統(tǒng)層軟件能自動(dòng)配置系統(tǒng)部件和插卡;

          線主控和同步操作,pci總線接口芯片可以主控總線,其同步操作可以保證cpu和總線主控同時(shí)操作;

          總線仲裁機(jī)制,pci總線仲裁能在另一個(gè)總線主設(shè)備在pci總線上執(zhí)行傳輸時(shí)發(fā)出,從而提供系統(tǒng)數(shù)據(jù)傳輸性能。

          在pci總線的設(shè)計(jì)上采用了plx公司的產(chǎn)品pci9052,這是一種高性能的pci總線控制器,專門為開發(fā)pci板卡而設(shè)計(jì)的一種pci總線控制器,圖1是放開式數(shù)控系統(tǒng)總體結(jié)構(gòu)框圖。

          2.3 微處理芯片

          動(dòng)態(tài)控制器板卡上有一個(gè)高速dsp芯片作為運(yùn)動(dòng)控制模塊的控制器,該設(shè)計(jì)選擇it公司生產(chǎn)的tms320lf2407作為動(dòng)態(tài)控制卡的控制芯片,由于tms320xx系列dsp芯片是專門為控制電機(jī)設(shè)計(jì)的一款高性能低價(jià)位的產(chǎn)品,同時(shí)作為控制電機(jī)的伺服控制系統(tǒng)也是采用的這款dsp芯片作為伺服控制器,所以具有良好的通訊和系統(tǒng)兼容性能,tms3201lf2407內(nèi)部還有一個(gè)can控制器模塊,這樣就不需要另外選擇一個(gè)can控制器,簡(jiǎn)化了電路設(shè)計(jì),同時(shí)提高了系統(tǒng)性能。

          由于dsp芯片和pc機(jī)都是控制器,他們對(duì)存儲(chǔ)器編址是不同的,為了統(tǒng)一編碼,在pci控制器和dsp之間要加一個(gè)雙口ram來連接2個(gè)控制器。idt7024是idt公司生產(chǎn)的一款雙口ram,他和普遍的ram不同之處是它有2個(gè)地址4單元,1個(gè)存儲(chǔ)單元,對(duì)于pc機(jī)來說他就對(duì)對(duì)應(yīng)于一段內(nèi)存單元,對(duì)于dsp來說他可以對(duì)應(yīng)于一段片外存儲(chǔ)單元,這樣就解決了dsp和pc機(jī)之間的通信問題,本設(shè)計(jì)采用的是通用pc機(jī)加實(shí)時(shí)控制單元的遞階式結(jié)構(gòu)。采用放開式數(shù)控系統(tǒng)上pc機(jī)的windows環(huán)境形成良好的人機(jī)界面,利用pc機(jī)的資源優(yōu)勢(shì),放開式結(jié)構(gòu)平臺(tái)(動(dòng)態(tài)控制器)可以集成不同開發(fā)商提供的軟件并適合連網(wǎng)需要,且具有與硬件無(wú)關(guān)的特性,設(shè)備層高速度、高可靠性,標(biāo)準(zhǔn)化的數(shù)字通訊,可滿足用戶個(gè)性化要求且保證高性能、低成本。

          3 系統(tǒng)硬件設(shè)計(jì)原理

          基于can總線動(dòng)態(tài)控制卡的硬件結(jié)構(gòu)如圖2所示,從個(gè)人pc機(jī)中傳入的參數(shù)如:加工參數(shù),插補(bǔ)軌跡以及一些狀態(tài)信息,通過pci總線傳到pci控制器pci9052的高速緩存fifo中,pci9052作為總線主設(shè)備將pc機(jī)傳來的信息經(jīng)過緩存最終存儲(chǔ)到雙口ramidt7024內(nèi),由于雙口ram映射為pc機(jī)的一部分內(nèi)存地址,所以pc機(jī)就像操作內(nèi)存一樣將信息存儲(chǔ)到雙口ram,等待dsp的讀取,dsp定時(shí)從雙口ram中讀取pc機(jī)傳來的各種控制信息,dsp的主要功能是根據(jù)pc機(jī)送來得插補(bǔ)信息,通過插補(bǔ)算法形成伺服控制模塊能夠接受的動(dòng)態(tài)信息,通過can總線將運(yùn)動(dòng)信息傳遞到伺服控制器,通過伺服控制器來驅(qū)動(dòng)伺服電機(jī)運(yùn)動(dòng),從而控制數(shù)控機(jī)床的運(yùn)動(dòng)。

          在設(shè)計(jì)中由于pci9052,idt7024都是5v元件,tms2320lf2407屬于3.3v器件,同時(shí)pci插槽提供5v電源模塊,所以電路只使用了電壓轉(zhuǎn)換電路將5v信號(hào)轉(zhuǎn)變?yōu)?.3v信號(hào),如圖2,由于dsp內(nèi)嵌can控制器,所以外部只需要一個(gè)pcac82520t-can收發(fā)器就可以直接掛在can總線上進(jìn)行通訊。

          4 數(shù)控系統(tǒng)的軟件設(shè)計(jì)

          放開式cac系統(tǒng)解決軟件公用的最主要措施是采用通用的操作系統(tǒng),本系統(tǒng)設(shè)計(jì)pci動(dòng)態(tài)控制卡可以在windows90/2000/xp中文操作系統(tǒng)下正常工作,軟件框圖如圖3所示。

          為了使系統(tǒng)達(dá)到控制要求,需要解決如下幾個(gè)關(guān)鍵問題:

          (1)保證系統(tǒng)相應(yīng)的實(shí)時(shí)性

          系統(tǒng)對(duì)外界信息以足夠快的速度進(jìn)行處理,并在一定的時(shí)間內(nèi)作出響應(yīng),本控制系統(tǒng)是利用windows中斷保證實(shí)時(shí)響應(yīng);

          (2)協(xié)調(diào)的進(jìn)行多任務(wù)調(diào)度

          cnc系統(tǒng)具有多種不同優(yōu)先級(jí)任務(wù),要求系統(tǒng)軟件能合理,有序地調(diào)度這些任務(wù)的運(yùn)行,多任務(wù)意味著多個(gè)任務(wù)能并行運(yùn)行,調(diào)度的關(guān)鍵在于按照一定的優(yōu)先權(quán),事件發(fā)生的順序合理的切換各任務(wù)的狀態(tài);

          (3)提供任務(wù)通信機(jī)制

          由于cnc系統(tǒng)中各任務(wù)并否是孤立的,任務(wù)之間要完成信息交換和資源共享,cnc系統(tǒng)的通信形式有兩種,互斥和同步,互斥是針對(duì)不可共享資源的訪問問題,如大多數(shù)外部設(shè)備和共享的可讀寫數(shù)據(jù)區(qū),同步是指任務(wù)之間的協(xié)同工作,任務(wù)之間的相對(duì)速度有不可預(yù)見性,必須由任務(wù)通信機(jī)制達(dá)到同步;

          (4)提供定時(shí)和延時(shí)

          定時(shí)和延時(shí)功能一般由時(shí)鐘提供,cnc系統(tǒng)大部分任務(wù)都是依據(jù)定時(shí)或延遲條件來激活。

          5 驅(qū)動(dòng)程序

          pci設(shè)備的驅(qū)動(dòng)程序需要解決的問題,首先是即插即用的問題,既如何獲取系統(tǒng)分配給該設(shè)備的配置資源,然后是如何訪問設(shè)備i/ o內(nèi)存映射硬件,如何處理硬件中斷,最后還是解決和應(yīng)用程序的通訊問題。

          5.1 獲取系統(tǒng)分配的配置資源

          對(duì)于即插即用型設(shè)備,系統(tǒng)都是動(dòng)態(tài)分配系統(tǒng)資源的,如何獲取系統(tǒng)分配給這些內(nèi)存單元的地址是vxd驅(qū)動(dòng)程序需要解決的首要問題。在pci的配制周期機(jī)制中,主橋路提供了兩個(gè)寄存器用于對(duì)配置空間的操作,第一個(gè)是配置空間基地址寄存器canfig-address,雙字地址是cf8h,第二個(gè)是配置空間數(shù)據(jù)緩沖寄存器config-data,地址是cfch,對(duì)配置空間的操作是通過輸入一個(gè)值到設(shè)備的config-data寄存器,在此之后如果對(duì)config-data寄存器進(jìn)行讀寫操作,pci控制器就會(huì)將config-address寄存器中的值轉(zhuǎn)換成pci總線上所需要的配置周期。

          5.2 vxd與應(yīng)用程序的通訊

          vxd運(yùn)行在系統(tǒng)ring0級(jí),處理系統(tǒng)底層設(shè)備,應(yīng)用程序利用其提供的接口服務(wù)來處理硬件,windows允許vxd和應(yīng)用程序之間進(jìn)行雙向通信。

          在windows中,win23應(yīng)用程序?qū)xd的通訊方法只有一種,利用設(shè)備輸入輸出控制函數(shù)deviceiocontrol()來實(shí)現(xiàn),利用createfile()函數(shù)加載vxd獲得vxd設(shè)備句柄,如果調(diào)用成功,win32應(yīng)用程序就可以調(diào)用deviceiocontrol()程序與vxd進(jìn)行通訊。

          vxd的命令代碼需要根據(jù)其固定格式進(jìn)行定義,程序中共定義了2個(gè)命令代碼,分別用于對(duì)雙口靜態(tài)ram的讀寫操作和vxd對(duì)win32應(yīng)用程序異步過程調(diào)用時(shí)回調(diào)函數(shù)地址傳輸。

          在vxd中與deviceiocontrol()函數(shù)相對(duì)應(yīng)的是onw32deviceiocontrol()函數(shù),他w32_deviceiocontrol控制信息,當(dāng)win32應(yīng)用程序動(dòng)態(tài)加載vxd,動(dòng)態(tài)卸載vxd以及調(diào)用deviceiocontrol函數(shù)時(shí),onw32devicei0control()函數(shù)被觸發(fā),在這個(gè)函數(shù)的參數(shù)中,也包括應(yīng)用程序調(diào)用vxd的命令代碼,vxd根據(jù)他們的值進(jìn)行相應(yīng)的處理。

          另外,由于采用中斷方式對(duì)dsp處理的數(shù)據(jù)進(jìn)行讀取,所以中斷事件發(fā)生時(shí), 需要vxd異步通知win32應(yīng)用程序,設(shè)計(jì)時(shí)在應(yīng)用程序中創(chuàng)建了兩個(gè)線程,一個(gè)用于等待中斷事件,當(dāng)中斷事件發(fā)生時(shí),讀取dsp送到雙口ram中數(shù)據(jù),另一個(gè)用于顯示數(shù)據(jù)。

          5.3 訪問i/o以及內(nèi)存

          在s599的串行存儲(chǔ)器中,將pci配置基礎(chǔ)地址寄存器badr1配置為4k,16位寄存器空間,badr2設(shè)置為8個(gè)自己的i/o空間,基地址寄存器badro對(duì)應(yīng)s5933內(nèi)部16個(gè)雙字節(jié)pci總線操作寄存器,當(dāng)利用查找方式獲得配置空間數(shù)據(jù)時(shí),即可得到存儲(chǔ)器空間基地址和i/o端口基地址。

          5.4 處理中斷

          當(dāng)dsp處理數(shù)據(jù)寫滿2k的存儲(chǔ)器空間時(shí)pci將產(chǎn)生中斷,中斷信號(hào)從配置空間寄存器中讀出,pci設(shè)備分配的硬件中斷信號(hào)是共享中斷,必須使用類vsharedhardwareint的中斷通知事件處理函數(shù)onsharedhardwareint()。

          6 應(yīng)用程序的編寫

          6.1 人機(jī)接口模塊

          使用vc編寫基于pci總線動(dòng)態(tài)控制器板卡的應(yīng)用程序,主要利用設(shè)備輸入輸出控制函數(shù)deviceiocontrol(),將界面上對(duì)數(shù)控機(jī)床的各個(gè)參數(shù)轉(zhuǎn)換數(shù)據(jù)送到底層的vxd進(jìn)行通信。

          6.2 解決程序模塊

          對(duì)從應(yīng)用程序中人機(jī)界面模塊中傳入的參數(shù)進(jìn)行解釋,完成將上位機(jī)輸入信息解釋成下位機(jī)dsp能夠執(zhí)行的語(yǔ)言,程序解釋模塊固化到pci板卡的dsp片內(nèi)rom中。

          6.3 plc接口模塊

          實(shí)現(xiàn)pci控制卡與現(xiàn)場(chǎng)總線上的plc模塊之間的通訊,由于can總線的特點(diǎn)是可以將對(duì)plc模塊的控制作為一個(gè)應(yīng)用模塊做在pci控制卡上,從而實(shí)現(xiàn)了模塊化控制。

          6.4 插補(bǔ)模塊

          在加工信息解釋的基礎(chǔ)上,調(diào)用運(yùn)動(dòng)學(xué)算法模塊,將運(yùn)動(dòng)平臺(tái)在操作空間的運(yùn)動(dòng)轉(zhuǎn)變?yōu)榭臻g的伺服運(yùn)動(dòng),實(shí)時(shí)生成刀具的運(yùn)動(dòng)軌跡,并將各伺服軸的移動(dòng)指令送給伺服模塊。

          6.5 運(yùn)動(dòng)算法模塊

          主要為伺服驅(qū)動(dòng)提供逆解、速度映射算法,為加工狀態(tài)的實(shí)時(shí)仿真及精度補(bǔ)償提供正解算法。

          7 結(jié)語(yǔ)

          采用pc+動(dòng)態(tài)控制卡模式,實(shí)現(xiàn)數(shù)控系統(tǒng)的放開式設(shè)計(jì)方法開發(fā)周期短,系統(tǒng)可靠性高,便于機(jī)床功能擴(kuò)展,由于軟件采用了模塊化,同時(shí)基于組件技術(shù),界面友好,操作方便,進(jìn)行軟件升級(jí)以及用戶進(jìn)行二次開發(fā)都比較方便。

          伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理




          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();