運動控制芯片 PCI總線是一種先進的高性能32/64位地址數據復用局部總線,可以同時支持多組外圍設備。實現PCI總線接口的方法主要有兩種:一是采用CPLD或FPGA設計PCI接口,這種方法比較靈活,但是其難度較大,設計周期也較長。二是采用專用的PCI接口芯片,可以大大減少設計者的工作量,從而縮短開發周期,降低開發成本。本運動控制卡采用PLX公司的PCI9052接口芯片進行設計,該芯片符合PCI2.1規范。 與ISA總線相比,PCI總線支持三個物理空間:存儲器地址空間、I/O地址空間和配置空間。配置空間是PCI特有的一個空間,所有的PCI設備都必須提供配置空間。PCI9052包含一個用于加載配置信息的串行EEPROM接口,用于裝載一個特定適配設備信息。串行EEPROM中存儲了PCI9052的重要的配置信息,如設備號、制造商號、設備類型號、局部空間基地址以及局部空間描述符等信息。PCI9052對EEPROM型號的要求是比較嚴格的,可以使用的包括HolTek的HT93LC46,MicroChip的93LC46B等。 在ISA模式下,EEPROM的使用是必需的,為使PCI9052正常工作在ISA模式下,首先應確保EEPEOM能被找到,并且將PCI9052的第68管腳接低電平。EEPROM的內容非常重要,它直接關系到整個板卡能否正常工作,在設計時要特別注意。 運動控制芯片 傳統的運動控制器多采用嵌入式高性能單片機或DSP來實現,但系統集成度不夠高,電路復雜,且軟、硬件研制周期長。采用專用運動控制器可以提高系統集成度、插補速度及可靠性,同時簡化電路,縮短開發周期。 目前市場上有多種運動控制器,如美國的PMD公司以及日本的NOVA、KYOPAL、SEEK公司的產品。本設計采用NOVA公司的MCX312,它能同時控制獨立兩個伺服電機或步進電機的運動控制芯片。以脈沖串的形式輸出,能對伺服電機和步進電機進行位置控制、插補驅動、速度控制等。 ● 獨立二軸驅動 一個芯片可分別控制2個電機驅動軸的運動。每個軸都可以進行定速驅動,直線加/減速驅動,S曲線驅動等,2軸的性質相同;輸出驅動脈沖的范圍為1PPS~4MPPS,使用16MHz時鐘時,輸出脈沖頻率精度小于±0.1%。 ● 定量驅動和連續驅動 定量驅動是指以固定速度或加/減速度輸出制定數量的脈沖,用以移動到確定位置或進行確定的動作,連續驅動連續輸出驅動脈沖直至高位的停止命令或外部的停止信號有效,用以原點搜尋、掃描操作、及電機旋轉速度控制。 ● 插補驅動 可進行相對于當前位置范圍-8 388 607~+8 388 607內的2軸直線插補及圓弧插補,插補精度為±0.5LSB,速度范圍為1PPS~4MPPS,并可以連續地運用2軸直線及圓弧插補在每個插補節點不停的驅動,其最大速度可達2MHz。 ● 位置控制 每軸都有兩個32位位置計數器,一個是芯片內部管理驅動脈沖輸出的邏輯位置計數器,另一個是管理從外部編碼器來的脈沖的實際位置計數器,并可通過內部寄存器的設定,使得當位置計數器同比較寄存器的大小關系有變化時,產生中斷。 ● 實時監控 在驅動過程中,可以通過實時讀取片內部寄存器得到邏輯位置、實際位置、驅動速度、加速度以及加/減速狀態(加速中,定速中,減速中)等信息。 ● 其他功能 MCX312還具有許多其他重要功能:由外部信號控制進行定量驅動、連續驅動;硬件限制;緊急停止;驅動狀態輸出;脈沖輸出方式選擇;輸入信號濾波等。 系統設計 在硬件系統中,PCI9052作為連接CPU與運動控制芯片的橋梁,完成了從PCI總線到ISA總線的過渡。CPU通過編程對運動控制芯片進行控制,以實現對兩軸運動的控制。 該設計硬件結構如下圖所示,PCI9052與PCI總線相連,AD[31:0]、CBE[3:0]、PAR、TRDYN、IDSEL、STOPN、PERRN、SERRN、CLK、RST0、INTA0、LOCKN等是必須實現的信號,EESK、EEDO、EEDI、DDCS與串行EEPROM相連;CPU以16位數據對MCX312進行控制,使其向外發出X及Y方向脈沖信號,以控制兩個方向軸上的運動。 數控系統通過位置傳感器返回其包括nLMTP、nLMTM、nINPOS、nALARM等系統位置信息,進而實現左右方向限位,伺服到位及報警等功能。編碼器輸入信號引起MCX312的實際位置計數器的變化,可以得到兩軸相對于原點的實際移動位置。通用輸入輸出擴展了系統功能,在應用中可根據實際情況用作不同的用途。 圖 PCI總線運動控制卡硬件結構圖 在電路設計時應考慮一下幾點: (1)根據PCI協議規定,PCI總線的CLK信號線的長度為2500mil,其他信號線的長度以1500mil以內為宜; (2)因系統中多為開關量輸入輸出,在實際工作中,應盡量避免外界信號的干擾,為達到這個目的,在系統中采用光電耦合器件,其輸入端配置發光器件,輸出端為受光器,開關量輸入接入電路中,會被擋在光電耦合器以外,從而將干擾隔離; (3)數字電路信號電平轉換過程中會產生很大的沖擊電流,并在傳輸線和電源內阻上產生較大的壓降,形成嚴重的干擾。為了抑止這種干擾,在芯片的電源和地之間連接高頻特性好的0.1μF左右的去耦電容; (4)總線信號PRSNT1#的PRSNT2#中必須有一個接地,它們表明板卡的存在并提供該板對電源要求的有關信息。 函數庫及驅動設計 運動控制卡給用戶提供了一個軟硬件的使用平臺,用戶可以根據自己的需要選擇使用自己需要的功能,而對于功能實現,函數庫的編制是必須的。函數庫用于運動控制系統的二次開發,編程人員可以使用高級語言,通過對庫函數的調用,來實現對運動控制系統的控制。該系統的庫函數包括5類。 (1)基本參數設置,包括卡的初始化與釋放、脈沖輸出方式、軟 硬件限位設定、脈沖輸出方式及編碼器輸入的工作方式、加/減速方式設定及輸入信號濾波功能設置等; (2)運動參數的設定與讀取,包括范圍設定、加/減速度的設定與讀取、驅動速度的設定與讀取、初始速度的設定與讀取、邏輯/實際位置計數器的設定與讀取、COMP+/COMP-寄存器的設定等; (3)驅動狀態檢查,包括獲取各軸的驅動狀態及插補驅動狀態; (4)脈沖驅動輸出及設定,包括兩軸直線插補、順時針/逆時針圓弧插補、定量驅動、連續驅動及驅動的減速停止與立即停止; (5)開關量輸入輸出,包括所有開關量的輸入輸出及單個輸入輸出的控制。 開發Windows下的應用程序應考慮系統的限制,Windows系統為保護系統對用戶的訪問權限進行了劃分,用戶所處的級別由系統對硬件資源進行了屏蔽,用戶不能直接訪問硬件資源。為了達到與硬件通信的目的,必須編寫驅動程序。 用于Windows驅動開發的工具包括Windriver,DriverStudio以及DDK(Driver Develop Kit)。Windriver使用簡單,不需要專門的關于系統驅動的知識,開發時間短,但效率低,且不易發布;DDK效率及可靠性高,但使用煩瑣,開發周期長;DriverStudio包括DriverWorks,SoftICE,DirverAgent等工具,具有開發調試的強大功能,把DDK用類的形式進行了封裝,使用簡單。本文就是利用DriveStudio進行驅動開發的。 DriverWorks提供了DriverWizard向導,利用它可以生成驅動程序的框架,其中最為關鍵的一步添加相應的I/O端口、內存資源、DMA、中斷等相應得硬件資源,并在相應的處理程序中添加代碼。 結論 本系統采用PCI總線接口及MCX312運動控制芯片,支持即插即用,可用于多種操作系統,具有輸出脈沖頻率高、控制準確、易向多軸擴展等特點,可廣泛應用于機器人、基于PC的數控系統中。 |