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