LPC55S16的Classical CAN 测试

发布者:breakthrough3最新更新时间:2024-08-19 来源: cnblogs关键字:CAN  测试 手机看文章 扫描二维码
随时随地手机看文章

拿到LPC55S16的板卡好几天了,本来目标是测试CANFD和USB转换通信的,发现板卡上接的外设还挺多,话说可以玩一段时间了。在测试CANFD通信之前,先测试一下Classical CAN。,关于这两者的不同,网上说的比较详细。主要的就是通信速率,数据比特率提高到了8Mbps和最大数据帧提高到了64个字节。当前只在应用层面来考虑。官方的SDK提供了MCAN例程,考虑到NXP的IDE还在熟悉当中,还是移植到keil里调试比较方便,如图1所示。

这次测试的目的就是完成Classical CAN每隔2s完成8字节发送,中断接收。

连接图如图2所示:

官方原理图如如3所示:

将demo移植到keil后,就是读程序,然后为目的修改程序测试。

2S延时使用的是SYSTick,如下:

  1. /* Set systick reload value to generate 1ms interrupt */

  2.     if (SysTick_Config(SystemCoreClock / 1000U))

  3.     {

  4.         while (1)

  5.         {

  6.         }

  7.     }

  8. SysTick_DelayTicks(2000U);


按照以往的定义,初始化时钟,引脚,CAN定义,主要是字节数,ID和波特率

整个过程的思路是先测试CAN的发送,如果没问题,再测试CAN的接收,最后整合一下。

波特率的使用:

  1. if (MCAN_CalculateImprovedTimingValues(mcanConfig.baudRateA, MCAN_CLK_FREQ, &timing_config))

  2.     {

  3.         /* Update the improved timing configuration*/

  4.         memcpy(&(mcanConfig.timingConfig), &timing_config, sizeof(mcan_timing_config_t));

  5.     }


可以追到波特率的定义上,demo使用的baudRateA 500Kbps,当然也可以选1Mbps.

发送配置:

  1. /* TX buffer config. */

  2.     memset(&txBuffer, 0, sizeof(txBuffer));

  3.     txBuffer.address       = TX_BUFFER_OFS;

  4.     txBuffer.dedicatedSize = 1U;

  5.     txBuffer.fqSize        = 0;

  6.     txBuffer.datafieldSize = kMCAN_8ByteDatafield;

  7. MCAN_SetTxBufferConfig(EXAMPLE_MCAN, &txBuffer);


模式选择:

  1. /* Finish software initialization and enter normal mode, synchronizes to

  2.        CAN bus, ready for communication */

  3.     MCAN_EnterNormalMode(EXAMPLE_MCAN);


接收配置:

  1. /* STD filter config. */

  2.     rxFilter.address  = STD_FILTER_OFS;

  3.     rxFilter.idFormat = kMCAN_FrameIDStandard;

  4.     rxFilter.listSize = 1U;

  5.     rxFilter.nmFrame  = kMCAN_reject0;

  6.     rxFilter.remFrame = kMCAN_rejectFrame;

  7.     MCAN_SetFilterConfig(EXAMPLE_MCAN, &rxFilter);


  8.     stdFilter.sfec = kMCAN_storeinFifo0;

  9.     /* Classic filter mode, only filter matching ID. */

  10.     stdFilter.sft   = kMCAN_classic;

  11.     stdFilter.sfid1 = rxIdentifier;

  12.     stdFilter.sfid2 = 0x7FFU;

  13.     MCAN_SetSTDFilterElement(EXAMPLE_MCAN, &rxFilter, &stdFilter, 0);


  14.     /* RX fifo0 config. */

  15.     rxFifo0.address       = RX_FIFO0_OFS;

  16.     rxFifo0.elementSize   = 1U;

  17.     rxFifo0.watermark     = 0;

  18.     rxFifo0.opmode        = kMCAN_FifoBlocking;

  19.     rxFifo0.datafieldSize = kMCAN_8ByteDatafield;


