基于CAN總線技術(shù)的果園氣象監(jiān)測網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)及實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
果樹的生長受自然環(huán)境和人為因素的影響,其中果園中的氣象條件對果樹的生長、結(jié)果和壽命影響很大。果園的氣象條件分溫度、土壤的水分、光照以及風(fēng)力的強(qiáng)弱。所以,通過監(jiān)測果園的氣象條件,及時(shí)地以人為因數(shù)改善果樹的生長條件,已成為影響果農(nóng)收入的關(guān)鍵問題。
CAN總線是德國BOSCH公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級判別等項(xiàng)工作,通信速率可達(dá)1MBPS。作為一種分散式、數(shù)字化、雙向多點(diǎn)、具有高速率高可靠性特點(diǎn)的通信系統(tǒng),CAN總線可以構(gòu)建靈活的多主通訊機(jī)制,也可以建立主從式結(jié)構(gòu),而且這兩種方式下的硬件物理聯(lián)接完全相同。
1 系統(tǒng)的總體方案設(shè)計(jì)及工作原理
運(yùn)用CAN總線構(gòu)建分布式的果園氣象監(jiān)測網(wǎng)絡(luò)系統(tǒng),采用主從式結(jié)構(gòu)。系統(tǒng)結(jié)構(gòu)如圖1所示。本系統(tǒng)由上位監(jiān)控PC機(jī)、CAN總線適配器和現(xiàn)場監(jiān)測節(jié)點(diǎn)三部分組成,節(jié)點(diǎn)數(shù)量可根據(jù)果園的規(guī)模增減。
500)this.style.width=500;" border="0" />
上位監(jiān)控PC機(jī)采主要負(fù)責(zé)對監(jiān)測系統(tǒng)氣象數(shù)據(jù)的接收與管理、控制命令的發(fā)送以及各監(jiān)測節(jié)點(diǎn)工作狀態(tài)的實(shí)時(shí)顯示;CAN總線適配器可以使PC機(jī)方便地連接到CAN總線上,本系統(tǒng)采用USB-CAN總線適配器;監(jiān)測節(jié)點(diǎn)以單片機(jī)P87C591為核心,主要負(fù)責(zé)對現(xiàn)場的氣象數(shù)據(jù)進(jìn)行采集,對采集來的數(shù)據(jù)進(jìn)行數(shù)字濾波求平均值處理并將處理過的數(shù)字信號送入CAN總線。同時(shí)監(jiān)測節(jié)點(diǎn)也接收來自上位機(jī)的控制命令參數(shù)。本系統(tǒng)通信可靠、快捷,硬件電路設(shè)計(jì)和軟件編程簡單,能較好地滿足對果園氣象條件長期準(zhǔn)確監(jiān)測的要求。
2 氣象監(jiān)測節(jié)點(diǎn)的設(shè)計(jì)
2.1 P87C591的特點(diǎn)
節(jié)點(diǎn)硬件電路以PHILIPS 8位單片機(jī)P87C591為核心。P87C591從80C51微控制器家族派生而來,帶硬件I2C總線接口和CAN總線接口,帶6路模擬輸入的10位ADC,可選擇快速8位ADC。
P87C591包含了PHILIPS半導(dǎo)體SJA1000 CAN控制器強(qiáng)大的PeliCAN功能,并在此基礎(chǔ)上擴(kuò)展了以下功能:①增強(qiáng)的CAN接收中斷,有接收緩沖區(qū)級的接收中斷;用于接收中斷的高優(yōu)先級驗(yàn)收濾波器。②擴(kuò)展的驗(yàn)收濾波器,8個(gè)濾波器用于標(biāo)準(zhǔn)幀格式,4個(gè)濾波器用于擴(kuò)展幀格式;驗(yàn)收濾波器的“運(yùn)行中可改變”特性。
500)this.style.width=500;" border="0" />
80C51 CPU接口將PeliCAN與P87C591微控制器內(nèi)部總線相連,連接原理如圖2 所示。80C51核通過5個(gè)特殊功能寄存器CANADR(地址寄存器),CANDAT(數(shù)據(jù)寄存器),CANMOD(模式寄存器),CANSTA(狀態(tài)寄存器)和CANCON(命令寄存器)對PeliCAN進(jìn)行訪問。通過CANMOD 可對PeliCAN模式寄存器進(jìn)行直接的讀/寫訪問;通過寫入CANCON 對命令寄存器進(jìn)行訪問;通過讀CANCON 對中斷寄存器進(jìn)行訪問;通過CANSTA 寄存器可對中斷使能寄存器進(jìn)行寫操作;訪問CANSTA 可位尋址并允許單個(gè)狀態(tài)位的直接尋址,這對查詢很有用。
所有其它的CAN 寄存器都需要進(jìn)行間接尋址。CANADR 寄存器指向PeliCAN 寄存器的地址。在寫操作時(shí),將要送到被尋址寄存器的數(shù)據(jù)寫入CANDAT; 讀操作時(shí)被尋址寄存器的數(shù)據(jù)可從CANDAT 中讀出。
2.2 節(jié)點(diǎn)硬件電路設(shè)計(jì)
現(xiàn)場需要采集四路不同的氣象信息,故將四路采集通道分別和P87C591 的P1.2、P1.3、P1.4和P1.5相連。這四個(gè)管腳除了作一般的I/O口以外,同時(shí)也是ADC輸入通道。
由于電路對數(shù)據(jù)是采用多次采集再取平均值的處理方法,故使用存儲器6264作為數(shù)據(jù)采集過程中的暫存區(qū)。
PCF8563是一款低功耗的CMOS實(shí)時(shí)時(shí)鐘/日歷芯片,用于向電路提供定時(shí)中斷信號以及數(shù)據(jù)采集的精確時(shí)間信息,包括年、月、日、時(shí)、分、秒。 PCF8562是一款單片LCD控制器/驅(qū)動(dòng)器。它們都具有I2C總線接口,在節(jié)點(diǎn)電路中,與P87C591的I2C總線接口相連,構(gòu)成串行傳輸結(jié)構(gòu),大大簡化了電路的設(shè)計(jì)。
監(jiān)測節(jié)點(diǎn)在現(xiàn)場采集到水分、溫度、光照和風(fēng)力數(shù)據(jù)后,將通過CAN總線傳給上位監(jiān)控PC機(jī)。P87C591 的P1.0和P1.1口被復(fù)用為CAN接收器的輸入腳和發(fā)送器的輸出腳。這兩管腳經(jīng)收發(fā)器PCA82C250連到CAN總線電纜上。PCA82C250 收發(fā)器是CAN協(xié)議控制器和物理傳輸線路之間的接口。節(jié)點(diǎn)硬件電路如圖3所示。
3監(jiān)測節(jié)點(diǎn)軟件設(shè)計(jì)
監(jiān)測節(jié)點(diǎn)軟件除了初始化P87C591及其外圍器件外,還有兩項(xiàng)任務(wù)需要完成:一是定時(shí)產(chǎn)生中斷,實(shí)施對各傳感器的采樣與數(shù)據(jù)處理,并向上位機(jī)上傳數(shù)據(jù)。二是中斷接收上位機(jī)的控制參數(shù)命令。其中在定時(shí)采集中斷任務(wù)中對所需數(shù)據(jù)采用多次采集求平均值的方法,同時(shí)從時(shí)鐘芯片讀取采集開始時(shí)間和結(jié)束時(shí)間,最后一起送LCD顯示及上傳給上位機(jī)。
500)this.style.width=500;" border="0" />
500)this.style.width=500;" border="0" />
P87C591內(nèi)部的CAN控制器必須在上電或硬件復(fù)位后進(jìn)行相應(yīng)的初始化處理。初始化主要包括工作方式的設(shè)置,接收收濾波方式的設(shè)置,接收屏蔽寄存器和接收代碼寄存器的設(shè)置,波特率參數(shù)設(shè)置和中斷允許寄存器的設(shè)置等,在完成初始化設(shè)置以后就可以回到工作狀態(tài)進(jìn)行正常的通信任務(wù)。圖4為CAN控制器初始化流程圖。
500)this.style.width=500;" border="0" />
監(jiān)測節(jié)點(diǎn)程序流程框圖如圖5。在沒有采集任務(wù)或要求接收控制參數(shù)時(shí),P87C591進(jìn)入空閑模式。當(dāng)一旦出現(xiàn)定時(shí)采集中斷或接收控制參數(shù)中斷時(shí),P87C591退出空閑模式,進(jìn)入相應(yīng)的中斷服務(wù)程序。
4 結(jié)束語
本文作者創(chuàng)新點(diǎn):在基于CAN總線的分布式測控系統(tǒng)節(jié)點(diǎn)的設(shè)計(jì)中,就如何利用P87C591豐富的片上集成資源,簡化數(shù)據(jù)采集監(jiān)測節(jié)點(diǎn)的電路設(shè)計(jì),提出了一個(gè)良好的設(shè)計(jì)方案。對于類似的分布式監(jiān)測系統(tǒng)節(jié)點(diǎn)的設(shè)計(jì)有著很好的借鑒作用。