吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于恩智浦MPC5744P的CAN驅動開發和測試

嵌入式程序員 ? 來源:嵌入式程序猿 ? 作者:武國平 ? 2021-09-03 11:35 ? 次閱讀

摘要

本篇筆記主要記錄基于恩智浦MPC5744P的CAN驅動開發和測試,接口設計,封裝為BSP驅動,為之后實現CAN的高層通信打下基礎。。

準備工作

安裝S32DS for PA, 因為我們在S32DS下開發MPC5744P。

安裝S32DS 的SDK, 我們使用最新版3.0.3

CAN

恩智浦的MPC5744P控制器局域網絡CAN,跟我們之前使用的恩智浦Kinetis KV, 等系列的flexCAN結構基本是一樣的,MPC5744P不僅僅支持經典CAN,還支持CANFD。

從系統框圖也可以看出,總體包含消息緩沖RAM,發送仲裁,接收匹配,和協議引擎。要正常與其他CAN設備通信,必須外接收發器。關于MPC5744P的 flexCAN模塊的特性可以參考收據手冊,這里不在贅述。有四種工作模式,正常模式,監聽模式,回環模式,和禁止模式。CAN外設的寄存器比較多,需要多參考查閱手冊。

消息緩沖區結構

恩智浦不管是ARM系列還是PA系列架構的片子, flexCAN模塊的消息緩沖機制基本都是一樣的。這個結構非常重要,是CAN消息數據處理的基礎,SDK底層這部分的處理代碼就是按照這個結構。自己實現代碼也必須是按照這個結構去實現。

更多CAN詳細的介紹請參考官方收據手冊。

驅動實現

良好的驅動封裝,可以方便應用開發,并且可以容易移植到其他項目,代碼重用率高,所以數據和接口是你不得不考慮的問題,怎么樣方便的實現,還要通用易用。

數據封裝

首先根據MPC5744P的CAN外設結構,我們來封裝數據結構體,方便后面軟件實現開發,可以新建bsp_can.c和bsp_can.h, 在頭文件中封裝結構體定義。

88563cf6-0be0-11ec-8fb8-12bb97331649.png

在.c文件中定義封裝一些變量,這些變量數組也是通用,在多款產品中都采用,大家也可以參照。

886685a2-0be0-11ec-8fb8-12bb97331649.png

可以實現多個CAN口驅動。如果只有一個CAN口,將CAN_PORTS宏定義為1,幾個就定義為幾。

這個封裝大家可以記著,我在多款器件上都是這么封裝的,之前在NXP的KE06, KEA, KV46, K64等系列,在ST的F103, F446, H743等等CAN通信都采用這種封裝BSP驅動。

初始化

參考官方的例程,根據自己的硬件去實現,做相應修改。我們一般發送接收要采用中斷或者DMA實現,這里以中斷方式實現,根據實際可能還需要添加濾波,配置緩沖等。

888491dc-0be0-11ec-8fb8-12bb97331649.png

中斷回調函數

最主要的就是通信傳輸回調函數的實現,MPC5744P的回調函數參數有事件,所以可以根據事件來判斷是接收還是發送。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2770

    瀏覽量

    464389
  • 通信
    +關注

    關注

    18

    文章

    6072

    瀏覽量

    136431
  • 封裝
    +關注

    關注

    127

    文章

    7997

    瀏覽量

    143412

原文標題:用這種結構做CAN通信數據封裝太爽了