发送帧格式并完成发送:

  1. txIdentifier = 0x123U;

  2. txFrame.xtd  = kMCAN_FrameIDStandard;

  3.             txFrame.rtr  = kMCAN_FrameTypeData;

  4.             txFrame.fdf  = 0;

  5.             txFrame.brs  = 0;

  6.             txFrame.dlc  = 8U;

  7.             txFrame.id   = txIdentifier << STDID_OFFSET;

  8.             txFrame.data = tx_datac;

  9.             txFrame.size = CAN_DATASIZE;

  10. txXfer.frame     = &txFrame;

  11.             txXfer.bufferIdx = 0;

  12.             MCAN_TransferSendNonBlocking(EXAMPLE_MCAN, &mcanHandle, &txXfer);


接收帧格式并完成数据接收:

  1. rxIdentifier = 0x321U;


在测试的时候demo上有这么一段:

  1.            while (!rxComplete)

  2.            {

  3.         }

  4.             rxComplete = false;


就是用了一个while语句,接收完才会继续发送,屏蔽到就不影响按时发送了。

发送和接收数据如图4和图5所示:

在《How to Use CAN-FD to Transfer Data on LPC5500 Series 》文档中也有对Timing config的解释,在深入学习中还需要继续理解。测试完CAN,就是继续CANFD。

顺便吐个槽,官方文档很多明面上没有,需要找,这会多花费一些时间。


关键字:CAN  测试 引用地址:LPC55S16的Classical CAN 测试

上一篇:LPC553X MCU 体系结构概述
下一篇:ok6410的madplay配置

推荐阅读最新更新时间:2024-11-08 10:29

物联网点火,无线测试如何颠覆?
  1.物联网简介   物联网IOT(Internet of Things)技术是一项复杂的应用技术,它不仅涵盖了微波技术与电磁学理论,而且还涉及通信原理以及半导体集成电路等技术,是一项多学科融合的新兴应用技术。目前,IOT技术已成为一个新的经济增长点,它广泛应用于工业自动化、商业自动化、交通运输控制管理等众多领域。因此,研发物联网技术有着巨大的经济效益和社会意义,对物联网测试技术的研究也是物联网应用不可或缺的一个环节。   2.物联网原理及应用   目前,根据不同的应用场合,物联网涵盖的无线技术包括射频识别RFID、近场通信NFC、ZigBee、WLAN、车联网802.11p等。   2.1 RFID   RFI
[测试测量]
物联网点火,无线<font color='red'>测试</font>如何颠覆?
电源接地不良对示波器测试产生的干扰问题
示波器操作人员有时会发现这样一个现象:使用探头探测信号时,被测信号上下跳动,波形不正常,如果使用余晖显示,则波形糊成一团,如下图所示: 图一 糊住的波形 通常这种情况下,测试人员会怀疑是触发的问题,但当上下调节触发电平时,波形位置会随着触发电平的变化:如触发电平调高,则波形的位置上升,触发电平调低,波形位置又降低,如下图所示: 图二 调高触发电平,波形位置上升 图三 调低触发电平,波形位置下降 如果您在工作中也发现类似现象,则很大的可能是:您的测试存在接地不良的情况。更准确地说是:您测试系统的信号回流路径过长。 我们都知道,从信号发送器流出的信号,都会最终流回发送器。单端信号的“地”是信号的回流路径;而差分信号的回流路
[测试测量]
电源接地不良对示波器<font color='red'>测试</font>产生的干扰问题
多功能导电能力测试仪电路
  多功能导电能力测试仪电路由探测电极、电阻分压器、缓冲电路和双色二极管组成,如图所示。探测电极可感知被测物的电阻,根据被测物电阻的大小控制双色发光二极管发光。当探测电极感知被测物的电阻大于300kΩ且小于1000kΩ时,绿色指示灯亮;感知被测物的电阻小于300kΩ时,红色指示灯亮,使双色合成为橘红色亮光;感知被测物电阻大于1000kΩ时,双色指示灯VL3、Ⅴ⒕不发光。调节电位器RP可以改变探测电极的感知范围。
