329_S32K144 CAN波特率修改

完整的S32K144的學習彙總如下:

https://github.com/GreyZhang/g_s32k144

    繼續S32K144的學習,今天做一個簡單一些的嘗試,修改CAN的波特率。看了前面的CAN的簡單實現,我感覺這個應該很容易。

    常見的CAN的波特率配置有三種,250K、500K以及1000K。在使用的時候,一般分別對應的場景需求有J1939、UDS以及BootLoader等。還有不挑波特率的XCP。

    今天嘗試實現的波特率就包含這幾種,配置的方式還是採用SDK的方式。爲此,在配置中增加三種配置方式:

    其中,波特率相關的配置做一定的修改。分別按照上面的形式修改,250K參考如下:

    這個SDK的方便還在於,波特率的計算是自動的。只需要輸入一個目標的波特率即可,相應的數據配置會自動完成。這個,實現方式是通過CAN驅動中的一個波特率的計算函數。如果簡單的使用,可以不需要對此有深入的瞭解。

    有一點值得一說,那就是CAN的採樣率有一點區別。在波特率設置爲1000K的時候,採樣率不再是87.5%。

    爲了測試,我通過串口進行CAN的波特率的修改切換激發。串口接收到1的時候,波特率設置爲250K,2對應500K,3對應1000K。

    設計的相關代碼如下:

    原本我的軟件中帶有一個週期性的發送,現在通過CAN分析儀分別測試三種狀態的波特率下是否CAN報文發出,都能夠觀察到報文的發出。但是,從我測試的效果看,發現了必須設置2次才能夠成功的現象。即使是進行反初始化也沒有取得一次切換成功的效果,具體的原因還沒去追查。另外,最初的版本出現了切換後無法發出CAN報文的情況,追查下發現是出現了阻塞。接觸阻塞之後,報文發送正常。

    今天的這次學習不算是很成功,但是也看到了相應的變化現象。如果是運用到工程中,或許還得有很多需要注意的細節。

    最近的工作中有很多讓我感覺無奈的情況,回家後做一點簡單的開發類練手倒成了我舒緩自己壓力的一種手段。其實,我覺得這種方式也很好,短暫緩解焦慮的同時還稍微有一點點收穫。不過,今天確實是又晚睡了一個半小時。加上白天的咖啡,不知道我今晚是否還會有香甜的睡眠。

    咖啡是程序員的好夥伴,但卻不是我們健康的好夥伴。在此,祝願看到我學習筆記的人能夠享受咖啡且不讓其成爲我們身體的負擔。希望大家收穫知識,作出產品的同時也都健健康康!

完整的S32K144的學習彙總如下:

https://github.com/GreyZhang/g_s32k144

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章