基于單片機P8XC592智能窗戶系統的設計實現
1引言
在我國現有的市場里,智能窗戶作為智能家居的一部分,它主要圍繞著單個家庭進行開發。但隨著人們對智能家居的要求越來越高,就在群控性,遠程監控性,實時性等方面提出了更高的要求。在這樣的前提下,引出了新的課題。結合CAN總線的數據通信技術具有突出的可靠性,實時性和靈活性的優點,把CAN總線技術運用于該系統中,達到在控制每個單獨的窗戶的同時,監控所有窗戶的運行情況的目的。
2 系統結構設計
2.1 系統總體結構
CAN總線遵循ISO/OSI標準模型,分為數據鏈接層(包括邏輯鏈路控制子層LLC和媒體訪問控制子層MAC)以及物理層。其通信接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對數據的幀處理,包括位填充用戶可在其基礎上開發適應系統實際需要的應用層通信協議。
與一般的通信總線相比,CAN協議的一個最大特點是廢除了傳統的站地址編碼,而代之以對通信數據塊編碼,報文標識符可達2032中(CAN2.0A),而擴展標準(CAN2.0B)的標識符幾乎不受限制,還可使不同的節點同時收到相同的數據。所以本系統可以由多個獨立的窗戶為基本單元,這些單元與上位計算機通過CAN現場總線組成了監控網絡,從而實現群控的功能。
如下圖1所示。從中我們可以看出,本系統被分為三層:
(1)現場設備層:有一個雨水傳感器以及多個窗戶節點組成的,這些輸入輸出設備作為CAN的I/O點接入現場總線。窗戶節點N的個數是由選取的總線驅動電路決定的。
(2)設備控制層:CAN控制器P8xC592以及CAN收發器PCA83C250,這是CAN總線控制的核心部分,CAN控制器實現通信及節點控制的功能;CAN收發器起到節點與總線之間通信的功能。
(3)管理監控層:作為控制系統的人機交互接口,通過上位PC機實現對整個系統的監視控制作用。
圖 1系統硬件結構圖
2.2系統的硬件選取
在本系統中,總線控制器和收發器分別采用Philip公司的P8xC592和PCA83C250。P8xC592單片機是用COMS工藝制造的具有CAN功能的8位單片機其指令集與80C51完全兼容,這樣就有利于編程。PCA83C250是CAN控制器與物理總線的接口,可以提供對總線的差動發送和接收功能。在此特別注意 P8xC592單片機是一種集成CAN控制器的高性能微處理器,所以在該系統中,P8xC592不僅僅要與CAN相連接,同時還要對各個窗戶子系統進行控制。
同時傳輸介質只要使用雙鉸線,在短距離(40m)條件下就具有高速(1Mbit/s)數據傳輸能力,而在最大距離10000m時具有低速(5kbits/s)傳輸能力。而主控制器采用的是性價比高,結構簡單,便于編程的89S51單片機,主要用于對CAN控制器P8xC592及其串口RS232初始化,并通過對CAN控制器8xC592及其串口RS232的控制操作實現現場CAN總線與管理層PC機的數據交換等通信任務。
3 用戶通信協議設計
3.1 通信協議
這里采用的是CAN2.0A標準,該協議最大的優點是廢除了傳統的站地址編碼,因此CAN沒有節點地址的概念,代之以通信數據塊進行編碼,支持以數據為中心的通信模式.當窗戶節點不同時,只需要在總線上增減控制器的節點數,并對相應的數據幀進行適當的修改. CAN上的節點數主要取決于總線驅動線路,當采用PCA82C250時,最多可達110個。
3.2 數據幀
數據幀如圖2所示,包括七個部分:幀起始,仲裁場,控制場,數據場,CRC序列,ACK場,幀結束.仲裁場包括有報文標識符(11位)和遠程發送申請位(RTR);控制場由六位組成,如圖3所示,后四位位數據長度碼,代表數據場字節數,這里設為02H;傳輸信號每一幀數據長度為16位,高字節用D8到D15八位編碼表示節點在大樓的位置,低字節設為控制字,控制字各位均為高電平有效。如下圖4所示,例如:數據場為0801H,表示8號窗戶節點要求托管;0802H表示8號窗戶節點處于開啟狀態,0804H表示8號窗戶處于關閉狀態,0808H表示8號窗戶要執行開窗指令,080F H表示8號窗戶要執行關窗指令。對于上位機和下層的各個節點來說,它們需要發送的數據幀信息是不同的。
圖4數據場組成
3.3 多主廣播方式
總線空閑時,任意節點均可發送數據,其它節點都可接收總線上的數據,CAN只需通過報文濾波就可以實現點對點,一點對多點及全局廣播等傳收方式,無須專門調度。這里用接受碼寄存器,接收碼屏蔽寄存器實現報文濾波,使上位機收總線上的一切信息,而層站控制器只接受上位機的CAN控制器發出的信號,并且使不同的節點可以同時接受上位機CAN控制器發出的數據。這點非常有用,采用廣播方式,可極大地節省傳輸時間,提高傳輸速率,增強系統地實時性和可靠性。
3.4 總線仲裁
報文標識符用于提供傳送報文和總線訪問權信息。當多個總線控制器同時發送報文時,為避免沖突需進行仲裁。仲裁期間,每個進行發送的P8xC592都將其發送位電平與監控總線電平進行比較。如果發送一個隱性位而監視到一個顯性位電平,那么該節點失去仲裁,放棄總線控制權,停止傳送信息,P8xC592立即變成總線上較高優先權報文的接收器,而不破壞總線上任何信息。數據場上的發送數據存在發送緩存器數據區中,同時,接收數據幀的數據將被存在接收緩存器中。每段報文包括一個唯一的標識符和報文中描述數據類型的RTR位。標識符和RTR位一起定義該報文的總線訪問優先權。仲裁期間,標識符的最高位先后被發送,而RTR位最后發送。標識符和RTR位對應二進制數值最低的報文具有最高的優先權。11位可以形成2032個不同的標識符,而該系統中窗戶節點由于驅動電路的限制,最多只能有110個節點,所以采用標識符確定優先權綽綽有余。
4 系統軟件設計
上位機即操作站的網絡管理和應用程序的設計思路主要是CAN接口適配卡的初始化,判斷網絡節點之間時候有沖突,設定節點優先級,數據存取,與歷史數據比較,根據節點實際情況進行處理并回送等功能。
CAN控制器P8xC592的通信軟件包括CAN初始化、報文的接收和報文發送三部分。當控制器上電后,首先對CAN控制器P8xC592進行初始化設置,主要包括工作方式的設置、接受濾波方式的設置、接受屏蔽寄存器和接受代碼寄存器的設置、波特率參數設置和中斷允許寄存器的設置。完成P8xC592的初始化設置后即返回工作狀態,開始循環監聽CAN總線上的信息。
從用戶的角度來看,窗戶的運行情況是與其息息相關的。對于最底層的現場CAN智能測控節點的軟件設計采用結構化設計方案。如下圖5所示,P8xC592根據接收遙控器發出的信息決定運行情況,如果需要托管的話,就接受來自CAN控制器的信號并用于控制窗戶的開/關。如果不用托管的話,那么就不斷掃描遙控器,接受到信號然后執行。同時在程序的結束部分,有一個10ms計時的操作,這樣就能保證單片機能有序地發送檢測信號給PC機。
圖 5 窗戶節點軟件流程圖
5 系統功能效果
在該系統中,用戶可以直接通過遙控器方便方便地進行操作,遙控器板有三個按鍵,一是開窗,二是關窗,三是托管。當遙控器的托管按鍵沒有按下去的時候,用戶就自己對關窗開窗進行控制,當用戶需要開/關窗的時候,就按遙控器上相應的鍵就能實現功能。而當遙控器處于托管,如果下雨的時候,雨水傳感器檢測到下雨的信號,就通過P8XC592發送信號,信號經過CAN總線到達PC主機,然后PC主機再發送關窗的指令到所有處于托管狀態的窗戶節點。
在應用方面,智能故障診斷是非常重要的。在該系統里,設計一種檢測的方法,每個窗戶節點在每10ms的時間里,由P8XC592發送到檢測信號PC主機里。如果主機沒有收到該節點的檢測信號,就認為該節點發生了故障。那么PC機就會向管理人員報警,說明該窗戶節點出現了故障。
6 結論
基于CAN總線技術,采用P8XC592和PCA82C250芯片構成先進的總線智能節點控制器。在這篇文章中,筆者更多的是用智能窗戶設計作為一個支點,概述了基于CAN總線技術應用于智能家居領域的設計方案。把水表,燃氣表等等其他家居器件結合在單個節點控制器中,用CAN總線把各個節點連接起來,形成一個控制局域網絡。本文提出來的設計方案為以后智能家居系統的開發設計提供了新的思路和新的方法。
本文作者創新點在于在實現單個節點設計的基礎上,將CAN總線引入到智能家居的設計中來。實現對樓宇中窗戶的遠程監控和操作,從而提出了智能家居的發展新方法新思路。
參考文獻
[1]鄔寬明.CAN總線原理和應用系統設計[M].北京航空航天大學出版社,1996
[2]鄔寬明.CAN總線系統設計中的幾個問題[J].電子技術應用:1998,9:18~20
[3]陽憲惠.現場總線技術及應用[M].清華大學出版社,1999
[4]劉光. CAN總線智能節點的設計和實現[J].微計算機信息.2006,(22-62):102~104
評論