基于CAN總線的多功能大型糧倉遠程監測系統
糧食的安全儲藏是國家為了備戰和預防災荒的重要戰略決策,而糧庫儲糧監測技術又是科學保糧的關鍵技術之一。目前國內生產的糧情監測系統,品種繁多,系統結構各異,但其監測的內容主要集中在糧庫內外溫度和濕度,不能同時監測蟲害情況;而且現場檢測電路和上位機的通訊大多采用RS-485,這就使整個系統抗干擾能力差,實時性和糾錯能力不強,增加節點困難,當某一通信節點出現故障時,還會影響整個系統[1]。因此為了提高糧情監測系統的可靠性,擴大糧情監測的功能,我們提出了基于CAN總線的多功能大型糧倉遠程監測系統。
本文引用地址:http://www.104case.com/article/201612/329520.htm1系統總體結構原理
糧食在儲藏期間,由于受環境、氣候和通風條件等因素的變化,糧倉內溫度或濕度會發生異常,這極易造成糧食的霉爛、或發生蟲害。那么針對糧食儲藏的特殊性,我們選擇了糧倉內的溫度和濕度作為主要監測參數,把糧蟲發生情況作為輔助參數。
整個監測系統由上位管理主機(HOST)、USB/CAN轉換器和多個智能節點組成。節點的數量由大型倉庫里的糧庫數量決定,一般在采用標準幀進行CAN通信時,節點不超過110個;采用擴展幀CAN進行CAN通信時,節點數量原則上無限制。整個監測網絡采用總線式拓撲結構,其結構原理圖如圖1所示。
上位管理機采用PC機,主要完成整個監測網絡系統的參數設置、糧庫的狀態查詢、數據處理、糧情分析、超限實時報警和報表打印等功能。下位智能節點由單片機、數據采集電路和CAN通控制驅動電路構成。
下位機不僅要實時監測本糧庫內各個測試點的溫度、濕度和糧蟲發生情況,并保存和顯示結果,還要負責接收上位管理機的命令,根據上位機的要求上傳數據。
USB/CAN轉換器負責將上位機通過USB口輸出的命令轉換成CAN總線數據格式后,再下傳到CAN總線;或者將下位機通過CAN總線上傳的數據轉換成USB數據格式后,再送到PC機。
2 下位機硬件電路結構
下位機以單片機AT89S52為核心,通過擴展顯示電路、數據采集電路和CAN通信模塊構成一個完整硬件體系,如圖2所示。
2.1 數據采集電路
數據采集電路由溫度采集電路、濕度采集電路和糧蟲檢測電路構成。溫度檢測采用Dallas公司生產的單總線數字溫度傳感器DS18B20,它不僅能直接輸出串行數字信號,而且具有微型化、低功耗、高性能、易于微處理器連接和抗干擾能力強等優點。DS18B20數字溫度傳感器對于實測的溫度提供了9-12位的數據和報警溫度寄存器,它的測溫范圍為-55℃~+125℃,其中在-10℃~+85℃的范圍內的測量精度為±0.5℃。由于每個DS18B20有唯一的一個連續64位的產品號,所以允許在一根電纜上連接多個傳感器,以構成大型溫度測控網絡。圖2電路中,設計了兩條測溫單總線,每條單總線用一只場效應管提供電源,每條總線上可并聯十幾只數字溫度傳感器DS18B20。
濕度檢測采用濕度傳感器HIH3610和DS2438組合模塊。HIH-3610是美國Honeywell公司生產的相對濕度傳感器,該傳感器具有精度高、響應快速、高穩定性、低溫漂、抗化學腐蝕性能強及互換性好等優點。HIH-3610采用熱固聚酯電容式傳感頭,在芯片內部集成了信號處理功能電路,可以完成將相對濕度值變換成電容值,再將電容傳轉換成線性的電壓輸出。因此它輸出的模擬濕度信號,不能直接送單片機處理,必須經過A/D轉換。DS2438也是Dallas公司的單總線器件,具有A/D功能。
糧蟲檢測器采用文獻[3]所介紹的方法制作,當檢測到糧食蟲害發生時,糧蟲檢測器輸出負脈沖,送微處理器記數和處理。系統采用一個8輸入與非門,可帶8臺糧蟲檢測器。
2.2 顯示電路
顯示電路和微控制器的連接采用I2C總線,由于AT89S52單片機內部沒有集成I2C總線模塊,故采用軟件模擬的方法實現I2C通訊。顯示驅動器采用具有I2C總線的器件SAA1064,可動態驅動4位8段LED顯示器。它內部具有顯存和自動刷新功能,可免去微控制器的頻繁刷新任務,騰出大量時間做其他事情。
2.3 CAN通信模塊
CAN是現場總線中唯一被批準為國際標準的現場總線。其信號傳輸介質為雙絞線。通信速率最高可達1Mbps/40m,直接傳輸距離最遠可達10Km/5Kbps。CAN協議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數據通信的可靠性。當節點嚴重錯誤時,具有自動關閉的功能,以切斷該節點于總線的聯系,使總線上的其它節點及其通信不受影響,具有較強的抗干擾能力。
圖2中的CAN控制驅動模塊由CAN控制器SJA1000、光耦6N137模塊和CAN驅動器82C50構成。SJA1000負責與微控制器進行狀態、控制和命令等信息交換,并承擔網絡通信任務;82C50為CAN控制器和總線接口,提供對總線的差動發送和對CAN控制器的差動接收功能。光耦6N137起隔離作用。
3 系統軟件設計
系統軟件由上位機主程序和下位監控程序構成,上位機主程序用VB語言開發,采用模塊化設計,具體的功能模塊如圖3所示。利用VB編寫的應用軟件人機界面友好,便于維護和管理。
下位機的軟件由下位機主程序、溫度采集程序、濕度采集程序、糧蟲檢測中斷程序和CAN收發中斷服務程序等構成。由于篇幅所限這里僅給出了下位機主程序和CAN通信中斷服務程序的流程圖,分別如圖4和圖5所示。在下位機主程序里,系統要首先進行單片機的初始化、CAN的初始化、開外部中斷、開啟計數器和使能CAN接收中斷的過程,是系統處于就緒狀態,然后調用數據采集程序和數據處理程序,實時采集糧庫現場的參數并予以處理,處理后的數據要保存起來供上位機隨時查詢,同時送顯示器顯示。
糧蟲檢測中斷程序主要完成糧庫發生糧蟲后的處理,一方面要判斷糧蟲計數器是否計滿,計滿清零并保存數據;一方面設置糧庫發生蟲害標志,并供上位機查詢和顯示。
CAN收發中斷服務程序負責上下位機的命令和數據傳送。當上位機發送命令時,CAN接收一個報文,CAN的中斷使能標志置1,產生接收中斷,CPU立即響應,進入中斷服務程序,然后系統再根據上位機的具體命令,向上位機傳送該節點工作狀態或采集的數據。
4 結論
由于系統采用了全數字化的溫度、濕度傳感器,直接輸出的是表示溫度和濕度的數字信號,不存在由模擬量到數字量轉換的中間環節,所以該系統具有穩定可靠、測量精度高、一致性好、無需任何調整、信號線長短不會影響其性能等優點,還有單總線也帶來安裝方便、線路清晰、節省線材等長處。上下位機通信采用CAN總線通信方式,提高了系統內部的速率和實時性,降低了誤碼傳送的概率。糧蟲檢測器的設計使該系統除了能實時監測溫度和濕度外,也能監測糧食蟲害的發生情況。
評論