熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 基于CAN的農業灌溉監測系統設計

基于CAN的農業灌溉監測系統設計

時間:2014-04-08 15:29:47來源:劉文龍,江正川

導語:?通過測量灌溉流量的實時信息來有效地節約利用水資源,這就用到了自動控制系統。確保系統穩定性,降低系統成本的重要環節是在自控系統中使用何種通訊方式。

摘要:我國農業用水浪費現象非常嚴重,灌溉水利用效率低,因此如何提高農業灌溉水資源的利用率就顯得尤為重要,為了節約并且能更好的利用農業灌溉水資源,設計了一種基于CAN總線控制的農業灌溉流量實時監測系統,該監測系統有靈敏的測量和顯示功能,系統使用AT89C51單片機作為平臺對流量進行顯示,利用RG-1流量計對流量進行測量,并利用獨立CAN通信控制器SJA1000及CAN總線標準設計出的一種水流量監測系統。該系統具有靈敏的測量精度,結構簡單,成本低,穩定性和重復性好。可取代傳統的流量監測系統,實現對農業灌溉水流量準確監測、控制的目的。

關鍵詞:CAN總線;單片機;控制系統;流量計;SJA1000

AgriculturalirrigationbasedonCANbuscontrolmonitoringsystemdesign

WENLong-Liu1,ZHENGChanJiang1

(CollegeofAutomationandElectronicEngineering,QingdaoUniversityofScienceandTechnology,Qingdao266042,China)

Abstract:Theshortageofwaterresourceinourcountry,resourceutilizationislow,howtoimprovetheutilizationofagriculturalirrigationwaterisextremelyimportant.Basedonfieldbuscommunicationandcontroltechnologyiscurrentlyoneofthemaintechnologyinthefieldofindustrialautomaticcontrol,buildingcontrolsystembysingle-chipmicrocomputerandwithSJA1000andTJA1050constructionofCANbuscontrollerforagriculturalirrigationwatermetermonitoring,achievethegoalofsavingwater.

Keywords:CANbus;Single-chipmicrocomputer;Flowgaugeï¼›TJA1050;SJA1000;Controlsystem;

0引言

近年來,隨著經濟社會的發展,各地水需求量逐漸增加,水資源供需的矛盾日益顯著。我國水資源利用效率很低,農業灌溉水利設施建設落后,水浪費現象嚴重。因此,如何提高農業灌溉水資源的利用率就顯得極其重要。通過測量灌溉流量的實時信息來有效地節約利用水資源,這就用到了自動控制系統。確保系統穩定性,降低系統成本的重要環節是在自控系統中使用何種通訊方式。基于現場總線的通訊與控制技術是目前工業自動控制領域中的主要技術之一,它具有信息數字化和控制分散化等技術優點,在自動控制領域中應用日益廣泛。現場總線技術的國際先進水平已經達到二芯載波電纜控制10Km距離的推廣階段,但我國在大田農業灌溉控制系統應用上,基于總線方式的控制技術還顯得相當薄弱[1]。因此,借鑒先進的設計思想,開發出具有自主知識產權的基于現場總線的灌溉控制系統,符合農業現代化對自動化技術的需求。

1系統組成

組成現場網絡,并通過以AT89C51處理器為核心的一個數據轉換系統。本系統CAN總線模塊以AT89C51為微處理器,在CAN總線通信接口上,采用了飛利浦公司的SJA1000和TJA1050芯片,SJA1000是獨立CAN通信控制器,TJA1050為高性能CAN總線收發器。電路主要由微控制器AT89C51、獨立CAN通信控制器SJA1000、CAN總線收發器TJA1050和流量計四部分所構成。微處理器AT89C51負責SJA1000的初始化,通過控制SJA1000實現數據的接收和發送等通信任務。系統結構原理圖如圖1-1所示:

圖1-1系統結構原理圖

1灌溉系統測量及數據處理

