CompactPCI總線實(shí)現(xiàn)并行數(shù)據(jù)采集系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
針對(duì)產(chǎn)業(yè)控制系統(tǒng)的要求,先容了一種基于Compact PCI總線的數(shù)據(jù)采集系統(tǒng),可以實(shí)現(xiàn)對(duì)模擬信號(hào)、串行數(shù)字信號(hào)和并行數(shù)字信號(hào)的采集。結(jié)合DSP芯片TSM320F2812和PCI接口芯片PCI9054的性能特點(diǎn),具體討論了采集系統(tǒng)的硬件結(jié)構(gòu)和Compact PCI接口的實(shí)現(xiàn)。
本文的創(chuàng)新點(diǎn)是結(jié)合了Compact PCI總線和DSP芯片的上風(fēng),大大進(jìn)步了系統(tǒng)的可靠性和實(shí)時(shí)性,同時(shí)又給應(yīng)用程序開發(fā)職員提供了良好的接口,方便了硬件工作參數(shù)的修改,進(jìn)步了系統(tǒng)的靈活性。
引言
數(shù)據(jù)采集的實(shí)時(shí)性和可靠性是關(guān)系產(chǎn)業(yè)控制系統(tǒng)性能的重要因素,數(shù)據(jù)采集系統(tǒng)的速率主要取決于A/D轉(zhuǎn)換、通訊接口和總線傳輸?shù)乃俾?。本文研制了一種基于Compact PCI總線的數(shù)據(jù)采集系統(tǒng),系統(tǒng)以DSP作為控制核心,可以進(jìn)行模擬信號(hào)采集、并行接口和串行接口的數(shù)據(jù)信號(hào)的采樣。
1 Compact PCI總線簡介
Compact PCI總線與PCI標(biāo)準(zhǔn)完全兼容,但作為開放的產(chǎn)業(yè)計(jì)算機(jī)標(biāo)準(zhǔn),Compact PCI總線與PCI總線有很多不同。主要體現(xiàn)在:
(1) Compact PCI總線具有熱切換能力,可以使整個(gè)系統(tǒng)在不斷電的情況下,更換損壞的插板,這對(duì)于有高可靠性要求的系統(tǒng)是至關(guān)重要的。
(2) Compact PCI總線采用歐式插卡(Eurocard),具有更好的機(jī)械特性。歐式插卡的組裝技術(shù)目前已經(jīng)十分成熟,插卡垂向而平行的插進(jìn)機(jī)箱,有利于透風(fēng)散熱;采用插進(jìn)式電源模塊,便于維修,適合于安裝在標(biāo)準(zhǔn)化產(chǎn)業(yè)機(jī)架上。
(3) 使用高密度針孔總線連接器,完全氣密,比臺(tái)式機(jī)的PCI插槽具有更高的抗震性能和可靠性。
(4) Compact PCI底板可以容納8塊插卡,比原有的PCI規(guī)范增加了一倍,更能滿足產(chǎn)業(yè)系統(tǒng)的需要。
2 采集系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)
在產(chǎn)業(yè)控制系統(tǒng)中,采集系同一方面需要把電機(jī)轉(zhuǎn)速、電流環(huán)等模擬參數(shù)傳送到監(jiān)控主機(jī),另一方面需要對(duì)下位機(jī)的各種參數(shù)和圖像數(shù)據(jù)進(jìn)行采集,同時(shí)監(jiān)控主機(jī)還要對(duì)下位機(jī)發(fā)送各種控制信號(hào)。為了兼顧各種需要,設(shè)計(jì)中集合了模擬和數(shù)字兩種采集方式,可以實(shí)現(xiàn)8路A/D采樣,2路串行數(shù)據(jù)采集和2路并行數(shù)據(jù)采集,系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
圖1 采集系統(tǒng)結(jié)構(gòu)框圖
采集系統(tǒng)以數(shù)字信號(hào)處理芯片TMS320F2812作為控制核心,F(xiàn)2812最高工作頻率可達(dá)150MHz,除了豐富的內(nèi)部存儲(chǔ)器資源外,還具有ADC,SCI、SPI等多種外設(shè)資源,設(shè)計(jì)中利用了其ADC和SCI模塊來進(jìn)行模擬信號(hào)和串行數(shù)字信號(hào)的采集。對(duì)并行數(shù)據(jù)的采集則不通過DSP而直接與主機(jī)進(jìn)行數(shù)據(jù)交換。由于主機(jī)與外設(shè)速度不匹配,選用雙口RAM芯片IDT70V24作為數(shù)據(jù)緩存,它是一種高速度、低功耗的雙口RAM,存儲(chǔ)量為8k字節(jié)。系統(tǒng)的邏輯控制采用CPLD芯片XC95108完成,它主要負(fù)責(zé)的功能是PCI局部總線仲裁和地址譯碼。三種采集模塊的實(shí)現(xiàn)如下:
(1) A/D采集模塊。對(duì)模擬信號(hào)的采樣使用了F2812自帶的數(shù)模轉(zhuǎn)換模塊ADC,該ADC具有16路模擬輸進(jìn)通道,帶有兩路內(nèi)置S/H(抽樣保持器),轉(zhuǎn)換精度為12bit,最大轉(zhuǎn)換速率為12.5MSPS,支持范圍在0~3 V的數(shù)據(jù)輸進(jìn)。16路輸進(jìn)通道在ADC內(nèi)部共用1個(gè)模數(shù)轉(zhuǎn)換器,它們被分位兩組,每組8路通道,使用排序器Sequencer來設(shè)定每路通道占用模數(shù)轉(zhuǎn)換器的順序。設(shè)計(jì)中使用了其中8路通道(ADCIN0~ADCIN7)。
(2) 串行數(shù)據(jù)采集模塊。F2812的SCI模塊具有兩路串行通訊接口,可配置成65536種不同的波特率,具有奇偶校驗(yàn)標(biāo)志,可工作于半雙工或者全雙工模式,可設(shè)置成中斷或者查詢方式。另外,SCI還具有兩個(gè)增強(qiáng)性能:①發(fā)送、接收都具有獨(dú)立的FIFO,F(xiàn)IFO深度為16個(gè)字,觸發(fā)級(jí)可以配置為16以內(nèi)的任何數(shù)。這種靈活的設(shè)置對(duì)實(shí)際使用非常方便,由于下位機(jī)采集的數(shù)據(jù)長度往往不是16的整數(shù)倍,根據(jù)其數(shù)據(jù)長度設(shè)定FIFO觸發(fā)級(jí),可以使一幀數(shù)據(jù)及時(shí)被傳輸和處理;②可以實(shí)現(xiàn)波特率自動(dòng)檢測(cè),這在未知通訊終端波特率或者需要更換通訊終真?zhèn)€情況下非常適用。下位機(jī)與監(jiān)控主機(jī)的通訊采用RS-422接口,傳輸間隔遠(yuǎn),抗干擾能力強(qiáng)。RS-422傳輸使用的是差分電平,而SCI的輸進(jìn)輸出管腳是TTL電平,需要進(jìn)行電平轉(zhuǎn)換,設(shè)計(jì)種選用了符合RS-422標(biāo)準(zhǔn)的電平轉(zhuǎn)換芯片MAX3461。
(3) 并口通訊模塊。對(duì)于圖像信號(hào)等數(shù)據(jù)傳輸量大的信號(hào),需要使用并口通訊的方式。本采集系統(tǒng)提供兩路并口,數(shù)據(jù)寬度為8位,地址寬度為8位,它們通過雙口RAM與主機(jī)進(jìn)行數(shù)據(jù)交換。[!--empirenews.page--]3 Compact PCI接口設(shè)計(jì)
3.1 CPCI橋接芯片
目前,很多PCI協(xié)議芯片同時(shí)也支持熱交換,使得原有的基于PCI總線的硬件系統(tǒng)可以很輕易地移植到CPCI構(gòu)架下,而不需要在硬件和軟件上做大的修改。本設(shè)計(jì)選用的是PLX公司推出的PCI9054,符合PCI 2.2規(guī)范和CPCI 2.1熱交換規(guī)范。
針對(duì)CPCI的熱交換規(guī)范,PCI9054提供了管腳ENUM#和LEDon/LEDin,ENUM#的激活表明板卡的插拔狀態(tài)即將發(fā)生改變,LEDon/LEDin管腳用于驅(qū)動(dòng)外部LED,指示當(dāng)前系統(tǒng)軟件層連接和斷開的情況。PCI9054還提供了熱交換控制寄存器HS_CSR用來記錄板卡插拔狀態(tài)并控制指示燈狀態(tài)。HS_CSR的定義表1所示。
表1 熱交換控制狀態(tài)寄存器HS_CSR
當(dāng)板卡插進(jìn)時(shí),HS_CSR[3]被置為1,點(diǎn)亮藍(lán)燈,PCI9054置HS--_CSR[7]為1,激活ENUM#信號(hào)引起中斷,直到設(shè)備驅(qū)動(dòng)程序被安裝后,中斷被清除,HS_CSR[3]被置為0,熄滅藍(lán)燈。當(dāng)板卡拔出時(shí),HS_CSR[6]被置為1,激活ENUM#信號(hào)引起中斷,主機(jī)卸載驅(qū)動(dòng)程序后,HS_CSR[3]被置為1,點(diǎn)亮藍(lán)燈,表明板卡可以安全地被拔出。
3.2 熱插拔電源治理
CPCI規(guī)范中用于熱插拔控制的信號(hào)主要有:BD_SEL#,HEALTHY和PCI_RST#。CPCI總線的接插件J1的插針分為長針、中長針和短針。長針是電源和地信號(hào),中長針是PCI總線信號(hào),短針是BD_SEL#和IDSEL。當(dāng)板卡插進(jìn)時(shí),電源信號(hào)最先接觸,將PCI總線信號(hào)預(yù)充電至1V,這是為了減小熱插拔過程中對(duì)PCI總線信號(hào)的沖擊,然后是PCI總線信連接,最后是BD_SEL#信號(hào)連接,BD_SEL#有效表示板卡已經(jīng)插好,可以上電工作??ò纬鲞^程正好相反。HEALTHY#是反映板卡電源狀態(tài)是否良好的信號(hào)。PCI-_RST#是主機(jī)復(fù)位信號(hào),它和HEALTHY#信號(hào)共同作用,控制PCI局部總線的復(fù)位信號(hào)。
LTC1646是Linear公司針對(duì)CPCI接口推出的熱插拔電源治理芯片。LTC1646需要外接兩個(gè)N溝道晶體管作為開關(guān)控制3.3V和5V電源對(duì)板卡的供電。LTC1646的OFF/ON#管腳與BD_SEL#相連,當(dāng)BD_SEL#為低時(shí),晶體管導(dǎo)通,3.3V和5V電源按一定速率上電。PWRGD#與HEALTHY#連接,當(dāng)板卡電源在容差范圍內(nèi)時(shí),此信號(hào)為低。PCI_RST#與LTC1646的RESETIN#管腳相連,它與HEALTHY信號(hào)進(jìn)行或運(yùn)算得到輸出信號(hào)RESETOUT#,此信號(hào)與PCI9054的RST#管腳相連作為CPCI板卡的復(fù)位信號(hào)。LTC1646提供一個(gè)輸出管腳PRECHARGE,它與PCI9054的總線信號(hào)相連接,在板卡插進(jìn)和拔出的過程中,對(duì)總線信號(hào)進(jìn)行預(yù)充電。需要預(yù)充電的信號(hào)需要經(jīng)過10kΩ的電阻上拉至預(yù)充電電壓(1V±10%)。[!--empirenews.page--]4 軟件接口
由于產(chǎn)業(yè)現(xiàn)場(chǎng)外設(shè)種類多,采集到的信號(hào)特性各異,假如硬件系統(tǒng)內(nèi)部程序固定為一種模式,必定不能達(dá)到最佳傳輸效果。而硬件板卡在交付使用后,再修改其內(nèi)部程序便十分麻煩,所以本系統(tǒng)給應(yīng)用程序開發(fā)職員提供了軟件接口,使得對(duì)硬件配置的修改不需要通過仿真器,而可以直接在應(yīng)用程序界面下修改。
對(duì)硬件工作參數(shù)的修改是通過中斷方式實(shí)現(xiàn)的。自定義一個(gè)16位控制寄存器User_CSR,其高4位用作命令字,低12位用作控制字。當(dāng)應(yīng)用程序通過PCI總線向User_CSR寫進(jìn)數(shù)據(jù)時(shí),CPLD通過譯碼邏輯向F2812的外部中斷管腳XINT2發(fā)出中斷信號(hào),F(xiàn)2812響應(yīng)中斷后,讀取User_CSR的值,根據(jù)其命令字判定需要修改的是哪種參數(shù),再根據(jù)其控制字得到新的參數(shù)值,將其寫進(jìn)相應(yīng)的寄存器,即可完成修改。由于篇幅所限,僅以修改SCIA的設(shè)置為例,說明具體實(shí)現(xiàn)方法。User_CSR對(duì)SCIA修改的定義如下:
表2 User_CSR的部分定義
通過該接口可修改的硬件配置有SCI的波特率、收發(fā)FIFO的觸發(fā)級(jí)別和各采集通道占用雙口RAM空間的大小。
5 結(jié)束語
本設(shè)計(jì)以TMS320F2812作為數(shù)據(jù)采集系統(tǒng)的控制核心,滿足了系統(tǒng)的實(shí)時(shí)性要求,又節(jié)省了外設(shè)資源,進(jìn)步了系統(tǒng)的性價(jià)比。把Compact PCI總線應(yīng)用到采集系統(tǒng)中,使系統(tǒng)具有了帶電插拔的能力,進(jìn)步了整個(gè)系統(tǒng)的可靠性,更能適應(yīng)產(chǎn)業(yè)工作環(huán)境的需要。