使用CAN分析仪协助单片机开发.pdfVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用CAN分析仪协助单片机开发

使用CAN 分析仪协助单片机开发 普通的单片机开发,除了集成开发环境的单步调试外,使用串口输入输出调试信息比较 多。 单步调试的好处显而易见,但缺点也很明显:不得不中断当前程序的运行。但在很多时 候,是想在不中断程序运行的情况下调试。这种情况下,传统的方式就是上面说的串口调试 输出。 但用串口的缺点也很明显,就是速度不快,而且一般只能传输原始字节信息。如果是从 单片机输出信息的话,就需要电脑的串口通信程序查看这些原始信息,再手动解码才能了解 它是什么意思。要向单片机输入控制信息的话,也是只能手动输入字节,然后在单片机程序 中解码。 而用CAN 通信来输入输出调试信息的话,因为CAN 通信本身的特性,会比串口方便很 多,而且更加灵活易用。 下面我们就详细比较说明一下使用串口与CAN 调试的优缺点。 1. 从单片机输出调试信息 1.1 使用串口的方法与缺点 比如,我们需要向外输出一组调试信息:发机机转速与油门为一组(下称A 组)。那么, 我们可能需要作如下定义: A 组标识符为0x01,占用一字节。转速与油门都为32 位浮点数(这是无损传输,也可 以用网络传输中常用的分辨率+偏移方式作有损传输,能减少传输的字节数,用户请自己查 看相关信息,这里不详述)。 这样的话,传输A 组数据至少就需要9 字节(标识符 1 字节,转速4 字节,油门4 字 节,这里不考虑换行等控制字节了)。 假如转速为2000 转,油门是40% 。2000 的浮点内部表示为:0x44FA0000, 40 的浮点内 部表示为0。这样A 组用串口发送的数据即为: 0x01 0x44 0xFA 0x00 0x00 0x42 0x20 0x00 0x00 其中,黄色为标识符,蓝色是转速,红色是油门。 这样的数据传输到电脑的串口程序中,用户需要一个小工具(浮点内部形式转换为可识 别的十进制形式),才能知道转速与油门实际是多少。 若使用有损传输,假如转速的分辨率为0.1,用两字节表示,油门的分辨率为0.4,用一 字节表示。那么转速的字节=2000/0.1 = 0x4E20 ,油门的字节=40/0.4 = 0x64 。则传输的数据 为: 0x01 0x4E 0x20 0x64 这相对前面的无损传输容易识别得多,但这仍然不能一目了然,必须得手动计算 (如使 用计算器等),才会知道结果。数据量小的话,手动计算也没有什么问题,但数据太多,又 经常使用的话,这就比较繁琐了。这其实是绝大部分串口程序本身的缺陷,它不能提供自动 转换的功能,用户能见的就只是原始字节数据。 同时,还得考虑发送是异步还是同步的问题。 假定发送串口数据的函数是printf。 如果是同步的,就得待一组数据发送完后,printf 函数才返回。根据单片机的串口外设提供的功能不同,有多种处理方式,但基本而言,考虑 到串口的通信速率比较低,这个操作可能会导致程序一定程度的堵塞,会影响到正常程序的 执行。特别是在多组数据同时发送时,堵塞会更加严重。 如果发送是异步的,也就是说printf 只将数据放放缓存中,然后就返回。这就基本上不 会出现堵塞的情况,对程序的干扰就比较小了。但这样的话,实际的是发送操作让外设,或 者程序其它部分来控制完成。如果用户使用的开发环境本身提供这样的库函数上下文环境尚 可,如果没有提供,要用户自己来完成的话,写代码就比较麻烦了 (其实很多时候都还是需 要用户自己来写的,实现起来也并非想象中那么容易)。 1.2 使用CAN 通信的方法与优点 如果不使用串口,而使用 CAN 通信来处理上述问题的话,事情会简单得多。首先,单 片机上的 CAN 外设一般都带有多个缓存,通信的数据发送天然是异步的,绝不会存在堵塞 程序运行的问题。用户只需要实现CAN 的基本驱动即可,不用因为考虑同步异步的问题, 又多花时间在CAN 基本驱动的上层加上其它缓存处理代码。而且CAN 数据速率比较高(最 高为1MBps),传输的数据实时性也远大过串口。 另外,因为CAN 数据格式的统一性,为电脑上的CAN 分析仪之类的工具提供了自动解 析原始字节的可能性。比如上面的浮点数据与有损传输数据的自动解析。一般只有相对比较 高端的CAN 分析仪才会提供这样的自动解析功能,普通的所谓的CAN 分析仪只会显示原始 字节,与那种串口显示程序没有什么大的差别。 这里我们用西谌

文档评论(0)

woai118doc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档