• 正文
    • 目? 錄
    • 1. FlexCAN簡介
    • 2. FlexCAN初始化
    • 3. FlexCAN發(fā)送報文
    • 4. FlexCAN接收報文
    • 5. FlexCAN中斷
    • 6. CAN錯誤
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

【晟矽課堂】FlexCAN的介紹與應(yīng)用

2023/04/18
1292
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

目? 錄

FlexCAN簡介

FlexCAN初始化

FlexCAN發(fā)送報文

FlexCAN接收報文

FlexCAN中斷

CAN錯誤

1. FlexCAN簡介

CAN網(wǎng)絡(luò)拓?fù)?/a>

終端電阻

CAN總線

CAN收發(fā)器

TJA1050/1、MCP2551

CAN控制器

獨立控制器SJA1000、MCP2515

Bosch M_CAN、X_CAN

NXP FlexCAN

FlexCAN拓?fù)?/h3>

Bus Interface Unit (BIU)

Message Buffers(MBs)

Controller Host Interface (CHI)

Protocol Engine (PE)

FlexCAN Memory Map

 

2. FlexCAN初始化

FlexCAN 工作模式

FlexCAN初始化

CAN波特率設(shè)置

CAN_CTRL1(PRESDIV 8bits、PROPSEG 3bits、PSEG1 3bits、PSEG2 3bits、RJW 2bits)

CAN_CBT(BTF 1bit、EPRESDIV 10bits、EPROPSEG 6bits、EPSEG1 5bits、EPSEG2 5bits、ERJW 5bits)

CAN_FDCBT(PRESDIV 10bits、FPROPSEG 5bits、FPSEG1 3bits、FPSEG2 3bits、FRJW 3bits)

FlexCAN Message Buffer Structure

0x80~0x87F 128個 128-bit message buffers(MBs)

CS、ID、DATA(8、16、32、64)

CAN_FDCTRL.MBDSR0/1/2/3

3. FlexCAN發(fā)送報文

FlexCAN發(fā)送MB配置

FlexCAN發(fā)送報文類型:

標(biāo)準(zhǔn)幀(Classical CAN/CAN FD)

擴(kuò)展幀(Classical CAN/CAN FD)

遠(yuǎn)程幀(Classical CAN)

FlexCAN Arbitration Process

發(fā)送優(yōu)先級設(shè)置:

CAN_CTRL1. LBUF :Lowest Buffer Transmitted First

CAN_MCR.LPRIOEN:Local Priority Enable

中斷使能/標(biāo)志位:

CAN_IMASK1/CAN_IFLAG1:MB0~MB31

CAN_IMASK2/ CAN_IFLAG2:MB32~MB63

CAN_IMASK3/ CAN_IFLAG3:MB64~MB95

CAN_IMASK4/ CAN_IFLAG4:MB96~MB127

FlexCAN 發(fā)送實例

4. FlexCAN接收報文

FlexCAN接收報文

MB接收配置 - Rx Mask

MB接收配置 - MB

FlexCAN Rx FIFO Structure

0x80~0xDC(MB0~MB5) Rx FIFO engine

0x80~0x8C output

0x90~0xDC internal use

0xE0~0x2DC (MB6~MB37) ID filter table

8~128 table elements

CAN_MCR.RFEN、 CAN_CTRL2.RFFN、CAN_MCR.IDAM

CAN_MCR.IDAM: D Acceptance Mode

00: Format A

01: Format B

10: Format C

11: Format D – All frames rejected

IDHIT、CAN_RXFIR.IDHIT

CAN_IMASK1

CAN_IFLAG1

BUF0I: Empty the FIFO

BUF1I~ BUF4I : Reserved

BUF5I: Frames available in Rx FIFO

BUF6I: Rx FIFO Warning

BUF7I: Rx FIFO Overflow

Rx FIFO接收配置 - Rx Mask

FlexCAN Rx FIFO with DMA

CAN_IFLAG1

BUF0I~ BUF4I : Unused

BUF5I: Frames available in Rx FIFO

BUF6I~BUF7I: Unused

FlexCAN Matching Process

Matching優(yōu)先級:

CAN_CTRL2. MRP: Mailboxes Reception Priority

1: Matching starts from mailboxes and continues on Rx FIFO

0: Matching starts from Rx FIFO and continues on mailboxes

Matching starts from the lowest number toward the higher ones

FlexCAN 接收實例

5. FlexCAN中斷

CAN錯誤

6. CAN錯誤

CAN網(wǎng)絡(luò)拓?fù)?/p>

Error counters:

CAN_ECR.TXERRCNT

CAN_ECR.RXERRCNT

Error flags:

CAN_ESR1.TXWRN(CAN_ECR.TXERRCNT>=96)

CAN_ESR1.RXWRN(CAN_ECR.RXERRCNT>=96)

CAN_ESR1.BIT1ERR/BIT0ERR

CAN_ESR1.ACKERR

CAN_ESR1.CRCERR

CAN_ESR1.FRMERR

CAN_ESR1.STFERR

相關(guān)推薦