1.引言
本項(xiàng)目是用于華南理工與廣東風(fēng)華集團(tuán)合作的動(dòng)臂式貼片機(jī)(也稱拱架型貼片機(jī))的拾取/貼裝頭的四軸控制,,X,,Y軸為水平面方向運(yùn)動(dòng),Z軸為拾取/貼裝頭拾取,、貼裝芯片方向運(yùn)動(dòng),,U軸為調(diào)整芯片角度方向旋轉(zhuǎn)運(yùn)動(dòng)[7]。
根據(jù)項(xiàng)目要求,,采用MCX314as為運(yùn)動(dòng)控制核心,,上位機(jī)只需將運(yùn)動(dòng)參數(shù)寫入MCX314as的寄存器,各種復(fù)雜的運(yùn)動(dòng)控制,,插補(bǔ)計(jì)算均由 MCX314as完成,,極大地提高了運(yùn)算和控制速度,通過PCI9052為PCI橋接口與計(jì)算機(jī)通信,,完成了4軸伺服/ 步進(jìn)電機(jī)控制,,實(shí)現(xiàn)位置,,速度,加速度控制和直線,、圓弧插補(bǔ)的功能,。
2.運(yùn)動(dòng)控制卡的硬件結(jié)構(gòu)
運(yùn)動(dòng)控制卡的硬件結(jié)構(gòu)主要是由PCI接口芯片PCI9052、運(yùn)動(dòng)控制芯片MCX314as以及相應(yīng)的光耦隔離,、差動(dòng)傳輸?shù)入娐方M成,,如圖1。其中,DB 代表數(shù)據(jù)總線,AB 代表地址總線,CB代表控制總線,軸輸出為四個(gè)軸的輸出脈沖,,I/O為輸入輸出控制信號(hào)等,。
2.1 PCI 總線接口
PCI局部總線是一種獨(dú)立于處理器的高性能、低成本,、開放型總線,,它的這些優(yōu)點(diǎn),使其得到迅速普及和發(fā)展,,并成為事實(shí)上的微型機(jī)的總線標(biāo)準(zhǔn),,而且在嵌入式計(jì)算機(jī)和工業(yè)控制計(jì)算機(jī)方面得到廣泛的應(yīng)用。它可分為32位數(shù)據(jù)/地址復(fù)用總線和64位數(shù)據(jù)/地址復(fù)用總線兩種,,總線的速度分為最高達(dá)33MHz和 66MHz兩種,。數(shù)據(jù)傳送速度最高可達(dá)528MB/s [2]。我們采用的是32位總線,,33MHz的速度,。
目前實(shí)現(xiàn)PCI接口的方案可分為使用CPLD和使用專用芯片兩種。使用CPLD實(shí)現(xiàn)PCI接口比較靈活,,但實(shí)現(xiàn)起來復(fù)雜,。采用專用芯片可以降低設(shè)計(jì)難度,縮短開發(fā)時(shí)間,。因此,,我們采用PLX公司的PCI9052專用芯片來實(shí)現(xiàn)PCI總線接口,??偩€接口見文獻(xiàn)[1](21頁)。
圖1:PCI卡總體設(shè)計(jì)
PCI9052 是PLX公司為擴(kuò)展適配板卡推出的一款高性能,、低價(jià)位的PCI總線從模式接口芯片,。芯片引腳可直接與適配板卡金手指相連,它的各個(gè)引腳的名稱和功能可參考它的DATASHEET[1],。局部總線與MCX314as的數(shù)據(jù)線,、地址線、控制線等相連,。
PCI9052芯片的主要特點(diǎn)如下:
(1) 符合PCI2.1 規(guī)范,支持簡單的ISA到PCI的橋接轉(zhuǎn)換;
(2) 支持局部總線到內(nèi)存和I/ O映射;
(3) PCI中斷信號(hào)由局部總線的兩個(gè)中斷信號(hào)LINTI1,、LINTI2產(chǎn)生;
(4) 局部總線與PCI總線的時(shí)鐘相互獨(dú)立運(yùn)行,兼容高低速設(shè)備,。局部總線的運(yùn)行時(shí)鐘頻率范圍0~40MHz ;PCI的運(yùn)行時(shí)鐘頻率范圍0~33MHz。
(5) 可通過EEPROM的配置改變局部總線的操作,支持多路復(fù)用作和非多路復(fù)用8 位,、16 位和32 位通用局部總線;
(6) 串行EEPROM 接口, 連接的串行EEPROM 用于存放設(shè)備ID和局部總線配置等重要信息;[1]
2.2 局部總線接口電路
PCI9052與MCX314as連接的電路如圖2所示:
圖2:PCI9052與MCX314as連接
MCX314as是一個(gè)用于實(shí)現(xiàn)4軸運(yùn)動(dòng)控制的集成電路,。通過它可以控制由步進(jìn)電機(jī)驅(qū)動(dòng)器或由脈沖型伺服電機(jī)驅(qū)動(dòng)的4軸位置、速度和插補(bǔ)[3],。它的所有功能都是由特定的寄存器控制的,。通過對寄存器的設(shè)置,可以實(shí)現(xiàn)運(yùn)動(dòng)控制,。它的電平與PCI9052相兼容,,可以直接連接。
根據(jù)MCX314as本身的特性,,PCI9052的局部總線采用非復(fù)用的16位數(shù)據(jù)總線的ISA模式,,將PCI9052的MODE(68腳)接地,為非復(fù)用模式,,ISA模式的寄存器配置在章節(jié)3中詳細(xì)說明,。PCI9052的ISA模式下,LRESET為正邏輯,,而MCX314as的復(fù)位信號(hào)為反邏輯,,所以兩者要通過反向器連接。BUSY#和INTN#應(yīng)加電阻后拉高,,以加快數(shù)據(jù)傳輸中的等待和中斷后的恢復(fù),。
2.3 MCX314as的信號(hào)接口電路
MCX314as是運(yùn)動(dòng)控制卡的核心,通過對它的八個(gè)控制寄存器和八個(gè)狀態(tài)寄存器的操作可實(shí)現(xiàn)四軸的速度,、位置,、插補(bǔ)控制。如圖3所示是單軸驅(qū)動(dòng)系統(tǒng)的連接圖,。4軸系統(tǒng)于它相類似,,每個(gè)軸采用相同的設(shè)計(jì)既可。
圖3:MCX314as驅(qū)動(dòng)系統(tǒng)
MCX314as輸出驅(qū)動(dòng)脈沖有兩種形式:一種是正,、負(fù)脈沖形式,,以X軸為例,既XPP輸出脈沖時(shí),,X軸正向旋轉(zhuǎn),,XPM輸出脈沖時(shí),X軸反向旋轉(zhuǎn),,四軸與此相同;另外一種是脈沖,、方向形式,以X軸為例,,XPP管腳在此復(fù)用為PLS,,作為脈沖輸出管腳,,XPM在此復(fù)用為DIR,作為方向信號(hào)輸出,??赏ㄟ^設(shè)置寄存器WR2的D6位來選擇輸出的形式,為了和我們的電機(jī)驅(qū)動(dòng)器相配套,,我們選用的是正,、負(fù)脈沖(CCW)形式,采用差動(dòng)輸出,,提高傳輸距離,。
反饋的編碼器信號(hào)經(jīng)差動(dòng)傳輸、高速光耦隔離后連接在各軸的編碼器輸入口,。編碼器的輸入信號(hào)也可分為兩相脈沖輸入(nECA,,nECB)和上下脈沖輸入(PPIN,PMIN),,設(shè)置WR2的D9位可選擇與編碼器相兼容的脈沖計(jì)數(shù)方式,。
MCX314as每個(gè)軸有8位的I/O信號(hào),其中每個(gè)軸的輸出有4位(OUT4-7)可作為驅(qū)動(dòng)狀態(tài)的指示,,也可作為通用輸出,,寄存器WR3的D7用來設(shè)定它是否作為通用輸出。8位輸入中可作為正,、負(fù)限位,,到位、報(bào)警等輸入信號(hào),。I/O為電平信號(hào),,可通過光耦與電機(jī)驅(qū)動(dòng)器隔離輸入、輸出,。
3.基于PCI9052的板卡的配置
通過對PCI9052的配置寄存器的設(shè)置,,它可工作在多種模式之下,如C模式,、J模式,、ISA模式等,每一種模式主要是對應(yīng)著局部總線的不同工作方式和遵循的不同的總線規(guī)范,。PCI9052的配置信息存放在所連接的EEPROM中,配置是否正確決定運(yùn)動(dòng)控制卡能否正常工作,,所以非常重要,,對9052的配置也是本次設(shè)計(jì)的一個(gè)重點(diǎn),。
3.1 數(shù)據(jù)配置
局部總線為16位的ISA總線,與MCX314as相兼容,,可直接連接,,涉及到的只是I/O信號(hào),,占用局部總線的片選3(CS3#)如圖2。另外,,還連接一片64KB的RAM做它用,,與運(yùn)動(dòng)控制卡無關(guān),它涉及到的是存儲(chǔ)器信號(hào),占用片選2(CS2#),。在ISA模式下無實(shí)際的片選1和片選2,。
本卡的EEPROM配置信息表如下:
上表中顯示的是配置數(shù)據(jù),未列出的寄存器都設(shè)置為0,。PLX公司的廠商ID為10B5H,,設(shè)備ID為9052H。分類號(hào)表示的是何種橋,,以及當(dāng)前的版本,,PCI9052為02h 。子系統(tǒng)ID和子制造商ID分別為9052H和10B5H,。PCI9052僅支持INTA#,,所以PCIILR(PCI中斷寄存器)D8=1或者D8=0不使用中斷。PCI9052有0到3共四個(gè)局部地址空間,,其中空間0必須被配置為存儲(chǔ)器空間范圍,,空間1必須被配置為I/O 空間范圍。根據(jù)PCI9052的DATASHEET參考文獻(xiàn)[1]的說明,,空間0配置數(shù)據(jù)為FFFF0000H,,空間范圍為64KB,D0=0表示配置為存儲(chǔ)器空間范圍,,見表中基地址為04000000H,,使用片選2(CS2#)??臻g1配置數(shù)據(jù)為FFFFFFF1H,,I/O的空間范圍為16個(gè)字節(jié),D0=1表示配置為I/O空間范圍,。ISA模式下復(fù)用出來的兩個(gè)片選管腳(CS2#,,CS3#)是否輸出,分別由片選信號(hào)2基地址和片選信號(hào)3的基地址來確定,。片選信號(hào)基地址的D0=1為片選使能,,片選基地址的確定,為空間1或0的基地址加上所配置空間地址的范圍,,超出這個(gè)范圍,,片選便沒有輸出。局部地址空間0或1總線區(qū)域描述為00400022H和0040003AH,確定為16位局部數(shù)據(jù)總線,。中斷控制及狀態(tài)寄存器為00001000H,,不使用中斷,它的D12=1確定局部總線為ISA模式,??刂萍拇嫫鞔_定了它的各個(gè)復(fù)用管腳輸入/輸出功能,以及初始化控制,。
用含有以上配置數(shù)據(jù)的EEPROM來啟動(dòng)板卡,,計(jì)算機(jī)將為它分配03000000H-0300000FH這16個(gè)I/O端口和04000000H-04010000H這64K Bytes存儲(chǔ)器空間。
3.2 選取,、配置EEPROM的注意事項(xiàng)
1) 串接EEPROM端信號(hào)有如下幾種:時(shí)鐘信號(hào)( EESK) ,、讀數(shù)據(jù)信號(hào)(EEDO) 、寫數(shù)據(jù)信號(hào)(EEDI)和片選信號(hào)(EECS),。時(shí)鐘信號(hào)(EESK)是由PCI總線的時(shí)鐘32分頻后得到的,。
2) 對于EERPOM的選取要遵循PCI9052上推薦的EEPROM或者與之相兼容的具有連讀功能的1Kbit的EEPROM。
3) 可以采用在線熱配置(通過PCI9052在線配置),,軟件可以選擇PLX自己公司的PLXMON或者JUNGO公司的WinDriver,。筆者是用WinDriver v6.02,在軟件安裝的Samples目錄下的程序PLX 9050 Diagnostics來讀寫EEPROM。這種方法比較方便,,但是有時(shí)會(huì)有讀寫數(shù)據(jù)錯(cuò)誤的情況出現(xiàn),。也可以用燒錄器將配置數(shù)據(jù)寫入EEPROM,這種方法可靠性高,,但在實(shí)驗(yàn)過程中要反復(fù)插拔EEPROM不太方便,。
4.驅(qū)動(dòng)程序的開發(fā)
ISA總線的地址空間要映射到I/O空間或內(nèi)存空間。為從PCI總線配置寄存器中獲得主機(jī)動(dòng)態(tài)分配的映射基址,并對映射端口進(jìn)行讀寫,必須編寫驅(qū)動(dòng)程序,。
驅(qū)動(dòng)的簡單實(shí)現(xiàn)可以采用JUNGO公司的WinDriver來生成驅(qū)動(dòng),,但是WinDriver生成的驅(qū)動(dòng)效率不高,而且沒有注冊碼只能使用一個(gè)月,。因此,,我們采用DriverStudio加WIN2000DDK的辦法來開發(fā)驅(qū)動(dòng)。在DriverStudio的向?qū)螺斎朐O(shè)備ID制造商ID,、分類號(hào)和子系統(tǒng)ID子制造商ID,,生成驅(qū)動(dòng)程序的框架,然后編寫需要的程序代碼,。關(guān)于對驅(qū)動(dòng)程序的安裝以及在應(yīng)用程序中的調(diào)用可以參看文獻(xiàn)[5],。
5.結(jié)論
實(shí)踐證明,采用PCI接口芯片和專用運(yùn)動(dòng)控制芯片開發(fā)的運(yùn)動(dòng)控制卡,,開發(fā)研制周期短,,實(shí)用性強(qiáng),可靠性高。此運(yùn)動(dòng)控制卡已經(jīng)完成硬件調(diào)試和驅(qū)動(dòng)編寫,,目前已完成部分運(yùn)動(dòng)控制函數(shù),正在進(jìn)行應(yīng)用程序開發(fā),。
參考文獻(xiàn)
[1]. PLX Techno logy. PC I9052 data book. Printed in U SA ,September, 2001.
[2]. Tom Shanley (美),Don Anderson(美)著.劉暉等譯.PCI系統(tǒng)結(jié)構(gòu)(第四版).北京:電子工業(yè)出版社,2000.7
[3].MCX314As User’s Manual Ver1.0 2004-8-10.
[4] Walter Oney(美)著.Microsoft Windows Driver Model . http://www.oneysoft.com
[5].武安河等著.Windows 2000/XP WDM設(shè)備驅(qū)動(dòng)程序開發(fā)(第2版).電子工業(yè)出版社,,2005-02-01.
[6]. 陶吉利,魯五一. PCI9052及其在通用網(wǎng)絡(luò)控制卡設(shè)計(jì)中的應(yīng)用. 微計(jì)算機(jī)信息,2003 Vol.19 No.3 P.72-73.
[7].袁鵬. 基于視覺的高速高精度貼片機(jī)運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[ C] .計(jì)算機(jī)集成制造系統(tǒng), 2004,12(10)