MD9360四路CANFD应用实例

描述

 

随着通信技术的进步和总线技术的广泛应用,对总线带宽和传输速率提出了更高的要求。MD9360-T核心板提供四路CANFD,让你的数据传输更快速、更可靠。

 

MD9360-EV-Board评估板(如图 1所示)是致远电子精心推出的集工控与评估于一身的评估底板。该评估底板可选搭配MD9360-T系列核心板,根据核心板的选型提供丰富的外围接口做评估和扩展使用,方便灵活。该评估底板提供四路CANFD接口。在实际使用过程中,可以满足汽车工业、‌工业自动化、‌能源管理等领域应用需求。
 

评估板

图1 MD9360-EV-Board评估板MD9360-EV-Board的4路CANFD位于IO扩展接口中,接口采用2.54间距的2*20P双排母座或双排针,如图 2所示。接口引脚定义如表 1所示。

评估板

图2 IO扩展接口表1 IO扩展接口引脚定义

评估板

为了测试MD9360-EV-Board的四路CANFD同时收发的性能,将CANFD0和CANFD1对接、CANFD2和CANFD3对接,然后同时进行收发测试(CANFD0向CANFD1发送数据的同时,CANFD1也向CANFD0发送数据。CANFD2和CANFD3也是如此),先使用启动脚本(如程序清单 1所示)启动四路CANFD。

程序清单 1 启动脚本can_init.sh

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

#!/bin/baship link set can0 downip link set can1 downip link set can2 downip link set can3 downip link set can0 type can bitrate 1000000 dbitrate 5000000 fd onip link set can1 type can bitrate 1000000 dbitrate 5000000 fd onip link set can2 type can bitrate 1000000 dbitrate 5000000 fd onip link set can3 type can bitrate 1000000 dbitrate 5000000 fd onip link set can0 upip link set can1 upip link set can2 upip link set can3 up

然后,使用测试脚本can_send.sh(如程序清单 2所示)进行测试。

程序清单 2 测试脚本can_send.sh

 

#!/bin/bashFRAMES=204800echo ${FRAMES} > /sys/class/net/can0/tx_queue_lenecho ${FRAMES} > /sys/class/net/can1/tx_queue_lenecho ${FRAMES} > /sys/class/net/can2/tx_queue_lenecho ${FRAMES} > /sys/class/net/can3/tx_queue_lensleep 1candump can0 -n ${FRAMES} -t d > /dev/null &candump can1 -n ${FRAMES} -t d > /dev/null &candump can2 -n ${FRAMES} -t d > /dev/null &candump can3 -n ${FRAMES} -t d > /dev/null &sleep 1timestamp_old=$(date +%s)cangen can0 -g 0 -f -L 64 -b -n ${FRAMES} &cangen can1 -g 0 -f -L 64 -b -n ${FRAMES} &cangen can2 -g 0 -f -L 64 -b -n ${FRAMES} &cangen can3 -g 0 -f -L 64 -b -n ${FRAMES} &while truedo  if [[ `ps -ef | grep cangen | grep -v grep | wc -l` = 0 ]] ; then    sleep 1    if [[ `ps -ef | grep candump | grep -v grep | wc -l` = 0 ]] ; then     echo "测试结束,正常无丢帧。"      timestamp_new=$(date +%s)      tmp=$((timestamp_new - timestamp_old))      speed=$((FRAMES / tmp))      echo "四路canfd同时双向发送、接收64字节定长随机数据帧,速率为: ${speed} frame/s"      break    fi   echo "测试结束,异常有丢帧!"    break  fi  sleep 1done

测试结果如图 3所示。

评估板

图3 CANFD测试结果

以上结果3303 frame/s,是四路CANFD同时双向收发64字节数据帧时的速率,如果是单向收发速率将达到5000 frame/s以上,本文只讨论双向收发的情况。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分