1 引言
海洋環境中,由于測量現場離岸較遠,環境惡劣,必須將測量裝置與計算機系統分開,構成遠程數據采集" title="數據采集">數據采集系統。遠程數據采集系統的數據傳輸方式一般有兩種:頻率量傳輸和串行通信。頻率量抗干擾能力強,便于遠距離傳送,但這種遠程的頻率測量一般僅適用于幾十赫茲以下的較低頻率范圍。在串行通信中,RS-232通信標準數據傳輸速率慢(通常異步通信速率限制在19.2kbps以下),傳送距離短(一般電纜長度為15m),不適于用作遠程數據采集
系統;RS-449、RS-422及RS-423等通信標準,實時性不強;RS-485只能構成主從式結構系統,通信方式也只能以主站輪詢的方式進行,系統的實時性、可靠性較差;且當系統出現多節點同時向總線發送數據時,會導致總線呈現短路,從而損壞某些節點的現象。
CAN" title="CAN">CAN(Controller Area Network)總線屬于現場總線的范疇,它是一種有效支持分布式控制或實時控制的串行通信網絡。CAN總線通信接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理。CAN協議的一個最大特點是廢除了傳統的站地址編碼,而代之以對通信數據塊進行編碼。采用這種方法的優點是使網絡內的節點個數在理論上不受限制,數據塊的標識碼可由11位或29位二進制數組成,因此可以定義211或229個不同的數據塊,這種按數據塊編碼的方式,還可使不同的節點同時接收到相同的數據。數據段長度為8個字節,不會占用總線時間過長,從而保證了通信的實時性。CAN協議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。
2 系統設計
遠程數據采集系統要求傳感器與測量裝置位于測量現場,計算機系統在岸上或船上,它們之間距離經常在幾百米,有時甚至達到幾公里。因此,連接導線少,維護費用低就顯得尤為重要。本文中測量系統針對磁場(3分量)、電場(3分量)、傾角參數(2分量),用CAN來構建遠程水下數據采集系統,采用3個測量節點,分別對上述8路傳感器信號實現實時采集與傳送。遠程水下數據采集系統的結構框圖如圖如圖1所示。
![]() |
遠程數據采集系統主要由兩部分組成:岸上接收處理部分和水下測量裝置。為了延長電池的使用時間,從岸上來控制水下測量體部分電池電源的通斷。數據采集系統使用的是四芯縱向密封海水電纜,兩路傳輸數據,另兩路控制電池電源。
2.1硬件電路設計
傳感器采用磁場三分量測量模塊,電場三分量測量模塊,傾角2分量測量模塊。信號處理電路中將各信號進行放大和濾波,放大采用兩片LM148四運放,濾波器是由運算放大器構成的兩個有源低通濾波二階節的級聯。單片機系統將電場三分量信號、磁場三分量信號和兩個姿態角信號共8路信號輪流選通送入A/D進行轉換,A/D轉換選用B-B公司生產的16位芯片ADS7805,其輸入電壓范圍為±10V,輸出16位和8位可選,這里使用16位并行輸出,其控制信號由單片機的口線P1.0、P1.1和P1.2產生,單片機系統的結構框圖如圖2所示。單片機采用PHILIPS的是有再片CAN功能的微控制器P87C592,晶振頻率為16MHz, P0口和P2口用作數據線和地址線,P4口和P5口用作16位模數轉換器的高8位和低8位并行數據線。P1.6、P1.7用于CAN總線,P1.2、P1.3和P1.4控制八選一多路轉換器MAX308的通道。PC82C250為CAN總線收發器,是CAN控制器和物理總線間的接口,提供對總線的驅動發送能力、對CAN控制器的差動發送能力和對CAN控制器的差動接收能力。它有很強的抗瞬間干擾和保護總線的能力;有3種不同的工作方式即高速、斜率控制和待機。總線上的某節點掉電不會 影響總線,在40 m內實現高速應用可達1 Mbps。主機接收端使用PCL-841 ,PCL-841可直接插在計算機的ISA擴展槽內,計算機為PCL-841分配內存地址,并將其作為標準內存進行讀寫,內存地址可通過跳線設置為C800H至EF00H中40個基地址中的任一個。是內置CAN控制器的CAN總線通信卡,它提供總線仲裁和錯誤檢測并自動重發送功能,從而避免了數據丟失,保證了系統的可靠性。
![]() |
2.2系統軟件設計
要實現有效、實時通信,軟件的設計是關鍵,也是難點。本系統軟件設計包含兩部分即單片機程序和主機控制和數據處理程序。
單片機程序主要包括節點初始化程序、報文發送程序、報文接收程序以及CAN總線出錯處理程序等。單片機主程序流程圖見圖3,程序用C51語言編寫。
![]() |
CAN控制器對于CPU來說是以確保雙方獨立工作的寄存器映像外圍設備出現的,微控制器和CPU之間狀態、控制和命令的交換都是通過在復位模式或工作模式下對這些寄存器的讀寫來完成的。初始化CAN內部寄存器時注意使得各節點的位速率必須一致,而且接、發雙方必須同步。發送一幀數據采用高速DMA,它允許在最多2個周期內,在CAN控制器和主RAM之間傳送一個完整的報文(最多10個字節)。CPU功能的極大增強是由于高速傳送是在后臺完成的。一次成功的DMA傳送后DMA位被復位。DMA傳送期間,CPU可以處理下一條指令,然而,不允許對數據存貯器、CANADR、CANDAT、CANCON或CANSTA的訪問。置DMA位后,各個中斷均被禁止,直至傳送結束。復位狀態期間(復位請求位為高)不能進行DMA傳送。為提高通信的實時性,報文的接收采用中斷接收方式,這樣也可保證接收緩存器不會出現數據溢出現象。
主機程序包括測量和控制子程序、通信子程序、數據處理子程序等。數據測量和控制子程序用來控制下位機進行測量,通信子程序根據通信協議發送控制命令并接收測量數據,數據處理子程序實現對數據的預處理和存儲。主機程序用C語言編寫。主機程序流程見圖4。
![]() |
3 水下物理場數據采集實驗
在對水下物理場數據進行采集時,需要測量的信號共有3種8路:電場三個分量,磁場三個分量以及傳感器在海底的傾斜角度兩個分量。實際測量時,整個測量體(包括傳感器,信號調理電路,水密容器等)放置在海底(約30米深),測量體距離岸邊接收主機120米。其他一些實驗參數設置如下:傳輸波特率為1Mbps,各節點的采樣頻率為10KHz,每采樣4路信號向主機發送一次數據,每次送出4組8字節數據,分辨率:0.0495μA/m;信號輸入范圍:-50mV~50mV;信號頻率帶寬:500Hz~800Hz;供電電壓:±5V,9V,±15V。測量系統在較復雜的海洋環境條件下從上午9:00開始工作,中間不停機,到下午5:00測量完畢。測量結果經過分析與理論計算吻合說明該系統工作穩定、可靠。此外,全套測量系統硬件設備(包括計算機與傳感器)造價低于3萬元。
4 結論
CAN總線已被公認為是最有前途的幾種現場總線之一,在一些高檔汽車車載系統中已經得到了廣泛應用,也因其高性能價格比、實現簡單等突出優點深得越來越多的研發人員的青睞。本文的創新點是提出一種基于CAN總線結構的遠程數據采集系統方法,將CAN總線技術" title="總線技術">總線技術應用于工業現場控制中,設計了硬件電路和軟件,并得到實際應用。該系統可在復雜的海洋中實現對8路傳感器信號的實時采集與傳送,實驗證明該系統具有結構簡單、性能可靠、傳輸距離遠、價格低廉等優點。該系統設計" title="系統設計">系統設計方法也可應用到其他需要數據采集的多節點系統中去。