基于CAN總線(xiàn)智能窗戶(hù)系統的設計實(shí)現
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í)性和可靠性。
評論