文章出處:【微信號:InterruptISR,微信公眾號:嵌入式程序員】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CES 2025有哪些亮點

    未來的智能世界會是什么樣?相信逛完在2025國際消費電子展(CES)上的展臺,就會找到答案!
    的頭像 發表于 01-17 10:46 ?260次閱讀

    半導體6.25億美元收購TTTech Auto

    半導體(NXP)近日宣布,將以6.25億美元現金收購奧地利知名的汽車軟件開發商TTTech Auto。這一戰略收購將進一步鞏固
    的頭像 發表于 01-09 14:53 ?245次閱讀

    eIQ Time Series Studio 工具使用全攻略

    ? 基本介紹 eIQ Time Series Studio(簡稱eIQ TSS)是半導體推出的一款專為嵌入式微控制器設計的基于時間序列的AI和機器學習開發套件。它集成了自動機器學習功能,旨在
    的頭像 發表于 12-12 09:37 ?969次閱讀
    <b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>eIQ Time Series Studio 工具使用全攻略

    使用無線FRDM開發板實現創新無線解決方案

    開發人員現在面臨著前所未有的挑戰,需要為各種產品設計復雜的軟件,通常還要使用不同的處理器。的MCUXpresso Developer Experience通過適用于多種MCU平臺的通用框架解決了許多挑戰。
    的頭像 發表于 11-26 17:40 ?495次閱讀
    使用<b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>無線FRDM<b class='flag-5'>開發</b>板實現創新無線解決方案

    發布首個UWB無線BMS解決方案

    汽車市場值得信賴的創新解決方案合作伙伴半導體發布新一代無線電池管理系統(BMS)解決方案,擁有業內最豐富的UWB產品組合之一,方案集成了UWB的強大功能。新一代UWB BM
    的頭像 發表于 11-26 17:36 ?851次閱讀

    基于MCX N系列MCU的應用示例

    全新MCX微控制器系列,為新一代工業與物聯網廣泛的應用賦能,受到廣大邊緣智能開發者的青睞。
    的頭像 發表于 10-25 14:26 ?861次閱讀

    和采埃孚合作開發基于SiC的電動汽車牽引逆變器解決方案

    半導體宣布與電動汽車領域領先企業采埃孚股份公司(ZF Friedrichshafen AG)合作下一代基于SiC的電動汽車(EV)牽引逆變器解決方案。解決方案采用先進的GD
    的頭像 發表于 08-27 09:48 ?1364次閱讀

    【龍芯2K0300蜂鳥板試用】CAN接口驅動板設計、CANFD測試CAN C++程序驅動測試

    繪制接口板 3k0300支持4路CANFD,從原理圖來看,只是把TX和RX放出來了,并沒有差分收發器IC。 為了測試CAN功能,必須先做一個驅動板。 兩路CANFD擠在一個6P
    發表于 08-25 21:09

    舉辦汽車生態技術峰會,并發布全新S32 CoreRide開放平臺

    半導體于杭州舉辦為期兩日的汽車生態技術峰會,并發布全新S32 CoreRide開放平臺。
    的頭像 發表于 05-31 09:23 ?3528次閱讀
    <b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>舉辦汽車生態技術峰會,并發布全新S32 CoreRide開放平臺

    在杭州召開汽車生態技術峰會,推出全新S32 CoreRide開放平臺

    峰會上,正式在中國發布了S32 CoreRide開放平臺,該平臺融合了成熟的S32計算、網絡、系統電源管理技術,以及來自
    的頭像 發表于 05-30 16:59 ?1436次閱讀

    FRDM-MCXN947開發實踐指南》上線啦

    RT-Thread率先支持NXPFRDM-MCXN947,并聯合半導體推出了NXPFRDM-MCXN947開發板評測活動。測評活動順利完成,并且有了不錯的產出,我們將大家的測試
    的頭像 發表于 05-13 18:19 ?600次閱讀
    《<b class='flag-5'>恩</b>智<b class='flag-5'>浦</b>FRDM-MCXN947<b class='flag-5'>開發</b>實踐指南》上線啦

    發布S32 CoreRide開放平臺,旨在突破SDV開發的集成障礙

    近日,(NXP)近日發布了其S32 CoreRide開放平臺,這一創新性的平臺旨在突破軟件定義汽車(SDV)開發的集成障礙,為汽車行業帶來前所未有的變革。
    的頭像 發表于 03-29 11:18 ?14w次閱讀

    發布年度企業可持續發展報告

    ESG目標方面的年度進展。 總裁兼首席執行官Kurt Sievers表示:“作為一家全球性科技公司,我們擁有得天獨厚的機遇去引領和開發創新解決方案,助力塑造更加可持續的未來。在所有團隊成員、合作伙伴和客戶的幫助與持續奉獻下
    的頭像 發表于 03-29 09:36 ?1120次閱讀

    NVIDIA TAO工具套件功能與eIQ機器學習開發環境的集成

    半導體宣布與NVIDIA合作,將NVIDIA經過訓練的人工智能模型通過eIQ機器學習開發環境部署到廣泛的邊緣處理產品組合中。
    的頭像 發表于 03-22 09:11 ?1014次閱讀

    RT-Thread成為注冊合作伙伴,共同賦能工業與物聯網應用開發

    前不久,半導體加入RT-Thread全球合作伙伴計劃,成為RT-Thread高級會員合作伙伴。同時,RT-Thread現已成為注冊合作伙伴。
    的頭像 發表于 03-15 09:15 ?908次閱讀
    七匹狼百家乐的玩法技巧和规则| 百家乐官网高手论| 大发888老虎机| 百家乐五局八星| 视频百家乐官网赢钱| 博彩网站源码| 真人百家乐国际第一品牌| 怎么玩百家乐官网的玩法技巧和规则| 靖宇县| 大发888娱乐城888 bg| 赌百家乐赢的奥妙| 百家乐官网现金网信誉排名| 金钻国际| 太子百家乐娱乐城| 真人百家乐好不好玩| 百家乐官网庄闲和收益| 百家乐官网真钱在线| 德州扑克 下载| 十三张百家乐的玩法技巧和规则| 百家乐如何视频| 百家乐官网1元投注| 昌乐县| 大发888官网 888| 金冠百家乐的玩法技巧和规则 | 金宝博百家乐现金| 百家乐官网五湖四海娱乐城| 百家乐官网软件购买| 德州扑克发牌顺序| 总玩百家乐有赢的吗| 百家乐群号| 百家乐最低下注| 新锦江百家乐官网赌场娱乐网规则 | 百家乐官网tt赌场娱乐网规则| 百家乐官网有作弊的吗| 大赢家娱乐| 二八杠生死门口诀| 专业百家乐软件| 9人百家乐桌布| 百家乐平台租用| 至富百家乐官网的玩法技巧和规则 | 百家乐博娱乐平台|