摘 要:為解決多通道數據的遠程采集和多路冗余輸出問題,介紹基于RS 485總線的多冗余數據采集處理單元設計方法,給出4~20 mA采集模塊、多路冗余輸出處理模塊的設計實現,該單元具有通用性、可擴展性強,冗余度高的特點。
關鍵詞:RS 485總線;單片機;數據采集;冗余輸出
中圖分類號:TN919 文獻標識碼:A
文章編號:1004-373X(2010)11-0097-03
Design and Implementation of Data Acquisition Processing and Multi-redundant Output Unit
JIANG Yuan-xing1,2, SHAO Zhong-hui2
(1. Zhejiang Tongji Vocational College of Science and Technology, Hangzhou 311231, China;
2. Zhejiang Xinya Magnetoelectricity Developmemt Co. Ltd., Zhoushan 316000, China)
Abstract:A method to design the multi-redundant data acquisition and processing unit based on RS 485 bus is introduced to solve the issues of multi-channel data acquisition and multi-redundant output. The realization of 4~20 mA acquisition module and multi-redundant output processing module is described. The unit has the characteristics of generability, scalability and high-redundancy.
Keywords: RS 485 bus; micro controller; data acquisition; redundant output
在現代信號處理系統中,數據采集處理系統越來越廣泛地用于各行各業[1]。現代船舶為了實現安全、經濟的運行,自動化程度越來越高,需要采集處理各種數據。由于船舶本身的特殊性,各設備運行工況非常惡劣,環境干擾因素多,為了保障船舶安全,對數據采集處理的可高性有很高的要求。本文介紹一種用于船舶監測報警系統的數據采集單元,該單元由采集模塊實現對多通道現場各數據的實時采集,然后由專用的多路冗余處理模塊輸出至本地人機界面顯示和上位機進行綜合處理,具有很強的實用性、通用性及可擴展性,且冗余度高,穩定可靠,已在多個船舶監測報警系統實際工程中應用。
1 系統總體設計
為滿足對現場多種數據采集和處理、顯示與上傳,采集單元由開關量采集模塊、4~20 mA采集模塊、Pt100采集模塊、熱電偶采集模塊構成集總式采集系統,再由雙CPU專用處理模塊實現多路冗余輸出至本地人機界面顯示和PC機。單片機的運算能力強,運算速度快,I/O接口功能完善,抗干擾能力強,可靠性高,系統結構簡單、價格優廉,是現場數據采集器的核心元件之一[2]。采集終端采用基于單片機ATmega16的各專用采集模塊。RS 485硬件設計簡單,控制方便成本低廉,支持遠距離多機通信[3],故采用RS 485總線進行數據傳輸。圖1為系統的總體框圖。
圖1 系統的總體框圖
2 系統的設計實現
本文主要對數據采集單元硬件部份的實現做介紹,包括單片機采集模塊、多路冗余輸出處理模塊。開發工具為Protel 2004 DXP和Keil μVision 2。
2.1 單片機采集模塊
為滿足工程需要,開發設計了4~20 mA輸入與輸出模塊、PT100輸入模塊、熱電偶輸入模塊、開關量輸入與輸出模塊等系列采集終端,各終端采用模塊化設計,可以方便靈活地組成不同要求的采集單元。以下以8路4~20 mA輸入模塊為例說明其設計與實現。
2.1.1 單片機選擇及ATmegal6單片機主要特征
該系列采集模塊采用功能強大的ATmega16(TQFP封裝)作為主處理器。ATmega16是RISC結構的低功耗8位AVR微控制器,其主要特點如下[4-5]:16 KB的系統內可編程FLASH 512 B E2PROM,1 KB SRAM,32個通用I/O口線,32個通用工作寄存器,用于邊界掃描的JTAG接口,支持片內調試與編程,3個具有比較模式的靈活的定時器/計數器(T/C),片內/外中斷,可編程串行USART,有起始條件檢測器的通用串行接口,8路10位具有可選差分輸入級可編程增益的ADC(TQFP封裝),具有片內振蕩器的可編程看門狗定時器,1個SPI串行端口,以及6個可以通過軟件進行選擇的省電模式。片內ISP FLASH允許程序存儲器通過ISP串行接口,或者通用編程器進行編程,也可以通過運行于AVR內核之中的引導程序進行編程。引導程序可以使用任意接口將應用程序下載到應用FLASH存儲區(Application FLASH Memory)。在更新應用FLASH存儲區時引導FLASH區(Boot FLASH Memory)的程序繼續運行,實現了RWW操作。由于其先進的指令集以及單時鐘周期指令執行時間,ATmega16的數據吞吐率高達1 MIPS/MHz。
2.1.2 電源及電壓基準源
本模塊外部由直流24 V電源供電,內部由3個鑫飛達DC/DC隔離電源實現分開供電,互不干擾,一路經DFA5-24S12輸入24 V隔離輸出5 V供通道采樣與A/D轉換工作電源;一路經DFA5-24S5輸入24 V隔離輸出5 V供CPU工作電源;一路S05HIS05-2W輸入5 V隔離輸出5 V供RS 485通訊工作電源。模塊前向通道的信號調理電路和模數轉換芯片都需要一個高精度的5 V的電壓基準源,TL431就是基準源電路的核心器件。其主要特點是:穩壓值從2.5~36 V連續可調;參考電壓源誤差±1%,低動態輸出電阻,典型值0.22 Ω,輸出電流1.0~100 mA,全溫度范偉內溫度特性平坦,典型值為50 ppm;低輸出電壓噪聲[6]。TL431適用作12位模數轉換器的基準電壓參考源[7]。本模塊用TL431構建的5 V基準電路。
2.1.3 工作過程
8路4~20 mA信號經信號調理電路(TLC279ID),再經數模轉換(TLC2543)、隔離(6N137)送入ATmega16單片機,它利用內部自帶的ADD轉換器采集8路數據,將其經由RS 485接口電路傳送給上位機,RS 485通訊模塊采用帶磁隔離的ADM2483。其原理框圖見圖2。
2.1.4 程序設計
系統上電后執行初始化程序,復位各個端口。當處于監聽狀態時,各監測點數據采集模塊處于自動巡回監測狀態,系統開始對各通道按設定間隔時間進行采集;當接收到上位機發送來的指令便選中相應的采集通道執行數據采集,調用數字濾波子程序進行濾波得到精確的數值,再通過數據轉換和處理后送微處理器的數據存儲器,等待上位機的讀取[8]。單片機程序采用C語言編寫,系統主程序為一個循環,在循環中完成以下工作[9]:系統初始化,包括初始化I/O端口,外部中斷,計數器0,USART等;掃描上位機采集指令;開中斷;響應INTO中斷和計數器0溢出中斷;讀取ADC轉換結果;將采集的數據調用通訊子程序由串口通訊模塊輸出;接收上位機發出的命令并進行相應的操作。
圖2 4~20 mA輸入模塊原理框圖
2.2 多路冗余輸出處理模塊
為解決對所采集的數據進行多路冗余處理輸出,提高可靠性,特設計一雙CPU協同處理的串口擴展模塊實現多路冗余處理輸出。數據通過RS 485總線輸入至該模塊,經隔離進雙CPU處理,擴展為三路串口輸出,原理框圖見圖3。模塊采用雙ATmega64 芯片作為處理器,雙CPU并口總線通訊,CPU數據RAM映射,數據交換速度快,實時性高。串口通訊RS 485總線,通訊模塊芯片為帶磁隔離的ADM2483,輸出采用標準的MODBUS RTU通訊協議。電源采用鑫飛達的5 W DC/DC隔離模塊DFA5-24S5。
ATmega64是高性能、低功耗的AVR、8位微處理器,先進的 RISC 結構,其特性[10]如下:133 條指令大多數可以在一個時鐘周期內完成,32×8 通用工作寄存器和外設控制寄存器,全靜態工作,工作于16 MHz時性能高達16 MIPS,只需兩個時鐘周期的硬件乘法器;非易失性的程序和數據存儲器,128 KB的系統內可編程FLASH,具有獨立鎖定位、可選擇的啟動代碼區,通過片內的啟動程序實現系統內編程,可以對鎖定位進行編程以實現軟件加密,可以通過SPI實現系統內編程;JTAG接口(與IEEE 1149.1標準兼容 ),遵循JTAG標準的邊界掃描功能,支持擴展的片內調試,通過JTAG接口實現對 FLASH、E2PROM、熔絲位和鎖定位的編程。
圖3 多路冗余處理輸出模塊原理框圖
2.3 通訊設計
RS 232/422/485都是串行數據接口的標準。RS 232是非平衡傳輸,RS 422/485是平衡傳輸。RS 232傳送距離最大僅為15 m,最高速率為20 Kb/s,比較適合近距離的本地設備之間的通信連接;RS 485連接最長可達1.2 km,可連接至256個設備節點,數據傳輸率能高達10 Mb/s[11]。為實現底層多采集模塊和上位機間遠距離通訊,在底層采用RS 485總線進行數據傳輸。因PC機端的串口是RS 232接口,故需在PC端接專用的RS 232/RS 485轉換模塊將RS 232信號轉換成RS 485的信號。本采集單元使用通訊模塊芯片為帶磁隔離的ADM2483,采用工業標準協議——MODBUS RTU通訊協議。圖4為RS 485通信接口硬件電路。
圖4 RS 485通信接口硬件電路圖
3 實現結果
本文所開發設計的4~20 mA輸入與輸出模塊、Pt100輸入模塊、熱電偶輸入模塊、開關量輸入與輸出模塊系列模塊均已定型生產,并獲得CCS的型式認可。4-20MA輸入模塊實物如圖5所示,技術參數如下:
工作電壓: (24±0.48) V;
工作溫度: 0 ~60 ℃;
4~20 mA輸入類型:有源、無源;
量程: 4~20 mA;
轉換分辨率: 12 B;
轉換時間小于1 ms;
通訊方式: RS 485;
協議: MODBUS RTU;
波特率: 9 600 b/s;
外型尺寸(W×D):108 mm×145 mm。
多路冗余處理輸出模塊中數據采集系統的地址、類型、參數等通過可從上位機導入,從而適應各種類型采集模塊,具有高的靈活與可擴展性。可將采集終端的數據處理后同步提拱給觸摸屏獨立顯示與上位PC機,也可獨立使用直接驅動本地人機界面顯示與打印機。模塊實物如圖6所示。
圖5 4~20 mA輸入模塊實物
圖6 多路冗余處理輸出模塊
4 結 語
本文所介紹的采集單元實現了對多通道現場數據的實時采集,實現了多路冗余處理模塊輸出,有很強的實用性、通用性及可擴展性,且冗余度高。該數據采集單元在工程上具有廣泛的應用價值,經在多個船舶監測報警系統實際工程中應用表明其性能穩定可靠。
參考文獻
[1]王浩,劉文怡,韓志軍.多通道同步數據采集與處理系統的設計與實現[J].通信技術,2009(1):297-299.
[2]劉松文.基于單片機的實時數據采集系統設計[J].科技風,2009(1):31-32.
[3]李新超,李繼凱.基于RS 485總線的數據采集處理系統[J].現代電子技術,2007,30(12):124-126.
[4]Atmel Corp.. AVR Application Notes[EB/OL]. \\. http://www.atmel.com.2004.
[5]Atmel Corp.. ATmega16 Data Book[EB/OL]. \\. http://www.atmel.com.2003.
[6]Texas Instruments.TL431 Data Book[EB/OL]. \\. http://www.ti.com. 2005.
[7]譚炳按,馬平.基于ATmega16的同步數據采集系統[J].機電工程技術,2008(4):40-43.
[8]盧長曉.基于ATmegal6的多路水文參數采集及無線傳輸系統[J].世界電子元器件,2008(12):89-91.
[9]周俊杰.嵌入式C編程與Atmel AVR[M].北京:清華大學出版社,2003.
[10]Atmel Corp.. Atmega64 Data Book[EB/OL]. \\. http://www.atmel.com.2003.
[11]許永和.Visual Basic接口設計與工程實踐[M].北京:人民郵電出版社,2007.