新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線的溫室測控系統的研究與設

        基于CAN總線的溫室測控系統的研究與設

        作者: 時間:2012-03-16 來源:網絡 收藏

        為了提高系統的實時性,報文接收模塊采用中斷接受方式。該模塊包括主程序和接受中斷服務程序兩部分組成,主程序必須在中斷控制報文接受之前使能CAN的接受中斷和微控制器QG8的全局中斷。當報文發送完之后會產生一個中斷通知來接收報文。首先應該看一下中斷標志類型,如果是報文成功發送產生的中斷,將報文讀入濾波器中,否則產生報文出錯標志,CANINTF.MERRF位被置1.將接收到報文的標示符字段與濾波寄存器中的值進行比較,如果兩者匹配,將該報文載入相應的接受緩沖器,否則產生一個無效報文。如果緩沖器慢將會產生溢出錯誤,EFLG.RXOOVER位置1.報文接受成功且處理完畢后,MCU將清除中斷標志,返回主程序以接受下一條報文。具體的流程圖如圖5所示。另外整個報文接受過程都可以在接受中斷服務程序中完成,不需要與主程序發生交互作用。

        f.JPG


        3.2 應用層軟件實現
        目前國內還沒有CAN通訊的標準,而國外現有流行的CANopen、DeviceNet和CANkingdom等對于本系統的要求來說實現復雜會造成資源浪費。本文定義了一個簡單的通信協議來完成系統所需求的功能。
        該協議中采用29位(ID.28-ID.0)標識符的擴展幀格式,這些位的發送順序是從ID.28到ID.0,最高7位ID.28~ID.22不能全是隱性1。每一個標識符對應一條信息,只有與自己標識符相同的信息才被接收端接收。標識符ID號的大小還決定了發送的優先級和等待時間,標識符越小的報文幀優先被發送。本協議中ID號位28~24的五位表示信息采集節點,包括各種傳感器模塊,ID號為23~18的四位表示顯示節點,包括各種數據的顯示和報警節點。ID號為19~14的六位為執行控制節點,包括CO2發生器、循環風扇等控制設備節點。ID15~13為信息類別,包塊各種命令信息和狀態信息等信息節點。ID12~ID0為預留。

        4 系統測試
        為了測試本設計的性能,在實驗室里進行了節點之間的溫度測試,如圖6所示。在18點和19點(橫坐標表示時間)之間進行了溫度的測試,在18點鐘到18點30分之間A和B節點一直顯示實驗室的室內溫度(15~17℃之間),過半個小時后將B節點放入22℃的溫水中,然后取出。從圖中可以看到紅色曲線(A節點溫度曲線)一直是恒溫狀態(15~17℃之間),而白色曲線(B節點溫度曲線)在18點30分鐘溫度升到22℃,隨著溫度傳感器被取出,溫度也在下降到15~17℃之間。

        a.JPG



        5 結束語
        本文根據目前溫室系統存在的問題,提出了用構成溫室測控系統傳輸網絡,并根據系統需要設計了簡單的應用層通信協議和進行了CAN節點之間溫度測試。測試結果表明:本設計傳輸網絡結構簡單、可靠性高。另外該測控模塊也可以運用在鍋爐控制、樓宇控制等各種工業現場測控系統中,實用性強、應用范圍廣。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 开封市| 翁牛特旗| 夏津县| 三亚市| 南陵县| 阿巴嘎旗| 登封市| 涞源县| 株洲市| 苍南县| 武强县| 轮台县| 潼南县| 天门市| 延边| 驻马店市| 太仆寺旗| 建水县| 佳木斯市| 保定市| 井冈山市| 靖远县| 通山县| 吴川市| 囊谦县| 通辽市| 连云港市| 洪湖市| 临桂县| 仲巴县| 黎城县| 玉田县| 常熟市| 洮南市| 盱眙县| 广平县| 江城| 巧家县| 灌云县| 陇西县| 铜梁县|