水流量傳感器主要由閥體、水流轉子組件和霍爾傳感器組成。它裝在進水端,用于檢測進水流量,當水通過水流轉子組件時,磁性轉子轉動并且轉速隨著流量變化而變化,霍爾傳感器輸出相應脈沖信號,反饋給控制器,由控制器判斷水流量的大小,進行調控。接線端口有正極、信號輸出線、負極。單片機通過計算輸出脈沖數,結合水流量計的參數計算流過的水流量;單片機I/O與存儲器的接口連接,單片機將采集后的數據經處理后可以存放在存儲器中,單片機的I/O接口與液晶以及上位機連接,經過單片機采集處理后的數據可以進行實時顯示并上傳至上位機保存。流量計的接線方式如圖1-2所示:

圖1-2水流量傳感器接線端口

1.2灌溉系統通信部分的組成

CAN總線器件比較流行的有兩大種:一種是有在片CAN的微控制器。另一種是獨立的CAN控制器,本設計選用PHILIPS公司的SJA1000CAN控制器以及TJA1050總線收發器,其中TJA1050可以支持110個CAN節點,SJA1000持CAN2。0A/B規約。SJA1000用于汽車和一般工業環境中的控制器局域網絡中,它是PHILIPS半導體PCA82C200CAN控制器(BasicCAN)的替代產品。而且,它增加了支持具有很多新特性的CAN2.0B協議的工作模式[2]。片內含信息緩沖、位流處理、位定時邏輯、接收濾波、錯誤管理邏輯等電路,并配置有豐富的功能寄存器。可完成數據成幀、總線填充、錯誤檢測、總線仲裁及錯誤界定處理等規范。SJA1000的數據線AD0-AD7連接到單片機的P0口,/CS與P2.0連接。P2.0為低時,CPU的外部存儲地址可選種SJA1000,CPU通過這些地址可以對SJA1000進行讀/寫操作。SJA1000的ALE,/WR,/RD引腳分別與CPU的相應引腳相連。/INT與CPU的INT0相連,CPU通過中斷方式對SJA1000進行訪問.試驗中應該加強CAN總線節點的抗干擾的能力,這就要求SJA1000當的RX0,TX0不直接與TJA1050中的RXD,TXD相連,而要通過光藕6N137和TJA1000相接,這樣總線上的各個節點之間的電氣隔離就能更好的實現。不過,應該注意的是,這樣光藕部分所應用的兩個電源必須完全電氣隔離,不然的話采用光偶就失去了意義。電源隔離可以采用帶多個5V隔離輸出開關電源來實現[3]。單片機與SJ1000的連接原理圖如圖1-3所示:

圖1-3SJA1000與單片機接口設計原理圖

TJA1050是控制器區域網絡(CAN)協議控制器和物理總線之間的接口。TJA1050可以為CAN控制器提供差動接收性能,為總線提供差動發送性能。能夠將輸出信號CANHå’ŒCANL的最佳匹配,能夠將電磁輻射變得更小。TJA1050çš„CAN總線接口部分采取了抗干擾和安全的一些措施。TJA1000的兩個引腳CANL,CANH都是用一個5.1Ω的電阻與CAN總線連通,其中電阻可以起到限流保護作用,使TJA1000不被過流的損害[4]。在地與CANL,CANH之間并聯了兩個30PF的電容,具有防輻射和濾除總線上的高頻干擾的能力。再就是在CANH,CANL與地間可以接入兩個防雷擊管,當地與兩個各輸入端之間出現瞬變干擾的時候,防雷擊管的放電可以起到一定的保護作用[5]。TJA1050設計原理圖如圖1-4所示:

圖1-4TJA1050設計原理圖

2系統的軟件設計

CAN總線的軟件設計主要包含三部分:CAN初始化程序、報文的發送程序、報文的接收程序[6]。CAN初始化主要是設置CAN的通信參數。需要初始化的CAN控制寄存器有:模式寄存器、時分寄存器、接收代碼寄存器、屏蔽寄存器、總線定時寄存器、輸出控制寄存器等。值得注意的是以上寄存器只能在CAN控制器處于復位狀態下才可寫訪問[7]。發送數據程序把數據存儲區中待發送的數據取出,組成信息幀,并將主機的ID地址填入幀頭,將信息幀發送到CAN控制器的發送緩沖區。在接收到主機的發送請求后,發送程序啟動發送命令。信息從CAN控制器發送到總線是由CAN控制器自動完成的。信息從CAN總線到CAN控制器的接收緩沖區也是由CAN控制器自動完成的。接收程序只需從接收緩沖區讀取信息,并將其存儲在數據存儲區。

