基于DSP的PCI通用運動(dòng)控制卡的硬件設計

發(fā)布時(shí)間:2010-8-10 14:32    發(fā)布者:lavida
關(guān)鍵詞: dsp , PCI , 硬件設計 , 運動(dòng)控制卡
1 引言  

隨著(zhù) DSP 技術(shù)的飛速發(fā)展,以其為核心的多軸運動(dòng)控制卡越來(lái)越廣泛的應用在運動(dòng)控制系統中。上位機只需對被控對象實(shí)施總體的控制和管理,而位置反饋信號的采集、閉環(huán)控制的計算和控制量的輸出均由運動(dòng)控制卡完成,這極大地提高了運算速度和控制響應速度。本文設計的運動(dòng)控制卡以TI 公司的32 位定點(diǎn)DSP TMS320F2812 為核心處理器,輔以運動(dòng)控制器LM628,通過(guò)PCI 總線(xiàn)專(zhuān)用接口芯片PCI9052 與上位機通信,實(shí)現3 軸(可擴成多軸)伺服電機的控制,完成位置、速度控制以及直線(xiàn)、圓弧插補功能。本文將對運動(dòng)控制卡的硬件設計進(jìn)行詳細的介紹。  

2 運動(dòng)控制卡的硬件結構  

TMS320F2812 是基于TI 公司最新的C28x 內核而設計的。與其他的處理器相比,其具有如下一些特點(diǎn):采用低功耗設計,核心電壓僅1.8V"1.9V,顯著(zhù)降低了功耗,指令周期可達6.67ns;新增了擴展控制寄存器以實(shí)現各種增強功能;多達128K×16 位的Flash 存儲器,足夠用于存儲程序和數據變量;56 個(gè)可編程或復用的通用I/O。  

LM628 是NSC 公司專(zhuān)為使用增量式編碼器作為位置反饋的伺服機構而設計的一種芯片,其集成度高,需要外圍部件少,易于調試。主要特點(diǎn)如下:具有32 位位置、速度和加速度寄存器;帶有16 位參數的可編程數字PID 控制器;可編程微分采樣間隔;運動(dòng)過(guò)程中可改變速度、預期位置和PID 控制器參數;實(shí)時(shí)可編程的主機中斷。  

PCI9052 是PLX 公司推出的低成本、低功耗、32 位PCI 總線(xiàn)專(zhuān)用目標接口芯片。其兼容PCI V2.1 協(xié)議特性,可與多種局部總線(xiàn)相連;支持復用或非復用的8/16/32 位局部總線(xiàn);支持4 個(gè)局部片選信號和5 個(gè)局部地址空間;支持兩個(gè)來(lái)自局部總線(xiàn)的中斷,可生成一個(gè)PCI 中斷;支持局部總線(xiàn)等待狀態(tài),附加的LRDYi#握手信號可用于產(chǎn)生各種等待狀態(tài)。運動(dòng)控制卡的總體硬件結構如圖 1 所示。其中,DB 為數據總線(xiàn),AB 為地址總線(xiàn),CB為控制總線(xiàn),CS-1"CS-4 為片選信號,XA0 為DSP 經(jīng)電平轉換后的最低位地址線(xiàn)。  


圖 1 運動(dòng)控制卡的總體硬件結構  

從圖中可以看出 PCI 接口芯片的PCI 總線(xiàn)端直接與金手指相連,局部總線(xiàn)端則通過(guò)雙端口RAM 與DSP 相連,構成16 位存儲轉換電路。DSP 分別與三片LM628 相連,與其配合以實(shí)現3 軸運動(dòng)控制。這樣既解決了DSP 因系統資源不足不能控制多軸的問(wèn)題,又彌補了LM628 單獨控制時(shí)總線(xiàn)傳輸延時(shí)的缺點(diǎn)。LM628 的數字量輸出經(jīng)數/模轉換和電壓放大后轉換為交流伺服驅動(dòng)器可以接收的模擬電壓信號(-10V"+10V)。而伺服電機增量式光電編碼器的反饋經(jīng)差分電路濾波并合成單端信號接入到LM628 中,以構成位置閉環(huán)控制。  


圖 2 PCI 總線(xiàn)接口框圖  

2.1 PCI 總線(xiàn)接口  

PCI 總線(xiàn)是一種高性能、32 位地址/數據復用總線(xiàn),數據傳輸速率高達132MB/s。目前實(shí)現PCI 接口的有效方案有使用可編程邏輯器件和使用專(zhuān)用接口芯片兩種。前者實(shí)現PCI接口比較靈活,但是設計難度很高。后者雖沒(méi)有前者那么靈活,但其優(yōu)越性非常明顯:能夠有效降低接口設計的難度,縮短開(kāi)發(fā)時(shí)間,同時(shí)其還具有較低的成本和通用性,并能夠優(yōu)化數據傳輸,提供配置空間等。這里采用PCI9052 實(shí)現PCI 總線(xiàn)接口,并選用EEPROM93LC46B 對其進(jìn)行配置,電路框圖如圖2 所示。中斷信號這里只用到一條中斷線(xiàn)INTA#。  

2.2 局部總線(xiàn)接口  

為了滿(mǎn)足DSP 與上位機之間大量數據的高速交換,這里采用主從式共享雙口RAM 的通信方案,接口電路如圖3 所示。由于IDT7133 是2K×16 位的SRAM,因此將PCI9052的局部總線(xiàn)設置為16 位寬的數據總線(xiàn),即將LBE1#單獨接到IDT7133 的A0L 端。BUSYL經(jīng)非門(mén)接到PCI9052 的LRDYi#端,這是因為當BUSYL 為高時(shí)才允許外部設備訪(fǎng)問(wèn),而局部總線(xiàn)準備好信號LRDYi#為低電平有效。BUSYR 經(jīng)電平轉換后直接接到TMS320F2812 的READY 端。當BUSYL 或BUSYR 任何一個(gè)引腳被置低,其所屬設備就等待一個(gè)訪(fǎng)問(wèn)周期,直到BUSY 被拉高,即雙口RAM 不再忙,這樣便保證了數據傳輸的準確性和可靠性。因此,采用雙口RAM 通信不但簡(jiǎn)化了接口電路的設計,而且提高了上下位機數據交換的速度。  


圖 3 局部總線(xiàn)接口電路  

2.3 LM628 伺服控制單元  

控制卡共有 3 路輸出,其中一路如圖4 中虛線(xiàn)框(1)所示,其余兩路與此類(lèi)似。XD0"XD7為DSP 的低八位數據線(xiàn),LM628 所需的32 位數據由其經(jīng)總線(xiàn)驅動(dòng)芯片SN74LVC4245 分四個(gè)寫(xiě)周期寫(xiě)入。DSP 經(jīng)CS-1 選通LM628 后,再結合XA0 就可實(shí)現對其讀寫(xiě)。為了提高控制精度,這里采用12 位輸出模式,即在每一個(gè)采樣周期,LM628 的18"23 腳輸出兩個(gè)周期,前一個(gè)輸出低6 位數據,后一個(gè)輸出高6 位數據。為了讓12 位數據能同時(shí)輸入到后續的DAC芯片中,這里采用了一片6 位數據鎖存器74LS378。當LM628 輸出低6 位時(shí),DA0 是輸入觸發(fā)器的時(shí)鐘信號,DA1 是觸發(fā)器的允許信號,此時(shí),鎖存器的G 端為高,數據鎖存,接著(zhù)LM628 輸出高6 位數據,此時(shí)DA0 是給DAC 芯片的寫(xiě)信號,DA1 是片選信號,鎖存器的G 端為低,數據不鎖存。這樣便從8 位輸出合成了12 位的DAC 輸入信號DAC0"DAC11。  


圖 4 運動(dòng)控制卡的一路實(shí)現原理圖  

2.4 數/模轉換和放大電路  

如圖 4 中虛線(xiàn)框(2)所示,DAC 參考電壓Vref 由Maxim 公司的MAX680 提供,而LM358的±12V電源則可直接從PCI 插槽獲得。LM628 輸出的12 位數字量經(jīng)AD7545A 轉換為相應的模擬量,再由LM358 兩級運算放大成-10V"+10V 電壓信號送往交流伺服驅動(dòng)器,從而驅動(dòng)電機運轉。電阻R26 和R27 用來(lái)調整滿(mǎn)刻度輸出電壓和抑制零點(diǎn)漂移,電容C38 則用來(lái)加快DAC變換速度和對其輸出進(jìn)行頻率補償。最終輸出電壓Vout1 可由式(1)計算得出:  



2.5 差分電路  

在噪聲比較大的環(huán)境中,為了解決干擾和遠距離傳輸等問(wèn)題,通常采用差動(dòng)信號傳輸,如圖4 中虛線(xiàn)框(3)所示。為了進(jìn)一步消除干擾,在每個(gè)輸入端都接入一個(gè)濾波電容,同時(shí)在每一對差動(dòng)信號輸入線(xiàn)之間接一個(gè)用于線(xiàn)路阻抗匹配的電阻。差動(dòng)信號(IN+、IN-、A+、A-、B+、B-)經(jīng)差動(dòng)線(xiàn)路接收器SN75175 和高速光電耦合器6N137 轉換為單端信號(IN、A、B)輸入到LM628 中,以實(shí)現閉環(huán)控制。  

2.6 譯碼電路  

如圖 4 中虛線(xiàn)框(4)所示,采用一片3/8 譯碼器74LS138 對地址譯碼,實(shí)現對控制卡3路伺服單元的片選,而XA0 則專(zhuān)門(mén)用于對LM628 進(jìn)行讀寫(xiě)控制,這樣得出的地址信號是連續的(0XF60"0XF65)。另外,采用一片四位二進(jìn)制碼比較器74LS85 實(shí)現DSP 對雙口RAM的讀寫(xiě)片選。片選地址信號范圍為0"7FF,這剛好尋址雙口RAM 2K 范圍內的所有空間。  

此外,由于TMS320F2812 要從雙口RAM 讀出大量的運動(dòng)軌跡數據并存儲,而其片內只有18KB 的空間,遠不能滿(mǎn)足要求,同時(shí)為了方便程序調試和修改,均需要DSP 擴展一片存儲器。這里選用CYPRESS 公司的256K×16 位的SRAM CY7C1041CV33,其讀寫(xiě)周期時(shí)鐘最快可達12ns,因此可與DSP 進(jìn)行零等待狀態(tài)接口,保證了DSP 的運算速度。  

3 運動(dòng)控制卡的配置  

配置空間是 PCI 總線(xiàn)所特有的一個(gè)空間,其通常與接口芯片相關(guān),包括一系列的PCI配置寄存器。PCI9052 的配置寄存器分為PCI 配置寄存器和局部配置寄存器,兩者都可以由PCI 總線(xiàn)和串行EEPROM 訪(fǎng)問(wèn)。  

3.1 PCI 配置寄存器及其配置  

在 PCI 配置寄存器中的設備ID、制造商ID、版本號、首區類(lèi)代碼、類(lèi)別代碼、指令寄存器和狀態(tài)寄存器等在所有的PCI 設備中都必須實(shí)現。操作系統通常使用其內容來(lái)決定為該PCI 設備加載驅動(dòng)程序。此外,PCI 配置寄存器還提供6 個(gè)基地址寄存器,其中BASE0 和BASE1 是分別映射到內存和I/O 的基地址,可固定用于對PCI9052 的寄存器操作。而B(niǎo)ASE2"BASE5 最多可訪(fǎng)問(wèn)局部端所接的4 個(gè)設備,實(shí)現其局部地址空間的訪(fǎng)問(wèn)。PCI 總線(xiàn)對局部端設備的局部地址映射是通過(guò)1 個(gè)寄存器組(包括PCI 基地址寄存器、局部范圍寄存器、局部基地址寄存器和局部總線(xiàn)區域描述符)來(lái)實(shí)現的。它定義了每個(gè)空間及其特性,并將局部端設備通過(guò)局部端地址翻譯為PCI 總線(xiàn)地址,即將本地設備映射到系統的內存或I/O端口。而片選信號寄存器則用來(lái)選定這些設備。這樣,用程序操作這一段內存(或I/O)實(shí)際上就是對本地設備的操作。這些寄存器的內容必須在設備復位時(shí)通過(guò)串行EEPROM 加載。  

3.2 局部配置寄存器及其配置  

在這里,選取 LAS0(Local Address Space 0)訪(fǎng)問(wèn)局部端雙口RAM,與其相關(guān)的寄存器為L(cháng)AS0 范圍寄存器、LAS0 局部基地址寄存器、LAS0 局部總線(xiàn)區域描述符和片選0 基地址寄存器。LAS0 范圍寄存器用于定義板卡上資源所占地址空間的大小。由于板卡需要2KB的內存空間,而計算機預留了32KB 空間(即8000H),因此寫(xiě)入寄存器的值為0xFFFF8000H;LAS0 局部基地址寄存器用來(lái)定義板卡資源所占的基地址,它將其重新映射到PCI 地址空間中,以使PC 機能對板卡進(jìn)行訪(fǎng)問(wèn)。由于基地址必須是地址空間范圍的整數倍,又因局部地址空間位0 為使能位,因此,寫(xiě)入寄存器的值為00008001H;LAS0 局部總線(xiàn)區域描述符用來(lái)定義地址空間0 的具體工作特性。由于板卡數據總線(xiàn)采用16 位,工作方式定義為不使能突發(fā)和不可預取,因此寫(xiě)入寄存器的值為4043A1C0H;片選0 基地址寄存器用來(lái)確定片選信號有效的地址范圍,其既確定了片選信號的基地址又確定了片選信號的地址范圍。  

這里控制卡采用PCI9052 的CS0#作為雙口RAM 的片選信號,則其起始地址和地址范圍都可由片選0 基地址寄存器設置。由于雙口RAM 容量為2KB,因此設置CS0#基地址寄存器的第11位為1,又局部總線(xiàn)端空間0 的基地址是0x00008000H,為方便尋址,將CS0#的基地址和局部總線(xiàn)端空間0 的基地址設為同一值。由于基地址(8000H)是CS0#地址范圍的16 倍,所以將CS0#基地址寄存器的第16 位設為1,再將位0 設為1 使能,這樣寫(xiě)入片選0 基地址寄存器的值為0x00008401H。當PC 機尋址時(shí),地址映射到局部總線(xiàn)端的空間0,從其基地址開(kāi)始的2K 空間落在CS0#基地址寄存器所設置的范圍內,CS0#端則有效,可對雙口RAM各單元進(jìn)行讀寫(xiě),這樣就不必根據地址譯碼得到片選邏輯,簡(jiǎn)化了硬件設計。此外,PCI9052提供兩種中斷源,即硬件和軟件中斷。這里板卡使用其提供的2 個(gè)局部中斷中的一個(gè),即LINTi1 引腳,通過(guò)設置中斷控制/狀態(tài)寄存器(INTCSR)實(shí)現,并生成PCI 中斷INTA#方式。  

4 驅動(dòng)程序的開(kāi)發(fā)  

為了從 PCI 總線(xiàn)配置寄存器中獲得上位機動(dòng)態(tài)分配的映射基地址,并對映射端口進(jìn)行讀寫(xiě),必須編寫(xiě)驅動(dòng)程序。編寫(xiě)時(shí)可以使用DDK,但是難度較大,需要做很多通用的基礎性工作。為簡(jiǎn)化驅動(dòng)程序開(kāi)發(fā),可以采用NuMega 公司開(kāi)發(fā)的DriverStudio 中的DriverWorks工具包進(jìn)行WDM 驅動(dòng)程序設計。由于其被嵌入到VC 中,因此可更方便的用于開(kāi)發(fā)和調試驅動(dòng)程序。實(shí)踐表明,DriverStudio 并沒(méi)有通過(guò)犧牲系統性能來(lái)?yè)Q取驅動(dòng)程序的快速開(kāi)發(fā)。
本文地址:http://selenalain.com/thread-20551-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页