日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

英飞凌TC3xx_MCMCAN(一)

發布時間:2024/1/18 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 英飞凌TC3xx_MCMCAN(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MCMCAN與MultiCAN+不同點在于:

  • 可配置的message ram代替之前的Message Object
  • 支持CAN的調試
  • 其結構框圖如下:

    每個module都有16個interrupt lines(INT_O0~INT_O15),這些INT_Ox對應的中斷SRC_CANxINTy。

    1.?功能描述

    1.1?用戶接口

    MCMCAN的時鐘輸入來源于CCU(Clock Control Unit)相連,如下:

    ?

    可以看到,MCMCAN有兩種時鐘源,fsyn用于寄存器和RAM接口的時鐘源,fasyn用于生成標準和CAN FD的波特率,通過CLC寄存器來使能CAN模塊時鐘的生成;

    ?可通過MCR.CLKSELi位域進行選擇,如下:

    ?

    1.2 中斷

    除了時鐘外,中斷在MCMCAN中也是固定的,對于該模塊,共存在16個中斷節點,可通過寄存器GRINT1x和GRINT2x靈活分配中斷給任意節點。

    這個說起來有點抽象,從具體代碼角度來看,要選擇IR里SRC節點,如下

    ?

    也就是說,要配置CAN中斷,首先要選擇那個CAN模塊,然后通過配置interrupt line選擇對應的SRC節點(line和SRC_INT一一對應)。

    下面這張圖是看了很久才慢慢有所體會。

    首先這張圖顯示的是每個節點中斷的壓縮情況,每個節點有28個中斷類型,這28個中斷會被壓縮為16個中斷源狀態在寄存器中保存。為什么要壓縮,因為有很多中斷可以用一種中斷狀態來表示。

    ?例如 Alert這個中斷,可以由中斷EW\EP\TSW\RF0L\RF1L\TEFL觸發,如下:

    ?IR和TTIR可以用于生成中斷脈沖,IE和TTIE用于使能上述中斷。一旦相應中斷使能,MCMCAN會使用GRINT1i和GRINT2i通過INT_Ox輸出中斷脈沖;如果有多個中斷源與中斷節點鏈接,所有請求會組合一起到一個相同的line(鏈接到SRC)

    上述中斷的使能也需要由寄存器來配置(與邏輯,兩者都滿足才行),如下:

    IE和IR位域是一一對應的。

    1.3? Port配置

    2 MCMCAN操作

    M_CAN包含如下內容:

    • CAN core(11898-1)
    • 時鐘和同步控制單元
    • CAN協議的配置和控制:波特率等
    • 中斷壓縮和使能單元
    • Message RAM的配置和分區
    • Tx Handler
      • 控制message RAM里的message發送到CAN core
      • Message優先級
      • 發送取消
    • Rx Handler

    總結

    以上是生活随笔為你收集整理的英飞凌TC3xx_MCMCAN(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。