針對產業控制系統的要求,先容了一種基于Compact PCI總線的數據采集系統,可以實現對模擬信號、串行數字信號和并行數字信號的采集。結合DSP芯片TSM320F2812和PCI接口芯片PCI9054的性能特點,具體討論了采集系統的硬件結構和Compact PCI接口的實現。
本文的創新點是結合了Compact PCI總線和DSP芯片的上風,大大進步了系統的可靠性和實時性,同時又給應用程序開發職員提供了良好的接口,方便了硬件工作參數的修改,進步了系統的靈活性。
引言
數據采集的實時性和可靠性是關系產業控制系統性能的重要因素,數據采集系統的速率主要取決于A/D轉換、通訊接口和總線傳輸的速率。本文研制了一種基于Compact PCI總線的數據采集系統,系統以DSP作為控制核心,可以進行模擬信號采集、并行接口和串行接口的數據信號的采樣。
1 Compact PCI總線簡介
Compact PCI總線與PCI標準完全兼容,但作為開放的產業計算機標準,Compact PCI總線與PCI總線有很多不同。主要體現在:
(1) Compact PCI總線具有熱切換能力,可以使整個系統在不斷電的情況下,更換損壞的插板,這對于有高可靠性要求的系統是至關重要的。
(2) Compact PCI總線采用歐式插卡(Eurocard),具有更好的機械特性。歐式插卡的組裝技術目前已經十分成熟,插卡垂向而平行的插進機箱,有利于透風散熱;采用插進式電源模塊,便于維修,適合于安裝在標準化產業機架上。
(3) 使用高密度針孔總線連接器,完全氣密,比臺式機的PCI插槽具有更高的抗震性能和可靠性。
(4) Compact PCI底板可以容納8塊插卡,比原有的PCI規范增加了一倍,更能滿足產業系統的需要。
2 采集系統硬件結構設計
在產業控制系統中,采集系同一方面需要把電機轉速、電流環等模擬參數傳送到監控主機,另一方面需要對下位機的各種參數和圖像數據進行采集,同時監控主機還要對下位機發送各種控制信號。為了兼顧各種需要,設計中集合了模擬和數字兩種采集方式,可以實現8路A/D采樣,2路串行數據采集和2路并行數據采集,系統的結構框圖如圖1所示。
圖1 采集系統結構框圖
采集系統以數字信號處理芯片TMS320F2812作為控制核心,F2812最高工作頻率可達150MHz,除了豐富的內部存儲器資源外,還具有ADC,SCI、SPI等多種外設資源,設計中利用了其ADC和SCI模塊來進行模擬信號和串行數字信號的采集。對并行數據的采集則不通過DSP而直接與主機進行數據交換。由于主機與外設速度不匹配,選用雙口RAM芯片IDT70V24作為數據緩存,它是一種高速度、低功耗的雙口RAM,存儲量為8k字節。系統的邏輯控制采用CPLD芯片XC95108完成,它主要負責的功能是PCI局部總線仲裁和地址譯碼。三種采集模塊的實現如下:
(1) A/D采集模塊。對模擬信號的采樣使用了F2812自帶的數模轉換模塊ADC,該ADC具有16路模擬輸進通道,帶有兩路內置S/H(抽樣保持器),轉換精度為12bit,最大轉換速率為12.5MSPS,支持范圍在0~3 V的數據輸進。16路輸進通道在ADC內部共用1個模數轉換器,它們被分位兩組,每組8路通道,使用排序器Sequencer來設定每路通道占用模數轉換器的順序。設計中使用了其中8路通道(ADCIN0~ADCIN7)。
(2) 串行數據采集模塊。F2812的SCI模塊具有兩路串行通訊接口,可配置成65536種不同的波特率,具有奇偶校驗標志,可工作于半雙工或者全雙工模式,可設置成中斷或者查詢方式。另外,SCI還具有兩個增強性能:①發送、接收都具有獨立的FIFO,FIFO深度為16個字,觸發級可以配置為16以內的任何數。這種靈活的設置對實際使用非常方便,由于下位機采集的數據長度往往不是16的整數倍,根據其數據長度設定FIFO觸發級,可以使一幀數據及時被傳輸和處理;②可以實現波特率自動檢測,這在未知通訊終端波特率或者需要更換通訊終真個情況下非常適用。下位機與監控主機的通訊采用RS-422接口,傳輸間隔遠,抗干擾能力強。RS-422傳輸使用的是差分電平,而SCI的輸進輸出管腳是TTL電平,需要進行電平轉換,設計種選用了符合RS-422標準的電平轉換芯片MAX3461。
(3) 并口通訊模塊。對于圖像信號等數據傳輸量大的信號,需要使用并口通訊的方式。本采集系統提供兩路并口,數據寬度為8位,地址寬度為8位,它們通過雙口RAM與主機進行數據交換。3 Compact PCI接口設計
3.1 CPCI橋接芯片
目前,很多PCI協議芯片同時也支持熱交換,使得原有的基于PCI總線的硬件系統可以很輕易地移植到CPCI構架下,而不需要在硬件和軟件上做大的修改。本設計選用的是PLX公司推出的PCI9054,符合PCI 2.2規范和CPCI 2.1熱交換規范。
針對CPCI的熱交換規范,PCI9054提供了管腳ENUM#和LEDon/LEDin,ENUM#的激活表明板卡的插拔狀態即將發生改變,LEDon/LEDin管腳用于驅動外部LED,指示當前系統軟件層連接和斷開的情況。PCI9054還提供了熱交換控制寄存器HS_CSR用來記錄板卡插拔狀態并控制指示燈狀態。HS_CSR的定義表1所示。
表1 熱交換控制狀態寄存器HS_CSR

