基于PCI 總線的四軸運(yùn)動(dòng)控制卡的研制
3.1數(shù)據(jù)配置
局部總線為16位的ISA總線,與MCX314as相兼容,可直接連接,涉及到的只是I/O信號(hào),占用局部總線的片選3(CS3#)如圖2。另外,還連接一片64KB的RAM做它用,與運(yùn)動(dòng)控制卡無(wú)關(guān),它涉及到的是存儲(chǔ)器信號(hào),占用片選2(CS2#)。在ISA模式下無(wú)實(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]的說(shuō)明,空間0配置數(shù)據(jù)為FFFF0000H,空間范圍為64KB,D0=0表示配置為存儲(chǔ)器空間范圍,見(jiàn)表中基地址為04000000H,使用片選2(CS2#)??臻g1配置數(shù)據(jù)為FFFFFFF1H,I/O的空間范圍為16個(gè)字節(jié),D0=1表示配置為I/O空間范圍。ISA模式下復(fù)用出來(lái)的兩個(gè)片選管腳(CS2#,CS3#)是否輸出,分別由片選信號(hào)2基地址和片選信號(hào)3的基地址來(lái)確定。片選信號(hào)基地址的D0=1為片選使能,片選基地址的確定,為空間1或0的基地址加上所配置空間地址的范圍,超出這個(gè)范圍,片選便沒(méi)有輸出。局部地址空間0或1總線區(qū)域描述為00400022H和0040003AH,確定為16位局部數(shù)據(jù)總線。中斷控制及狀態(tài)寄存器為00001000H,不使用中斷,它的D12=1確定局部總線為ISA模式。控制寄存器確定了它的各個(gè)復(fù)用管腳輸入/輸出功能,以及初始化控制。
用含有以上配置數(shù)據(jù)的EEPROM來(lái)啟動(dòng)板卡,計(jì)算機(jī)將為它分配03000000H-0300000FH這16個(gè)I/O端口和04000000H-04010000H這64KBytes存儲(chǔ)器空間。
3.2選取、配置EEPROM的注意事項(xiàng)
1)串接EEPROM端信號(hào)有如下幾種:時(shí)鐘信號(hào)(EESK)、讀數(shù)據(jù)信號(hào)(EEDO)、寫(xiě)數(shù)據(jù)信號(hào)(EEDI)和片選信號(hào)(EECS)。時(shí)鐘信號(hào)(EESK)是由PCI總線的時(shí)鐘32分頻后得到的。
2)對(duì)于EERPOM的選取要遵循PCI9052上推薦的EEPROM或者與之相兼容的具有連讀功能的1Kbit的EEPROM。
3)可以采用在線熱配置(通過(guò)PCI9052在線配置),軟件可以選擇PLX自己公司的PLXMON或者JUNGO公司的WinDriver。筆者是用WinDriverv6.02,在軟件安裝的Samples目錄下的程序PLX9050Diagnostics來(lái)讀寫(xiě)EEPROM。這種方法比較方便,但是有時(shí)會(huì)有讀寫(xiě)數(shù)據(jù)錯(cuò)誤的情況出現(xiàn)。也可以用燒錄器將配置數(shù)據(jù)寫(xiě)入EEPROM,這種方法可靠性高,但在實(shí)驗(yàn)過(guò)程中要反復(fù)插拔EEPROM不太方便。
4.驅(qū)動(dòng)程序的開(kāi)發(fā)
ISA總線的地址空間要映射到I/O空間或內(nèi)存空間。為從PCI總線配置寄存器中獲得主機(jī)動(dòng)態(tài)分配的映射基址,并對(duì)映射端口進(jìn)行讀寫(xiě),必須編寫(xiě)驅(qū)動(dòng)程序。
驅(qū)動(dòng)的簡(jiǎn)單實(shí)現(xiàn)可以采用JUNGO公司的WinDriver來(lái)生成驅(qū)動(dòng),但是WinDriver生成的驅(qū)動(dòng)效率不高,而且沒(méi)有注冊(cè)碼只能使用一個(gè)月。因此,我們采用DriverStudio加WIN2000DDK的辦法來(lái)開(kāi)發(fā)驅(qū)動(dòng)。在DriverStudio的向?qū)螺斎朐O(shè)備ID制造商ID、分類號(hào)和子系統(tǒng)ID子制造商ID,生成驅(qū)動(dòng)程序的框架,然后編寫(xiě)需要的程序代碼。關(guān)于對(duì)驅(qū)動(dòng)程序的安裝以及在應(yīng)用程序中的調(diào)用可以參看文獻(xiàn)[5]。
5.結(jié)論
實(shí)踐證明,采用PCI接口芯片和專用運(yùn)動(dòng)控制芯片開(kāi)發(fā)的運(yùn)動(dòng)控制卡,開(kāi)發(fā)研制周期短,實(shí)用性強(qiáng),可靠性高。此運(yùn)動(dòng)控制卡已經(jīng)完成硬件調(diào)試和驅(qū)動(dòng)編寫(xiě),目前已完成部分運(yùn)動(dòng)控制函數(shù),正在進(jìn)行應(yīng)用程序開(kāi)發(fā)。
參考文獻(xiàn)
[1].PLXTechnology.PCI9052databook.PrintedinUSA,September,2001.
[2].TomShanley(美),DonAnderson(美)著.劉暉等譯.PCI系統(tǒng)結(jié)構(gòu)(第四版).北京:電子工業(yè)出版社,2000.7
[3].MCX314AsUser’sManualVer1.02004-8-10.
[4]WalterOney(美)著.MicrosoftWindowsDriverModel.http://www.oneysoft.com
[5].武安河等著.Windows2000/XPWDM設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)(第2版).電子工業(yè)出版社,2005-02-01.
[6].陶吉利,魯五一.PCI9052及其在通用網(wǎng)絡(luò)控制卡設(shè)計(jì)中的應(yīng)用.微計(jì)算機(jī)信息,2003Vol.19No.3P.72-73.
[7].袁鵬.基于視覺(jué)的高速高精度貼片機(jī)運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[C].計(jì)算機(jī)集成制造系統(tǒng),2004,12(10)
評(píng)論