siemens x
I/O 設(shè)備

基于PCI總線的四軸運動控制卡的研制

2025China.cn   2008年08月11日
摘要:本文介紹了一種采用PCI專用接口芯片PCI9052作為PCI總線與運動控制芯片MCX314as的接口橋,實現(xiàn)4軸運動控制卡的硬件設(shè)計方法。首先給出了運動控制卡的總體結(jié)構(gòu),PCI總線接口規(guī)范、局部總線接口電路、MCX314as的信號接口電路。然后,給出了PCI9052板卡ISA模式下雙片選的配置方法。最后,給出了用DriverStudio開發(fā)WDM驅(qū)動程序的方法。

關(guān)鍵詞:運動控制卡; PCI9052; PCI總線; MCX314as; WDM

1.引言

  本項目是用于華南理工與廣東風華集團合作的動臂式貼片機(也稱拱架型貼片機)的拾取/貼裝頭的四軸控制,X,Y軸為水平面方向運動,Z軸為拾取/貼裝頭拾取、貼裝芯片方向運動,U軸為調(diào)整芯片角度方向旋轉(zhuǎn)運動[7>。

  根據(jù)項目要求,采用MCX314as為運動控制核心,上位機只需將運動參數(shù)寫入MCX314as的寄存器,各種復(fù)雜的運動控制,插補計算均由MCX314as完成,極大地提高了運算和控制速度,通過PCI9052為PCI橋接口與計算機通信,完成了4軸伺服/ 步進電機控制,實現(xiàn)位置,速度,加速度控制和直線、圓弧插補的功能。

2.運動控制卡的硬件結(jié)構(gòu)

  運動控制卡的硬件結(jié)構(gòu)主要是由PCI接口芯片PCI9052、運動控制芯片MCX314as以及相應(yīng)的光耦隔離、差動傳輸?shù)入娐方M成,如圖1。其中,DB 代表數(shù)據(jù)總線,AB 代表地址總線,CB代表控制總線,軸輸出為四個軸的輸出脈沖,I/O為輸入輸出控制信號等。

  2.1 PCI 總線接口

  PCI局部總線是一種獨立于處理器的高性能、低成本、開放型總線,它的這些優(yōu)點,使其得到迅速普及和發(fā)展,并成為事實上的微型機的總線標準,而且在嵌入式計算機和工業(yè)控制計算機方面得到廣泛的應(yīng)用。它可分為32位數(shù)據(jù)/地址復(fù)用總線和64位數(shù)據(jù)/地址復(fù)用總線兩種,總線的速度分為最高達33MHz和66MHz兩種。數(shù)據(jù)傳送速度最高可達528MB/s [2>。我們采用的是32位總線,33MHz的速度。

  目前實現(xiàn)PCI接口的方案可分為使用CPLD和使用專用芯片兩種。使用CPLD實現(xiàn)PCI接口比較靈活,但實現(xiàn)起來復(fù)雜。采用專用芯片可以降低設(shè)計難度,縮短開發(fā)時間。因此,我們采用PLX公司的PCI9052專用芯片來實現(xiàn)PCI總線接口??偩€接口見文獻[1>(21頁)。


圖1:PCI卡總體設(shè)計

  PCI9052 是PLX公司為擴展適配板卡推出的一款高性能、低價位的PCI總線從模式接口芯片。芯片引腳可直接與適配板卡金手指相連,它的各個引腳的名稱和功能可參考它的DATASHEET[1>。局部總線與MCX314as的數(shù)據(jù)線、地址線、控制線等相連。

  PCI9052芯片的主要特點如下:

 ?。?) 符合PCI2.1 規(guī)范,支持簡單的ISA到PCI的橋接轉(zhuǎn)換;

 ?。?) 支持局部總線到內(nèi)存和I/ O映射;

 ?。?) PCI中斷信號由局部總線的兩個中斷信號LINTI1、LINTI2產(chǎn)生;

 ?。?) 局部總線與PCI總線的時鐘相互獨立運行,兼容高低速設(shè)備。局部總線的運行時鐘頻率范圍0~40MHz ;PCI的運行時鐘頻率范圍0~33MHz。

 ?。?) 可通過EEPROM的配置改變局部總線的操作,支持多路復(fù)用作和非多路復(fù)用8 位、16 位和32 位通用局部總線;

 ?。?) 串行EEPROM 接口, 連接的串行EEPROM 用于存放設(shè)備ID和局部總線配置等重要信息;[1>

  2.2 局部總線接口電路

  PCI9052與MCX314as連接的電路如圖2所示:


圖2:PCI9052與MCX314as連接

  MCX314as是一個用于實現(xiàn)4軸運動控制的集成電路。通過它可以控制由步進電機驅(qū)動器或由脈沖型伺服電機驅(qū)動的4軸位置、速度和插補[3>。它的所有功能都是由特定的寄存器控制的。通過對寄存器的設(shè)置,可以實現(xiàn)運動控制。它的電平與PCI9052相兼容,可以直接連接。

  根據(jù)MCX314as本身的特性,PCI9052的局部總線采用非復(fù)用的16位數(shù)據(jù)總線的ISA模式,將PCI9052的MODE(68腳)接地,為非復(fù)用模式,ISA模式的寄存器配置在章節(jié)3中詳細說明。PCI9052的ISA模式下,LRESET為正邏輯,而MCX314as的復(fù)位信號為反邏輯,所以兩者要通過反向器連接。BUSY#和INTN#應(yīng)加電阻后拉高,以加快數(shù)據(jù)傳輸中的等待和中斷后的恢復(fù)。

  2.3 MCX314as的信號接口電路

  MCX314as是運動控制卡的核心,通過對它的八個控制寄存器和八個狀態(tài)寄存器的操作可實現(xiàn)四軸的速度、位置、插補控制。如圖3所示是單軸驅(qū)動系統(tǒng)的連接圖。4軸系統(tǒng)于它相類似,每個軸采用相同的設(shè)計既可。


圖3:MCX314as驅(qū)動系統(tǒng)

  MCX314as輸出驅(qū)動脈沖有兩種形式:一種是正、負脈沖形式,以X軸為例,既XPP輸出脈沖時,X軸正向旋轉(zhuǎn),XPM輸出脈沖時,X軸反向旋轉(zhuǎn),四軸與此相同;另外一種是脈沖、方向形式,以X軸為例,XPP管腳在此復(fù)用為PLS,作為脈沖輸出管腳,XPM在此復(fù)用為DIR,作為方向信號輸出??赏ㄟ^設(shè)置寄存器WR2的D6位來選擇輸出的形式,為了和我們的電機驅(qū)動器相配套,我們選用的是正、負脈沖(CCW)形式,采用差動輸出,提高傳輸距離。

  反饋的編碼器信號經(jīng)差動傳輸、高速光耦隔離后連接在各軸的編碼器輸入口。編碼器的輸入信號也可分為兩相脈沖輸入(nECA,nECB)和上下脈沖輸入(PPIN,PMIN),設(shè)置WR2的D9位可選擇與編碼器相兼容的脈沖計數(shù)方式。

  MCX314as每個軸有8位的I/O信號,其中每個軸的輸出有4位(OUT4-7)可作為驅(qū)動狀態(tài)的指示,也可作為通用輸出,寄存器WR3的D7用來設(shè)定它是否作為通用輸出。8位輸入中可作為正、負限位,到位、報警等輸入信號。I/O為電平信號,可通過光耦與電機驅(qū)動器隔離輸入、輸出。

3.基于PCI9052的板卡的配置

  通過對PCI9052的配置寄存器的設(shè)置,它可工作在多種模式之下,如C模式、J模式、ISA模式等,每一種模式主要是對應(yīng)著局部總線的不同工作方式和遵循的不同的總線規(guī)范。PCI9052的配置信息存放在所連接的EEPROM中,配置是否正確決定運動控制卡能否正常工作,所以非常重要,對9052的配置也是本次設(shè)計的一個重點。

  3.1 數(shù)據(jù)配置

  局部總線為16位的ISA總線,與MCX314as相兼容,可直接連接,涉及到的只是I/O信號,占用局部總線的片選3(CS3#)如圖2。另外,還連接一片64KB的RAM做它用,與運動控制卡無關(guān),它涉及到的是存儲器信號,占用片選2(CS2#)。在ISA模式下無實際的片選1和片選2。

  本卡的EEPROM配置信息表如下:

  上表中顯示的是配置數(shù)據(jù),未列出的寄存器都設(shè)置為0。PLX公司的廠商ID為10B5H,設(shè)備ID為9052H。分類號表示的是何種橋,以及當前的版本,PCI9052為02h 。子系統(tǒng)ID和子制造商ID分別為9052H和10B5H。PCI9052僅支持INTA#,所以PCIILR(PCI中斷寄存器)D8=1或者D8=0不使用中斷。PCI9052有0到3共四個局部地址空間,其中空間0必須被配置為存儲器空間范圍,空間1必須被配置為I/O空間范圍。根據(jù)PCI9052的DATASHEET參考文獻[1>的說明,空間0配置數(shù)據(jù)為FFFF0000H,空間范圍為64KB,D0=0表示配置為存儲器空間范圍,見表中基地址為04000000H,使用片選2(CS2#)。空間1配置數(shù)據(jù)為FFFFFFF1H,I/O的空間范圍為16個字節(jié),D0=1表示配置為I/O空間范圍。ISA模式下復(fù)用出來的兩個片選管腳(CS2#,CS3#)是否輸出,分別由片選信號2基地址和片選信號3的基地址來確定。片選信號基地址的D0=1為片選使能,片選基地址的確定,為空間1或0的基地址加上所配置空間地址的范圍,超出這個范圍,片選便沒有輸出。局部地址空間0或1總線區(qū)域描述為00400022H和0040003AH,確定為16位局部數(shù)據(jù)總線。中斷控制及狀態(tài)寄存器為00001000H,不使用中斷,它的D12=1確定局部總線為ISA模式??刂萍拇嫫鞔_定了它的各個復(fù)用管腳輸入/輸出功能,以及初始化控制。

  用含有以上配置數(shù)據(jù)的EEPROM來啟動板卡,計算機將為它分配03000000H-0300000FH這16個I/O端口和04000000H-04010000H這64K Bytes存儲器空間。

  3.2 選取、配置EEPROM的注意事項

  1) 串接EEPROM端信號有如下幾種:時鐘信號( EESK) 、讀數(shù)據(jù)信號(EEDO) 、寫數(shù)據(jù)信號(EEDI)和片選信號(EECS)。時鐘信號(EESK)是由PCI總線的時鐘32分頻后得到的。

  2) 對于EERPOM的選取要遵循PCI9052上推薦的EEPROM或者與之相兼容的具有連讀功能的1Kbit的EEPROM。

  3) 可以采用在線熱配置(通過PCI9052在線配置),軟件可以選擇PLX自己公司的PLXMON或者JUNGO公司的WinDriver。筆者是用WinDriver v6.02,在軟件安裝的Samples目錄下的程序PLX 9050 Diagnostics來讀寫EEPROM。這種方法比較方便,但是有時會有讀寫數(shù)據(jù)錯誤的情況出現(xiàn)。也可以用燒錄器將配置數(shù)據(jù)寫入EEPROM,這種方法可靠性高,但在實驗過程中要反復(fù)插拔EEPROM不太方便。