[测试测量]
多功能导电能力<font color='red'>测试</font>仪电路
振动测试电路
如图所示为振动测试电路。该测试电路由加速度计TA-25、集成运算放大器741(IC1、IC3、IC5、IC7)、场效应管输入的低漂移运算放大器等组成。其应用于周期性加速检测。由加速计TA-25输出的信号经过集成电路IC1(741)的低通和IC2(3521)的高通滤波后,以周期性加速度输出。该输出信号经交流积分器(IC3和IC4)积分、放大器IC7放大后变换为速度信号,再经交流积分器(IC5和IC6)积分后获得位移。本电路用于检测加速度计输入轴方向的周期振动,若有前后、左右和上下方向3组,则可检测3轴方向的振动,但检测上下方向振动时,仅有重力加速度1g左右,最大动态范围变窄。本电路测试的振动频率为1~50Hz,最大动态范围为 5g(使
[测试测量]
振动<font color='red'>测试</font>电路
一加10 Pro未过JerryRigEverything的耐用性测试:被掰成两半
油管频道 JerryRigEverything 主播 Zack Nelson 在最新一期视频中,对已经在国内发售的一加 10 Pro 进行了耐用性测试。但遗憾的是,该机并没有通过测试,在掰弯测试中手机完全断裂。   从断缝处可以看到手机的内部电池,而它的顶部位置刚好在侧面音量按键部分,因此在掰弯测试中容易受力折叠,最终被掰成两半。手机周围的金属外壳也比他预期的要薄,这可能也让手机破裂。   但尼尔森的测试确实表明,手机在弯曲过大时容易受到损害,如果你想为自己买一个,应该记住这一点。OnePlus没有立即回应关于视频的评论请求,也没有回应是否计划对OnePlus 10 Pro进行任何改变,使其更加耐用
[手机便携]
中芯国际携手Cadence,共谋中国射频电路设计发展
Cadence和中芯国际日前共同宣布将Cadence的射频设计方案(Radio Frequency Design Methodology Kit)推向中国射频电路设计市场,中芯国际将发展支持Cadence射频方案的工艺设计套件(process-design kit)并于2006年底前完成测试芯片。 客户可于2006年底得到0.18微米的CMOS射频工艺设计套件(process-design kit)。Cadence和中芯国际将共同合作推出射频电路的培训课程,并向中国射频设计者们提供射频工艺设计套件(process-design kit)的适用性咨询。 随着此项合作,国内的无线芯片设计人员将可得到必要的工具,以达到确保符合设计意
[焦点新闻]
用于航天执行器的寿命测试
The Challenge: 开发基于PC机的寿命测试系统来替换传统的基于人工的系统,用于航天执行器的寿命测试。 The Solution: 借助于NI LabVIEW软件,使用PCI数据采集硬件进行寿命仿真,使用NI CompactRIO硬件用于传感器输入,我们制造出全自动化的寿命测试系统。 "利用基于LabVIEW的解决方案,我们的客户可以比以往更全面地对执行器进行测试。同时,它还可以在短得多的时间内提供对执行器的特性和性能的更好分析。" 系统综述 为了测试新型的电子执行器,我们决定对原来的人工流程进行自动化。通过这种自动化,工程师们可以定位执行器中的故障进而确定潜在的故障点。以前,驱动执行器的占空比是由波形发生器
[测试测量]
泛华推出多工位全自动化点火线圈测试系统
由北京中科泛华测控技术有限公司研发并生产的全自动化、多工位测试的汽车点火线圈测试系统已正式交付北京德尔福万源发动机管理系统有限公司。      该系统以柔性测试技术为核心理念,应用模块化、系统协调联动、高压屏蔽等技术,实现了点火线圈各项功能、电气性能指标的全面测试。除了屏蔽箱设计之外,测试系统的整个测试过程以及被测件的传递全部由机械手自动完成,使测试与传递过程无需人工干预,避免了由于人工操作错误而造成的错检或漏检,大大提高了系统的测试可靠性。该系统由点火工位、通断测试工位、性能测试工位、激光打码工位等几部分构成,可以实现对点火线圈的点火测试、初级线圈通断、次级线圈电阻、初级线圈电流和次级线圈电压等多方面指标的同期检测。   
[测试测量]
泛华推出多工位全自动化点火线圈<font color='red'>测试</font>系统
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved