張旭東+++胡曉吉
摘 要: 為了滿足某型地空導(dǎo)彈發(fā)射系統(tǒng)控制端模擬/脈沖信號輸出、數(shù)字輸入與輸出等需求,在充分考慮其抗惡劣環(huán)境特性的同時,基于CPCI總線設(shè)計了一塊高集成性、高可靠性運動控制卡。使用協(xié)議芯片PCI9030實現(xiàn)CPCI通信,使用TI公司的DSP芯片TMS320F2812實現(xiàn)模擬/脈沖信號輸出及控制,使用Altera公司的FPGA芯片EP1C3T144實現(xiàn)I/O擴展。目前該板卡已在軍事項目中得到應(yīng)用,且工作穩(wěn)定,性能良好。
關(guān)鍵詞: 運動控制卡; CPCI; DSP; FPGA
中圖分類號: TN919?34;TP317.4 文獻標(biāo)識碼: A 文章編號: 1004?373X(2015)10?0065?05
0 引 言
在航空、航天、軍事、工業(yè)等領(lǐng)域,CPCI計算機由于其高可靠性、高開放性、支持熱插拔等優(yōu)點,受到了廣泛的應(yīng)用,基于高可靠性的考慮,某型地空導(dǎo)彈發(fā)射系統(tǒng)的主控計算機采用的即為CPCI計算機。傳統(tǒng)導(dǎo)彈發(fā)射系統(tǒng)主控計算機對脈沖輸出、I/O擴展等方面的需求都是通過脈沖卡、I/O卡等單獨實現(xiàn)的,集成度較差,不利于武器裝備小型化的需求,因此有必要在CPCI總線的基礎(chǔ)上,為其設(shè)計一款集成脈沖輸出、I/O擴展等多種功能的運動控制卡。
武器控制系統(tǒng)特定的環(huán)境和功能需求要求該板卡具有如下特點:
(1) 采用6U(233.35 mm×160 mm)CPCI插卡設(shè)計,板卡具有高可靠性;
(2) 具有32路I/O端口擴展,所有端口均經(jīng)過光電隔離,滿足系統(tǒng)控制端的電壓功率驅(qū)動輸出、使能發(fā)送以及現(xiàn)場開關(guān)信號實時采集與控制等數(shù)字輸入/輸出需求;
(3) 具有12路PWM信號輸出功能,脈沖頻率最高可達4 Mp/s,滿足占空比50%,頻率精度0.01%,用于電機控制。
(4) 具有4路12位精度模擬信號輸出功能,輸出電壓范圍±10 V。
(5) 能夠捕捉光電編碼器反饋的脈沖信號,為DSP提供電機的相關(guān)信息。
1 運動控制卡總體設(shè)計
本設(shè)計以CPCI總線為基礎(chǔ),采用DSP和FPGA聯(lián)合控制,一方面可以利用DSP運算速度快、支持復(fù)雜算法的優(yōu)勢,另一方面可以通過FPGA實現(xiàn)地址譯碼和邏輯控制,具有高集成性、高可靠性、高擴展性等特點,總體設(shè)計方案如圖1所示。
該板卡通過CPCI接口實現(xiàn)與上位機通信,采用PLX公司的PCI9030橋芯片實現(xiàn)CPCI總線協(xié)議到局部總線協(xié)議的轉(zhuǎn)換,通過控制/數(shù)據(jù)/地址總線與板卡上核心單元DSP及FPGA相連,DSP、FPGA、RAM之間使用統(tǒng)一的數(shù)據(jù)/地址總線進行數(shù)據(jù)傳輸,上位機只需要對被控對象進行總體操控,模擬/脈沖信號輸出,32路數(shù)字輸入/輸出等均由運動控制卡完成。其中DSP選用TI公司的TMS320F2812,作為板卡的核心模塊,可以實現(xiàn)4路模擬信號輸出、12路PWM信號輸出;FPGA選用Altera公司的EP1C3T144,其邏輯控制電路可以實現(xiàn)對外圍功能電路和驅(qū)動電路的控制以及32路數(shù)字信號輸入和輸出,且輸入和輸出都經(jīng)過嚴(yán)格的光電隔離。
圖1 運動控制卡總體設(shè)計
2 運動控制卡功能模塊設(shè)計
2.1 CPCI總線接口
CPCI總線規(guī)范較為復(fù)雜,目前實現(xiàn)CPCI接口的方案主要有以下兩種:
(1) FPGA+PCI IP Core:性能高且方便集成,但轉(zhuǎn)讓費用昂貴,不適于初期研制;
(2) 專用CPCI接口芯片:提供可靠的CPCI邏輯和強大的功能模塊,無技術(shù)轉(zhuǎn)讓費,技術(shù)成熟,但芯片占用PCB面積較大,增加了布線復(fù)雜程度。
由于本運動控制卡為6U機械板型,空間充裕,專用CPCI接口芯片在保證板卡高可靠性的同時,能夠有效降低CPCI總線接口設(shè)計的難度,縮短研發(fā)時間,減少研發(fā)成本。PCI9030提供了3種物理總線接口:CPCI總線接口、局部總線接口、以及串行E2PROM接口??偩€的各種功能由控制信號來實現(xiàn),它們是總線信號中數(shù)量最多、功能最強的信號,也是體現(xiàn)PCI總線特色和實現(xiàn)總線功能的必備信號,主要分為3類:接口控制信號、錯誤報告信號和系統(tǒng)信號。如圖2所示為采用PLX公司的PCI9030協(xié)議芯片實現(xiàn)CPCI總線接口。
圖2 CPCI總線接口
接口控制信號主要由[FRAME],[IRDY],[TRDY],[STOP],IDSEL,[DEVSEL]和[LOCK]等組成。FRAME#信號是總線周期構(gòu)成信號,由當(dāng)前總線主設(shè)備驅(qū)動,表明一個總線周期的開始和延續(xù);[IRDY]表明啟動方準(zhǔn)備好數(shù)據(jù);[TRDY]是目標(biāo)設(shè)備就緒信號,在寫操作中,[TRDY]有效說明目標(biāo)設(shè)備已準(zhǔn)備好接受數(shù)據(jù),在讀操作中,它說明 AD[31:0]上已有有效數(shù)據(jù);[STOP]說明當(dāng)前目標(biāo)設(shè)備要求總線主設(shè)備停止當(dāng)前傳輸;IDSEL為初始化設(shè)備選擇信號,在配置空間寫操作中,作為目標(biāo)設(shè)備片選信號;[DEVSEL]為設(shè)備選擇信號,由目標(biāo)設(shè)備驅(qū)動,如果一個主設(shè)備啟動一個交易,并且在6個時鐘周期內(nèi)沒有檢測到[DEVSEL]有效,它必須假定目標(biāo)設(shè)備沒有反應(yīng)或地址不存在,導(dǎo)致交易失敗。[LOCK]為設(shè)備提供接口控制信號。
錯誤報告信號是用來使系統(tǒng)自我監(jiān)測用的信號,包括[PERR]和[SERR]兩個信號。系統(tǒng)信號包括CLK和[RST]兩個信號,為PCI接口控制器提供系統(tǒng)時鐘和系統(tǒng)復(fù)位信號。[INTA]是設(shè)備的中斷信號,電平觸發(fā),低電平有效,與時鐘異步。除[RST]和中斷信號外,其他信號都在CLK的上升沿采樣。
在總線傳輸操作周期,一個CPCI總線周期由一個地址段和緊隨其后的一個或多個數(shù)據(jù)段組成,其中AD[31:0]是地址和數(shù)據(jù)復(fù)用總線,為CPCI接口芯片提供了地址信號和數(shù)據(jù)信號。C/[BE[3:0]]為PCI接口提供總線命令(地址周期)和字節(jié)使能(數(shù)據(jù)周期)信號,而PAR信號為PCI接口控制器提供AD[31:0]和C/[BE[3:0]]信號的偶校驗。同時,PCI9030芯片必須連接一個E2PROM來設(shè)置內(nèi)部寄存器。
2.2 DSP最小系統(tǒng)
本板卡以TI公司的低功耗16位定點DSP芯片TMS320F2812為控制核心,該款DSP采用高性能靜態(tài)CMOS技術(shù),需要1.8 V的內(nèi)核電壓和3.3 V的I/O電壓供電,片內(nèi)資源豐富,運算速度快,具有快速的中斷響應(yīng)和處理能力,主要針對數(shù)字控制、運動控制等領(lǐng)域,非常適合用于運動控制卡的開發(fā),能夠有效簡化板卡設(shè)計,提高板卡性能和可靠性,降低設(shè)計成本。DSP最小系統(tǒng)主要由TMS320F2812芯片、晶振、電源電路以及電容、電阻、電感等少量器件構(gòu)成。晶振選用北京晶宇星科技公司的33 MHz有源晶振,因為DSP對電源非常敏感,故選用獨立的電源芯片供電,TI公司的PS767D301可以從CPCI接口獲得5 V電壓,轉(zhuǎn)換后提供精確的1.8 V和3.3 V電壓,保證DSP芯片穩(wěn)定工作。
2.3 DSP外擴存儲器
DSP進行運動控制時需要大容量的數(shù)據(jù)存儲,外擴存儲器選用ISSI公司容量為512K×16 b的IS61LV51216芯片。該芯片采用3.3 V電平邏輯,可與DSP、FPGA匹配,并且支持三態(tài)輸出功能,避免了總線沖突的風(fēng)險,外擴存儲器電路如圖3所示。
圖3 外擴存儲器電路
2.4 模擬量輸出
TMS320F2812本身不帶有D/A轉(zhuǎn)換器,實現(xiàn)數(shù)字量轉(zhuǎn)換模擬量輸出主要有以下兩種方式:
(1) 內(nèi)部數(shù)字量用PWM脈沖輸出,外部用高階濾波器濾波后得到直流輸出;
(2) 外接DAC轉(zhuǎn)換芯片,用DSP的數(shù)據(jù)口進行控制。
為了保證數(shù)據(jù)處理結(jié)果的準(zhǔn)確性和轉(zhuǎn)換速度,本板卡選擇外接12位精度的DAC7724芯片來實現(xiàn)D/A轉(zhuǎn)換功能??紤]到DSP產(chǎn)生信號的驅(qū)動能力,首先需要使用電平轉(zhuǎn)換芯片,對要用到的端口進行電平轉(zhuǎn)換,將DSP端口輸出的3.3 V電平轉(zhuǎn)變成5 V,電平轉(zhuǎn)換芯片選擇SN74ALVC164245,此外還需要AD587為D/A轉(zhuǎn)換提供參考電壓。如圖4所示,D/A轉(zhuǎn)換電路最終可以實現(xiàn)4路±10 V模擬信號的輸出。
圖4 模數(shù)轉(zhuǎn)換輸出電路
2.5 脈沖量輸出
DSP有EVA/EVB兩個事件管理器模塊,每個事件管理器具有2個16位通用定時器,3個比較單元,3個捕獲單元和1個正交編碼脈沖電路。每個比較單元可以產(chǎn)生一對(兩路)互補的PWM波。因此對2個事件管理器進行配置可以實現(xiàn)共12路PWM輸出。與模擬量輸出類似,TMS320F2812輸出的PWM波形的最高電壓為3.3 V,而在工業(yè)控制中,驅(qū)動電壓往往是5 V,需要通過SN74ALVC164245芯片進行電平轉(zhuǎn)換,最終經(jīng)過光電隔離后由CPCI接口輸入電機驅(qū)動器,實現(xiàn)電機控制。PWM輸出電路如圖5所示。
圖5 PWM輸出電路
對事件管理器進行配置同樣可以實現(xiàn)反饋脈沖的捕捉。通常會在電機轉(zhuǎn)子上安裝光電編碼器,光電編碼器主要由光柵盤和光電檢測裝置組成,光柵盤是在一定直徑的圓板上等分地開通若干個長方形孔,當(dāng)電機旋轉(zhuǎn)時,光柵盤和電機同軸旋轉(zhuǎn),當(dāng)LED光被遮擋住時,傳感器輸出邏輯0,也就是輸出低電平;當(dāng)LED光透過光柵的孔被傳感器接收時,傳感器輸出邏輯1,也就是輸出高電平。這樣檢測部分就能夠輸出連續(xù)的脈沖信號,脈沖信號通過CPCI連接器輸入到DSP芯片內(nèi),由捕捉單元獲取后,通過計數(shù)器計算每秒輸出的脈沖個數(shù)就能最終知道電機的轉(zhuǎn)速。此外,為了應(yīng)對復(fù)雜的軍用設(shè)備的電磁環(huán)境,脈沖接收同樣需要經(jīng)過光電隔離,保證其抗干擾能力。
2.6 FPGA配置
FPGA芯片作為輸入/輸出模塊的核心邏輯控制單元,用于實現(xiàn)局部總線在FPGA上的地址譯碼、數(shù)據(jù)格式轉(zhuǎn)換和時序控制等內(nèi)容,最終完成與上位機的正常交互、總線的啟動、停止、響應(yīng)以及數(shù)據(jù)發(fā)送和接收。FPGA狀態(tài)機的狀態(tài)轉(zhuǎn)換如圖6所示。
圖6 FPGA狀態(tài)轉(zhuǎn)換
當(dāng)一個總線周期開始的時候,PCI9030芯片在地址總線LA[9:2]上給地址,并將[ADS]信號置為有效,開始一個總線周期。FPGA芯片檢測到[ADS]有效后,將地址總線LA[9:2]上的地址讀入。如果該地址位于FPGA芯片的地址空間范圍內(nèi),則檢測LW/[R]信號。如果該地址位于FPGA芯片地址空間范圍之外,則狀態(tài)機在下個時鐘沿來之后,繼續(xù)保持IDLE狀態(tài)。如果LW/[R]信號為高,則位于PCI9030芯片的寫周期,F(xiàn)PGA狀態(tài)機將在下個時鐘沿到來后進入WAIT狀態(tài)。隨后持續(xù)檢測[WR]信號,在變?yōu)橛行Ш蟮南乱粋€時鐘沿,狀態(tài)機進入WRITE狀態(tài),讀入數(shù)據(jù)總線LD[15:0]上的數(shù)據(jù),并將[READY]信號置為低,通知PCI9030芯片數(shù)據(jù)已讀入。當(dāng)一個時鐘周期結(jié)束后,將[READY]置為高,并返回IDLE狀態(tài)。PCI9030芯片在檢測到[READY]信號被置為低的下一個時鐘沿到來之后,將數(shù)據(jù)總線LD[15:0]上的數(shù)據(jù)撤去,并將[WR]置為無效,結(jié)束一個總線周期。若在[ADS]信號為低時檢測到LW/[R]也為低,說明為PCI9030芯片讀周期。FPGA芯片將在下一個時鐘沿到來之后進入READ狀態(tài),將數(shù)據(jù)置入數(shù)據(jù)總線LD[15:0]中,并將[READY]信號置為低,通知PCI9030芯片數(shù)據(jù)已經(jīng)在數(shù)據(jù)總線中。經(jīng)過一個時鐘周期后,再將[READY]信號置為高,返回IDLE狀態(tài)。PCI9030芯片在檢測到[READY]信號被置為低后的下一個時鐘沿將[RD]信號置為無效,結(jié)束總線周期。FPGA程序配置流程圖如圖7所示。
圖7 FPGA程序配置
2.7 數(shù)字輸入輸出
板卡通過FPGA實現(xiàn)32路I/O端口擴展,滿足數(shù)字輸入輸出需求,32路輸入的數(shù)字量均選用Agilent公司的HCPL?2631光耦進行了光電隔離,采用光電隔離可以有效地抑制尖脈沖和各種噪音干擾,從而使過程通道上的信噪比大為提高。該款光耦開關(guān)門檻電流為5~15 mA,光耦正向壓降為1.4~1.75 V,計算可得,當(dāng)3.3 V電壓供電時,光耦的最大工作電流為:[(3.3-1.4)200]=9.5 mA;最小工作電流為:[(3.3-1.75)200]=7.75 mA。7.75~9.5 mA滿足光耦開關(guān)門檻電流,當(dāng)現(xiàn)場開關(guān)設(shè)備接通后,光耦輸出端電平為邏輯“0”,當(dāng)現(xiàn)場開關(guān)設(shè)備關(guān)斷后,光耦輸出端電平邏輯“1”。如圖8所示為輸入電路,32路輸入信號經(jīng)CPCI連接器連入板卡,使用16個HCPL?2631對其進行處理,每個光耦可以對兩路輸入信號進行光電隔離,處理后的信號直接與FPGA的配置好的IO管腳相連,用于后續(xù)操作。
圖8 第1路及第2路輸入電路
板卡32路輸出的數(shù)字量均選用北京東捷恒信公司的AGN200SER系列電磁繼電器作為電隔離器件??紤]FPGA本身的負(fù)載能力有限,需要在電磁繼電器前加ULN2803驅(qū)動芯片(內(nèi)含達林頓電路)來保證其正常工作。在FPGA進行邏輯控制時,將相應(yīng)的I/O端口置為三態(tài)門,當(dāng)邏輯為0時,驅(qū)動芯片關(guān)閉;當(dāng)邏輯為1時,驅(qū)動芯片導(dǎo)通。由于驅(qū)動芯片是敏感元器件,F(xiàn)PGA的80 ms初始上電配置時間會導(dǎo)致相應(yīng)的I/O端口弱上拉,從而導(dǎo)通驅(qū)動芯片,故需要在其前端添加下拉電阻,保證整個輸出過程穩(wěn)定。同時,由于繼電器線圈去激勵的瞬間會產(chǎn)生幾倍于激勵電壓的反峰電壓,會對電路產(chǎn)生危害,本設(shè)計通過并聯(lián)TVS二極管(瞬間電壓抑制器)對其加以抑制。如圖9所示為輸出電路,一個驅(qū)動芯片可以驅(qū)動8路FPGA輸出信號,使用四個驅(qū)動芯片驅(qū)動32路輸出,處理后的信號經(jīng)過32個電磁繼電器后連入CPCI連接器。
圖9 第1~8路輸出驅(qū)動及第1路輸出電路
3 驅(qū)動程序設(shè)計
編寫DLL動態(tài)數(shù)據(jù)鏈接庫可以對廠商提供的PLX公司芯片的API進行進一步封裝,以達到與上位機軟件接口函數(shù)相適應(yīng)的目的,從而實現(xiàn)上位機對運動控制卡的操作。由于PCI9030與主機內(nèi)存之間存在映射關(guān)系,只需對映射內(nèi)存區(qū)域進行讀寫就可以實現(xiàn)上位機對運動控制卡局部總線的讀寫操作。運動控制卡主要驅(qū)動函數(shù)包括:打開設(shè)備、獲取板卡基地址、驅(qū)動初始化函數(shù)、控制輸出函數(shù)、控制輸入函數(shù)、調(diào)用中斷函數(shù)、釋放資源、關(guān)閉設(shè)備等。
4 可靠性設(shè)計與驗證
為了保證板卡能夠在惡劣的軍事電磁環(huán)境下使用,并且不影響其他電子設(shè)備的正常工作,EMC和ESD設(shè)計在整個PCB設(shè)計中顯得尤為重要。本板卡在元器件選型時主要選取軍品級元器件,從根源上消除了不穩(wěn)定因素,保證板卡可靠性。設(shè)計時主要從以下幾個方面著手:
(1) 電源線和地線設(shè)計:根據(jù)電流大小盡量加寬電源線寬度,同時接地線也盡量加粗,減少線路阻抗和來自電源的干擾,并將接地電路做成閉環(huán)環(huán)路;
(2) 電路去耦:在直流電源回路中,負(fù)載的變化會引起電源噪聲。數(shù)字信號狀態(tài)轉(zhuǎn)換時,會在電源線上產(chǎn)生很大的尖峰電流,在電源輸入端接入100 μF和0.1 μF去耦電容能有效抑制電源噪聲;
(3) 數(shù)字地和模擬地分離:模擬地和數(shù)字地公用會產(chǎn)生嚴(yán)重的公共阻抗耦合,造成系統(tǒng)工作不穩(wěn)定,將數(shù)字地和模擬地分開,各有各的電源和地線回路,能有效抑制干擾;
(4) 光電隔離:板卡的輸入輸出部分均采用隔離器件,將其與外部電路隔開,能有效防止外部干擾進入板卡,保證板卡穩(wěn)定性。
依據(jù)《GJB151A?1997軍用設(shè)備和分系統(tǒng)電磁發(fā)射和敏感度要求》等國家軍用設(shè)備標(biāo)準(zhǔn)對運動控制卡進行電磁兼容、高低溫存儲/工作、10個溫度循環(huán)(-35~75 ℃)、隨機振動,沖擊(15 g,11 ms)等一系列實驗后,板卡依舊能夠正常工作,且無信號抖動和偽信號產(chǎn)生,能夠滿足板卡對軍事惡劣環(huán)境下高可靠性的要求。
5 結(jié) 語
本文設(shè)計的運動控制卡以DSP和FPGA作為核心單元,將以往需要多塊板卡實現(xiàn)的4路12位精度模擬量輸出、12路PWM脈沖量輸出、32路數(shù)字輸入輸出等功能集合于一塊板卡。同時考慮到板卡在軍事惡劣環(huán)境下使用的特點,設(shè)計時采用CPCI總線結(jié)構(gòu),在元器件選型、電路設(shè)計、PCB設(shè)計等方面都較為規(guī)范。相比傳統(tǒng)導(dǎo)彈發(fā)射系統(tǒng)中的功能板卡,具有高性能、高集成性、高可靠性等特點,能夠滿足用戶需求,具有較高的應(yīng)用價值。
參考文獻
[1] 顧衛(wèi)鋼.手把手教你學(xué)DSP:基于TMS320X281X[M].北京:北京航空航天大學(xué)出版社,2011.
[2] 王誠,吳繼華,范麗珍,等.Altera FPGA/CPLD 設(shè)計[M].北京:人民郵電出版社,2005.
[3] PICMG. CompactPCI specification [S]. Wakefield MA: PICMG, 1997.
[4] PLX. PCI9030 data book [M]. USA: PLX, 2002.
[5] 張詩杰.基于VME總線運動控制卡及驅(qū)動程序的設(shè)計和實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[6] 張宇.基于DSP和FPGA的運動控制卡研究與開發(fā)[D].南京:南京航空航天大學(xué),2007.
[7] 鄒繼榮.基于DSP運動控制卡的研究與開發(fā)[D].南京:南京航空航天大學(xué),2006.
[8] 李倫波,馬廣富,趙建亞.基于DSP和FPGA的運動控制卡的設(shè)計與實現(xiàn)[J].控制工程,2007(3):260?262.
[9] 田光錕.高速電路PCB設(shè)計與EMC技術(shù)分析[M].北京:電子工業(yè)出版社,2008.
[10] 邵小桃.電磁兼容與PCB設(shè)計[M].北京:清華大學(xué)出版社,2009.