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