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