英飞凌TC3xx_MCMCAN(一)
MCMCAN與MultiCAN+不同點在于:
其結構框圖如下:
每個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個中斷節(jié)點,可通過寄存器GRINT1x和GRINT2x靈活分配中斷給任意節(jié)點。
這個說起來有點抽象,從具體代碼角度來看,要選擇IR里SRC節(jié)點,如下
?
也就是說,要配置CAN中斷,首先要選擇那個CAN模塊,然后通過配置interrupt line選擇對應的SRC節(jié)點(line和SRC_INT一一對應)。
下面這張圖是看了很久才慢慢有所體會。
首先這張圖顯示的是每個節(jié)點中斷的壓縮情況,每個節(jié)點有28個中斷類型,這28個中斷會被壓縮為16個中斷源狀態(tài)在寄存器中保存。為什么要壓縮,因為有很多中斷可以用一種中斷狀態(tài)來表示。
?例如 Alert這個中斷,可以由中斷EW\EP\TSW\RF0L\RF1L\TEFL觸發(fā),如下:
?IR和TTIR可以用于生成中斷脈沖,IE和TTIE用于使能上述中斷。一旦相應中斷使能,MCMCAN會使用GRINT1i和GRINT2i通過INT_Ox輸出中斷脈沖;如果有多個中斷源與中斷節(jié)點鏈接,所有請求會組合一起到一個相同的line(鏈接到SRC)
上述中斷的使能也需要由寄存器來配置(與邏輯,兩者都滿足才行),如下:
IE和IR位域是一一對應的。
1.3? Port配置
2 MCMCAN操作
M_CAN包含如下內容:
- CAN core(11898-1)
- 時鐘和同步控制單元
- CAN協(xié)議的配置和控制:波特率等
- 中斷壓縮和使能單元
- Message RAM的配置和分區(qū)
- Tx Handler
- 控制message RAM里的message發(fā)送到CAN core
- Message優(yōu)先級
- 發(fā)送取消
- Rx Handler
總結
以上是生活随笔為你收集整理的英飞凌TC3xx_MCMCAN(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红米Note LTE刷机记录
- 下一篇: 好饭不怕晚--记我的Oracle数据库相