一種基于CAN總線技術的數(shù)據(jù)采集系統(tǒng)設計
海洋環(huán)境中,由于測量現(xiàn)場離岸較遠,環(huán)境惡劣,必須將測量裝置與計算機系統(tǒng)分開,構成遠程數(shù)據(jù)采集系統(tǒng)。遠程數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)傳輸方式一般有兩種:頻率量傳輸和串行通信。頻率量抗干擾能力強,便于遠距離傳送,但這種遠程的頻率測量一般僅適用于幾十赫茲以下的較低頻率范圍。在串行通信中,RS-232通信標準數(shù)據(jù)傳輸速率慢(通常異步通信速率限制在19.2kbps以下),傳送距離短(一般電纜長度為15m),不適于用作遠程數(shù)據(jù)采集
系統(tǒng);RS-449、RS-422及RS-423等通信標準,實時性不強;RS-485只能構成主從式結構系統(tǒng),通信方式也只能以主站輪詢的方式進行,系統(tǒng)的實時性、可靠性較差;且當系統(tǒng)出現(xiàn)多節(jié)點同時向總線發(fā)送數(shù)據(jù)時,會導致總線呈現(xiàn)短路,從而損壞某些節(jié)點的現(xiàn)象。
CAN(Controller Area Network)總線屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制或實時控制的串行通信網絡。CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理。CAN協(xié)議的一個最大特點是廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。采用這種方法的優(yōu)點是使網絡內的節(jié)點個數(shù)在理論上不受限制,數(shù)據(jù)塊的標識碼可由11位或29位二進制數(shù)組成,因此可以定義211或229個不同的數(shù)據(jù)塊,這種按數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點同時接收到相同的數(shù)據(jù)。數(shù)據(jù)段長度為8個字節(jié),不會占用總線時間過長,從而保證了通信的實時性。CAN協(xié)議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。
2 系統(tǒng)設計
遠程數(shù)據(jù)采集系統(tǒng)要求傳感器與測量裝置位于測量現(xiàn)場,計算機系統(tǒng)在岸上或船上,它們之間距離經常在幾百米,有時甚至達到幾公里。因此,連接導線少,維護費用低就顯得尤為重要。本文中測量系統(tǒng)針對磁場(3分量)、電場(3分量)、傾角參數(shù)(2分量),用CAN來構建遠程水下數(shù)據(jù)采集系統(tǒng),采用3個測量節(jié)點,分別對上述8路傳感器信號實現(xiàn)實時采集與傳送。遠程水下數(shù)據(jù)采集系統(tǒng)的結構框圖如圖如圖1所示。
遠程數(shù)據(jù)采集系統(tǒng)主要由兩部分組成:岸上接收處理部分和水下測量裝置。為了延長電池的使用時間,從岸上來控制水下測量體部分電池電源的通斷。數(shù)據(jù)采集系統(tǒng)使用的是四芯縱向密封海水電纜,兩路傳輸數(shù)據(jù),另兩路控制電池電源。
2.1硬件電路設計
傳感器采用磁場三分量測量模塊,電場三分量測量模塊,傾角2分量測量模塊。信號處理電路中將各信號進行放大和濾波,放大采用兩片LM148四運放,濾波器是由運算放大器構成的兩個有源低通濾波二階節(jié)的級聯(lián)。單片機系統(tǒng)將電場三分量信號、磁場三分量信號和兩個姿態(tài)角信號共8路信號輪流選通送入A/D進行轉換,A/D轉換選用B-B公司生產的16位芯片ADS7805,其輸入電壓范圍為±10V,輸出16位和8位可選,這里使用16位并行輸出,其控制信號由單片機的口線P1.0、P1.1和P1.2產生,單片機系統(tǒng)的結構框圖如圖2所示。單片機采用PHILIPS的是有再片CAN功能的微控制器P87C592,晶振頻率為16MHz, P0口和P2口用作數(shù)據(jù)線和地址線,P4口和P5口用作16位模數(shù)轉換器的高8位和低8位并行數(shù)據(jù)線。P1.6、P1.7用于CAN總線,P1.2、P1.3和P1.4控制八選一多路轉換器MAX308的通道。PC82C250為CAN總線收發(fā)器,是CAN控制器和物理總線間的接口,提供對總線的驅動發(fā)送能力 、對CAN控制器的差動發(fā)送能力和對CAN控制器的差動接收能力。它有很強的抗瞬間干擾和保 護總線的能力;有3種不同的工作方式即高速、斜率控制和待機。總線上的某節(jié)點掉電不會 影響總線,在40 m內實現(xiàn)高速應用可達1 Mbps。主機接收端使用PCL-841 ,PCL-841可直接插在計算機的ISA擴展槽內,計算機為PCL-841分配內存地址,并將其作為標準內存進行讀寫,內存地址可通過跳線設置為C800H至EF00H中40個基地址中的任一個。是內置CAN控制器的CAN總線通信卡,它提供總線仲裁和錯誤檢測并自動重發(fā)送功能,從而避免了數(shù)據(jù)丟失,保證了系統(tǒng)的可靠性。
2.2系統(tǒng)軟件設計
要實現(xiàn)有效、實時通信,軟件的設計是關鍵,也是難點。本系統(tǒng)軟件設計包含兩部分即單片機程序和主機控制和數(shù)據(jù)處理程序。
單片機程序主要包括節(jié)點初始化程序、報文發(fā)送程序、報文接收程序以及CAN總線出錯處理程序等。單片機主程序流程圖見圖3,程序用C51語言編寫。
評論