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