劉 涼,趙新華,趙連玉
(天津理工大學(xué) 機(jī)械工程學(xué)院,天津 300384)
運(yùn)動(dòng)控制卡作為開(kāi)放式數(shù)控系統(tǒng)的核心控制部件,一直是國(guó)內(nèi)外科研機(jī)構(gòu)研究的重點(diǎn),其設(shè)計(jì)的合理性對(duì)提高自身性能以及整個(gè)數(shù)控系統(tǒng)的性能均具有重要意義。近些年來(lái),隨著微電子技術(shù)、數(shù)字信號(hào)處理技術(shù)以及嵌入式技術(shù)的發(fā)展,運(yùn)動(dòng)控制卡的集成度和可靠性不斷得到提高,并逐漸從數(shù)控系統(tǒng)中分離出來(lái),轉(zhuǎn)而成為制造業(yè)領(lǐng)域中一個(gè)獨(dú)立的控制類(lèi)產(chǎn)品。在此類(lèi)產(chǎn)品中,由美國(guó)Delta Tau Data Systems公司生產(chǎn)的高性能系列可編程多軸控制器(Programmable Multi Axis Controller,簡(jiǎn)稱(chēng)PMAC)以其強(qiáng)大的運(yùn)動(dòng)控制功能、良好的系統(tǒng)兼容性和靈活的可擴(kuò)展性在各種工業(yè)控制領(lǐng)域都得到了廣泛的應(yīng)用,被公認(rèn)為業(yè)內(nèi)最成熟的運(yùn)動(dòng)控制類(lèi)產(chǎn)品之一。PMAC卡不僅可以獨(dú)立地進(jìn)行數(shù)據(jù)處理和程序運(yùn)行等工作,而且還對(duì)各項(xiàng)任務(wù)的優(yōu)先級(jí)進(jìn)行了精心地設(shè)置,以確保它們能夠被快速合理地完成。這樣PMAC卡就成為了一臺(tái)實(shí)時(shí)多任務(wù)的計(jì)算機(jī)[1],可以作為下位機(jī)應(yīng)用到實(shí)際工程之中。雖然目前針對(duì)PMAC控制卡實(shí)際應(yīng)用方面的文獻(xiàn)較多[2],但對(duì)于其硬件結(jié)構(gòu)和運(yùn)行機(jī)理方面的研究文獻(xiàn)卻相對(duì)較少。本文較為細(xì)致地研究了一種8軸PMAC-PC運(yùn)動(dòng)控制卡和雙端口RAM卡的硬件結(jié)構(gòu),分析了它們的工作原理與總線通訊方式,并對(duì)其硬件結(jié)構(gòu)設(shè)計(jì)的合理之處進(jìn)行了討論。
PMAC-PC卡的基板上共有22種芯片,可分為模擬電路和數(shù)字電路兩部分,其結(jié)構(gòu)圖如圖1所示。基板的核心是門(mén)陣列單元,它由兩片可編程門(mén)陣列芯片構(gòu)成,分別負(fù)責(zé)4個(gè)運(yùn)動(dòng)軸的信號(hào)處理工作。
模擬電路部分的核心是D/A轉(zhuǎn)換單元,它由8片16位串行輸入的D/A轉(zhuǎn)換芯片AD1851組成,其正負(fù)5伏的工作電源由模擬電路供電單元的正負(fù)電壓調(diào)節(jié)器來(lái)提供。數(shù)字電路部分的時(shí)鐘分頻單元
為它提供了2.4576Mhz的時(shí)鐘頻率信號(hào);CPU板上的控制芯片DSP56002所提供的DAC控制信號(hào)和待轉(zhuǎn)換的并行DAC數(shù)據(jù)信號(hào)以及用于同步的時(shí)鐘信號(hào)通過(guò)門(mén)陣列單元分別生成相應(yīng)的DAC片選信號(hào)和串行化的DAC數(shù)據(jù)信號(hào)。這些信號(hào)最終通過(guò)光電耦合單元提供給D/A轉(zhuǎn)換單元來(lái)產(chǎn)生各軸所需的模擬控制信號(hào)。當(dāng)伺服驅(qū)動(dòng)器接收到這些信號(hào)后便對(duì)各軸的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)更新。
圖1 PMAC-PC運(yùn)動(dòng)控制卡基板的硬件結(jié)構(gòu)圖
數(shù)字電路部分可以分為三個(gè)功能模塊:伺服環(huán)處理模塊、外設(shè)接口模塊和總線通訊模塊。在伺服環(huán)處理模塊中,時(shí)鐘分頻單元首先對(duì)CPU板上有源晶振所提供的19.6608Mhz時(shí)鐘頻率信號(hào)進(jìn)行分頻處理,進(jìn)而產(chǎn)生相頻率、伺服頻率和編碼器采樣頻率,這些信號(hào)最終輸入給門(mén)陣列單元用于處理?yè)Q向更新任務(wù)和伺服更新任務(wù)。其中換向更新任務(wù)的優(yōu)先級(jí)處于第二位,它負(fù)責(zé)多相電機(jī)的換向工作,換向周期由相頻率決定,不過(guò)為每臺(tái)電機(jī)換向需要額外占用兩個(gè)模擬量輸出通道,所以工程中通常選擇由驅(qū)動(dòng)器來(lái)?yè)Q向。伺服更新任務(wù)的優(yōu)先級(jí)處于第三位,它負(fù)責(zé)檢測(cè)和更新每臺(tái)電機(jī)的運(yùn)行狀態(tài)以及數(shù)據(jù)采集和報(bào)表生成工作,伺服更新周期由伺服頻率決定。在每個(gè)更新周期中,由于門(mén)陣列單元負(fù)責(zé)采集和處理由伺服驅(qū)動(dòng)器提供的各個(gè)電機(jī)的狀態(tài)反饋信息(包括復(fù)位信號(hào)、極限位信號(hào)、故障信號(hào)和編碼器差分輸入信號(hào)),所以DSP56002可以直接讀取當(dāng)前被控對(duì)象的位置值,并根據(jù)該值與計(jì)算出的下一個(gè)受控位置值的偏差來(lái)決定當(dāng)前系統(tǒng)速度環(huán)的控制量。此外它還可以對(duì)伺服電機(jī)的使能狀態(tài)進(jìn)行在線控制。外設(shè)接口模塊為系統(tǒng)提供了豐富的擴(kuò)展功能,用戶可以根據(jù)使用情況自行選擇由并行接口單元擴(kuò)展的顯示器接口、控制面板接口、手輪接口、通用I/O接口以及串行通訊接口等[3]??偩€通訊模塊實(shí)現(xiàn)了PMAC-PC卡與主機(jī)通訊的功能,通訊的方式可分為輪詢和中斷兩種。輪詢方式主要通過(guò)軟件編程來(lái)實(shí)現(xiàn),但執(zhí)行效率較低;中斷方式執(zhí)行效率較高,不過(guò)需要硬件的支持。PMAC-PC卡利用一片中斷控制器82C59A來(lái)處理INPOS、BFUL、EROR、F1ER、JEQU和HREQ的內(nèi)部中斷請(qǐng)求信號(hào)以及來(lái)自JOPT接口的MI1和MI2中斷請(qǐng)求信號(hào)。ISA總線的中斷信號(hào)采用的是邊沿觸發(fā)方式,當(dāng)中斷發(fā)生時(shí),主機(jī)通過(guò)驅(qū)動(dòng)程序通知邏輯控制單元和總線收發(fā)器讀取中斷類(lèi)型碼并響應(yīng)該中斷。只有PMAC卡的高8位地址跳線值與ISA總線上所對(duì)應(yīng)的高8位地址值相同時(shí),地址比較單元才會(huì)產(chǎn)生使能信號(hào),通知這兩個(gè)單元完成以上的通訊工作。
圖2 CPU板與雙端RAM卡的硬件結(jié)構(gòu)圖
PMAC-PC卡的CPU板上一共有10種芯片,可分為6個(gè)工作單元,其結(jié)構(gòu)圖如圖2所示,圖中各種信號(hào)線的含義與圖1相同。CPU板的核心是摩托羅拉公司生產(chǎn)的24位定點(diǎn)數(shù)字信號(hào)處理器——DSP56002,其時(shí)鐘頻率為19.6608Mhz,由外部有源晶振來(lái)提供。DSP的端口B和端口C分別工作在主機(jī)接口模式和串行通訊接口模式,并分別與基板上的總線通訊模塊和JRS422接口相連,來(lái)實(shí)現(xiàn)控制卡的并行與串行通信。系統(tǒng)中512K的快閃存儲(chǔ)器用于存儲(chǔ)系統(tǒng)固件(Firmware)和用戶程序,在上電和復(fù)位時(shí),其內(nèi)容會(huì)拷貝到384K的快速存儲(chǔ)器中以便系統(tǒng)程序的快速訪問(wèn)。緩沖/驅(qū)動(dòng)單元一方面將門(mén)陣列單元提供的電機(jī)狀態(tài)反饋信息傳送給DSP,另一方面再將DSP計(jì)算出的控制量傳送給門(mén)陣列單元。邏輯控制單元負(fù)責(zé)協(xié)調(diào)與同步CPU板的各項(xiàng)處理工作。監(jiān)測(cè)單元主要由電源監(jiān)控芯片DS1231和反向觸發(fā)器構(gòu)成,當(dāng)供電低于4.75V時(shí),它將產(chǎn)生非屏蔽中斷信號(hào),通知DSP觸發(fā)看門(mén)狗定時(shí)器,禁用整個(gè)控制卡,并點(diǎn)亮紅色報(bào)警燈;當(dāng)供電低于4.5V時(shí),監(jiān)測(cè)單元將產(chǎn)生DSP的復(fù)位信號(hào)。
PMAC-PC卡使用的總線通訊標(biāo)準(zhǔn)是由IEEE 966協(xié)會(huì)在1987年正式通過(guò)的工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(Industry Standard Architecture),即ISA總線標(biāo)準(zhǔn)。這種總線的前身是IBM公司在1984年開(kāi)發(fā)的AT總線,它支持8位或16位的數(shù)據(jù)操作,最高工作頻率為8Mhz,實(shí)際傳輸速率的最大值為8Mbyte/s。而PMAC-PC卡則是作為ISA平臺(tái)下的擴(kuò)展I/O卡來(lái)工作,其地址范圍可以設(shè)置在前4K的I/O地址空間之內(nèi)。出于對(duì)ISA平臺(tái)兼容性的考慮,它的數(shù)據(jù)線寬度只有8位,只能與主機(jī)進(jìn)行單字符的I/O通訊。雖然PMAC-PC卡將這項(xiàng)通訊任務(wù)的優(yōu)先級(jí)設(shè)置為最高級(jí),但是它所占用的計(jì)算時(shí)間卻不多。ISA平臺(tái)下的I/O訪問(wèn)周期如圖3所示[4]。
圖3 ISA平臺(tái)下的I/O與內(nèi)存訪問(wèn)周期
雙端口RAM(DPRAM)卡上一共有13種芯片,可分為7個(gè)工作單元,其核心是IDT公司生產(chǎn)的一片8K×16位的雙端口靜態(tài)RAM芯片,圖2是它的結(jié)構(gòu)圖。DPRAM兩個(gè)相互獨(dú)立的端口各自擁有一套地址線、控制線和數(shù)據(jù)線,可以同時(shí)訪問(wèn)同一片存儲(chǔ)器陣列的不同存儲(chǔ)單元。一方面,PMAC-PC卡CPU板上的地址線、控制線和數(shù)據(jù)線通過(guò)緩沖/驅(qū)動(dòng)單元以及接口端子P3、P4和J3、J4與DPRAM右端口相應(yīng)的信號(hào)線進(jìn)行了互聯(lián),從而實(shí)現(xiàn)了它對(duì)DPRAM右端口的訪問(wèn)。另一方面,主機(jī)可以通過(guò)ISA總線發(fā)送讀寫(xiě)命令來(lái)訪問(wèn)DPRAM左端口相應(yīng)的存儲(chǔ)單元。其具體過(guò)程是:系統(tǒng)每次上電后,驅(qū)動(dòng)程序會(huì)將DPRAM卡的高10位地址信息通過(guò)譯碼單元寫(xiě)入地址比較單元,當(dāng)主機(jī)訪問(wèn)它時(shí),地址比較單元與總線上的高10位地址信息相同,從而產(chǎn)生左端口的選通信號(hào)以及緩沖/驅(qū)動(dòng)單元的使能信號(hào),此后總線上的低14位地址信號(hào)和控制信號(hào)就可以進(jìn)入到緩沖/驅(qū)動(dòng)單元并為DPRAM的左端口提供訪問(wèn)控制信號(hào)和地址信號(hào),同時(shí)給總線收發(fā)器提供使能信號(hào)和方向控制信號(hào)(其中使能信號(hào)是通過(guò)邏輯控制單元最終產(chǎn)生的),從而完成主機(jī)與DPRAM卡之間的數(shù)據(jù)交換。而外設(shè)驅(qū)動(dòng)單元會(huì)根據(jù)左端口當(dāng)前是否處于忙狀態(tài)來(lái)驅(qū)動(dòng)總線信號(hào)IOCHRDY,通知總線控制器是否需要額外的時(shí)鐘周期來(lái)完成讀寫(xiě)操作。這樣DPRAM卡就可以作為運(yùn)動(dòng)控制卡和主機(jī)之間信息溝通的橋梁,一方面為PMAC-PC卡實(shí)時(shí)地添加軌跡參數(shù)或旋轉(zhuǎn)程序代碼,另一方面將被控對(duì)象當(dāng)前的運(yùn)行狀態(tài)傳送給主機(jī)。
與PMAC-PC卡不同,DPRAM卡是作為ISA平臺(tái)下的總線存儲(chǔ)器資源(Bus Memory Resource)來(lái)工作,其地址范圍通??梢栽O(shè)置在$B0000與$EC000之間[5]。用戶可以通過(guò)設(shè)置跳線E1來(lái)選擇是否讓它支持16位的數(shù)據(jù)傳輸。在支持的情況下,外設(shè)驅(qū)動(dòng)單元會(huì)驅(qū)動(dòng)總線信號(hào)MEMCS16*告知總線驅(qū)動(dòng)器去執(zhí)行16位數(shù)據(jù)傳輸?shù)目偩€周期。ISA平臺(tái)下的內(nèi)存訪問(wèn)周期如圖3所示。
本文對(duì)一種8軸PMAC-PC運(yùn)動(dòng)控制卡和雙端口RAM卡的硬件體系結(jié)構(gòu)、工作原理及其使用的總線通訊方式進(jìn)行了分析,結(jié)果表明,PMACPC卡采用了目前比較流行的可編程邏輯器件(Programmable Logic Device,簡(jiǎn)稱(chēng)PLD)與DSP相結(jié)合的設(shè)計(jì)方案,基板上的PLD(門(mén)陣列單元)作為DSP的協(xié)處理器,負(fù)責(zé)采集和計(jì)算各軸的反饋信息,并將計(jì)算結(jié)果直接提供給DSP。這樣設(shè)計(jì)一方面可以減輕DSP的工作負(fù)荷,使其專(zhuān)注于軌跡規(guī)劃和后臺(tái)處理工作,另一方面與從控制芯片相比,PLD能夠以硬件的速度并行計(jì)算各軸的反饋信息,減少了由軟件計(jì)算該信息所產(chǎn)生的系統(tǒng)延時(shí),從而提高了整個(gè)控制系統(tǒng)的實(shí)時(shí)性、集成度和可靠性,并且降低了系統(tǒng)成本。由于ISA總線的訪問(wèn)時(shí)序、電壓等級(jí)以及信號(hào)線的功能與PC/104總線完全一致[6],所以它對(duì)于PC/104總線運(yùn)動(dòng)控制卡的設(shè)計(jì)仍具有一定的參考價(jià)值,盡管16位的數(shù)據(jù)寬度可以滿足中低端用戶的需求,但較低的傳輸速率會(huì)限制上位機(jī)與控制卡的信息交換,所以PC/104總線逐漸會(huì)被傳輸速率更高、數(shù)據(jù)寬度更大的PCI、PCI/104和PCI/104-Express等總線形式所取代。新一代的PMAC運(yùn)動(dòng)控制卡PMAC-PCI不僅采用了PCI總線通訊方式,而且還提高了系統(tǒng)的集成度,這使得雙端口RAM可以直接集成到運(yùn)動(dòng)控制卡上;雖然其控制芯片采用了主頻更高、擴(kuò)展能力更強(qiáng)的563xx系列DSP,但它仍然是24位的定點(diǎn)DSP,而且其內(nèi)核和指令系統(tǒng)均與5600x系列DSP向上兼容,這表明新型控制卡仍然延續(xù)了PMAC-PC卡所采用的硬件體系結(jié)構(gòu),同時(shí)其資源配置方式與運(yùn)行機(jī)理也沒(méi)有發(fā)生實(shí)質(zhì)性地改變[7],因此這種設(shè)計(jì)方案對(duì)于自主設(shè)計(jì)和開(kāi)發(fā)此類(lèi)運(yùn)動(dòng)控制卡的軟硬件仍具有參考和借鑒意義。
[1] Delta Tau System Inc. PMAC User's Manual[R].2007.
[2] 叢明,張士軍,周玉敏,等.基于PMAC的硅片傳輸機(jī)器人控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,2006,(5):48-52.
[3] Delta Tau System Inc.PMAC PC Hardware Reference Man ual[R].2004.
[4] Edward Solari.ISA & EISA Theory & Operation[M]. San Diego:Annabooks,1992.
[5] Delta Tau System Inc. PMAC Dual-Ported RAM User's Ma nual[R].2004.
[6] PC/104 Embedded Consortium.PC/104 Specification[S].www.pc104.org,2003.
[7] Delta Tau System Inc. PMAC PCI Hardware Reference Manual[R].2006.