【 ATU NXP-MPC系列 】MPC5777C_CAN BUS 車用通訊

 1.    概述

1.1 功能描述

      在 MPC5777C  EVB 板子上面實現 CAN 通訊的發送與接收功能,通過 CAN 的 CONVERTER 連接電腦端與 MPC5777C 板子通訊。

1.2 硬體開發工具

       MPC5777C  EVB 板

      CAN to USB converter ( i-7565-H2 )

      PEmicro 燒錄器

1.3 軟體開發工具

       S32 Design Studio IDE for Power Architecture , 版本 2017.R1 , Build id: 171018

      S32 SDK PA , BETA 2.9.0

 

       I-7565-H1H2_Utility_v1.17

1.4 參考相關程式

       Example codes / MPC5777C_CAN

欲了解更多資料請聯絡世平集團 Kevin ( Kevin.Hong@wpi-group.com )

                                                    Michael ( Michael.Gao@wpi-group.com )

 

2.    SDK 的說明與使用

2.1 概述

S32 SDK PA 可以在 S32 Design Studio IDE 開發環境中使用 Processor Expert 工具配置使用者需要的設置,並自動生成設置檔案,提供快速便捷的 Device 與 IP 設置方式。

2.1.1 SDK 版本說明

SDK 的版本分為以下三種:

EAR : Early Assess Release,早期評估版,是 SDK 最先發布的版本,提供基本的SDK 功能,可以做為早期軟體評估使用。

BETA : Beta 版是修復 EAR 版若干 Bug 後發布的 SDK 版本,相較於 EAR 版本,功能更加完善。

RTM : Ready To Manufacture,最終量產版本,提供最完善的 API 接口及外設 IP 配置選項,修復

2.1.2 S32 Design Studio IDE 的使用方式

關於 S32 Design Studio 的使用方式,請參考文件 “ S32 Design Studio 使用教學 ”。

2.1.3 SDK 的取得與安裝方式

關於 SDK 的取得與安裝方式,請參考文件 “MPC57xxx IDE & Tools 下載與安裝教學 ”。

2.1.4 安裝後 SDK 相關檔案

S32 SDK 預設安裝路徑在 S32 Design Studio IDE 資料夾下,可以同時存在不同的版本。安裝後路徑如下:

C:\NXP\S32DS_Power_v2017.R1\S32DS

選取本範例使用的 BETA 2.9.0 版本進入後,可以找到 SDK 的使用文件

Release Note :
C : \NXP\S32DS_Power_v2017.R1\S32_SDK_S32PA_BETA_2.9.0\

S32_SDK_for_Power_Architecture_BETA_2_9_0_Release_Notes

網頁版的 User Manual :
..\S32_SDK_S32PA_BETA_2.9.0\doc\Start_here.html

PDF 版的 User Manual :
..\S32_SDK_S32PA_BETA_2.9.0\doc\S32SDK_MPC5777C_UserManual.pdf

2.2 啟用 Processor Expert 介面檢視

預設的工作站可能沒有開起 Processor Expert 介面。

要開啟介面,請在工作列中選擇 Processor Expert -> Show View

2.3 Component Library 頁面

上圖為 Component Library 頁面,內容如下 :

Alphabetical : 依字母序排列的 SDK 元件列表

Categories : 依分類顯示的 SDK 元件列表

Processor : 當前專案可使用的處理器配置列表

2.4 Components 頁面

上圖為 Components 頁面,包含了目前已加入專案的設置與 SDK 元件。其中 :

右上角的 Reload Project 按鈕可以將儲存的設置重新載入 Processor Expert

右上角的 Generate Processor Expert Code 按鈕可以將當前的 SDK 設置輸出至 Project 中

 元件或設置圖示,左下角處的綠色 “v”代表當前使用中的元件或配置。

 元件或設置圖示,左下角處的黑色 “x”代表當前該元件或設置不被使用。

 元件或設置圖示,左上角處的紅色 “x”代表目前的配置內容有錯誤需要修正。

  • 元件或設置圖是左方的箭頭,單擊可以展開該元件一般使用的 API 選單。
    滑鼠停留可以看到 API 所需的輸入參數
  • 此處顯示的 API可以直接以滑鼠拖曳到程式當中,不須使用者定義的參數會自動填入,需使用者定義的參數會留白。

2.5 Component Inspector 頁面

Component Inspector 頁面顯示的是目前在 Components 頁面中選取的項目設置,內容會隨選取的項目不同而切換。上方圖例中,選擇的是命名為 clockMan1 的 Clock_Manager 元件。

  • Properties 分頁顯示的是 SDK Component 的設置介面
  • Methods 頁面顯示的是該元件一般狀況下使用的 API 列表

3.    原理

3.1 Can-bus車載網路系統架構

