首先感谢几位大神的源代码和优秀的文章:

1、阿衰0110

文章和代码:S32K的flexcan组件使用(RxFIFO+中断)

S32K的flexcan组件使用(RxFIFO+中断)_阿衰0110的博客-CSDN博客

2、weifengdq

文章和代码:S32K148----SDK笔记----CAN收发

S32K148----SDK笔记----CAN收发_weifengdq的博客-CSDN博客_s32k148

3、揪住小尾巴

【s32k】s32k14x系列(1)——开发环境搭建_揪住小尾巴的博客-CSDN博客_s32k14

4、起个名字辣么麻烦S32K144之与S32K1xx系列MCU工程移植_起个名字辣么麻烦的博客-CSDN博客

5、魏小C的苦逼日常

J-Link解锁S32K_魏小C的苦逼日常的博客-CSDN博客

6、星叔

JLINK_JTAG S32K 烧录 调试配置

使用JTAG的工具Jflash刷写S32DS生成的HEX文件_星叔的博客-CSDN博客

感谢上述大神的文章和源代码。

功能:利用单片机的can0和can1两路can,实现不同波特率的2路can的网关功能,can0接收到的所有数据发送到can1,can1接收到的所有数据发送到can0

单片机:s32k148,144pin

环境:s32ds,SDK3.0版本

安装包:S32DS_ARM_Win32_v2.2

烧写器:Jlink

总线监测工具:canoe

硬件:破解已有pcb板,can接口芯片用的是TJA1042

具体实现:

1、硬件:需要一张s32k148的单片机电路板,自己画的也行,破解别人的也行,搞清JTAG的TMS、TCLK、TDO、TDI、Rest的排列顺序,因为有些板子的JTAG的接口的PIN脚号和在网上买的Jlink的pin脚号是不一致的,需要手动飞线,将Jlink烧写器的pin脚和手头现有的pcb板子的pin脚对应上,Jlink上面的3.3v电源我没有接,我用的是pcb板子自带的24v转5v的电源给单片机148供电,只需要将TMS、TCLK、TDO、TDI、GND这5根线连接好就ok了。pcb板子的两路can接到canoe上面,用于监测2路can报文有没有丢帧、负载率等信息。TJA1042的STB引脚,我用PTE32的GPIO输出一个低电平,用于让can接口芯片,一直工作在nomal状态,不让can休眠。

2、软件:安装S32DS_ARM_Win32_v2.2开发环境,用到PE插件,PE是很强大的,能帮助我们写不少的代码,不再像以前那样从寄存器写起,门槛低,非常友好。安装Jlink驱动程序,会用到Jlink和Jflash两个软件,利用Jlink解锁s32k148,因为我的pcb上的单片机被锁保护了,需要unlock Kinetis进行解锁。之后再修改148的pin脚定义,源代码默认的是176pin,我手头的单片机是144pin。最后配置环境生产HEX文件,用于烧录。之所以用到hex文件,是因为debug一直调不通,总是错误,但是能编辑,就是环境里面的那个小锤子是好用的,索性不用debug功能,直接Jflash烧写hex文件到单片机。烧写到单片机之后,为了方便,烧写后不需要断开Jlink和单片机的连接跳线,只需要将单片机的Rest引脚接GND一下,单片机自己复位,程序就能正常运行,否则在烧录之后,程序是不会自动执行的,给人造成一种程序不好用的假象。

注意:只需要安装S32DS_ARM_Win32_v2.2这一个软件就够了,不需要安装补丁、升级包、插件之类的,也不需要升级,就能满足大部分的使用需求,否则会出现格式错误的提示框,很烦,而且PE出问题用不了。第二点就是s32ds的在线激活有问题,总是失败,后来采用离线激活就ok了,曲折啊。离线激活首先下载一个request,然后把这个request上传到nxp官网上面,在上面下载一个active的文件到电脑中,然后把这个active文件加载到离线激活的安装步骤里面,就能够正常安装了,由于之前出现过格式错误的提示框,我出于谨慎考虑,安装路径没改,一路下一步,环境终于安装成功。

3、调试:修改大神的源代码,基本能够实现网关的功能,但是丢帧,严重丢帧。250k那路can用canoe的IG发4条10ms的扩展帧,同样500k那路也用canoe的IG发4条10ms的扩展帧,理论上,负载率应该是23%和46%。 500k那路的负载率是23%,250k那路竟然是39%,应该是46%,差了5个点,可见丢帧是非常严重的。我通过时间片轮询的机制调用mailbox8到15这8个发送mailbox,解决了丢帧的问题。源代码只用到maibox8和mailbox9用作报文发送,利用率低,无法满足23%负载率要求,我将2个mailbox扩充到8个mailbox,提高4倍的发送报文的性能,使得发送不会拥堵,造成丢帧的情况。

注意:为了提高can模块的收发性能,我将总线时钟从48M提高到80M,为了提高网关的吞吐量。

4、需要源码的请到我的资源去下载。
链接:https://pan.baidu.com/s/1GclifgXMT8HDHJXcqOHAUw 
提取码:1234