當板卡插進時,HS_CSR[3]被置為1,點亮藍燈,PCI9054置HS--_CSR[7]為1,激活ENUM#信號引起中斷,直到設備驅動程序被安裝后,中斷被清除,HS_CSR[3]被置為0,熄滅藍燈。當板卡拔出時,HS_CSR[6]被置為1,激活ENUM#信號引起中斷,主機卸載驅動程序后,HS_CSR[3]被置為1,點亮藍燈,表明板卡可以安全地被拔出。
3.2 熱插拔電源治理
CPCI規范中用于熱插拔控制的信號主要有:BD_SEL#,HEALTHY和PCI_RST#。CPCI總線的接插件J1的插針分為長針、中長針和短針。長針是電源和地信號,中長針是PCI總線信號,短針是BD_SEL#和IDSEL。當板卡插進時,電源信號最先接觸,將PCI總線信號預充電至1V,這是為了減小熱插拔過程中對PCI總線信號的沖擊,然后是PCI總線信連接,最后是BD_SEL#信號連接,BD_SEL#有效表示板卡已經插好,可以上電工作。卡拔出過程正好相反。HEALTHY#是反映板卡電源狀態是否良好的信號。PCI-_RST#是主機復位信號,它和HEALTHY#信號共同作用,控制PCI局部總線的復位信號。
LTC1646是Linear公司針對CPCI接口推出的熱插拔電源治理芯片。LTC1646需要外接兩個N溝道晶體管作為開關控制3.3V和5V電源對板卡的供電。LTC1646的OFF/ON#管腳與BD_SEL#相連,當BD_SEL#為低時,晶體管導通,3.3V和5V電源按一定速率上電。PWRGD#與HEALTHY#連接,當板卡電源在容差范圍內時,此信號為低。PCI_RST#與LTC1646的RESETIN#管腳相連,它與HEALTHY信號進行或運算得到輸出信號RESETOUT#,此信號與PCI9054的RST#管腳相連作為CPCI板卡的復位信號。LTC1646提供一個輸出管腳PRECHARGE,它與PCI9054的總線信號相連接,在板卡插進和拔出的過程中,對總線信號進行預充電。需要預充電的信號需要經過10kΩ的電阻上拉至預充電電壓(1V±10%)。4 軟件接口
由于產業現場外設種類多,采集到的信號特性各異,假如硬件系統內部程序固定為一種模式,必定不能達到最佳傳輸效果。而硬件板卡在交付使用后,再修改其內部程序便十分麻煩,所以本系統給應用程序開發職員提供了軟件接口,使得對硬件配置的修改不需要通過仿真器,而可以直接在應用程序界面下修改。
對硬件工作參數的修改是通過中斷方式實現的。自定義一個16位控制寄存器User_CSR,其高4位用作命令字,低12位用作控制字。當應用程序通過PCI總線向User_CSR寫進數據時,CPLD通過譯碼邏輯向F2812的外部中斷管腳XINT2發出中斷信號,F2812響應中斷后,讀取User_CSR的值,根據其命令字判定需要修改的是哪種參數,再根據其控制字得到新的參數值,將其寫進相應的寄存器,即可完成修改。由于篇幅所限,僅以修改SCIA的設置為例,說明具體實現方法。User_CSR對SCIA修改的定義如下:
表2 User_CSR的部分定義

通過該接口可修改的硬件配置有SCI的波特率、收發FIFO的觸發級別和各采集通道占用雙口RAM空間的大小。
5 結束語
本設計以TMS320F2812作為數據采集系統的控制核心,滿足了系統的實時性要求,又節省了外設資源,進步了系統的性價比。把Compact PCI總線應用到采集系統中,使系統具有了帶電插拔的能力,進步了整個系統的可靠性,更能適應產業工作環境的需要。