2.1CAN總線節點初始化程序

節點初始化主要指的是在系統上電以后對89C51以及CAN控制器SJA1000所進行初始化,來保證工作主頻、輸出特性以及波特率等。89C51的初始化能通過結合他們的監控任務來進行,主要就是完成對中斷允許與屏蔽以及定時器的使用與和設置等。這里著重來說明SJA1000的初始化,SJA1000內部沒有微處理器,要實現它的初始化要依靠89C51對其編程實現。在復位模式下才能進行SJA1000的初始化,因此在SJA1000初始化程序中第一要把工作方式置換為復位模式,然后設置驗收濾波方式等。在CAN協議物理層當中的通信波特率的大小以及同步跳轉寬度都是由定時寄存器BTR0å’ŒBTR1的程序所決定。著重強調的是:對一個系統當中的所有的節點來說,這兩個寄存器的所有內容一定要一樣,不然將沒有辦法進行通信。當初始化的設置完成以后,把復位請求位置‘0’,SJA1000就能夠進入到工作狀態,來完成正常的通信任務[8]。初始化程序如下:

#include<80c196kd.h>//包含的控制器寄存器定義

#include_SFR_H_

#include_FUNCS_H_

#defineBASE_CAN0xa000//定義CAN控制器基址

typedefstruct{

unsignedintid;/*報文標識符*/

unsignedcharrtr;/*遠程幀位*/

unsignedchardlen;/*數據長度*/

unsignedchardata[8];/*數據*/

}MSG_STRUCT;/*將CAN協議的幀用C語言的結構表示*/

voidinit_can(){

*(unsignedchar*)(BASE_CAN+0)=0x01;

/*SJA1000進入復位狀態*/

*(unsignedchar*)(BASE_CAN+4)=0x00;

/*初始化接收代碼寄存器ACR*/

*(unsignedchar*)(BASE_CAN+5)=0xff;

/*初始化接收屏蔽寄存器AMR*/

*(unsignedchar*)(BASE_CAN+6)=0x00;

/*初始化總線時序寄存器BTR0*/

*(unsignedchar*)(BASE_CAN+7)=0x14;

/*初始化總線時序寄存器BTR1*/

*(unsignedchar*)(BASE_CAN+8)=0xfa;

/*初始化輸出控制寄存器OCR*/

}

2.2報文發送程序

發送程序負責節點報文的發送,發送時用戶只需將待發送的數據按特定格式組合成一幀報文,送入SJA1000發送緩存區中,并將SJA1000的命令寄存器發送請求標志位(TR)置位。SJA1000會自動啟動發送過程。但是,在往SJA1000發送緩存區發送報文之前,必須先對發送緩沖器是否釋放進行判斷,只有當發送緩沖器標志(TBS)為“1”時,發送緩沖器才被釋放,可將新報文寫入發送緩存,否則,在發送緩沖器被鎖定時,新報文是不能被寫入發送緩沖器的。發送程序分數據幀和發送遠程幀兩種。遠程幀無數據場。發送程序一般編寫成子程序的形式。報文發送程序如下:

unsignedcharcan_send(MSG_STRUCTsmsg)

