摘要:本文介紹了一種采用PCI專(zhuan) 用接口芯片PCI9052作為(wei) PCI總線與(yu) 運動控製芯片MCX314as的接口橋,實現4軸運動控製卡的硬件設計方法。首先給出了運動控製卡的總體(ti) 結構,PCI總線接口規範、局部總線接口電路、MCX314as的信號接口電路。然後,給出了PCI9052板卡ISA模式下雙片選的配置方法。最後,給出了用DriverStudio開發WDM驅動程序的方法。
關(guan) 鍵詞:運動控製卡; PCI9052; PCI總線; MCX314as; WDM
1.引言
本項目是用於(yu) 華南理工與(yu) 廣東(dong) 風華集團合作的動臂式貼片機(也稱拱架型貼片機)的拾取/貼裝頭的四軸控製,X,Y軸為(wei) 水平麵方向運動,Z軸為(wei) 拾取/貼裝頭拾取、貼裝芯片方向運動,U軸為(wei) 調整芯片角度方向旋轉運動[7]。
根據項目要求,采用MCX314as為(wei) 運動控製核心,上位機隻需將運動參數寫(xie) 入MCX314as的寄存器,各種複雜的運動控製,插補計算均由 MCX314as完成,極大地提高了運算和控製速度,通過PCI9052為(wei) PCI橋接口與(yu) 計算機通信,完成了4軸伺服/ 步進電機控製,實現位置,速度,加速度控製和直線、圓弧插補的功能。
2.運動控製卡的硬件結構
運動控製卡的硬件結構主要是由PCI接口芯片PCI9052、運動控製芯片MCX314as以及相應的光耦隔離、差動傳(chuan) 輸等電路組成,如圖1。其中,DB 代表數據總線,AB 代表地址總線,CB代表控製總線,軸輸出為(wei) 四個(ge) 軸的輸出脈衝(chong) ,I/O為(wei) 輸入輸出控製信號等。
2.1 PCI 總線接口
PCI局部總線是一種獨立於(yu) 處理器的高性能、低成本、開放型總線,它的這些優(you) 點,使其得到迅速普及和發展,並成為(wei) 事實上的微型機的總線標準,而且在嵌入式計算機和工業(ye) 控製計算機方麵得到廣泛的應用。它可分為(wei) 32位數據/地址複用總線和64位數據/地址複用總線兩(liang) 種,總線的速度分為(wei) 最高達33MHz和 66MHz兩(liang) 種。數據傳(chuan) 送速度最高可達528MB/s [2]。我們(men) 采用的是32位總線,33MHz的速度。
目前實現PCI接口的方案可分為(wei) 使用CPLD和使用專(zhuan) 用芯片兩(liang) 種。使用CPLD實現PCI接口比較靈活,但實現起來複雜。采用專(zhuan) 用芯片可以降低設計難度,縮短開發時間。因此,我們(men) 采用PLX公司的PCI9052專(zhuan) 用芯片來實現PCI總線接口。總線接口見文獻[1](21頁)。
圖1:PCI卡總體(ti) 設計
PCI9052 是PLX公司為(wei) 擴展適配板卡推出的一款高性能、低價(jia) 位的PCI總線從(cong) 模式接口芯片。芯片引腳可直接與(yu) 適配板卡金手指相連,它的各個(ge) 引腳的名稱和功能可參考它的DATASHEET[1]。局部總線與(yu) MCX314as的數據線、地址線、控製線等相連。
PCI9052芯片的主要特點如下:
(1) 符合PCI2.1 規範,支持簡單的ISA到PCI的橋接轉換;
(2) 支持局部總線到內(nei) 存和I/ O映射;
(3) PCI中斷信號由局部總線的兩(liang) 個(ge) 中斷信號LINTI1、LINTI2產(chan) 生;
(4) 局部總線與(yu) PCI總線的時鍾相互獨立運行,兼容高低速設備。局部總線的運行時鍾頻率範圍0~40MHz ;PCI的運行時鍾頻率範圍0~33MHz。#p#分頁標題#e#
(5) 可通過EEPROM的配置改變局部總線的操作,支持多路複用作和非多路複用8 位、16 位和32 位通用局部總線;
(6) 串行EEPROM 接口, 連接的串行EEPROM 用於(yu) 存放設備ID和局部總線配置等重要信息;[1]
2.2 局部總線接口電路
PCI9052與(yu) MCX314as連接的電路如圖2所示:
圖2:PCI9052與(yu) MCX314as連接
MCX314as是一個(ge) 用於(yu) 實現4軸運動控製的集成電路。通過它可以控製由步進電機驅動器或由脈衝(chong) 型伺服電機驅動的4軸位置、速度和插補[3]。它的所有功能都是由特定的寄存器控製的。通過對寄存器的設置,可以實現運動控製。它的電平與(yu) PCI9052相兼容,可以直接連接。
根據MCX314as本身的特性,PCI9052的局部總線采用非複用的16位數據總線的ISA模式,將PCI9052的MODE(68腳)接地,為(wei) 非複用模式,ISA模式的寄存器配置在章節3中詳細說明。PCI9052的ISA模式下,LRESET為(wei) 正邏輯,而MCX314as的複位信號為(wei) 反邏輯,所以兩(liang) 者要通過反向器連接。BUSY#和INTN#應加電阻後拉高,以加快數據傳(chuan) 輸中的等待和中斷後的恢複。
2.3 MCX314as的信號接口電路
MCX314as是運動控製卡的核心,通過對它的八個(ge) 控製寄存器和八個(ge) 狀態寄存器的操作可實現四軸的速度、位置、插補控製。如圖3所示是單軸驅動係統的連接圖。4軸係統於(yu) 它相類似,每個(ge) 軸采用相同的設計既可。