依功能傳送速率需求來區分為高中低速的匯流排(如圖一)

(圖一)

 

 

3.2 Can bus匯流排設計(抗干擾)

Can bus匯流排由CAN_L,CAN_H所實現,當兩條訊號電位差小的時候為1,電位差大的時候為0 ,如圖二所示(高速 Can 訊號)、圖三所示

(低速 Can 訊號)

匯流排兩條線路受到干擾相同,利用電位差輸入可以大幅減少雜訊干擾影響

(圖二)

 

 

(圖三)

 

 

3.3 Can bus 資料通訊格式

            Can bus 資料通訊格式如下列所示

SOF

ID

RTR

IDE

Ro/FDF

DLC

Data

CRC

ACK

EOF

1bit

11bit

1bit

1bit

1bit

4bit

0~64bit

16bit

1bit

7bit

 

SOF欄位

SOF 輸出 1bit dominant(0),用來同步,代表 CAN frame 開始

 

 ID 欄位

           表示每個 ECU (節點)優先權, ID值越小代表優先權越高( 11bit )

 RTR 欄位

            RTR 欄位資料通訊框架時為 ( 0 ) ;遠端資料框架時為 ( 1 )( 1bit )

 IDE 欄位

IDE 欄位標準格式為 ( 0 ) ;延伸格式為( 1 )( 1bit )

 R0 欄位

r0 欄位為預留位通常為 ( 0 ),但是( 1 )同樣可以接受( 1bit )

 DLC 欄位

設定資料長度的程式碼欄位( 4bit )(註 : 資料長度 range 為 0~8byte )

 Data 欄位

            傳輸資料欄位( 0~64bit ),長度資料由 DLC 指定(0~8byte)

 CRC 欄位

            Cyclic redundancy check 用來檢測或校驗資料傳輸可能出現的錯誤

          原始資料=  Q 資料*  K資料 -  R資料

          所以如果原始資料+ R資料能被K資料整除代表資料正確。

          最後輸入 CRC Delimiter ( 1 )

ACK欄位:

           ACK 欄位分為 SKOT與 Delimiter

         ACK SLOT欄位 : 發送器傳送端送出 1bit 的( 1 )訊號,接收器送出 1bit

         的 ( 0 )訊號告知傳送端

         ACK Delimiter : 欄位為 1bit 的( 1 )

EOF欄位:

           結束位輸出 7bit 的( 1 ),代表 CAN 資料傳輸結束

Can bus 填塞規則

       傳輸器會在連續 5 個相同的 bit 資料時會填塞一個相反的 bit ,接收時接收

      器會去除填塞的資料( 例如 : 想要傳輸 111111資料時,傳輸器會傳

      輸1111101 ),反之如果接收到連續6個以上相同訊號代表資料傳輸錯誤。

Can bus 錯誤處理

錯誤狀態

  1. 主動錯誤狀態

             節點處於正常狀態時,發生 bus error,產生 6 bits 的 error flag ( 0 )

            ,其餘節點也會產生 error flag 延遲0~6 bits,再產生8 bits error

            Delimiter 與 3 bits interframe,資料重傳。

  1. 被動錯誤狀態

            可接收資料但接收時不能傳送錯誤通知,發生 bus error,產生 6 bits

            的error flag ( 0 ),其餘節點也會產生 error flag 延遲0~6 bits,再產

            生8 bits error Delimiter 與 3 bits interframe,資料重傳。

  1. 匯流排關閉狀態

當發送錯誤計數器超過255的上限時,匯流排狀態會關閉 ( 1 ),並向 CAN 控制器請求reset 產生錯誤中斷。

錯誤種類

  1. 位元填塞錯誤( bit-stuffing error )

如果在 SOF 與 CRC 之間有連續 6 個相同訊號( 0 )或( 1 ),產生填塞錯誤,在下一個位元,送出 error frame。

  1. 位元錯誤( bit error )

           匯流排傳送( 0 )但偵測到( 1 );或傳送( 1 )但偵測到( 0 ),在下一個位元,

送出 error frame。

  1. CRC 錯誤( CRC error )

當節點接收到 CRC 的資料後,計算是否資料錯誤,如果偵測到 CRC

錯誤,在 ACK 之後,送出 error frame。

  1. 確認ACK 錯誤( ACK error )

傳送端至少偵測到一個節點在 ACK Slot 送出 1bit 的( 0 ),代表正確

接收,否則在 ACK delimiter 之後送出 error frame。

  1. 格式錯誤( form error )

           CRC delimiter( 1 bit ) 、ACK Delimiter( 1 bit )、EOF( 7 bits )應該都是

           ( 1 ),如果不是,在下一個位元,送出 error frame。

 

3.4 ISO 實體層介紹

高速 ( High-Speed ) CAN  ( 高速匯流排 )

