1 引言
要保證汽車在立體車庫中的安全運行,除了對設(shè)備及其控制的高要求外,還必須對車庫中的各種信號(各種傳感器設(shè)備)定時定點檢測及維修。目前對這些信號的檢測主要由微機監(jiān)測系統(tǒng)完成。它可在信號主體設(shè)備運行中自動跟蹤和采集有用信息,為管理人員和維修人員了解設(shè)備當前的運行狀態(tài),及時采取措施,減少故障的發(fā)生。但信號過多也存在一些缺點:
(1) 傳感器的引線多。傳感器采用二線制的信號傳輸方式,每只傳感器要2根引線。在大型庫的系統(tǒng)中,往往有幾百只到幾千只傳感器,需要的引線的根數(shù)是傳感器的2倍,如此多的引線將給安裝時的布線和日后維護帶來困難。
(2) 傳感器的位置往往與控制器較遠,模擬信號的長線傳輸會帶來干擾。
(3) 目前通信主控模塊與上位機間的通信采用RS-232串行通信,其通信速率低,通信距離短,抗干擾能力較弱。
(4) 從現(xiàn)場來的信號要經(jīng)過唯一的微機進行分析,然后再返回到現(xiàn)場設(shè)備,不支持競爭。
現(xiàn)場總線技術(shù)加實現(xiàn)現(xiàn)場設(shè)備與上位機之間的數(shù)字連接和現(xiàn)場設(shè)備的智能化,可克服上述一般微機監(jiān)測系統(tǒng)中的缺點和不足?,F(xiàn)場總線有很多種,筆者選用CAN總線,它是當今最為流行、使用較多的現(xiàn)場總線之一。它以其高性能、高可靠性以及靈活的設(shè)計受到人們的關(guān)注,并得到廣泛應(yīng)用。本文以CAN現(xiàn)場總線為基礎(chǔ),研究它在立體車庫系統(tǒng)中的應(yīng)用。
2 CAN總線在立體車庫中使用的特點
CAN總線最初是由德國BOSCH公司為解決汽車監(jiān)控系統(tǒng)中的諸多復(fù)雜技術(shù)和難題而設(shè)計的數(shù)字信號通信協(xié)議,它屬于總線式串行通信網(wǎng)絡(luò)。由于采用了許多新技術(shù)和獨特的設(shè)計思想,與同類產(chǎn)品相比,CAN總線在數(shù)據(jù)通信方面具有可靠、實時和靈活的優(yōu)點。
為使設(shè)計透明和執(zhí)行靈活,遵循ISO/OSI標準模型,CAN總線結(jié)構(gòu)劃分為兩層:物理層和數(shù)據(jù)鏈路層(包括邏輯鏈路控制子層LLC和媒體訪問控制子層MAC)。其中,LLC子層為數(shù)據(jù)傳遞和遠程數(shù)據(jù)請求提供服務(wù);MAC子層的功能主要是傳送規(guī)則,即控制幀結(jié)構(gòu)、執(zhí)行仲裁、錯誤檢驗、出錯標定和故障界定。
CAN總線在立體車庫中應(yīng)用的主要特點有:
(1) CAN可以多主方式工作,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息,而不分主從,通信方式靈活。
(2) CAN網(wǎng)絡(luò)上的節(jié)點可分成不同的優(yōu)先級,可以滿足不同立體車庫中的實時要求。
(3) CAN采用非破壞性總線裁決技術(shù),當兩個節(jié)點同時向網(wǎng)絡(luò)上傳送信息時,優(yōu)先級低的節(jié)點主動停止數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數(shù)據(jù),大大節(jié)省了總線沖突裁決時間;最重要的是在立體車庫網(wǎng)絡(luò)負載很重的情況下,也不會出現(xiàn)網(wǎng)絡(luò)癱瘓的情況,可靠性高。
(4) CAN可以點對點、一點對多點及全局廣播幾種傳送方式接收數(shù)據(jù)。
(5) CAN的直接通信距離最遠可達10km(速率5KB/s以下)。CAN的通信速率最高可達1MB/s(此時距離最長40m)。特別適于立體車庫。
(6) CAN上的節(jié)點數(shù)實際可達110個??蓾M足立體車庫節(jié)點多的要求。
(7) CAN采用短幀結(jié)構(gòu)。立體停車設(shè)備屬于國家特種設(shè)備,對安全要求非常嚴格,采用短幀結(jié)構(gòu)可滿足其安全要求。因為短幀結(jié)構(gòu)的每一幀有效字節(jié)數(shù)為8個,傳輸時間短,受干擾的概率低,且具有極好的檢錯效果。每幀信息都有CRC校驗及其他檢錯措施,數(shù)據(jù)出錯率極低。
(8) 通信介質(zhì)采用廉價的雙絞線,無特殊要求,成本較低,便于在立體車庫中推廣。
(9) CAN節(jié)點在錯誤嚴重的情況下,具有自動關(guān)閉總線的功能,切斷它與總線的聯(lián)系,以使總線上的其他操作不受影響。立體車庫往往由不同組別的設(shè)備組成,當一組設(shè)備有故障時,可切斷它與總線的聯(lián)系,不會影響其他設(shè)備正常運行。
(10) NRZ編碼/解碼方式,并采用位填充技術(shù)。
為了保證車輛在立體車庫中的安全、正常放置,需要大量的傳感器,網(wǎng)絡(luò)上需要傳遞不同的信號,因而難免會發(fā)生搶占總線的情況,而CAN總線特有的多主方式和非破壞性總線仲裁技術(shù)能夠克服這種情況,使通信方式更加靈活,并且節(jié)省了總線沖突裁決時間,保證了網(wǎng)絡(luò)的運行質(zhì)量。因而在立體車庫中選擇CAN總線作為現(xiàn)場級的網(wǎng)絡(luò)是適宜的。
3 CAN總線在立體車庫中的應(yīng)用
3.1 微機監(jiān)控系統(tǒng)總體設(shè)計
筆者在立體車庫CAN總線系統(tǒng)的設(shè)計中采用了上位機和節(jié)點的方式,上位機和節(jié)點之間采用CAN總線進行通信,由于CAN具有的多主方式,使得整個系統(tǒng)中的各個模塊都可以互相通信。但在本系統(tǒng)中,通信主要集中在上位機與節(jié)點之間,節(jié)點與節(jié)點之間暫不進行通信。本系統(tǒng)中的上位機由一臺計算機和一塊CAN卡組成,主要負責監(jiān)控各節(jié)點的狀態(tài)和發(fā)出控制命令;而各節(jié)點由單片機+CAN控制器及其它外圍電路組成,主要負責接收上位機發(fā)送的命令并執(zhí)行,同時返回一些狀態(tài)信息。圖1為本立體車庫系統(tǒng)總體結(jié)構(gòu)示意圖。
圖1 系統(tǒng)總體結(jié)構(gòu)示意圖
本系統(tǒng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)采用總線式結(jié)構(gòu),其特點是結(jié)構(gòu)簡單、成本低,并且采用無源抽頭連接,系統(tǒng)可靠性高。選用CAN總線連接各個網(wǎng)絡(luò)控制節(jié)點,形成多主機控制器局域網(wǎng)。信息的傳輸采用CAN通信協(xié)議,傳輸介質(zhì)選用普通雙絞線。為了提高系統(tǒng)的抗干擾能力,在控制器和傳輸介質(zhì)之間進行光電隔離等。
系統(tǒng)的工作過程如下:CAN適配卡上電復(fù)位和初始化后,等待PC機的命令和數(shù)據(jù),當PC機發(fā)出命令和數(shù)據(jù)時,通過觸發(fā)中斷通知CAN適配卡。CAN適配卡上的微處理器分析命令并完成數(shù)據(jù)的發(fā)送和接收處理。當CAN適配卡完成一次通信后,通過中斷通知PC機,PC機從雙端口RAM中取出數(shù)據(jù)進一步處理。
3.2 系統(tǒng)硬件設(shè)計
由圖1系統(tǒng)總體結(jié)構(gòu)可知,系統(tǒng)硬件主要包括上位機、CAN總線和數(shù)據(jù)采集節(jié)點三大部分組成。
本系統(tǒng)上位計算機選擇PC機,其優(yōu)點是:PC機上面有多條擴展槽,利用局域網(wǎng)絡(luò)通信適配卡,使得該系統(tǒng)很容易與其他生產(chǎn)管理部門聯(lián)網(wǎng),便于統(tǒng)一調(diào)度和管理。選用PC機,還可以充分利用先用軟件工具和開發(fā)環(huán)境,方便快捷的設(shè)計功能豐富的應(yīng)用軟件。
由于上位機負責整個系統(tǒng)的控制與調(diào)度,工作任務(wù)較重,因此采用PC+CAN總線適配卡的方案。CAN總線通信接口適配卡選擇PCI-5110智能CAN接口卡,其結(jié)構(gòu)如圖2所示。由圖2可見,CAN通信卡是以微控制器為核心,外加CAN控制器電路、雙端口RAM電路、中斷電路、復(fù)位電路和隔離電路構(gòu)成的。PCI-5110接口卡上集成8KB高速雙端口存儲器,可有效提高數(shù)據(jù)吞吐率,適合用于立體車庫需要進行大量數(shù)據(jù)傳輸?shù)腃AN通訊應(yīng)用場合;硬件采用中斷接收方式,可最大限度地減輕PC負荷;對PC的硬件、軟件環(huán)境要求并不嚴格。
圖2 CAN總線通信接口適配卡結(jié)構(gòu)圖
數(shù)據(jù)采集節(jié)點是本系統(tǒng)中的重要部分,它的作用有兩個方面:一是在上位機不存在或沒有啟動的情況下能獨立指揮系統(tǒng)工作;二是能夠接收上位機發(fā)來的命令,并且執(zhí)行,同時還要作多點監(jiān)控和狀態(tài)報告。節(jié)點結(jié)構(gòu)如圖3所示。
圖3 數(shù)據(jù)采集節(jié)點結(jié)構(gòu)圖
它的核心部分是單片機和CAN總線控制器。在這里CAN總線控制器選用了與上位機相同的設(shè)計:采用PHILIPS公司的SJA1000 CAN控制器+PCA 82C250 CAN收發(fā)器組成。SJA1000 CAN控制器是PHILIPS公司新推出的CAN控制器芯片,它可以完成CAN協(xié)議所規(guī)定的物理層和數(shù)據(jù)鏈路層的所有功能,具有完成高性能通信協(xié)議所要求的全部特性。PCA 82C250是CAN控制器SJA1000與CAN物理總線的接口器件,它提供對總線的差動發(fā)送能力和對CAN控制器的差動接收能力。
而單片機,筆者選用了ATMEL公司的ATMEL 89C51單片機。
EEPROM可用于存儲系統(tǒng)的初始化參數(shù)或者用戶自定義數(shù)據(jù)。
EPROM用來存放程序,它也是不同設(shè)備控制器的差異所在。
RAM用來存放微處理器在運算、測量、控制時的有關(guān)數(shù)據(jù)。
在系統(tǒng)設(shè)計中要注意到兩點:
(1) 總線兩端要接上120Ω的匹配電阻,以提高整個系統(tǒng)通信的可靠性和抗干擾能力。
(2) 系統(tǒng)中的單片機時鐘由SJA1000提供(將SJA1000的時鐘信號分頻得到),以便于兩者之間同步。
3.3 系統(tǒng)軟件設(shè)計
本系統(tǒng)上位機監(jiān)控及人機接口界面程序是在WINDOWS 98平臺上采用組態(tài)軟件iFIX編寫的,它加快了開發(fā)速度,改善了人機界面。iFIX與常用的組態(tài)軟件相比最大的優(yōu)勢在于它有強大的控制功能,這一點恰好滿足本系統(tǒng)的要求。值得一提的是iFIX內(nèi)嵌的VBA功能,VBA是Intellution Dynamics完全內(nèi)置的一個強有力的編輯工具,可以快速方便的生成自動的操作任務(wù)和自動化解決方案。
CAN總線智能節(jié)點的軟件設(shè)計主要包括三大部分:CAN節(jié)點初始化、報文發(fā)送和報文接受。
SJA1000的初始化只有在復(fù)位模式下才可以進行,初始化主要包括工作方式的設(shè)置、接受濾波方式的設(shè)置、接受屏蔽寄存器(AMR)和接收代碼寄存器(ACR)的設(shè)置、波特率參數(shù)設(shè)置和中斷允許寄存器(IER)的設(shè)置等。在完成SJA1000的初始化設(shè)置以后,SJA1000就可以回到工作狀態(tài),進行正常的通信任務(wù)。
發(fā)送子程序負責節(jié)點報文的發(fā)送。發(fā)送時用戶只需將待發(fā)送的數(shù)據(jù)按特定格式組合成一幀報文,送入SJA1000發(fā)送緩沖區(qū)中,然后啟動SJA1000發(fā)送即可。
接收子程序負責節(jié)點報文的接收以及其他情況的處理。接收子程序比發(fā)送子程序要負責一些,因為在處理接收報文的過程中,同時要對諸如總線關(guān)閉、錯誤報警、接收溢出等情況進行處理。SJA1000報文的接收主要有兩種方式:中斷接收方式和查詢接收方式,考慮到本系統(tǒng)對通信的實時性要求不是很強,采用了查詢接收方式。
4 總結(jié)
基于CAN控制器的應(yīng)用系統(tǒng),由于其效率高,抗干擾能力強,傳輸距離長,成本較低,以及它特有的多主方式,特別適合在中小型立體車庫的分布式控制系統(tǒng)中使用。CAN總線的應(yīng)用在我國立體車庫中才剛剛開始,相信不久以后,CAN總線的使用會越來越多,它必將會成為現(xiàn)場總線的主流應(yīng)用。