單片機(jī)與CPCI總線的脈沖信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)
引言
在工業(yè)控制領(lǐng)域,通常有大量的脈沖信號(hào)用于控制其他設(shè)備或部件的開(kāi)關(guān)或者工作狀態(tài)切換。這些脈沖信號(hào)除了常規(guī)計(jì)算機(jī)系統(tǒng)采用的+5 V接口電平外,還有+12 V、+30 V,乃至更高幅度的接口電平,通常為功率型電流驅(qū)動(dòng)信號(hào)。本文提出了一種兩級(jí)測(cè)試系統(tǒng)的設(shè)計(jì)思路,給出了在較寬的范圍內(nèi)兼容不同接口電平的脈沖信號(hào)檢測(cè)系統(tǒng)的設(shè)計(jì)方案,采用標(biāo)準(zhǔn)CPCI總線接口設(shè)計(jì),具有良好的兼容性和擴(kuò)展性,適用于產(chǎn)品功能測(cè)試或系統(tǒng)集成測(cè)試。
1 測(cè)試系統(tǒng)架構(gòu)
如圖1所示,測(cè)試系統(tǒng)采用二級(jí)(主控機(jī)、下位機(jī))結(jié)構(gòu)設(shè)計(jì),由主控計(jì)算機(jī)(即主控機(jī))、測(cè)試客戶機(jī)(即下位機(jī))、局域網(wǎng)、電纜及運(yùn)行于各設(shè)備中的測(cè)試軟件共同構(gòu)成。主控計(jì)算機(jī)屬主控機(jī)一級(jí),控制測(cè)試客戶機(jī),測(cè)試任務(wù)由主控計(jì)算機(jī)控制完成。測(cè)試客戶機(jī)控制其對(duì)應(yīng)的測(cè)試設(shè)備可獨(dú)立完成設(shè)備級(jí)的功能測(cè)試。整個(gè)測(cè)試系統(tǒng)通過(guò)對(duì)被測(cè)設(shè)備施加激勵(lì)信號(hào)并檢測(cè)其響應(yīng)輸出的方式,實(shí)現(xiàn)對(duì)被測(cè)沒(méi)備的閉環(huán)測(cè)試。
脈沖信號(hào)檢測(cè)板是工作于測(cè)試客戶機(jī)中的測(cè)試板卡,其主要功能是接收80路外部脈沖信號(hào),測(cè)量并記錄每路脈沖信號(hào)的脈沖寬度及收到脈沖的時(shí)間。
2 脈沖信號(hào)檢測(cè)板實(shí)現(xiàn)方案
2.1 總體設(shè)計(jì)
脈沖信號(hào)特性為:脈沖持續(xù)時(shí)間為80~500 ms,偏差為±10 ms;驅(qū)動(dòng)電流不小于200 mA。在產(chǎn)品功能測(cè)試及系統(tǒng)集成測(cè)試階段,主要考核脈沖信號(hào)功能的正確性,故脈沖信號(hào)檢測(cè)板用于檢測(cè)脈沖信號(hào)的發(fā)生時(shí)間及脈沖持續(xù)寬度,要求測(cè)量誤差不大于±1ms。
如圖2所示,脈沖信號(hào)檢測(cè)板的核心部分包括光耦接口電路、接口處理FPGA、單片機(jī)系統(tǒng)和PCI接口電路。板卡采用標(biāo)準(zhǔn)的6U尺寸CPCI板卡設(shè)計(jì),兼容標(biāo)準(zhǔn)6U尺寸的CPCI工控機(jī)。
檢測(cè)板內(nèi)部主要數(shù)據(jù)流向及處理流程為:80路脈沖信號(hào)通過(guò)光電耦合器(光耦)進(jìn)行隔離變換,轉(zhuǎn)換成檢測(cè)板內(nèi)部5 V電平信號(hào);接口處理FPGA對(duì)信號(hào)進(jìn)行采樣,并將80路脈沖采樣數(shù)據(jù)組幀緩存;單片機(jī)讀取FPGA中的采樣數(shù)據(jù),并判斷是否檢測(cè)到有效脈沖信號(hào),將檢測(cè)到的脈沖信號(hào)打上當(dāng)前時(shí)間標(biāo)簽后發(fā)送給雙口RAM;工控機(jī)軟件通過(guò)CPCI總線定期訪問(wèn)雙口RAM,讀取數(shù)據(jù)。
2.2 脈沖信號(hào)接口
被測(cè)脈沖信號(hào)為功率驅(qū)動(dòng)信號(hào),用于驅(qū)動(dòng)功率負(fù)載,驅(qū)動(dòng)電流通常為幾mA至幾百mA,采用集電極開(kāi)路門(OC)形式輸出,通常為+12~+30 V信號(hào)。為了兼容多種信號(hào)電平,并能隔離功率型信號(hào)與普通基帶電平信號(hào),實(shí)現(xiàn)較好的電磁兼容性,本系統(tǒng)采用光電耦合器作為信號(hào)隔離與電平轉(zhuǎn)換的接口器件。
TLP121是東芝公司生產(chǎn)的光電耦合器,隔離阻抗為MΩ級(jí),其前向驅(qū)動(dòng)電流(IF)最大為20 mA,后端開(kāi)關(guān)開(kāi)啟和閉合時(shí)間均為μs級(jí),可以滿足本系統(tǒng)對(duì)測(cè)量誤差不大于1 ms的要求。輸入接口電阻設(shè)為可調(diào)電阻,可適應(yīng)不同輸入電壓。
脈沖信號(hào)接口電路如圖3所示。脈沖信號(hào)正線和回線連接至光耦的前端(圖3中TLP121的1、3引腳),后端(圖3中TLP121的4、6引腳)采用板內(nèi)5V電源上拉,通過(guò)施密特電路74HC14整形后發(fā)送至接口處理FPGA。當(dāng)脈沖信號(hào)有效時(shí),光耦前端有電流流過(guò),接口電路輸出高電平“1”;脈沖信號(hào)無(wú)效時(shí),接口電路輸出低電平“0”。
2.3 接口處理FPGA
由于需要對(duì)80路脈沖信號(hào)進(jìn)行檢測(cè),采用單片機(jī)無(wú)法滿足并行處理的需求,因此選用FPGA完成脈沖采樣功能。接口處理FPGA采用Altera公司的FLEX10K50,工作主頻為6 MHz,存儲(chǔ)芯片采用EPC1PC8。
其主要功能有三部分:分頻定時(shí)器、采樣數(shù)據(jù)緩存、外圍控制邏輯。FPGA對(duì)主時(shí)鐘進(jìn)行分頻,形成周期為1 ms的時(shí)鐘信號(hào)。FPGA每ms對(duì)80路脈沖信號(hào)完成并行采集一次,將數(shù)據(jù)存放在寄存器中,同時(shí)向單片機(jī)發(fā)出中斷信號(hào),通知單片機(jī)發(fā)起數(shù)據(jù)搬移,以及單片機(jī)內(nèi)部的時(shí)間計(jì)數(shù)器自增。采樣數(shù)據(jù)緩存模塊用于將80路脈沖信號(hào)同時(shí)鎖存至內(nèi)部寄存器,單片機(jī)每ms全部讀取一次。外圍控制邏輯用于單片機(jī)外圍各控制信號(hào)的譯碼,包括控制寄存器、各芯片控制信號(hào)譯碼,以及其他輔助功能的實(shí)現(xiàn)。
2.4 單片機(jī)系統(tǒng)
單片機(jī)系統(tǒng)采用Atmel公司的AT89C51,配合32KB外部SRAM 62256以及4 KB雙口數(shù)據(jù)RAMIDT71342。其中,CPCI總線訪問(wèn)雙口數(shù)據(jù)RAM的L端口,8051訪問(wèn)R端口。
單片機(jī)工作主頻設(shè)計(jì)為20 MHz。單片機(jī)P0口和P2口作為通用的數(shù)據(jù)線和地址線使用,配合地址鎖存器74HC373 工作;P1口不使用;P3口中僅使用了P3.2用于接收外部中斷,即來(lái)自接口處理FPGA的中斷。FPGA內(nèi)部定時(shí)器每ms產(chǎn)生一個(gè)中斷脈沖,用于單片機(jī)軟件計(jì)時(shí)器的激勵(lì)時(shí)鐘,同時(shí)通知單片機(jī)讀取脈沖信號(hào)接口采樣數(shù)據(jù)。
單片機(jī)的外部地址空間劃分如表1所列。
單片機(jī)產(chǎn)生的脈沖信號(hào)數(shù)據(jù)幀格式如圖4所示。每個(gè)數(shù)據(jù)幀包含14個(gè)字節(jié)數(shù)據(jù),時(shí)間碼為4個(gè)字節(jié),加電后從0開(kāi)始計(jì)時(shí),單位為ms;采樣脈沖數(shù)據(jù)共10個(gè)字節(jié),對(duì)應(yīng)80路脈沖信號(hào)。
2.5 PCI總線接口
板卡采用CPCI接口方式,接口芯片采用PLX公司的PLX9052,與配置EEPROM芯片93CS46配合使用。板卡在PCI總線中工作在從模式下。接口芯片對(duì)部數(shù)據(jù)總線選擇低8位數(shù)據(jù)線與雙口 RAM連接,測(cè)試客戶機(jī)定期查詢每塊測(cè)試板卡中雙口RAM的工作模式,不使用本地中斷信號(hào)。
3 軟件設(shè)計(jì)
脈沖信號(hào)檢測(cè)板單片機(jī)軟件主要完成脈沖采樣數(shù)據(jù)的處理,剔除FPGA產(chǎn)生的采樣數(shù)據(jù)中的無(wú)效數(shù)據(jù),將檢測(cè)到的脈沖有效數(shù)據(jù)打上時(shí)間標(biāo)簽后存儲(chǔ)到雙口數(shù)據(jù)RAM中。雙口 RAM中循環(huán)存儲(chǔ)256組脈沖信號(hào)數(shù)據(jù),測(cè)試客戶機(jī)定期訪問(wèn)雙口RAM,讀取檢測(cè)數(shù)據(jù)。單片機(jī)軟件流程如圖5所示。
圖5中寄存器0x8FFD為配置寄存器,由測(cè)試客戶機(jī)軟件寫入,用于初始化雙口RAM中的數(shù)據(jù)。
結(jié)語(yǔ)
本文提出的兩級(jí)測(cè)試系統(tǒng)的沒(méi)計(jì)思路和基于單片機(jī)與CPCI總線的脈沖信號(hào)檢測(cè)系統(tǒng)沒(méi)計(jì)方案,可以適應(yīng)較寬電壓幅度范圍的接口電平信號(hào)。系統(tǒng)采用標(biāo)準(zhǔn)的CPCI總線接口,具有良好的兼容性和擴(kuò)展性,能較好地滿足對(duì)脈沖信號(hào)的功能測(cè)試。如需要提高測(cè)量精度,可縮短FPGA采樣間隔來(lái)實(shí)現(xiàn)。
目前,該方案已經(jīng)大量應(yīng)用于產(chǎn)品測(cè)試和系統(tǒng)集成測(cè)試中。
評(píng)論