基于CAN總線智能窗戶系統(tǒng)的設(shè)計實現(xiàn)
2.2系統(tǒng)的硬件選取
在本系統(tǒng)中,總線控制器和收發(fā)器分別采用Philip公司的P8xC592和PCA83C250。P8xC592單片機是用COMS工藝制造的具有CAN功能的8位單片機其指令集與80C51完全兼容,這樣就有利于編程。PCA83C250是CAN控制器與物理總線的接口,可以提供對總線的差動發(fā)送和接收功能。在此特別注意 P8xC592單片機是一種集成CAN控制器的高性能微處理器,所以在該系統(tǒng)中,P8xC592不僅僅要與CAN相連接,同時還要對各個窗戶子系統(tǒng)進(jìn)行控制。
同時傳輸介質(zhì)只要使用雙鉸線,在短距離(40m)條件下就具有高速(1Mbit/s)數(shù)據(jù)傳輸能力,而在最大距離10000m時具有低速(5kbits/s)傳輸能力。而主控制器采用的是性價比高,結(jié)構(gòu)簡單,便于編程的89S51單片機,主要用于對CAN控制器P8xC592及其串口RS232初始化,并通過對CAN控制器8xC592及其串口RS232的控制操作實現(xiàn)現(xiàn)場CAN總線與管理層PC機的數(shù)據(jù)交換等通信任務(wù)。
3 用戶通信協(xié)議設(shè)計
3.1 通信協(xié)議
這里采用的是CAN2.0A標(biāo)準(zhǔn),該協(xié)議最大的優(yōu)點是廢除了傳統(tǒng)的站地址編碼,因此CAN沒有節(jié)點地址的概念,代之以通信數(shù)據(jù)塊進(jìn)行編碼,支持以數(shù)據(jù)為中心的通信模式.當(dāng)窗戶節(jié)點不同時,只需要在總線上增減控制器的節(jié)點數(shù),并對相應(yīng)的數(shù)據(jù)幀進(jìn)行適當(dāng)?shù)男薷? CAN上的節(jié)點數(shù)主要取決于總線驅(qū)動線路,當(dāng)采用PCA82C250時,最多可達(dá)110個。
3.2 數(shù)據(jù)幀
數(shù)據(jù)幀如圖2所示,包括七個部分:幀起始,仲裁場,控制場,數(shù)據(jù)場,CRC序列,ACK場,幀結(jié)束.仲裁場包括有報文標(biāo)識符(11位)和遠(yuǎn)程發(fā)送申請位(RTR);控制場由六位組成,如圖3所示,后四位位數(shù)據(jù)長度碼,代表數(shù)據(jù)場字節(jié)數(shù),這里設(shè)為02H;傳輸信號每一幀數(shù)據(jù)長度為16位,高字節(jié)用D8到D15八位編碼表示節(jié)點在大樓的位置,低字節(jié)設(shè)為控制字,控制字各位均為高電平有效。如下圖4所示,例如:數(shù)據(jù)場為0801H,表示8號窗戶節(jié)點要求托管;0802H表示8號窗戶節(jié)點處于開啟狀態(tài),0804H表示8號窗戶處于關(guān)閉狀態(tài),0808H表示8號窗戶要執(zhí)行開窗指令,080F H表示8號窗戶要執(zhí)行關(guān)窗指令。對于上位機和下層的各個節(jié)點來說,它們需要發(fā)送的數(shù)據(jù)幀信息是不同的。
圖 4 數(shù)據(jù)場組成
3.3 多主廣播方式
總線空閑時,任意節(jié)點均可發(fā)送數(shù)據(jù),其它節(jié)點都可接收總線上的數(shù)據(jù),CAN只需通過報文濾波就可以實現(xiàn)點對點,一點對多點及全局廣播等傳收方式,無須專門調(diào)度。這里用接受碼寄存器,接收碼屏蔽寄存器實現(xiàn)報文濾波,使上位機收總線上的一切信息,而層站控制器只接受上位機的CAN控制器發(fā)出的信號,并且使不同的節(jié)點可以同時接受上位機CAN控制器發(fā)出的數(shù)據(jù)。這點非常有用,采用廣播方式,可極大地節(jié)省傳輸時間,提高傳輸速率,增強系統(tǒng)地實時性和可靠性。
評論