CAN總線在排水控制系統(tǒng)中的應(yīng)用
我國大多數(shù)城市較早建立了排污系統(tǒng),但每個污水池旁邊必須投入大量資金建立值班室和安排3個員工值班,管理也比較落后原始,每個泵站還由人工管理,人員的工作比較辛苦,一刻不能離開。隨著城市的不斷擴大,污水池、人員編制也相應(yīng)增加。由于污水池零星分布在整個市區(qū),若按原先管理模式,管理和控制非常麻煩,效率低下,不能適應(yīng)現(xiàn)代城市發(fā)展的需要。
為了提高自動化水平,提高企業(yè)效益,有必要把人工管理改造為自動化管理。為此,設(shè)計了基于 CAN總線的排水控制系統(tǒng)。
2 CAN總線簡介
CAN即控制器局域網(wǎng)絡(luò),屬于現(xiàn)場總線范疇。它是由德國Bosch公司于20世紀80年代開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,有效支持分布式控制或?qū)崟r控制。它的應(yīng)用范圍遍及高速網(wǎng)絡(luò)和低成本的多線路網(wǎng)絡(luò)。CAN具有以下特點:
(1)多主站點依據(jù)優(yōu)先級進行總線訪問
(2)無破壞的依據(jù)優(yōu)先權(quán)的仲裁
(3)借助接收濾波的多地址幀傳送
(4)遠程數(shù)據(jù)請求
(5)嚴格的錯誤檢測和界定
(6)通信介質(zhì)多樣,組合方式靈活
(7)最遠傳輸距離為10Km,最大傳輸速率為1M bps。
3 硬件設(shè)計
3.1 總體結(jié)構(gòu)
排水控制系統(tǒng)硬件的總體結(jié)構(gòu)如圖1所示。
3. 2 CAN總線通信接口設(shè)計
CAN總線通信接口如圖2所示,電路由單片機AT89C52、CAN控制器SJAl000、CAN收發(fā)器82C250、高速光電耦合器6N137組成。單片機 AT89C52主要完成SJAl000的初始化,及CAN總線和RS-232總線之間的數(shù)據(jù)通信任務(wù)。 SJAl000是CAN控制器82C200的替代產(chǎn)品。它主要由下列功能模塊構(gòu)成:接口管理邏輯、發(fā)送緩沖器、接收緩沖器、接收過濾器、位流處理器、位時序邏輯和錯誤管理邏輯。除了與82C200兼容之外,它增加了許多新功能:Peli CAN工作模式、讀/寫訪問的錯誤計數(shù)器、標準和擴展結(jié)構(gòu)信息的接收和發(fā)送、可編程的錯誤限制報警、只聽模式和仲裁丟失中斷。單片機對SJAl000內(nèi)部寄存器的控制是以訪問外部寄存器的方式進行的。CAN收發(fā)器82C250是CAN總線控制器和物理總線之間的接口,主要負責提供對總線的差分發(fā)送能力和對 CAN控制器的差分接收能力。它的引腳8(RS)控制三種不同的工作方式的選擇:待機、斜率控制和高速。其中,給RS接上高電平,則82C250以低電流待機方式工作;若RS通過連接電阻接地,則進入斜率控制方式,該方式可以通過改變電阻的阻值來調(diào)節(jié)斜率,適用于低速和較短的總線長度的應(yīng)用場合;如果RS接地,就選擇了高速工作方式。高速光電耦合器6N137實現(xiàn)了CAN控制器和收發(fā)器之間的電氣隔離,增強了系統(tǒng)的穩(wěn)定性和抗干擾能力。
4 軟件設(shè)計
軟件設(shè)計主要包括監(jiān)控主程序、報文發(fā)送和接收程序、中斷服務(wù)程序和錯誤處理程序等。其中,SJAl000的初始化程序是軟件設(shè)計中的難點,需要完成各種工作參數(shù)的設(shè)置。其中,控制寄存器用來改變CAN控制器的行為。驗收代碼寄存器和驗收屏蔽寄存器共同作用定義了能被節(jié)點所接收報文的條件。驗收屏蔽寄存器的作用是確定驗收碼的哪些位對于驗收濾波是相關(guān)的或不相關(guān)的??偩€時序寄存器O定義了波特率的預設(shè)值及同步跳轉(zhuǎn)寬度;總線時序寄存器1則定義了位周期的長度、采樣點的位置和采樣數(shù)目。輸出控制寄存器可以設(shè)置不同的輸出模式。時鐘分頻寄存器不僅可以控制SJAl000的輸出頻率及屏蔽CLKOU7引腳,而且還能夠?qū)asic CAN和Peli CAN模式進行選擇。
監(jiān)控主程序流程如圖3所示。具體的 SJAl000初始化程序流程如圖4所示。CAN總線發(fā)送子程序如圖5所示。
評論