基于CAN的農(nóng)業(yè)灌溉監(jiān)測系統(tǒng)設(shè)計
近年來,隨著經(jīng)濟(jì)社會的發(fā)展,各地水需求量逐漸增加,水資源供需的矛盾日益顯著。我國水資源利用效率很低,農(nóng)業(yè)灌溉水利設(shè)施建設(shè)落后,水浪費(fèi)現(xiàn)象嚴(yán)重。因此,如何提高農(nóng)業(yè)灌溉水資源的利用率就顯得極其重要。通過測量灌溉流量的實時信息來有效地節(jié)約利用水資源,這就用到了自動控制系統(tǒng)。確保系統(tǒng)穩(wěn)定性,降低系統(tǒng)成本的重要環(huán)節(jié)是在自控系統(tǒng)中使用何種通訊方式?;诂F(xiàn)場總線的通訊與控制技術(shù)是目前工業(yè)自動控制領(lǐng)域中的主要技術(shù)之一,它具有信息數(shù)字化和控制分散化等技術(shù)優(yōu)點(diǎn),在自動控制領(lǐng)域中應(yīng)用日益廣泛?,F(xiàn)場總線技術(shù)的國際先進(jìn)水平已經(jīng)達(dá)到二芯載波電纜控制10Km距離的推廣階段,但我國在大田農(nóng)業(yè)灌溉控制系統(tǒng)應(yīng)用上,基于總線方式的控制技術(shù)還顯得相當(dāng)薄弱[1]。因此,借鑒先進(jìn)的設(shè)計思想,開發(fā)出具有自主知識產(chǎn)權(quán)的基于現(xiàn)場總線的灌溉控制系統(tǒng),符合農(nóng)業(yè)現(xiàn)代化對自動化技術(shù)的需求。
1系統(tǒng)組成
組成現(xiàn)場網(wǎng)絡(luò),并通過以AT89C51處理器為核心的一個數(shù)據(jù)轉(zhuǎn)換系統(tǒng)。本系統(tǒng)CAN總線模塊以AT89C51為微處理器,在CAN總線通信接口上,采用了飛利浦公司的SJA1000和TJA1050芯片,SJA1000是獨(dú)立CAN通信控制器,TJA1050為高性能CAN總線收發(fā)器。電路主要由微控制器AT89C51、獨(dú)立CAN通信控制器SJA1000、CAN總線收發(fā)器TJA1050和流量計四部分所構(gòu)成。微處理器AT89C51負(fù)責(zé)SJA1000的初始化,通過控制SJA1000實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。系統(tǒng)結(jié)構(gòu)原理圖如圖1-1所示:
圖1-1系統(tǒng)結(jié)構(gòu)原理圖
1灌溉系統(tǒng)測量及數(shù)據(jù)處理
水流量傳感器主要由閥體、水流轉(zhuǎn)子組件和霍爾傳感器組成。它裝在進(jìn)水端,用于檢測進(jìn)水流量,當(dāng)水通過水流轉(zhuǎn)子組件時,磁性轉(zhuǎn)子轉(zhuǎn)動并且轉(zhuǎn)速隨著流量變化而變化,霍爾傳感器輸出相應(yīng)脈沖信號,反饋給控制器,由控制器判斷水流量的大小,進(jìn)行調(diào)控。接線端口有正極、信號輸出線、負(fù)極。單片機(jī)通過計算輸出脈沖數(shù),結(jié)合水流量計的參數(shù)計算流過的水流量;單片機(jī)I/O與存儲器的接口連接,單片機(jī)將采集后的數(shù)據(jù)經(jīng)處理后可以存放在存儲器中,單片機(jī)的I/O接口與液晶以及上位機(jī)連接,經(jīng)過單片機(jī)采集處理后的數(shù)據(jù)可以進(jìn)行實時顯示并上傳至上位機(jī)保存。流量計的接線方式如圖1-2所示:
圖1-2水流量傳感器接線端口
1.2灌溉系統(tǒng)通信部分的組成
CAN總線器件比較流行的有兩大種:一種是有在片CAN的微控制器。另一種是獨(dú)立的CAN控制器,本設(shè)計選用PHILIPS公司的SJA1000CAN控制器以及TJA1050總線收發(fā)器,其中TJA1050可以支持110個CAN節(jié)點(diǎn),SJA1000持CAN2。0A/B規(guī)約。SJA1000用于汽車和一般工業(yè)環(huán)境中的控制器局域網(wǎng)絡(luò)中,它是PHILIPS半導(dǎo)體PCA82C200CAN控制器(BasicCAN)的替代產(chǎn)品。而且,它增加了支持具有很多新特性的CAN2.0B協(xié)議的工作模式[2]。片內(nèi)含信息緩沖、位流處理、位定時邏輯、接收濾波、錯誤管理邏輯等電路,并配置有豐富的功能寄存器??赏瓿蓴?shù)據(jù)成幀、總線填充、錯誤檢測、總線仲裁及錯誤界定處理等規(guī)范。SJA1000的數(shù)據(jù)線AD0-AD7連接到單片機(jī)的P0口,/CS與P2.0連接。P2.0為低時,CPU的外部存儲地址可選種SJA1000,CPU通過這些地址可以對SJA1000進(jìn)行讀/寫操作。SJA1000的ALE,/WR,/RD引腳分別與CPU的相應(yīng)引腳相連。/INT與CPU的INT0相連,CPU通過中斷方式對SJA1000進(jìn)行訪問.試驗中應(yīng)該加強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾的能力,這就要求SJA1000當(dāng)?shù)腞X0,TX0不直接與TJA1050中的RXD,TXD相連,而要通過光藕6N137和TJA1000相接,這樣總線上的各個節(jié)點(diǎn)之間的電氣隔離就能更好的實現(xiàn)。不過,應(yīng)該注意的是,這樣光藕部分所應(yīng)用的兩個電源必須完全電氣隔離,不然的話采用光偶就失去了意義。電源隔離可以采用帶多個5V隔離輸出開關(guān)電源來實現(xiàn)[3]。單片機(jī)與SJ1000的連接原理圖如圖1-3所示:
圖1-3SJA1000與單片機(jī)接口設(shè)計原理圖
TJA1050是控制器區(qū)域網(wǎng)絡(luò)(CAN)協(xié)議控制器和物理總線之間的接口。TJA1050可以為CAN控制器提供差動接收性能,為總線提供差動發(fā)送性能。能夠?qū)⑤敵鲂盘朇ANH和CANL的最佳匹配,能夠?qū)㈦姶泡椛渥兊酶?。TJA1050的CAN總線接口部分采取了抗干擾和安全的一些措施。TJA1000的兩個引腳CANL,CANH都是用一個5.1Ω的電阻與CAN總線連通,其中電阻可以起到限流保護(hù)作用,使TJA1000不被過流的損害[4]。在地與CANL,CANH之間并聯(lián)了兩個30PF的電容,具有防輻射和濾除總線上的高頻干擾的能力。再就是在CANH,CANL與地間可以接入兩個防雷擊管,當(dāng)?shù)嘏c兩個各輸入端之間出現(xiàn)瞬變干擾的時候,防雷擊管的放電可以起到一定的保護(hù)作用[5]。TJA1050設(shè)計原理圖如圖1-4所示:
圖1-4TJA1050設(shè)計原理圖
2系統(tǒng)的軟件設(shè)計
CAN總線的軟件設(shè)計主要包含三部分:CAN初始化程序、報文的發(fā)送程序、報文的接收程序[6]。CAN初始化主要是設(shè)置CAN的通信參數(shù)。需要初始化的CAN控制寄存器有:模式寄存器、時分寄存器、接收代碼寄存器、屏蔽寄存器、總線定時寄存器、輸出控制寄存器等。值得注意的是以上寄存器只能在CAN控制器處于復(fù)位狀態(tài)下才可寫訪問[7]。發(fā)送數(shù)據(jù)程序把數(shù)據(jù)存儲區(qū)中待發(fā)送的數(shù)據(jù)取出,組成信息幀,并將主機(jī)的ID地址填入幀頭,將信息幀發(fā)送到CAN控制器的發(fā)送緩沖區(qū)。在接收到主機(jī)的發(fā)送請求后,發(fā)送程序啟動發(fā)送命令。信息從CAN控制器發(fā)送到總線是由CAN控制器自動完成的。信息從CAN總線到CAN控制器的接收緩沖區(qū)也是由CAN控制器自動完成的。接收程序只需從接收緩沖區(qū)讀取信息,并將其存儲在數(shù)據(jù)存儲區(qū)。
評論