基于CAN總線(xiàn)的雙容水箱控制系統
3 系統的硬件設計
由系統總體結構圖(圖1)可見(jiàn),系統硬件主要包括3個(gè)CAN智能站:CAN通信適配器(#3 CAN智能站)、智能傳感器節點(diǎn)(#1 CAN智能站)和智能執行器節點(diǎn)(#2 CAN智能站)。各個(gè)智能站的設計相似,下面以智能傳感器節點(diǎn)為例進(jìn)行介紹。其硬件結構圖如圖2所示。
圖2 智能傳感器節點(diǎn)的硬件結構圖
這里要重點(diǎn)介紹的是CAN通信電路。這部分電路主要由CAN的協(xié)議芯片SJA1000、CAN的收發(fā)芯片82C250和光電隔離電路構成。
(1) CAN控制器
CAN控制器是CAN通信的核心芯片,主要功能是實(shí)現CAN總線(xiàn)協(xié)議和與微處理器接口。本文的CAN控制器采用PHILIPS的SJA1000,它是一個(gè)獨立的CAN控制器,支持CAN2.0B協(xié)議,可以實(shí)現CAN總線(xiàn)物理層和數據鏈路層的所有功能。SJA1000有兩種工作模式可以選擇,BasicCAN 模式和PeliCAN模式。本次設計中采用PeliCAN模式,它在BasicCAN 模式的基礎有如下的擴展:可讀/寫(xiě)訪(fǎng)問(wèn)的錯誤計數器,可編程的錯誤報警限制,最近一次錯誤代碼寄存器,對每一個(gè)CAN 總線(xiàn)錯誤的中斷,支持熱插拔,具有只聽(tīng)模式,可單次發(fā)送等。這些增加的功能對系統優(yōu)化和錯誤診斷非常重要。
(2) CAN收發(fā)器
CAN收發(fā)器采用PCA82C250,它是CAN控制器和物理總線(xiàn)的接口,可以提高總線(xiàn)驅動(dòng)干擾能力,增加通信抗干擾能力,并可保護SJA1000免遭破壞。它可以支持多達110個(gè)節點(diǎn),并能在1Mbps的傳輸速率下工作于惡劣的工作條件下。82C250提供對總線(xiàn)的差動(dòng)發(fā)送能力和對CAN控制器的差動(dòng)接收能力,其差分接收器共模抑制比寬,抗電磁干擾能力強。它內部有總線(xiàn)保護電路和限流電路,并具有低電流待機工作方式和降低射頻干擾的斜率控制。
(3) 光電耦合器
光電耦合器是為了將網(wǎng)絡(luò )和系統內部隔離起來(lái),以提高其抗干擾性能。
CAN通信部分的硬件電路圖如圖3所示。
圖3CAN通信電路原理圖
4 系統的軟件設計
基于CAN總線(xiàn)的測控系統的軟件分為下位機部分和上位機部分,下位機軟件完成采集、控制、數據傳輸等功能,采用模塊化設計方法,主要包括以下幾個(gè)模塊:通用CAN通信模塊、控制算法模塊、RS232通信模塊、數據采集和輸出模塊、自檢和故障處理模塊。上位機軟件主要是完成監控畫(huà)面的組態(tài)和與適配卡的通信。
軟件的編寫(xiě)根據不同的情況采用不同的語(yǔ)言。單片機部分采用C51語(yǔ)言編寫(xiě),使用Keil C51集成開(kāi)發(fā)環(huán)境。組態(tài)軟件采用"組態(tài)王6.5",它是目前比較流行的一種用于建立工控對象人機接口的智能軟件包,支持Microsoft Windows95/98/NT中文操作系統,可以很方便的開(kāi)發(fā)出功能完善、界面友好的組態(tài)軟件。上位機的通信和調度軟件采用高級語(yǔ)言Visual Basic 6.0編寫(xiě),它支持面向對象的程序設計,有豐富的控件資源,可以大量節約開(kāi)發(fā)的時(shí)間。
下面詳細介紹CAN通信模塊和上位機通信程序的設計。
4.1 通用CAN通信模塊的設計
通用CAN通信模塊的功能是完成CAN控制器的初始化設置;控制各節點(diǎn)之間的數據交換;檢測各個(gè)節點(diǎn)和總線(xiàn)的狀態(tài);進(jìn)行故障處理。其程序流程圖如圖4所示。
評論