{unsignedcharv;

inti;

v=*(unsignedchar*)(BASE_CAN+2);

if(v&0x08)/*判斷是否可以發送數據*/

{v=smsg.id>>3;/*標識符送識別碼寄存器*/

*(unsignedchar*)(BASE_CAN+10)=v;

v=*(unsignedchar*)(BASE_CAN+10);

v=smsg.id&7;/*識別碼0-2位、RTR、DLC*/

v<<=5;

v+=smsg.dlen;

*(unsignedchar*)(BASE_CAN+11)=v;

for(i=0;ii

{

*(unsignedchar*)(BASE_CAN+12+i)=smsg.data[i];

}

*(unsignedchar*)(BASE_CAN+1)=0x01;

return(1);

}

else

return(0);

}

2.3報文接收程序

SJA1000的報文接收是它自身獨立完成的,它接收到的報文經過濾波驗收以后,暫時放在接收緩沖器FIFO當中。在報文進到接收緩沖器之后,狀態寄存器的RBS會被置‘1’,與此同時若中斷使能寄存器的RIE被設為‘1’時,中斷寄存器的RI位也會被置為‘1’,然后SJA1000向CPU提出中斷請求。報文接收可以采取查詢接收方式或者是中斷接收方式。如果對通信的實時性的要求沒有那么強那就可以采取查詢接收方式[9]。報文接收程序如下:

unsignedcharcan_receive()

{

MSG_STRUCTrmsg;

inti;

unsignedcharbuf1,buf2;

while((*(unsignedchar*)(BASE_CAN+2))&0x01)

/*判斷是否有可接收信息*/

{

buf1=*(unsignedchar*)(BASE_CAN+20);

/*將一幀信息取出*/

buf2=*(unsignedchar*)(BASE_CAN+21);

rmsg.dlen=buf2&0x0f;/*數據長度*/

for(i=0;i

rmsg.data[i]=*(unsignedchar*)(BASE_CAN+22+i);

}

*(unsignedchar*)(BASE_CAN+1)=0x04;

/*釋放接收緩沖器*/

rmsg.rtr=(buf2>>4)&0x01;/*遠程幀*/

rmsg.id=buf1;/*取出報文標識符*/

rmsg.id<<=3;

rmsg.id|=(buf2>>5)&0x06;

switch(rmsg.id)/*按標識符轉入不同的數據處理程序*/

case

......

break;

}

3系統應用必要性總結

中國是一個水資源嚴重缺乏的國家,提倡節水灌溉勢在必行,實施按方收費是農田灌溉用水的必然趨勢,最終實現農田灌溉用水的微機自動監測、計量、收費一體化。CAN總線是自動化控制領域的熱點之一,被譽為自動化領域的局域網,現在已經廣泛應用于工業控制的各個領域。在本次設計中將控制器與CAN總線進行了很好的結合,在應用中充分發CAN總線的優勢,在農田灌溉監測中發揮更大的作用。

參考文獻

[1]饒運濤,鄒繼軍,鄭勇蕓.現場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2003.

[2]譬學勤.現場總線與發展趨勢過程檢測控制儀表及系統現狀和發展研討會文集,1996(12):252-257

[3]伍偉杰.基于CAN總線的節水灌溉自控系統設計與研究[J]節水灌溉2006(1)13-5

[4]鄔寬明.CAN總線原理和應用系統設計.北京:北京航空航天大學出版社,1996

[5]史久根,張培仁,陳真勇.CAN現場總線系統設計技術.北京:國防工業出版社,2004

[6]陳楊,劉曙生,龍志強.基于CAN總線的數據通信系統研究[J].測控技術,2000,19(10):53-55

[7]史九根等.CAN現場總線設計技術[M].北京:國防工業出版社,2004.

[8]蔡華鋒,廖冬初,潘健,等.C8051F040中的CAN控制器的應用[J].單片機與嵌入式系統應用,2005(1):55—58.

[9]章磊,李耀,劉光徽.基于CAN總線網絡的現場監控系統[J].儀表技術與傳感器,2007(12):39-41,49

 

標簽:

點贊

分享到:

上一篇:高壓變頻器在電廠送風機上的應用

下一篇:電梯物聯網網絡結構及數據傳...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 岱山县| 响水县| 微山县| 朝阳区| 新绛县| 木兰县| 新晃| 团风县| 扎赉特旗| 安阳市| 侯马市| 德阳市| 驻马店市| 教育| 铜山县| 腾冲县| 阿图什市| 新干县| 祁门县| 长汀县| 陈巴尔虎旗| 恩施市| 张家港市| 怀仁县| 略阳县| 郯城县| 方正县| 南充市| 吴忠市| 万州区| 和田市| 永定县| 双牌县| 绵阳市| 三台县| 邵东县| 乌审旗| 涞水县| 五家渠市| 弥勒县| 肥东县|