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