核心概念
工作模式 傳輸時序
硬件
感知芯片-Perception chip SoC稱為系統級芯片,也有稱片上系統System-on-a-Chip
微控制單元(Microcontroller Unit;MCU)
ECU(Electronic Control Unit)電子控制單元
線控: 線控- drive-by-wire
線控執行主要包括線控制動、轉向和油門
ECU(電控單元)
硬件連接關系
硬件設計方案
SPI(Serial Peripheral Interface,串行外設接口)是一種高速、全雙工、同步通信總線,
允許嵌入式處理器與各種外圍設備以串行方式進行通信、數據交換
連接方案
只有一個maser、一個slave時,將master與slave上名字相同的4對接口兩兩互聯,即可完成了接口的互聯
引腳
通信使用3根線完成:(1)地線,(2)發送數據線,(3)接收數據線。
RS-232通信方式允許簡單連接三線:Tx、Rx和地線
串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗
SPI它只需4條線:
-SCLK (Serial Clock,也叫SCK、CLK) 接口時鍾,master輸出至slave的通訊時鍾。
串行時鍾線
- MOSI(Master Output Slave Input,也叫SIMO、MTSR、DI、DIN、SI)自master輸出至slave的數據線。
主機輸入/從機輸出數據線(MISO)
- MISO(Master Input Slave Output,也叫SOMI、MRST、DO、DOUT、SO)自slave輸出至master的數據線。
主機輸出/從機輸人數據線(MOSI)
- SS (Slave select,也叫 NSS、CS、CSB、CSN、EN、STE、SYNC)master對slave的片選信號,自master輸出至slave,低有效
低電平有效的從機選擇線(NSS)
傳輸協議
SPI 是串行外設接口(Serial Peripheral Interface)
(RS-232、RS-422與RS-485的標准與應用)
(RS-232、RS-422與RS-485的標准與應用)
USB(Universal Serial Bus)
COM接口就是遵循RS232標准的物理口。
COM口指串口的物理實現,而RS232是一種串口接口標准
GPIO G英文全稱為 General-Purpose IO ports,也就是通用IO口
串口按位(bit)發送和接收字節。盡管比特字節(byte)的串行通信慢,
但是串口可以在使用一根線發送數據的同時用另一根線接收數據
基本過程
通信由主設備發起,主設備通過 CS 選擇要通信的從設備,
然后通過 SCLK 給從設備提供時鍾信號,
主設備的數據通過 MOSI 輸出給從設備,
同時主設備通過MISO 接收從設備發送的數據
優缺點
SPI的缺點:沒有指定的流控制,沒有應答機制確認是否接收到數據
SPI 的優點:可以同時發出和接收串行數據;
SPI控制器的結構
主要波特率發生器、主控邏輯、收發緩沖、控制部分等幾大部分組成
SPI調試
SPI 通信的調試有多種方法,可以通過邏輯分析儀、示波器和變量觀察法
分層
SPI 物理層-硬件實現
SPI 驅動層-通信協議層
SPI 鏈路傳輸層--通信協議管理,應用數據分片等
SPI 應用層
周期性報文--結構化輸出輸出
數據格式-- Header+ content
Header
MessageID MeasageName MessageDirection MessageDescription
開發代碼集成
操作系統調用
驅動
CAN信號的數據形式
汽車電子范疇常用到的兩種數據庫:dbc,CDD(還有一種用於標定的數據庫A2L)。
DBC解析屬於收發報文之后的事情
dbc;
dbc(data base CAN)文件描述單一CAN網絡中各邏輯節點信息,
依據該文件可以用來監視何分析CAN網絡中所有邏輯節點的運行狀態信息。習慣叫它通信數據庫
比如現在以車載娛樂系統為例,作為與車載其他節點數據交互頻繁的節點,
車載娛樂系統需要實時反饋其他節點狀態。最典型的莫過於與倒車雷達和車身空調控制器的交互。
OEM在研發款新車時,會先確定整車網絡拓撲(誰是網管,誰是其中網絡節點)。
對於CAN網絡,會定義網絡通信內容。確定網絡中有那些節點(Nodes)、用到那些CAN通信報文(Messages)、報文中包含那些信號(Signals)。
這些內容一般存在方式是Excel或者PDF文件。這時將其內容編輯成數據庫形式:
1、 數據庫為dbc;
2、 編輯工具為CANdb++ Editor
二
CDD是業界常用的診斷數據庫,通過CANdelaStudio工具編輯生成
Vector軟件 CANdb++
Vector品牌下的CANdb++軟件產品編輯器提供了可視化的選項中包含的數據容易DBC數據庫和修改數據。
為此它包含專業、面向應用的數據視圖
DBC數據庫中描述的屬性可以網絡,ecu連接到總線,消息和信號。
CANdb + +編輯器提供了可視化的選項中包含的數據容易DBC數據庫和修改數據。 為此它包含專業、面向應用的數據視圖。
CANdb + +編輯器支持開發人員在開發過程的不同階段:
DBC文件的創建
向現有DBC添加消息和信號數據庫
發射和接受關系的定義
仿真的定義環境變量
添加特殊消息用於測試目的
添加消息校准ecu
初始化階段
demo車,通常軟件模塊使用ROS作為middleware進行開發,
在ROS系統上運行 peception model, localization model, path planning model 等,
control model的ROS節點發出制動油門轉向信號,通過CAN網絡控制車輛的加減速和轉向
CAN硬件連接:
01.計算機通過Kvaser Leaf hardware硬件連接CAN上某一節點,
使用kvaser canking發送模擬CAN信號--CAN總線分析儀- Kvaser 模擬CAN節點
02.啟動另外一台計算機,在ubuntu系統下導入socket_can模塊
啟動ROS程序,初始化ROS package:'socket_can',編譯‘listener.cpp’,'talker.cpp'和‘socket_can.cpp’代碼,
代碼使用socket_can包實現ROS和CAN通信功能
啟動 talker和listener兩個nodes,觀察CAN與ROS通信結果
感知硬件連接:
Camera: camera --視頻采集卡(Video Capture card) 將視頻信號采集到電腦中,以數據文件的形式保存在硬盤上
lidar
Radar
涉及
ROS, socket-can, CAN卡的驅動
說明
Socket CAN涉及到CAN總線協議、套接字、Linux網絡設備驅動等。
(1)CAN總線協議;
(2)Socket原理;
(3)Linux網絡設備驅動
CAN是ControllerArea Network(控制器局域網)
CAN被細分為三個層次:
(1)CAN對象層(the object layer);
(2)CAN傳輸層(the transfer layer);
(3)CAN物理層(the phyical layer)
Socket采用C/S模型進行設計的,即Client/Server,面向客戶端—服務器模型
數據報套接字(SOCK_DGRAM)
字節流套接字(SOCK_STREAM)
原始套接字(SOCK_ROW)
芯片-嵌入式開發
###固件
固件其實就是放在存儲介質上的數據,當嵌入式板子啟動時,
能夠從特定的位置找到這些文件,使得板子能夠跑起來,這些文件就是固件
嵌入式板子上電后,會去特定的位置尋找uboot,uboot初始化內存,初始化串口,設置linux啟動參數以后,
會將內核從flash中加載到內存。然后內核會去掛載根文件系統並啟動init
固件是指設備內部保存的設備“驅動程序”,通過固件,
操作系統才能按照標准的設備驅動實現特定機器的運行動作,比如光驅、刻錄機等都有內部固件
###上位機
通訊
芯片--芯片與芯片之間數據交互通信,芯片與上位機數據交互通信
通信協議:
各通信層
各通信層的數據格式-Message Formats
芯片的硬件
芯片的連接方式--硬件的連接關系
SPI總線
通信層--物理層 驅動層 數據鏈路層 傳輸層 應用層
開發上位機軟件 和使用上位機軟件
開發平台:Qt 使用C++
WinForm 使用C#
通信鏈路: 網線和串行線
基本操作: 讀和寫
讀: 讀取網口給的數據,讀取結果
寫: 啟動儀器,修改儀器參數
###下位機--設備
名稱- 傳輸方式-通信協議-數據
###目標處理器
目標處理器或者 仿真器(emulator)和模擬器(simulator)
仿真器(emulator)的目的是作為目標系統的替代品,可以完全替代目標系統,完成其對外的功能,
即仿真器系統只需要保證呈現給外部的行為跟目標系統一致
-- linux下面的開發大多是使用通用的網絡協議
###燒錄:
####開發階段:
預留下載接口進行固件下載,
芯片燒錄系統
####流片階段
在電子設備smt焊接之前通過芯片適配座和特定的燒錄器對mcu進行燒錄和初始化變量
參考
SPI接口掃盲 SPI定義/SPI時序(CPHA CPOL) https://blog.csdn.net/douqingl/article/details/50452355
Linux下若沒有SPI控制器,GPIO火速來救主!https://my.oschina.net/u/4280959/blog/4776730
SPI通信協議介紹及調試方法
CAN報文DBC解析的編程方法說明 https://www.vecll.com/news/10.html
自動駕駛系統:CAN與ROS通信 https://zhuanlan.zhihu.com/p/48632100