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