4.驅(qū)動程序的開發(fā)

  ISA總線的地址空間要映射到I/O空間或內(nèi)存空間。為從PCI總線配置寄存器中獲得主機動態(tài)分配的映射基址,并對映射端口進行讀寫,必須編寫驅(qū)動程序。

  驅(qū)動的簡單實現(xiàn)可以采用JUNGO公司的WinDriver來生成驅(qū)動,但是WinDriver生成的驅(qū)動效率不高,而且沒有注冊碼只能使用一個月。因此,我們采用DriverStudio加WIN2000DDK的辦法來開發(fā)驅(qū)動。在DriverStudio的向?qū)螺斎朐O(shè)備ID制造商ID、分類號和子系統(tǒng)ID子制造商ID,生成驅(qū)動程序的框架,然后編寫需要的程序代碼。關(guān)于對驅(qū)動程序的安裝以及在應(yīng)用程序中的調(diào)用可以參看文獻[5>。

5.結(jié)論

  實踐證明,采用PCI接口芯片和專用運動控制芯片開發(fā)的運動控制卡,開發(fā)研制周期短,實用性強,可靠性高。此運動控制卡已經(jīng)完成硬件調(diào)試和驅(qū)動編寫,目前已完成部分運動控制函數(shù),正在進行應(yīng)用程序開發(fā)。

(轉(zhuǎn)載)

標簽:PCI總線 四軸運動控制卡 研制 我要反饋 
2024世界人工智能大會專題
即刻點擊并下載ABB資料,好禮贏不停~
優(yōu)傲機器人下載中心
西克
2024全景工博會
專題報道