李亞南, 王伊瑾
(河北農(nóng)業(yè)大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 河北 保定 071001)
CAN(controller area network)總線技術(shù)是工業(yè)自動(dòng)控制領(lǐng)域應(yīng)用最廣的一種控制網(wǎng)絡(luò)技術(shù)[1],是工業(yè)控制實(shí)現(xiàn)網(wǎng)絡(luò)化、信息化的關(guān)鍵技術(shù)。CAN總線廣泛應(yīng)用于汽車網(wǎng)絡(luò),簡化了車內(nèi)布線,便于檢查維修,增強(qiáng)了汽車的安全性、可靠性,節(jié)約了制造成本。本課程的學(xué)習(xí)不僅要讓學(xué)生掌握CAN總線技術(shù)的原理與應(yīng)用,而且要提高學(xué)生對(duì)網(wǎng)絡(luò)通信協(xié)議的理解和工程實(shí)踐開發(fā)應(yīng)用能力。
課程涉及大量通信概念、協(xié)議,學(xué)習(xí)內(nèi)容抽象、晦澀,單純的理論教學(xué)難以讓學(xué)生理解和掌握,實(shí)踐教學(xué)是學(xué)生學(xué)好CAN總線技術(shù)的有效方法。傳統(tǒng)的實(shí)踐方法存在以下不足:(1)汽車臺(tái)架投入大、場(chǎng)地受限、維護(hù)困難;(2)實(shí)驗(yàn)板對(duì)網(wǎng)絡(luò)控制和設(shè)計(jì)的體現(xiàn)不夠;(3)對(duì)課程涉及的知識(shí)點(diǎn)的體現(xiàn)和輔助力度不夠。
針對(duì)以上問題,本文提出一套基于CAN總線的汽車網(wǎng)絡(luò)實(shí)驗(yàn)系統(tǒng),采用現(xiàn)代化的軟、硬件技術(shù)構(gòu)建3D虛擬仿真實(shí)驗(yàn)平臺(tái),最終效果將在一輛虛擬汽車上進(jìn)行全視角立體仿真展示。
本實(shí)驗(yàn)項(xiàng)目所在的“三維實(shí)驗(yàn)平臺(tái)”,以計(jì)算機(jī)仿真技術(shù)和網(wǎng)絡(luò)技術(shù)為依托,采用面向?qū)ο蟮能浖軜?gòu),集實(shí)物仿真、智能指導(dǎo)、虛擬實(shí)驗(yàn)結(jié)果自動(dòng)批改和教學(xué)管理于一體,具有良好的自主性、交互性和可擴(kuò)展性。如圖1所示,本項(xiàng)目將教學(xué)平臺(tái)及資源分為5層,直到完成虛擬實(shí)驗(yàn)教學(xué)環(huán)境的構(gòu)建。下面將按照從上至下的順序分別闡述各層的任務(wù)與內(nèi)容。
圖1 系統(tǒng)總體架構(gòu)圖
(1) 用戶層。本設(shè)計(jì)中用戶分為高級(jí)管理員、管理員以及普通用戶,不同級(jí)別對(duì)應(yīng)用系統(tǒng)層的可操作內(nèi)容不同,主要區(qū)別在于系統(tǒng)管理應(yīng)用。超級(jí)管理員可以對(duì)虛擬實(shí)驗(yàn)部分、數(shù)據(jù)展示、數(shù)據(jù)查詢和系統(tǒng)管理進(jìn)行全部操作,管理員則只可操作部分系統(tǒng)管理內(nèi)容,普通用戶只能對(duì)虛擬實(shí)驗(yàn)進(jìn)行操作。
(2) 應(yīng)用系統(tǒng)層。應(yīng)用系統(tǒng)層不僅包括數(shù)據(jù)展示、數(shù)據(jù)查詢及系統(tǒng)管理,還根據(jù)課程實(shí)驗(yàn)需要,利用業(yè)務(wù)支撐層和數(shù)據(jù)資源層提供的各種工具,創(chuàng)建虛擬實(shí)驗(yàn)教學(xué)實(shí)例,主要包括汽車CAN通信系統(tǒng)狀態(tài)模擬、汽車CAN通信故障檢修、汽車網(wǎng)絡(luò)節(jié)點(diǎn)通信設(shè)計(jì)等。
(3) 業(yè)務(wù)支撐層。業(yè)務(wù)支撐層包含業(yè)務(wù)服務(wù)支撐、網(wǎng)絡(luò)傳輸服務(wù)支撐、數(shù)據(jù)傳輸服務(wù)支撐和安全服務(wù)支撐,負(fù)責(zé)支撐應(yīng)用系統(tǒng)層各功能之間的協(xié)調(diào)工作。
(4) 數(shù)據(jù)資源層。數(shù)據(jù)資源層包括空間數(shù)據(jù)庫、業(yè)務(wù)數(shù)據(jù)庫和設(shè)備狀態(tài)庫,負(fù)責(zé)應(yīng)用系統(tǒng)層及業(yè)務(wù)支撐層的數(shù)據(jù)運(yùn)用。
(5) 基礎(chǔ)平臺(tái)層?;A(chǔ)平臺(tái)層硬件部分包括高性能服務(wù)器、數(shù)據(jù)采集設(shè)備、海量存儲(chǔ)和網(wǎng)絡(luò),軟件部分包括操作系統(tǒng)、三維仿真系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)?;A(chǔ)平臺(tái)層主要負(fù)責(zé)前面四層的運(yùn)行。
本設(shè)計(jì)通過虛擬現(xiàn)實(shí)、跨平臺(tái)應(yīng)用程序開發(fā)引擎Unity3D,采用編程語言C#,對(duì)整個(gè)系統(tǒng)場(chǎng)景進(jìn)行搭建,在場(chǎng)景搭建完成基礎(chǔ)上對(duì)三維建筑、模型等元素進(jìn)行可視化操作,實(shí)現(xiàn)了三維仿真技術(shù)、三維動(dòng)畫仿真技術(shù)、人機(jī)交互技術(shù)、光照模擬技術(shù)、三維漫游技術(shù)等。
(1) 三維仿真技術(shù)。三維仿真技術(shù)是利用計(jì)算機(jī)技術(shù)創(chuàng)建逼真的、具有多種感知的虛擬環(huán)境,用戶可通過使用各種傳感設(shè)備同虛擬環(huán)境中的實(shí)體相互作用的一種技術(shù)[2]。在該項(xiàng)目中,參與者可以通過數(shù)據(jù)手套、數(shù)據(jù)衣、鼠標(biāo)、鍵盤與汽車和場(chǎng)景進(jìn)行交互。通過使用3D Studio Max構(gòu)建汽車和修車廠等真實(shí)比例為1∶1的模型,再通過Unity3D調(diào)整材質(zhì)、效果等,從而實(shí)現(xiàn)三維仿真功能。
(2) 三維動(dòng)畫仿真技術(shù)。三維動(dòng)畫仿真技術(shù)能夠?qū)⒄鎸?shí)物體的動(dòng)作模擬成一個(gè)虛擬的動(dòng)畫,三維動(dòng)畫具有真實(shí)、精確、可操作性強(qiáng)等優(yōu)點(diǎn)[3]。本仿真平臺(tái)中,汽車在接收到指令時(shí)的運(yùn)動(dòng)模擬、汽車與人交互時(shí)的動(dòng)作模擬、泊車和駕駛中的運(yùn)動(dòng)狀態(tài)模擬等,所用到的就是三維動(dòng)畫仿真技術(shù)。
(3) 人機(jī)交互技術(shù)。人機(jī)交互技術(shù)是指通過計(jì)算機(jī)輸入、輸出設(shè)備,以有效的方式實(shí)現(xiàn)人與計(jì)算機(jī)對(duì)話的技術(shù)[4]。除了常規(guī)的鼠標(biāo)、鍵盤的傳統(tǒng)交互方式,本仿真平臺(tái)還利用數(shù)據(jù)手套、數(shù)據(jù)衣捕獲參與者的“姿勢(shì)信息”對(duì)手和身體的運(yùn)動(dòng)進(jìn)行跟蹤,完成自然的人機(jī)交互。
(4) 光照模擬技術(shù)。本平臺(tái)中所有場(chǎng)景的燈光烘焙都使用了光照模擬技術(shù),例如修理廠場(chǎng)景屋頂上的燈光以及物體影子的模擬、戶外行駛中汽車的光照和陰影效果等。系統(tǒng)將不同的光照信息,如戶外的陽光、修理廠室內(nèi)的燈光保存在光照貼圖的不同通道里,通過Shader將這些信息進(jìn)行處理,動(dòng)態(tài)地為場(chǎng)景調(diào)整不同的光照風(fēng)格。
(5) 三維漫游技術(shù)。本仿真平臺(tái)中,在對(duì)汽車的觀測(cè)和與汽車的互動(dòng)操作中都廣泛使用了三維漫游技術(shù)。參與者可從任意角度和距離并選擇任意精細(xì)程度,對(duì)仿真場(chǎng)景和汽車模型進(jìn)行身臨其境的全方位審視。例如在對(duì)汽車的駕駛操作過程中,參與者可以在“操作者”和“旁觀者”模式中選擇并自由切換。
以汽車網(wǎng)絡(luò)節(jié)點(diǎn)和通信設(shè)計(jì)中的“車窗控制單元設(shè)計(jì)與仿真運(yùn)行”實(shí)驗(yàn)為例。實(shí)驗(yàn)的主要任務(wù)是設(shè)計(jì)一個(gè)基于CAN總線的汽車車窗通信網(wǎng)絡(luò),該實(shí)驗(yàn)包括智能節(jié)點(diǎn)硬件的設(shè)計(jì)及通信協(xié)議的設(shè)計(jì)和仿真。實(shí)驗(yàn)采用闖關(guān)式任務(wù)法,把一個(gè)整體的設(shè)計(jì)項(xiàng)目細(xì)化成6個(gè)層層遞進(jìn)的任務(wù),實(shí)驗(yàn)任務(wù)主要界面如圖2所示。每個(gè)任務(wù)目標(biāo)明確,內(nèi)容完整,讓學(xué)生能有的放矢地去把握。實(shí)驗(yàn)任務(wù)涉及盡可能多的知識(shí)點(diǎn),考慮單個(gè)任務(wù)與整個(gè)教學(xué)內(nèi)容之間的聯(lián)系,涵蓋了課程的多項(xiàng)知識(shí)與技能。
圖2 車窗控制單元設(shè)計(jì)與仿真運(yùn)行實(shí)驗(yàn)任務(wù)主要界面
此為第1項(xiàng)任務(wù),即搭建汽車CAN網(wǎng)絡(luò)中的各個(gè)控制單元,宏觀地認(rèn)識(shí)汽車CAN通信系統(tǒng)的主要控制單元及整體體系結(jié)構(gòu)。
汽車網(wǎng)絡(luò)中,根據(jù)各控制單元對(duì)通信速度的不同需求,通常設(shè)置成兩種不同通信速度的CAN總線,即汽車的CAN總線分成低速網(wǎng)和高速網(wǎng)兩個(gè)通信網(wǎng)絡(luò),由網(wǎng)關(guān)控制器(gateway controller)協(xié)調(diào)高、低速網(wǎng)絡(luò)之間的數(shù)據(jù)通信[5]。
(1) 低速網(wǎng)。通信速度不大于125 kbps,目前常用的為100 kbps,主要用于中央門鎖、自動(dòng)門窗、自動(dòng)空調(diào)、汽車定位等舒適系統(tǒng)[5]。
(2) 高速網(wǎng)。通信速度可達(dá)1 Mbps,目前常用的為500 kbps,主要用于汽車動(dòng)力控制系統(tǒng),如發(fā)動(dòng)機(jī)管理系統(tǒng)、自動(dòng)變速箱、制動(dòng)防抱死裝置等[5]。
此為第2項(xiàng)任務(wù),即完成車窗控制單元的CAN通信智能節(jié)點(diǎn)的硬件結(jié)構(gòu)設(shè)計(jì)。該實(shí)驗(yàn)以四窗車型為例進(jìn)行硬件結(jié)構(gòu)布置,以駕駛側(cè)為主節(jié)點(diǎn),副駕駛側(cè)、左后側(cè)、右后側(cè)為從節(jié)點(diǎn)。主節(jié)點(diǎn)負(fù)責(zé)主駕駛側(cè)的車窗控制和向CAN總線發(fā)送對(duì)其他車窗的控制報(bào)文,各個(gè)從節(jié)點(diǎn)通過按鍵控制各自車窗,發(fā)送相應(yīng)報(bào)文,并接收總線上相應(yīng)報(bào)文,做出相應(yīng)動(dòng)作。
CAN總線智能節(jié)點(diǎn)由6部分組成:微處理器STC89C51、CAN控制器SJA1000、光電耦合器6N137、CAN收發(fā)器89C250、車窗控制電路和按鍵模塊電路。微處理器STC89C51負(fù)責(zé)SJA1000的初始化,通過對(duì)SJA1000的寄存器進(jìn)行配置,使各節(jié)點(diǎn)按照CAN總線的協(xié)議進(jìn)行數(shù)據(jù)傳送。CAN收發(fā)器89C250主要用作信號(hào)電平轉(zhuǎn)換,產(chǎn)生CAN總線要求的差分信號(hào)電平,是CAN控制器和物理總線之間的接口[6]。高速光耦6N137實(shí)現(xiàn)了總線上各節(jié)點(diǎn)間的電氣隔離。
CAN應(yīng)用協(xié)議主要規(guī)定以下三方面內(nèi)容:信息標(biāo)識(shí)符的分配、報(bào)文濾波機(jī)制的設(shè)定和報(bào)文數(shù)據(jù)幀含義的設(shè)定。實(shí)驗(yàn)通過以下三個(gè)步驟指導(dǎo)參與者實(shí)現(xiàn)一個(gè)CAN網(wǎng)絡(luò)應(yīng)用協(xié)議的設(shè)計(jì)。
(1) 信息標(biāo)識(shí)符的分配。CAN為多主機(jī)工作方式,所有節(jié)點(diǎn)都可發(fā)送報(bào)文,發(fā)送報(bào)文的ID是節(jié)點(diǎn)的標(biāo)識(shí)符,體現(xiàn)了該節(jié)點(diǎn)的優(yōu)先級(jí)。系統(tǒng)采用的SJA1000是一款獨(dú)立的CAN控制器,支持CAN2.0A和CAN2.0B協(xié)議[6]。本設(shè)計(jì)信息標(biāo)識(shí)符采用靜態(tài)分配策略及BasicCAN模式,需要對(duì)11位標(biāo)識(shí)符進(jìn)行分配[6]。
此為第3項(xiàng)任務(wù),即由參與者根據(jù)優(yōu)先級(jí)的要求進(jìn)行信息標(biāo)識(shí)符分配,并觀測(cè)到不同優(yōu)先級(jí)報(bào)文的ID仲裁過程。標(biāo)識(shí)符(11位)分配策略:信息功能碼(2位)+節(jié)點(diǎn)號(hào)(4位)+單元號(hào)(5位)。信息功能碼考慮了通信中的三種通信形式:報(bào)警、控制、信息幀;節(jié)點(diǎn)號(hào)分配給四個(gè)車窗控制節(jié)點(diǎn);車窗控制單元的單元號(hào)由系統(tǒng)給定。
在這個(gè)過程中,參與者可通過設(shè)置四個(gè)車窗動(dòng)作節(jié)點(diǎn)發(fā)送報(bào)文ID的方式,來控制不同功能幀、不同節(jié)點(diǎn)的優(yōu)先級(jí),并觀測(cè)到不同優(yōu)先級(jí)報(bào)文的仲裁過程。CAN總線采用“載波監(jiān)測(cè)、多主掌控/沖突避免”(CSMA/CA)的仲裁機(jī)制[7]。在這種機(jī)制下,汽車總線上的四個(gè)車窗節(jié)點(diǎn)平等地申請(qǐng)總線的控制權(quán),當(dāng)某一時(shí)刻,總線上有多個(gè)節(jié)點(diǎn)要求發(fā)送數(shù)據(jù)時(shí),總線根據(jù)標(biāo)識(shí)符按位仲裁,使具有高優(yōu)先級(jí)的數(shù)據(jù)不受任何損壞地傳輸。
(2) 報(bào)文濾波機(jī)制的設(shè)定。報(bào)文濾波是CAN總線技術(shù)最有用的特色之一,通過報(bào)文濾波,可以很容易地實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)的通信。各個(gè)節(jié)點(diǎn)的濾波參數(shù)如何設(shè)置,是系統(tǒng)組網(wǎng)的關(guān)鍵之一。CAN網(wǎng)絡(luò)的報(bào)文濾波由驗(yàn)收屏蔽寄存器AMR和驗(yàn)收碼寄存器ACR控制。在BasicCAN模式下,只有當(dāng)驗(yàn)收代碼寄存器的位(ACR.7—ACR.0)與信息標(biāo)識(shí)符的高8位(ID.10—ID.3)相等,或與驗(yàn)收屏蔽寄存器的相應(yīng)位(AMR.7—AMR.0)相“或”為1,信息才被接收[6]。
在任務(wù)4中,參與者通過設(shè)置控制節(jié)點(diǎn)驗(yàn)收濾波器ACR和AMR寄存器對(duì)報(bào)文ID進(jìn)行過濾,并觀測(cè)到驗(yàn)收濾波器對(duì)ID的濾波過程。
(3) 報(bào)文數(shù)據(jù)幀含義的設(shè)定。此為第5項(xiàng)任務(wù),即參與者定義特定數(shù)據(jù)幀對(duì)應(yīng)的動(dòng)作,完成自定義CAN應(yīng)用層協(xié)議。在BasicCAN模式下,有8個(gè)字節(jié)的數(shù)據(jù)幀,參與者設(shè)定某一個(gè)ID可能的動(dòng)作和狀態(tài)對(duì)應(yīng)的數(shù)據(jù)幀。仿真過程中汽車會(huì)根據(jù)該協(xié)議做出相應(yīng)的動(dòng)作,并發(fā)送相應(yīng)數(shù)據(jù)到CAN總線網(wǎng)絡(luò)。
此為第6項(xiàng)任務(wù),即綜合應(yīng)用三維虛擬仿真技術(shù)、三維動(dòng)畫仿真技術(shù)、人機(jī)交互技術(shù)、光照模擬技術(shù)、三維漫游技術(shù)和XML數(shù)據(jù)解析技術(shù)等,實(shí)現(xiàn)與汽車的三維立體交互。參與者可通過兩種方式觀測(cè)自定義應(yīng)用協(xié)議對(duì)汽車的作用,一是通過控制窗口向汽車輸入自定義的CAN應(yīng)用層協(xié)議數(shù)據(jù)幀后,汽車有相應(yīng)的反應(yīng);二是操作汽車,會(huì)看到相應(yīng)的數(shù)據(jù)幀出現(xiàn)在汽車總線中。參與者既可利用VR頭盔、數(shù)據(jù)衣、數(shù)據(jù)手套,感受到VR的全視角立體感和全新的、智能的感知體驗(yàn),也可通過鼠標(biāo)交互,以三維立體模型的形式展示。
教育部《關(guān)于開展虛擬仿真實(shí)驗(yàn)教學(xué)中心建設(shè)工作的通知》中提出,“虛擬仿真實(shí)驗(yàn)教學(xué)建設(shè)工作是高等教育信息化的組成部分,是學(xué)科專業(yè)與信息技術(shù)深度融合的產(chǎn)物”。本文構(gòu)建的基于CAN總線技術(shù)的汽車網(wǎng)絡(luò)仿真實(shí)驗(yàn)平臺(tái),利用最新虛擬現(xiàn)實(shí)產(chǎn)品和最新三維仿真技術(shù),致力于降低實(shí)踐教學(xué)成本,打造多樣化的教學(xué)環(huán)境,突破時(shí)間和空間的限制,增強(qiáng)實(shí)踐教學(xué)的互動(dòng)性。實(shí)驗(yàn)平臺(tái)全面展示了CAN總線技術(shù)的關(guān)鍵知識(shí),能夠系統(tǒng)地考查參與者應(yīng)用設(shè)計(jì)能力,增強(qiáng)教學(xué)的直觀性和認(rèn)知性,是一種有著強(qiáng)大活力的現(xiàn)代教學(xué)平臺(tái)。