本站小編為你精心準(zhǔn)備了CAN總線通信系統(tǒng)模型分析參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
隨著信息化進(jìn)程的高速發(fā)展,在人們的工作、生活中電子產(chǎn)品無(wú)處不在,智能化的設(shè)備在給人們帶來(lái)便利的同時(shí)也帶來(lái)了信息安全隱患。特別是無(wú)線通信的普及,愈發(fā)為信息的泄露與傳遞提供了條件。can總線是汽車電子系統(tǒng)中最基本的通信總線,汽車上的電子模塊通常以分布式的方式掛接在CAN總線上??偩€上的每個(gè)節(jié)點(diǎn)都具備接收任何其他節(jié)點(diǎn)所的信息的能力,同時(shí)也具備向任何一個(gè)節(jié)點(diǎn)發(fā)送指令的能力。當(dāng)汽車電子系統(tǒng)中某些CAN節(jié)點(diǎn)的MCU與無(wú)線模塊相結(jié)合的時(shí)候,就可能將整個(gè)電子系統(tǒng)的工作狀態(tài)通過(guò)無(wú)線的方式對(duì)外發(fā)送。外界亦可通過(guò)無(wú)線接口控制該CAN節(jié)點(diǎn),并由該CAN節(jié)點(diǎn)向總線上發(fā)送數(shù)據(jù),繼而干擾總線上各節(jié)點(diǎn)的正常通信,甚至對(duì)其他節(jié)點(diǎn)乃至總控制器進(jìn)行控制。本文設(shè)計(jì)了一套基于Wi-Fi后門控制的CAN總線通信系統(tǒng)模型,用于分析和研究基于CAN總線的系統(tǒng)及相關(guān)的后門控制。在該系統(tǒng)中,上位機(jī)界面控制的“主機(jī)”CAN節(jié)點(diǎn)向CAN總線上發(fā)送指令,“從機(jī)”CAN節(jié)點(diǎn)接收指令后按指令執(zhí)行對(duì)電機(jī)的控制。在此基礎(chǔ)上給從機(jī)添加基于Wi-Fi的無(wú)線收發(fā)模塊,并通過(guò)更改從機(jī)中的固件,使其在執(zhí)行任務(wù)的同時(shí)通過(guò)Wi-Fi向外發(fā)送自身運(yùn)行狀態(tài)、并可接收其他裝置如手機(jī)等通過(guò)Wi-Fi發(fā)來(lái)的特殊指令,從而建立了基于Wi-Fi后門控制的CAN總線通信系統(tǒng)模型。
1相關(guān)知識(shí)與背景
1.1汽車電子系統(tǒng)中的CAN總線通信控制器局域網(wǎng)CAN是由ISO定義的串行通信總線。它最初出現(xiàn)在20世紀(jì)80年代末的汽車工業(yè)里,它的基本設(shè)計(jì)規(guī)范要求有高的位速率、高抗電磁干擾性,而且具有錯(cuò)誤檢測(cè)能力。由于CAN串行通信總線具有這些特性,它很自然地在汽車制造業(yè)以及航空工業(yè)中得到廣泛應(yīng)用。在汽車電子系統(tǒng)中,每個(gè)CAN節(jié)點(diǎn)都有獨(dú)立的CAN控制器,各控制器分布在車身的不同位置。MCU能夠采集傳感器處的數(shù)據(jù),或是向執(zhí)行部件發(fā)送指令。各節(jié)點(diǎn)的信號(hào)都在CAN總線上傳輸,如圖1所示。對(duì)于未做信息安全處理的CAN總線系統(tǒng),任何一個(gè)節(jié)點(diǎn)都能夠接收其他節(jié)點(diǎn)在總線上的信息,同時(shí)也可以向所有節(jié)點(diǎn)廣播幀信號(hào)。這也就意味著針對(duì)通信環(huán)節(jié)的偵聽、干擾以及非法篡改等攻擊具備理論可行性。
1.2基于Wi-Fi的“透?jìng)鳌奔夹g(shù)Wi-Fi作為目前最成熟、最好的無(wú)線網(wǎng)絡(luò)技術(shù),在人們的日常生活中已十分常見。無(wú)線、高速率、方便快捷的特點(diǎn)博得了許多用戶和開發(fā)人員的青睞。隨著家用無(wú)線路由器、車載Wi-Fi、手機(jī)平板電腦上Wi-Fi熱點(diǎn)的普及,帶有Wi-Fi接口的產(chǎn)品、工具有了越來(lái)越多的應(yīng)用場(chǎng)合。隨著集成電路設(shè)計(jì)業(yè)的飛速發(fā)展以及嵌入式技術(shù)的普及,許多新產(chǎn)品將Wi-Fi的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層以及傳輸層的功能集成在一顆芯片中,或?qū)⑵淠K化,令其具備“透?jìng)鳌惫δ?。如圖2所示,用戶只要將待傳輸?shù)臄?shù)據(jù)碼流送入發(fā)送端,便可從接收端直接讀取數(shù)據(jù)。而傳輸過(guò)程中的端口號(hào)配置、尋址、數(shù)據(jù)打包校驗(yàn)、編碼解析等過(guò)程幾乎不需要用戶參與控制。“透?jìng)鳌奔夹g(shù)的應(yīng)用大大簡(jiǎn)化了開發(fā)和調(diào)試過(guò)程,Wi-Fi接口的模塊化使其成為方便實(shí)用的嵌入式工具。
2模型設(shè)計(jì)
2.1系統(tǒng)模型的目標(biāo)需求為了盡可能準(zhǔn)確地反映后門通信系統(tǒng)的特點(diǎn),并且為系統(tǒng)測(cè)試和研究提供完備的軟硬件平臺(tái)環(huán)境,該系統(tǒng)模型需滿足以下特點(diǎn):首先,一套完整的通信系統(tǒng)應(yīng)能夠?qū)崿F(xiàn)信息傳遞,在該模型中上位機(jī)發(fā)出的指令能通過(guò)主控制器傳遞到從控制器中,并對(duì)受控單元部件進(jìn)行控制。其次,后門控制功能在不影響正常通信的前提下,系統(tǒng)能夠向外界發(fā)送自身的運(yùn)行狀態(tài)等相關(guān)信息,并且發(fā)送信息的方式具有一定的隱蔽性。最后,該系統(tǒng)能夠接收外界發(fā)來(lái)的指令,并且使得整個(gè)系統(tǒng)的功能偏離正常功能。基于上述要求,本文從以下幾點(diǎn)出發(fā),設(shè)計(jì)搭建了集CAN總線物理傳輸、數(shù)據(jù)鏈路調(diào)試、控制器固件開發(fā)、上位機(jī)界面設(shè)計(jì)、受控單元運(yùn)行監(jiān)測(cè)、Wi-Fi后門通信為一體的系統(tǒng)模型。第一,該模型具有符合CAN總線通信協(xié)議的物理層硬件,能夠保障CAN總線信號(hào)的正常傳輸;第二,具備CAN節(jié)點(diǎn)模型,即系統(tǒng)中包括可以充當(dāng)主機(jī)節(jié)點(diǎn)、從機(jī)節(jié)點(diǎn)的控制器單元,以便模擬基于CAN總線的系統(tǒng)在收發(fā)數(shù)據(jù)時(shí)的狀態(tài);第三,具備完整的嵌入式固件開發(fā)環(huán)境以及相關(guān)函數(shù)庫(kù),以支持測(cè)試和研究人員編寫調(diào)試測(cè)試用例、開發(fā)基于該平臺(tái)的仿真固件;第四,具備基于PC的上位機(jī)界面及開發(fā)環(huán)境,用以模擬可視化的人機(jī)交互界面;第五,具備硬件受控對(duì)象,能夠真實(shí)反映系統(tǒng)通過(guò)CAN總線的控制效果;第六,具有高普及率的Wi-Fi后門通信接口,方便與平板電腦、手機(jī)建立連接,接受其控制。
2.2系統(tǒng)結(jié)構(gòu)如圖3所示,系統(tǒng)由上位機(jī)、主控制器、從控制器、受控單元、后門接口以及后臺(tái)控制器組成。上位機(jī)可提供人機(jī)交互界面,便于測(cè)試研究人員發(fā)出控制指令;主控制器對(duì)上位機(jī)發(fā)來(lái)的指令進(jìn)行處理后轉(zhuǎn)換成符合CAN總線通信協(xié)議的數(shù)據(jù),又發(fā)送給從控制器;從控制器對(duì)CAN總線上收到的數(shù)據(jù)進(jìn)行解析,按照預(yù)設(shè)的指令集控制受控單元執(zhí)行相應(yīng)的任務(wù),與此同時(shí)將自身運(yùn)行狀態(tài)等信息編碼后發(fā)送給后門接口;后門接口將從控制器發(fā)來(lái)的信息轉(zhuǎn)換為Wi-Fi信號(hào)向外發(fā)送;攻擊測(cè)試人員能夠通過(guò)后臺(tái)控制器接收從控制器發(fā)出的信息,并發(fā)送特殊指令以改變從控制器的工作狀態(tài)。
3硬件電路實(shí)現(xiàn)
3.1主控制器節(jié)點(diǎn)電路主控制器節(jié)點(diǎn)的硬件電路如圖4所示,主要包括8051型MCU、串口轉(zhuǎn)USB芯片、LED七段數(shù)碼管以及CAN總線接口。MCU的UART接口與串口USB芯片PL2303相連,從而使UART信號(hào)轉(zhuǎn)換為USB信號(hào),與上位機(jī)建立通路;MCU的P1.0~P1.3接口與CAN總線接口轉(zhuǎn)換模塊MCP2515相連,通過(guò)由固件控制I/O實(shí)現(xiàn)的四線制SPI接口,在CAN總線上收發(fā)數(shù)據(jù)。P0與P2兩組IO接口分別與七段數(shù)碼管的段選和位選相連,數(shù)碼管用于顯示主控制器收到上位機(jī)發(fā)出的指令號(hào)。MCU片上資源配置:定時(shí)器1用于選擇串口波特率,配置為硬件自動(dòng)加載模式,從而避免了軟件加載帶來(lái)的時(shí)間誤差。串口配置為10位數(shù)碼發(fā)送,包括8位數(shù)據(jù)、1位起始位和1為結(jié)束位;波特率為4800,當(dāng)接收到第9位數(shù)據(jù)時(shí)向SBUF中載入數(shù)據(jù),并產(chǎn)生中斷請(qǐng)求。
3.2從控制器節(jié)點(diǎn)電路從控制器節(jié)點(diǎn)電路如圖5所示,主要包括8051型MCU、CAN總線接口、LED七段數(shù)碼管以及串口-Wi-Fi接口。MCU的P1.0~P1.3接口、P3.3接口與CAN總線接口轉(zhuǎn)換模塊MCP2515相連,通過(guò)由Firmware控制P1.0~P1.3實(shí)現(xiàn)的四線制SPI接口,在CAN總線上收發(fā)數(shù)據(jù),P3.3作為MCP2515收到數(shù)據(jù)后向MCU發(fā)出的外部中斷申請(qǐng)。P1.4~P1.7接口作為步進(jìn)電機(jī)控制接口與受控單元模塊相連。P0與P2兩組IO接口分別與七段數(shù)碼管的段選和位選相連,數(shù)碼管用于顯示當(dāng)前從機(jī)所執(zhí)行的指令號(hào)。MCU的串口與Wi-Fi模塊USR-Wi-Fi-232-D2相連,作為后門接口的通信接口。MCU片上資源配置:定時(shí)器1同樣用于選擇串口波特率。定時(shí)器2配置TH0、TL0協(xié)同作為16位定時(shí)器,用于產(chǎn)生控制步進(jìn)電機(jī)的脈沖間隔。P3.3引入的外部中斷將提醒MCU讀取CAN總線上發(fā)來(lái)的數(shù)據(jù);串口觸發(fā)的中斷將提醒MCU讀取Wi-Fi后門模塊傳來(lái)的數(shù)據(jù);Timer0定時(shí)中斷函數(shù)將改變步進(jìn)電機(jī)的電平控制信號(hào)。
3.3受控單元受控單元硬件電路如圖6所示,主要包括光耦隔離芯片、電機(jī)驅(qū)動(dòng)芯片、續(xù)流二極管保護(hù)電路、42HS4004A4型兩相四線步進(jìn)電機(jī)以及轉(zhuǎn)速傳感器數(shù)顯模塊。從控制器的步進(jìn)電機(jī)控制接口與光耦隔離芯片的輸入端相連,光耦隔離芯片的輸出端與電機(jī)驅(qū)動(dòng)芯片的輸入端相連,電機(jī)驅(qū)動(dòng)芯片的輸出端通過(guò)續(xù)流二極管保護(hù)電路,分別于步進(jìn)電機(jī)的兩相四個(gè)電極相連。數(shù)顯傳感器用于測(cè)量和顯示電機(jī)的轉(zhuǎn)速。
4軟件代碼實(shí)現(xiàn)
本套系統(tǒng)模型中的軟件主要包括運(yùn)行在上位機(jī)界面軟件、運(yùn)行在主控制器和從控制器MCU中的固件(也稱嵌入式軟件),以及運(yùn)行在后臺(tái)控制器上的應(yīng)用軟件。
4.1上位機(jī)軟件上位機(jī)軟件在Delphi環(huán)境下開發(fā),界面上顯示對(duì)電機(jī)基本操作的功能按鈕。通過(guò)調(diào)用后臺(tái)API、控制PC串行端口,通過(guò)USB線向主控制器發(fā)送指令。程序中所調(diào)用的資源層次如圖7所示。如圖8所示,上位機(jī)界面主要實(shí)現(xiàn)兩類功能:上位機(jī)通過(guò)串行總線接口與主控制器建立連接、上位機(jī)向主控制器發(fā)送控制電機(jī)的指令。其中上位機(jī)與主控制器建立連接的過(guò)程包括打開端口、配置端口、關(guān)閉端口等操作;對(duì)電機(jī)的控制指令則包括啟動(dòng)/停止、加減速、復(fù)位等;與此同時(shí),上位機(jī)界面上也將顯示端口連接狀態(tài)、電機(jī)轉(zhuǎn)速檔位等信息。上位機(jī)界面中“連接”按鍵所觸發(fā)的軟件流程如圖9所示,包括確立端口號(hào)(返回端口指針)、打開對(duì)應(yīng)端口、對(duì)端口進(jìn)行配置(配置項(xiàng)包括波特率、傳輸數(shù)據(jù)長(zhǎng)度、奇偶校驗(yàn)、停止位等)以及函數(shù)執(zhí)行完畢后返回結(jié)果??刂浦噶钏|發(fā)的事件函數(shù)中需要的參數(shù)有端口指針、數(shù)據(jù)地址指針、待發(fā)送數(shù)據(jù)字節(jié)數(shù)等。
4.2主控制器固件主控制器完成的主要任務(wù)包括從上位機(jī)的串行數(shù)據(jù)接口中接收數(shù)據(jù),并將數(shù)據(jù)解析、編碼后發(fā)送到CAN總線上。上位機(jī)和主控制器的信息交互指令編碼如表1所示。主控制器的固件運(yùn)行流程如圖10所示,其中“各模塊初始化”包括CAN模塊配置、串口初始化配置、定時(shí)器初始化配置。完成配置后進(jìn)入主循環(huán),主循環(huán)輪詢sRxflag標(biāo)志位,當(dāng)sRxflag為1時(shí)說(shuō)明串口收到來(lái)自上位機(jī)發(fā)來(lái)的指令。在解析數(shù)據(jù)生成指令碼的過(guò)程中,按ASCII碼解析并為每條指令分配號(hào)。接下來(lái)將對(duì)應(yīng)的指令號(hào)發(fā)送到CAN總線上,同時(shí)將發(fā)出的指令編號(hào)顯示在LED七段數(shù)碼管上。最后將sRxflag清零,再次進(jìn)入輪詢。sRxflag的置位是在串口引起的中斷函數(shù)中進(jìn)行的,并從Buffer中讀取數(shù)據(jù)。
4.3從控制器固件從控制器完成的主要任務(wù)有:從CAN總線上讀取主控制器發(fā)來(lái)的指令、將接收到的指令發(fā)送給后門接口、按照指令控制電機(jī)運(yùn)行,以及接收后臺(tái)控制器發(fā)來(lái)的特殊指令并切換到特定的狀態(tài)。從控制器的固件運(yùn)行流程如圖11所示,其中各模塊初始化包括CAN模塊配置、串口初始化配置、電機(jī)及定時(shí)器初始化配置。進(jìn)入主循環(huán)后首先判別gRxflag標(biāo)志位,當(dāng)其為1時(shí)表明從控制器收到CAN總線上發(fā)來(lái)的數(shù)據(jù),MCU讀取主控制器發(fā)來(lái)的數(shù)據(jù)后直接轉(zhuǎn)發(fā)至串口。MCU對(duì)指令做解析之后判斷后門是否處于開啟狀態(tài),若后門處于開啟狀態(tài),則從控制器LED數(shù)碼管中顯示異常的指令碼,若后門處于正常狀態(tài),從控制器LED顯示正常的指令碼,對(duì)電機(jī)執(zhí)行正常操作,然后將執(zhí)行結(jié)果發(fā)送給后門接口。接下來(lái)將gRxflag清零。判斷sRxflag標(biāo)志位,若其為1,則說(shuō)明收到了后臺(tái)控制器發(fā)來(lái)的指令,對(duì)指令解析后,判斷是否要執(zhí)行后門開啟操作,若需要開啟,則修改后門狀態(tài)標(biāo)志位,否則執(zhí)行其他操作。最后向串口發(fā)送執(zhí)行結(jié)果,清除sRxflag,進(jìn)入下一輪循環(huán)中。
4.4后臺(tái)控制器界面后臺(tái)控制器界面是運(yùn)行在基于Android系統(tǒng)的手機(jī)、平板電腦或其他移動(dòng)終端上的APP軟件。第一,以可視化界面的形式向用戶展示后臺(tái)控制器從Wi-Fi接口收到的信息;第二,能夠給用戶提供輸入待發(fā)送數(shù)據(jù)的窗口,用以向從控制器發(fā)送相關(guān)指令;第三,能夠?yàn)橛脩籼峁┡渲霉ぷ髂J健P地址、端口號(hào)的機(jī)制。網(wǎng)絡(luò)中有許多開放的調(diào)試工具和資源可供選擇使用,本套系統(tǒng)模型中采用Android手機(jī)作為后臺(tái)控制器,網(wǎng)絡(luò)調(diào)試助手作為后臺(tái)控制器界面,實(shí)現(xiàn)對(duì)從控制器的監(jiān)控。圖12中展示了本套模型中運(yùn)行于Android手機(jī)上的網(wǎng)絡(luò)調(diào)試助手界面。
5系統(tǒng)模型運(yùn)行效果
正??刂七\(yùn)行狀態(tài)下,操作人員通過(guò)上位機(jī)界面向系統(tǒng)發(fā)出開啟、加速、減速、復(fù)位、停止等指令,電機(jī)按照上述指令運(yùn)行;轉(zhuǎn)速傳感器上顯示當(dāng)前電機(jī)的轉(zhuǎn)速;主控制器、從控制器的LED七段數(shù)碼管上分別顯示主控制器收到的指令號(hào)以及從控制器正在執(zhí)行的指令號(hào)。后門控制異常狀態(tài)下,后門Wi-Fi接口模塊上電,后臺(tái)控制器與Wi-Fi接口建立連接;運(yùn)行后臺(tái)控制器上的APP軟件(網(wǎng)絡(luò)調(diào)試助手),可在上位機(jī)發(fā)送指令時(shí)對(duì)系統(tǒng)進(jìn)行監(jiān)控;通過(guò)后臺(tái)控制器對(duì)從控制器發(fā)送特殊指令,使系統(tǒng)進(jìn)入異常狀態(tài),此時(shí)從控制器雖能接收到主控制器發(fā)送的指令,但無(wú)法控制電機(jī)運(yùn)轉(zhuǎn),LED七段數(shù)碼管上顯示的指令號(hào)也與主機(jī)所發(fā)送的指令不符;當(dāng)通過(guò)后臺(tái)控制器對(duì)從控制器發(fā)送解鎖指令,系統(tǒng)恢復(fù)正常運(yùn)行狀態(tài)。運(yùn)行在異常狀態(tài)下的模型如圖14所示。
6結(jié)束語(yǔ)
本套系統(tǒng)模型完整、真實(shí)地展示了CAN總線通信、控制系統(tǒng)工作時(shí)的狀態(tài),并且成功實(shí)現(xiàn)了后臺(tái)控制器通過(guò)Wi-Fi無(wú)線通信接口對(duì)系統(tǒng)中CAN節(jié)點(diǎn)的監(jiān)控,揭示出了基于Wi-Fi后門的CAN總線通信系統(tǒng)中可能存在的問(wèn)題與信息安全隱患。與此同時(shí),該系統(tǒng)模型中所采用的技術(shù)、開發(fā)環(huán)境、測(cè)試設(shè)備、受控對(duì)象等都可為與后門相關(guān)的信息安全課題提供相關(guān)的實(shí)驗(yàn)對(duì)象、研究工具以及測(cè)試平臺(tái)。
作者:張永華 高宏玲 楊玚 尹文婷 單位:工業(yè)和信息化部計(jì)算機(jī)與微電子發(fā)展研究中心