圖3:MCX314as驅動係統
MCX314as輸出驅動脈衝(chong) 有兩(liang) 種形式:一種是正、負脈衝(chong) 形式,以X軸為(wei) 例,既XPP輸出脈衝(chong) 時,X軸正向旋轉,XPM輸出脈衝(chong) 時,X軸反向旋轉,四軸與(yu) 此相同;另外一種是脈衝(chong) 、方向形式,以X軸為(wei) 例,XPP管腳在此複用為(wei) PLS,作為(wei) 脈衝(chong) 輸出管腳,XPM在此複用為(wei) DIR,作為(wei) 方向信號輸出。可通過設置寄存器WR2的D6位來選擇輸出的形式,為(wei) 了和我們(men) 的電機驅動器相配套,我們(men) 選用的是正、負脈衝(chong) (CCW)形式,采用差動輸出,提高傳(chuan) 輸距離。
反饋的編碼器信號經差動傳(chuan) 輸、高速光耦隔離後連接在各軸的編碼器輸入口。編碼器的輸入信號也可分為(wei) 兩(liang) 相脈衝(chong) 輸入(nECA,nECB)和上下脈衝(chong) 輸入(PPIN,PMIN),設置WR2的D9位可選擇與(yu) 編碼器相兼容的脈衝(chong) 計數方式。
MCX314as每個(ge) 軸有8位的I/O信號,其中每個(ge) 軸的輸出有4位(OUT4-7)可作為(wei) 驅動狀態的指示,也可作為(wei) 通用輸出,寄存器WR3的D7用來設定它是否作為(wei) 通用輸出。8位輸入中可作為(wei) 正、負限位,到位、報警等輸入信號。I/O為(wei) 電平信號,可通過光耦與(yu) 電機驅動器隔離輸入、輸出。
3.基於(yu) PCI9052的板卡的配置
通過對PCI9052的配置寄存器的設置,它可工作在多種模式之下,如C模式、J模式、ISA模式等,每一種模式主要是對應著局部總線的不同工作方式和遵循的不同的總線規範。PCI9052的配置信息存放在所連接的EEPROM中,配置是否正確決(jue) 定運動控製卡能否正常工作,所以非常重要,對9052的配置也是本次設計的一個(ge) 重點。#p#分頁標題#e#
3.1 數據配置
局部總線為(wei) 16位的ISA總線,與(yu) MCX314as相兼容,可直接連接,涉及到的隻是I/O信號,占用局部總線的片選3(CS3#)如圖2。另外,還連接一片64KB的RAM做它用,與(yu) 運動控製卡無關(guan) ,它涉及到的是存儲(chu) 器信號,占用片選2(CS2#)。在ISA模式下無實際的片選1和片選2。
本卡的EEPROM配置信息表如下:

上表中顯示的是配置數據,未列出的寄存器都設置為(wei) 0。PLX公司的廠商ID為(wei) 10B5H,設備ID為(wei) 9052H。分類號表示的是何種橋,以及當前的版本,PCI9052為(wei) 02h 。子係統ID和子製造商ID分別為(wei) 9052H和10B5H。PCI9052僅(jin) 支持INTA#,所以PCIILR(PCI中斷寄存器)D8=1或者D8=0不使用中斷。PCI9052有0到3共四個(ge) 局部地址空間,其中空間0必須被配置為(wei) 存儲(chu) 器空間範圍,空間1必須被配置為(wei) I/O 空間範圍。根據PCI9052的DATASHEET參考文獻[1]的說明,空間0配置數據為(wei) FFFF0000H,空間範圍為(wei) 64KB,D0=0表示配置為(wei) 存儲(chu) 器空間範圍,見表中基地址為(wei) 04000000H,使用片選2(CS2#)。空間1配置數據為(wei) FFFFFFF1H,I/O的空間範圍為(wei) 16個(ge) 字節,D0=1表示配置為(wei) I/O空間範圍。ISA模式下複用出來的兩(liang) 個(ge) 片選管腳(CS2#,CS3#)是否輸出,分別由片選信號2基地址和片選信號3的基地址來確定。片選信號基地址的D0=1為(wei) 片選使能,片選基地址的確定,為(wei) 空間1或0的基地址加上所配置空間地址的範圍,超出這個(ge) 範圍,片選便沒有輸出。局部地址空間0或1總線區域描述為(wei) 00400022H和0040003AH,確定為(wei) 16位局部數據總線。中斷控製及狀態寄存器為(wei) 00001000H,不使用中斷,它的D12=1確定局部總線為(wei) ISA模式。控製寄存器確定了它的各個(ge) 複用管腳輸入/輸出功能,以及初始化控製。
用含有以上配置數據的EEPROM來啟動板卡,計算機將為(wei) 它分配03000000H-0300000FH這16個(ge) I/O端口和04000000H-04010000H這64K Bytes存儲(chu) 器空間。
3.2 選取、配置EEPROM的注意事項
1) 串接EEPROM端信號有如下幾種:時鍾信號( EESK) 、讀數據信號(EEDO) 、寫(xie) 數據信號(EEDI)和片選信號(EECS)。時鍾信號(EESK)是由PCI總線的時鍾32分頻後得到的。
2) 對於(yu) EERPOM的選取要遵循PCI9052上推薦的EEPROM或者與(yu) 之相兼容的具有連讀功能的1Kbit的EEPROM。
3) 可以采用在線熱配置(通過PCI9052在線配置),軟件可以選擇PLX自己公司的PLXMON或者JUNGO公司的WinDriver。筆者是用WinDriver v6.02,在軟件安裝的Samples目錄下的程序PLX 9050 Diagnostics來讀寫(xie) EEPROM。這種方法比較方便,但是有時會(hui) 有讀寫(xie) 數據錯誤的情況出現。也可以用燒錄器將配置數據寫(xie) 入EEPROM,這種方法可靠性高,但在實驗過程中要反複插拔EEPROM不太方便。
4.驅動程序的開發
ISA總線的地址空間要映射到I/O空間或內(nei) 存空間。為(wei) 從(cong) PCI總線配置寄存器中獲得主機動態分配的映射基址,並對映射端口進行讀寫(xie) ,必須編寫(xie) 驅動程序。
驅動的簡單實現可以采用JUNGO公司的WinDriver來生成驅動,但是WinDriver生成的驅動效率不高,而且沒有注冊(ce) 碼隻能使用一個(ge) 月。因此,我們(men) 采用DriverStudio加WIN2000DDK的辦法來開發驅動。在DriverStudio的向導下輸入設備ID製造商ID、分類號和子係統ID子製造商ID,生成驅動程序的框架,然後編寫(xie) 需要的程序代碼。關(guan) 於(yu) 對驅動程序的安裝以及在應用程序中的調用可以參看文獻[5]。
5.結論
實踐證明,采用PCI接口芯片和專(zhuan) 用運動控製芯片開發的運動控製卡,開發研製周期短,實用性強,可靠性高。此運動控製卡已經完成硬件調試和驅動編寫(xie) ,目前已完成部分運動控製函數,正在進行應用程序開發。#p#分頁標題#e#
轉載請注明出處。







相關文章
熱門資訊
精彩導讀



















關注我們