https://download.csdn.net/download/yypencyclopedia3/85760774

flexcan_test_s32k148_144PIN【用作网关实现250k转500k波特率】-单片机文档类资源-CSDN下载

 

S32K148实现250K转500K波特率的网关相关推荐

  1. GD32 CAN 2.0 ISO-15765 500K源码

    前言 硬件说明:  MCU: GD32C103 120M,128K,32k RAM.  输入:USB 5V.  OBD功能口定义:OBD(2,10)VPWM.OBD 7(K线).OBD 6(CA ...

  2. 329_S32K144 CAN波特率修改

    完整的S32K144的学习汇总如下: https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,今天做一个简单一些的尝试,修改CAN的波特率.看了前面的C ...

  3. 速锐得从冷链管理数字网关看工业物联网的发展与创新

    工业互联网倡导者将其称为"第三次创新".但如果真是这样,我们就仍处于发展初期,因为数字互联网技术的全部潜能尚未在工业技术领域全面实现. 我们可以看到智能设备和智能系统开始与工业机器 ...

  4. RS232转Profinet网关汽车行业上的使用案例

    案例简介: 项目背景:随着我国汽车工业的不断发展,<汽车召回制度>也已经在我国正式实施,所以一些汽车及备件供应商必须重视零部件及整车的出厂追溯,在此追溯过程中,条码技术发挥了相当关键的作用 ...

  5. MATLABSTM32CubeMX联合开发系列——不用手写一行代码就能实现CAN通讯

    MATLAB&STM32CubeMX联合开发系列--不用手写一行代码就能实现CAN通讯 从第一次搭建好MATLAB和STM32CubeMX的联合开发环境有一段时间了,之前已经发布了两个实例分享 ...

  6. Emm_V4.2步进闭环驱动器说明书Rev1.1

    一.产品介绍 1.1 产品简介: Emm42_V4.x步进闭环驱动器是张大头智控为满足广大用户需求而自主研发的一款稳定可靠的产品,它是基于上一代Emm42_V3.6版本升级而来,不仅延续了其优秀的FO ...

  7. 智能称体脂称实现(代码与基本数据处理篇)

    (本文均出于个人理解而写,仅用于学习和交流,某些过程可能不一定正确,希望各位提出意见进行交流,共同进步) AFE4300的配置是比较简单的,从配置到处理基本的数据,主要有3个方面:SPI配置,AFE4 ...

  8. DeviceNet概要

      DeviceNet概要 2008-2-27 17:24:00 来源:作者: 网友评论 0条 点击查看 <script src="http://www.ca800.com/ad/ap ...

  9. 龙芯7A2000 CAN调试

    一.CAN的相关资料 1.<7A2000用户手册> 2.<CAN总线协议中文版> 3.<SJA1000中文版> 初次接触CAN,调试之前建议仔细阅读以上文档. 二. ...

最新文章

  1. 在windows下架设openssh实现资源共享
  2. Kafka2.0生产者客户端使用
  3. js 加总数组中某一列_js根据对象数组中某一属性值,合并相同项,并对某一属性累加处理...
  4. 现在开始全职跑滴滴,你怎么看?
  5. centos安装mysql wsl_windows 10 WSL 安装 Centos
  6. linux如何入侵电脑,Linux超大漏洞,按28次Backspace键即可入侵电脑
  7. 追踪研读法破解EZ-USB的“远程唤醒”
  8. 圈子论坛社区小程序,交友,博客,社交,陌生人社交,即时聊天 前后端开源PHP
  9. PowerDesign逆向生成数据表结构PDM文件
  10. 牡丹-洛阳牡丹:洛阳牡丹
  11. lombok报错Ambiguous method call. Both
  12. 使用NHibernate 3.2实现Repository(ORuM)(三)NHibernate、Mapping、Mapping-By-Code
  13. 排查maven中可以从远程下载下来jar包,但是却报错Failure to find was cached in the local repository, resolution will not
  14. 【缺陷管理】9:偶尔出现的缺陷如何处理?
  15. 江苏省职称计算机考试internet,江苏省直2017年4月职称计算机考试报名时间通知...
  16. Flutter控件之CircularProgressIndicator
  17. 智慧养老解决方案-最新全套合集
  18. JDBC、驱动管理器与DataSource
  19. 新版excel下拉数字递增
  20. 二十世纪西方文化三大发现:莫菲定律 派金森定理 彼得原理

热门文章

  1. React应用react-color
  2. 基于VMD分解算法,可用于信号分解,故障诊断,数据预测和分类等研究领域
  3. MECE分析法(Mutually Exclusive Collectively Exhaustive)
  4. 规模化敏捷-简要对比SAFe、LeSS和DAD模式
  5. 红外倒车雷达原理图_红外倒车雷达说明书(贴片套件)
  6. SQL 获取每一组第一条记录
  7. [解决] failed to receive handshake ssl/tls connection failed github
  8. 【数字示波器使用及MIPI-DSI信号测量】
  9. homestead重启
  10. 复合材料在计算机的应用,一种应用碳纤维复合材料在计算机壳体的制作方法