白薇薇 惠延波
摘要:目前的立體車庫控制系統(tǒng)存在結(jié)構(gòu)復雜、靈活性差等問題,針對此類不足,提出一種基于CAN總線通信的立體車庫控制系統(tǒng)。采用分布式的控制結(jié)構(gòu),通過CAN節(jié)點調(diào)度各車位節(jié)點的升降橫移,極大提升了車庫控制系統(tǒng)的可擴展性和可維護性。
關(guān)鍵詞:CAN總線;立體車庫;車位控制;車位調(diào)度
立體車庫是解決停車難題的一種有效方案,目前,國內(nèi)生產(chǎn)的機械式停車設(shè)備常采用基于PLC的控制系統(tǒng),這種控制系統(tǒng)方便可行、抗干擾能力強,但是連線較多、成本較高,使用過程中靈活性較差,不利于車庫長期使用和維修。CAN總線是一種應用廣泛的現(xiàn)場總線,基于CAN總線的控制系統(tǒng)可靠性高、靈活性強,將該控制系統(tǒng)應用到立體車庫控制中能提高車位的管理質(zhì)量。同時,基于CAN總線的立體車庫控制系統(tǒng)能簡化設(shè)備的連線、降低成本,解決停車設(shè)備使用靈活性差、檢修復雜的問題。所以,本文設(shè)計一種基于CAN總線的升降橫移式立體車庫控制系統(tǒng),對各CAN節(jié)點和車位調(diào)度算法進行研究。
1基于CAN總線的立體車庫設(shè)計
1.1立體車庫布局
立體車庫根據(jù)實際需要可設(shè)計為多層多列,結(jié)構(gòu)形式為二維矩陣A*B,車位總數(shù)為:
C=A*B-(A-1)
其中,A為立體車庫的層數(shù),B為車庫的列數(shù)。如圖1所示,立體車庫為升降橫移式,地面層存取車時不需要升降橫移,可以直接存?。簧厦鎸哟嫒≤嚂r需要下方各層升降橫移,讓出對應的空間。若現(xiàn)在想取出第三層位置9的車輛,則先將位置2、3、5、6的車向左移動一個車位,讓出位置9下面的兩個空車位,再將車輛9直接下移至第一層即可取走。
1.2CAN節(jié)點的硬件設(shè)計
控制系統(tǒng)采用分布式的控制結(jié)構(gòu),按照功能劃分為多個CAN節(jié)點,各節(jié)點獨立工作,并通過CAN總線交換數(shù)據(jù),接收控制指令。系統(tǒng)的總體結(jié)構(gòu)框圖如圖2所示,CAN節(jié)點主要有:車位節(jié)點、車位控制節(jié)點和上位機通信節(jié)點。車位節(jié)點控制一列車位的升降和橫移運動。車位控制節(jié)點用于現(xiàn)場操作人員控制車輛的存取,顯示系統(tǒng)信息,是系統(tǒng)的主控節(jié)點。上位機監(jiān)控系統(tǒng)通過上位機通信節(jié)點接入控制系統(tǒng),接收CAN控制系統(tǒng)數(shù)據(jù)并向相應CAN節(jié)點發(fā)送遠程控制指令,實現(xiàn)對車庫的遠程控制。
對于單個的車位CAN節(jié)點,主要設(shè)計如圖3所示,由CAN總線驅(qū)動器,CAN總線控制器(位于主控芯片內(nèi)),主控芯片采用STM32F103。由于CAN總線的驅(qū)動能力有限,所以需要外接收發(fā)器SN65HVD23X,其作用就是實現(xiàn)CAN總線與單片機進行數(shù)據(jù)傳輸。
2基于CAN總線的軟件設(shè)計
2.1CAN通信協(xié)議
總線上的節(jié)點以報文形式發(fā)送數(shù)據(jù),發(fā)送時廣播給其他節(jié)點,對于網(wǎng)絡(luò)中的所有節(jié)點來說,不管數(shù)據(jù)是否是發(fā)給自己的,都要進行接收。而每組數(shù)據(jù)都有特定的標識符,標識符決定著優(yōu)先級,這樣,在多個節(jié)點競爭讀取數(shù)據(jù)時,依據(jù)標識符安排順序。進行數(shù)據(jù)傳輸時,發(fā)送數(shù)據(jù)的站把數(shù)據(jù)和標識符先傳送到本站的CAN控制器,然后準備等待,直到收到總線分配才轉(zhuǎn)為報文形式;CAN控制器依據(jù)特定的協(xié)議將報文發(fā)出,此時網(wǎng)絡(luò)中的其他站都處于接收狀態(tài);每個站檢測自己收到的報文,先判斷該報文是否是發(fā)給自己的,然后確定是否接收。另外,CAN總線上報文傳輸按照幀結(jié)構(gòu)的不同可分為數(shù)據(jù)幀、遠程幀、錯誤幀以及過載幀。
2.2CAN接口的軟件設(shè)計
CAN總線收發(fā)信息的軟件編寫方法有兩種方式,分別是查詢方式和中斷方式。本系統(tǒng)采用中斷方式進行數(shù)據(jù)的收發(fā)。本文以接受信息為例加以闡述。中斷方式接受信息的程序流程如圖4所示。
程序運行初始化后,等待CAN接收中斷。當進入CAN總線接收中斷時,主程序以串行方式從接收緩存器中讀取數(shù)據(jù),并保存至設(shè)定的寄存器內(nèi)。然后釋放接收緩存器以便進行下次接收。主程序獲得CAN口發(fā)來的數(shù)據(jù)后,對數(shù)據(jù)進行操作,執(zhí)行下一步的工作。
2.3立體車庫總體軟件設(shè)計
本系統(tǒng)中CAN節(jié)點控制車位的升降和橫移,實現(xiàn)車輛的存取,基本過程如圖5所示。正常工作的情況下,圖5中的第一個步驟由用戶的IC卡輸入確定,確定車輛位置后,由車位控制節(jié)點進行車位的調(diào)度算法。然后再將車位控制信息發(fā)給指定的車位節(jié)點,由分布的車位節(jié)點進行車位的位置移動。
車位的調(diào)度算法是指控制車位的升降和橫移的算法,傳統(tǒng)的算法是對全局車位的運行規(guī)劃,運算量較大,只適用于有中心控制器的系統(tǒng)。所以,本系統(tǒng)采用分布式結(jié)構(gòu)的CAN現(xiàn)場總線技術(shù),將控制功能分散到各個節(jié)點,利用枚舉算法進行各車位節(jié)點的控制。CAN車位控制節(jié)點向總線發(fā)送目標車位的位置信息,然后由各個車位的車位節(jié)點進行判斷,按照算法要求進行升降或者橫移,最終使目標車位到達最底層用戶所在位置。
3結(jié)論
本文設(shè)計的控制系統(tǒng)適用于一種改進型升降橫移式立體車庫的控制,該型立體車庫是基于STM32的CAN總線通信立體車庫。通過CAN總線的車位控制節(jié)點調(diào)度各個車位節(jié)點的升降橫移,完后目標車位的移動,并將所有車位的信息在上位機中顯示出來?;贑AN總線的分布式控制系統(tǒng)可以很好地滿足車庫的控制要求,同時使控制系統(tǒng)標準化、模塊化,提高了控制系統(tǒng)的可擴展性和可維護性。目前,該控制系統(tǒng)在實際使用中性能良好,可以滿足車庫的控制需求。endprint