終端--通信和傳輸協議


核心概念

工作模式  傳輸時序

硬件

感知芯片-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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM