英创WinCE主板CAN接口数据接收性能测试

   日期:2024-01-23     浏览:33    评论:0    
核心提示:在英创公司嵌入式主板产品中,高端的335x主板系列及低端的ESM9287主板均可支持2路CAN总线标准接口。本文提供CE平台的EM3352和EM9287的CAN接口的数据接收的性能情况,供客户在开发应用程序时参考。
  在英创公司嵌入式主板产品中,高端的335x主板系列及低端的ESM9287主板均可支持2路 CAN总线标准接口。本文提供CE平台的EM3352和EM9287的CAN接口的数据接收的性能情况,供客户在开发应用程序时参考。,

  在英创公司嵌入式主板产品中,高端的335x主板系列及低端的ESM9287主板均可支持2路CAN总线标准接口。本文提供CE平台的EM3352和EM9287的CAN接口的数据接收的性能情况,供客户在开发应用程序时参考。

  测试条件:

  1、由一张独立的Linux平台的主板发送数据,模拟CAN总线环境。数据发送速率由示波器标定确认。发送的数据帧中包含当前发送数据帧的累积计数值。

  2、在CE平台运行的测试程序采用VC/C++编写。接收线程以最快速度读取底层CAN驱动已接收到的数据包,并提供接收数据包统计,并与数据帧的计数值比较。

  EM3352(WEC7)测试结果:

  CAN Bit Rate  CAN总线帧速  丢包情况  其他说明

  1Mbps       2000帧/s   无     此时CPU负载率为17%

  1Mbps       2000帧/s   无     远程桌面进程使CPU负载率至37%

  1Mbps       5000帧/s   有     此时CPU负载率至90%

  在5000帧/s的测试中,当帧速返回2000帧/s,则丢包则消失,CPU负载率恢复正常。过程中系统不会死机。

  EM9287(CE6.0)测试结果:

  CAN Bit Rate  CAN总线帧速  丢包情况  其他说明

  1Mbps       1000帧/s   无     连续监测320000帧数据

  500kbps      1000帧/s   无     连续监测720000帧数据

  CE平台的CAN驱动程序,至少设置了能缓冲256帧数据的buffer,对1Mbps波特率按每帧数据160us(实测值)计算,则内部缓冲区可至少保存40ms的数据。换句话说,上层应用程序需在40ms内把驱动程序已接收的数据全部取出,这样才能保证不丢包。典型的应用程序读取数据调用如下:

  //一次读取尽可能多的数据帧

  BOOL rc = ReadFile(hCAN, // “CAN#:”Handle

  pRxBuffer, // 足够大的接收buffer

  sizeof(CAN_MESSAGE)*MAX_ARRAY, // MAX_ARRAY=256

  &dwLen, // 实际读到的字节数

  NULL);

  为了尽快读出所有缓冲在驱动程序中的数据,最好是使用一个尽可能大的Buffer,然后通过返回的dwLen值来判断本次调用所读取的数据帧数。有些应用采用每次ReadFile读取一帧数据,然后循环直至读完所有数据也是可以的,只是效率要比一次性读完的方式稍低一些。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服