高速 CAN 可稱為 CAN C 或 ISO 11989-2,匯流排 2 端皆接有120Ω 電阻,最高可進行 1M bit/s 的通訊傳輸率。

  


低速/容錯 ( Low-Speed/Fault-Tolerant ) CAN ( 中速匯流排 )

            低速/容錯 CAN 可稱為CAN B 或 ISO 11898-3,最高

      可高達 125 K bit/s 的通訊傳輸率。

 

單線式 ( Single-Wire ) CAN  ( 低速匯流排 )

單線式可稱為 CAN A 或 SAE-J2411,通訊速率最高可達 33.3 K bit/s

 

3.5 CAN-FD 與CAN 功能比較

 CAN-FD 優點

  1. 擁有較高的位速率,延遲時間較短
  2. 可傳輸更高的數據量
  3. 使用更高性能的CRC算法,降低未檢測到錯誤的機率

 CAN_FD 資料通訊格式

SOF

ID

RRS

IDE

FDF

res

BRS

ESI

DLC

Data

CRC

ACK

EOF

1

bit

11

bit

1

bit

1

bit

1

bit

1

bit

1

bit

1

bit

4

bit

0~64

byte

21

bit

1

bit

7

bit

           下圖為 CAN-BUS 資料通訊格式

SOF

ID

RTR

IDE

Ro/FDF

DLC

Data

CRC

ACK

EOF

1bit

11bit

1bit

1bit

1bit

4bit

0~64bit

16bit

1bit

7bit

 

其中RRS 為遠程請求替換位、 CAN-Bus 中 Ro (保留位) 更改為 FDF (靈活數據格式位) 和res (保留位)、BRS (位速率轉換)可開啟較高位速率,直到 CRC 結束、ESI

(錯誤狀態指示器) 當存在重要通訊問題,訊號為( 0 )根據汽車製造商需求制訂。

 

4.    程式碼功能描述

4.1 功能概述

  1. 發送程序 : 使用CAN_3 通道實現發送 CAN資料, ID 為 0x02 , 發送 data(0x52)

              使用I-7565-H1H2_Utility_v1.17 介面發送 CAN資料,ID 為 0x05, 發

              送data(0x52)

  1. 接收程序 : 使用CAN_3 通道實現接收 CAN 資料, ID 設定為 0x02。

              使用I-7565-H1H2_Utility_v1.17 介面接收 CAN資料

4.2 程式流程圖

             欲了解更多資料請聯絡世平集團 Kevin ( Kevin.Hong@wpi-group.com )

                                                                  Michael ( Michael.Gao@wpi-group.com )

5.    硬體接線圖

5.1 MPC5777C EVB 發展板內部接線圖

     此為上圖部分放大圖, CAN 輸出與輸入

    MPC5777C 有 2 顆 CAN ic 分別為 TJA1145T 與 MC33FS6520LAE,範例使用

    MC33FS6520LAE

5.2 外部接線圖

     Can-converter 與 MPC5777C_PVB 外部接線圖

 

欲了解更多資料請聯絡世平集團 Kevin ( Kevin.Hong@wpi-group.com )

                                                    Michael ( Michael.Gao@wpi-group.com )

6.    相關 function 介紹

6.1 FLEXCAN_DRV_Init

6.1.1 功能描述

    選擇 CAN 時鐘來源與頻率

    Bit/rate 設置

    Rx_fifo 濾波器設置

    Sampling point 設置

 

6.1.2 函式原型

FLEXCAN_DRV_Init(uint8_t instance,flexcan_state_t *state,const flexcan_user_config_t *data);

6.1.3 參數

參數名稱

類型

描述

instance

uint8_t

指定CAN 函式模塊

state

flexcan_state_t

CAN 轉換狀態 (interrupt or DMA)

data

const flexcan_user_config_t *

CAN 使用者參數設定

 

6.1.4  return 值

     無

6.1.5  範例

      FLEXCAN_DRV_Init(INST_CANCOM1, &canCom1_State, &canCom1_InitConfig0);

6.2 FLEXCAN_DRV_ConfigRxMb

6.3 FLEXCAN_DRV_ConfigTxMb

6.4 FLEXCAN_DRV_Send

6.5 FLEXCAN_DRV_Receive

6.6 FLEXCAN_DRV_GetTransferStatus

6.7 其他 function

7. CAN 實際操作 ( 基於MPC5777C )

欲了解更多資料請聯絡世平集團 Kevin ( Kevin.Hong@wpi-group.com )

                             Michael ( Michael.Gao@wpi-group.com )

 


 

技術文檔

類型標題檔案
操作手冊User Manual

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論

大麥克

大麥克

2021年2月25日
剩餘內容,再麻煩聯絡 Michael.Gao@wpi-group.com ,感謝