文章目錄
- 前言
- 請描述 CAN 幀的基本結構(包括標識符、數據字段、CRC 等)
- 描述 WebSocket 協議的基本工作流程(包括握手、數據幀結構)
- 請說明如何實現 WebSocket 連接的心跳機制以檢測連接狀態,并描述在斷開后如何通過重連策略恢復通信。
- 假設您正在開發一個嵌入式系統,需確保關鍵傳感器數據的優先級高于其他數據。請說明 CAN 協議的仲裁機制是如何工作的,以及您如何通過設置 CAN 幀的標識符(ID)來實現優先級控制。同時,討論在嵌入式環境中如何通過中斷處理接收到的 CAN 數據以保證實時性。
- 請描述您如何設計一個嵌入式系統的在線仿真和脫機燒錄框架,包括如何通過 SPI 或 I2C 主從控制器與多個設備通信,以及如何確保燒錄過程的可靠性和效率。同時,說明在實現過程中如何利用 CMSIS-SVD 解析來簡化寄存器配置和調試。
- 請描述您如何設計 CGI 服務器與單片機之間的通信機制,包括如何通過 CGI 接口接收傳感器數據(如溫度、濕度等環境信息)并傳輸到上層系統。同時,說明在資源受限的單片機環境中如何優化 CGI 請求處理以確保實時性和低內存占用。
- 請說明您如何設計嵌入式軟件與中控屏幕的交互邏輯,包括如何實現信號到用戶界面的轉換、支持動態界面切換,以及如何通過中斷或事件驅動機制實現實時警告的顯示。同時,討論在資源受限的嵌入式環境中如何優化屏幕刷新和數據更新的性能。
- 請說明您如何在嵌入式設備上實現 WebSocket 通信,包括如何處理連接斷開和重連、數據序列化格式的選擇(如 JSON 或二進制),以及如何確保數據傳輸的實時性和可靠性。同時,討論在資源受限的嵌入式設備上如何減少 WebSocket 的資源開銷。
- 請設計一個基于 WebSocket 的通信方案,說明如何在嵌入式設備上實現 WebSocket 客戶端,包括連接管理、數據序列化和錯誤重試機制。同時,討論在嵌入式系統中如何優化 WebSocket 數據傳輸以降低帶寬和內存占用。
- 假設無人駕駛項目要求某些組件(如緊急剎車邏輯)必須在特定節點上以高優先級執行,而其他組件(如日志記錄)可以在低優先級節點上運行。請描述您如何設計一個動態調度機制來管理不同節點上的組件執行,包括如何通過規則或配置文件指定組件的執行方式,以及在嵌入式環境中如何優化資源分配(如 CPU 和內存)以滿足項目需求。
- 在無人駕駛系統中,嵌入式設備可能需要通過 UDP 協議與遠程服務器實時傳輸傳感器數據(如 GPS 或攝像頭數據)。請設計一個基于 UDP 的通信方案,說明如何實現數據包的發送與接收、如何處理數據包丟失或亂序問題,以及在嵌入式環境中如何優化 UDP 通信的性能和可靠性。
- 假設您需要設計一個多線程程序來并行處理來自多個傳感器(如 LiDAR 和攝像頭)的數據,請描述您的線程模型設計,包括線程劃分、同步機制(如互斥鎖或條件變量)以及如何確保低延遲和高吞吐量。同時,說明在嵌入式系統中如何避免線程優先級反轉的問題。
- 進程間通信的方案來避免數據競爭和確保日志寫入的順序性,具體說明您會如何使用信號量或互斥鎖,并討論在嵌入式系統中的性能影響和潛在優化方法。
- git提交代碼的流程和命令
- 在無人駕駛系統的嵌入式軟件開發中,UML 類圖常用于設計模塊化組件。請描述您如何使用 UML 類圖來建模一個自動駕駛感知模塊(例如,融合傳感器數據的模塊),并說明類圖中會包含哪些關鍵類、關系和屬性?
- 結構體和聯合體區別
- 進程和線程區別
- 在嵌入式系統中,左移和右移運算常用于硬件寄存器的配置。假設您需要為一個單片機的 16 位控制寄存器配置通信協議參數,其中第 8-11 位表示數據速率(4 位值,范圍 0-15)。請編寫一段 C 代碼,使用左移運算將用戶輸入的速率值(例如 5)設置到寄存器的正確位,同時確保不影響其他位。并解釋在嵌入式環境中如何避免左移操作導致的溢出問題。
- linux系統中查看進行的指令
- c語言中鎖的使用
- ros中run和launch的區別
- 在實現 Modbus RTU 協議的 native 接口時,你如何處理串口通信中的幀同步和錯誤檢測?請分享一個具體案例,說明你是如何通過 CRC 校驗或超時機制解決數據幀損壞或丟失問題的。
- 在 CAN 協議的開發中,你如何處理總線沖突和優先級管理?請舉例說明你在調試 CAN 通信時,如何通過分析 CAN 幀(如使用 CAN 分析儀)解決錯誤幀或節點丟失的問題。
- 在實現 CANOPEN 協議的 native 接口時,你是如何管理對象字典(Object Dictionary)和 PDO/SDO 通信的?請分享一個具體案例,說明你是如何通過配置 PDO 映射優化實時數據傳輸的。
- 在從 PLC 或其他設備采集數據時,你如何確保數據的準確性和實時性?請分享一個具體案例,說明你是如何處理采集過程中出現的噪聲或數據丟失問題的。
- 在通過本地 TCP 協議發送設備數據時,你如何設計和實現可靠的通信機制?請分享一個案例,說明你是如何處理 TCP 連接中斷或數據包丟失的情況的。
- 在實現網關設備對多種協議(如 Modbus RTU、Modbus TCP、CAN、CANOPEN、OPCUA)數據讀取和整理時,你是如何優化數據處理效率和確保協議兼容性的?請分享一個具體的技術方案或遇到的挑戰。
- 在實現網關設備通過本地 TCP 將 PLC 數據推送到主設備的過程中,你是如何確保數據傳輸的低延遲和高可靠性的?特別是在無人駕駛場景中,PLC 狀態變化頻繁時,你采取了哪些優化措施?
- 在通過 PAD 或網頁實現 PLC 狀態的實時監測和遠程管理時,你如何處理數據同步和界面更新的實時性問題?請分享一個具體的實現案例或遇到的技術難點。
- 在實現 TBOX 的短信刪除和飛行模式功能時,你如何處理與上層應用或網絡協議的交互,確保功能切換的穩定性和安全性?請描述一個相關案例或遇到的技術挑戰。
- 在開發與擋位或電磁閥相關的狀態機時,你如何處理故障狀態的檢測與恢復邏輯,特別是在無人駕駛場景中需要保證系統安全的情況下?請描述一個相關的技術挑戰及你的解決方案。
- 在為無人駕駛車輛添加故障診斷功能時,你是如何設計和實現診斷邏輯以確保快速準確地識別故障的?請分享一個具體案例,說明你如何更新 DBC 文件并驗證報文收發的正確性。
- 在無人駕駛系統中實現 LIN 通訊的接收與發送時,你是如何確保數據傳輸的可靠性和實時性的?請分享一個具體案例,說明你如何處理 LIN 通訊中的錯誤檢測或信號干擾問題。
- 在實現 CAN 信號發送并與通訊矩陣對接時,你是如何確保信號的優先級分配和數據一致性的,特別是在無人駕駛系統中需要高實時性場景下?請分享一個具體案例或優化措施。
- 在實現 PWM 死區時,你是否遇到過與硬件特性或控制算法相關的挑戰,例如信號延遲或抖動?請描述一個具體問題及你采取的解決方法。
- 在無人駕駛系統中,你使用 MATLAB Simulink 進行仿真時,如何構建和驗證控制算法模型(如熱管理或車輛動力控制)以確保其與實際嵌入式系統的匹配?請分享一個具體案例,說明你的建模流程和優化方法。
- 在實現網關設備通過 MQTT 和 NB-IoT 與云端交互時,你是如何設計 FreeRTOS 多任務調度以平衡本地設備控制(如 Modbus/Lora/CAN)和云端數據上傳的優先級?請描述一個相關的技術挑戰(如任務沖突或資源競爭)及你的解決方案。
- 在遙控端通過 2.4G 無線通信(如 SI24R1)發送控制數據時,你如何確保數據傳輸的低延遲和高可靠性,特別是在可能存在干擾的兒童玩具使用場景中?請描述一個相關的技術挑戰(如數據丟包或延遲)及你的解決方案。
- 在實現 OTA 升級功能時,你是如何確保升級過程的安全性和可靠性,特別是在可能出現網絡中斷或電源故障的情況下?請描述一個相關的技術挑戰(如固件驗證或回滾機制)及你的解決方案。
- 說幾種linux常用的指令
- 在藍牙連接的開發或調試過程中,你遇到過哪些問題? 比如連接斷開或數據包丟失,能否描述你是如何通過代碼或硬件調試解決這些問題的?
- 在嵌入式開發中,你如何確保 SPI 或 I2C 通信的穩定性和可靠性? 請分享一個你處理通信協議相關問題(如時序錯誤或數據丟失)的具體案例。
- 請描述 ROS2 節點和話題的基本概念,并說明如何在嵌入式設備上初始化一個 ROS2 發布者節點,包括設置 QoS(服務質量)參數以滿足實時性要求。同時,討論在資源受限的嵌入式環境中如何優化 ROS2 節點的內存使用。
- 說明如何通過 ROS2 的回調機制處理實時指令,并討論在嵌入式環境中如何避免回調處理中的延遲問題。
前言
最近面了一些嵌入式的,整理一下面試題。
面試會根據簡歷中提到的內容進行面試,但是像can等基礎的通訊協議,簡歷里面有沒有寫都會問,是必要掌握的技能。
之后如果還會面一些嵌入式的話再繼續更新