打印
[其他ST产品]

请教关于ST7的CAN通信问题

[复制链接]
2269|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bei1002|  楼主 | 2007-10-30 14:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


   老板最近分配给我一个CAN总线任务,使用的处理器为STR755F.我的任务为分为两部分。
   第一部分:利用处理器将数据定时发送到CAN总线系统。
   第二部分:收到某个特定ID的数据时,发送特定的数据到CAN总线上去。
   我的工作思路是利用ST公司STR75X_EVAL开发板以及自带的库文件进行调试。
   1:建立CAN节点,在板子上从P014与P015两个口引出两条线路与CAN收发器TJA1050相连
   2:建立最简单的CAN系统,CAN收发器的CANH、CANL分别与CAN分析仪的CANH、CANL相连
   3:利用自带的库文件进行调试。
    经过调试,以及不停的测试可以观察到
    1:发送出的数据可以通过分析仪监测到,但是即便是只发送一次,在运行程序之后,数据还是会源源不断的发送到总线上面来。
   2:接收程序无法正常执行,通过监测可以发现CANRX端有数据出现,但是Message Handler寄存器的新数据寄存器位没有发生变化。
  3:在相同的配置下,自测模式时能够成功接收到数据
   哎,因为是第一次做CAN方面的东西,所以搞了两个星期了都没有一点头绪啊!希望各位版主,高手能帮帮我呀   
沙发
ijk| | 2007-10-31 13:22 | 只看该作者

关于CAN通信

注:对于象STR7xxx这样的MCU,通常叫STR7而不是ST7.

1:发送出的数据可以通过分析仪监测到,但是即便是只发送一次,在运行程序之后,数据还是会源源不断的发送到总线上面来。
说明:在正常工作模式下,CAN通信需要至少2个节点,当节点1发送数据包后,节点2需要给出确认应答(ACK),否则节点1会认为发送没有成功,并重复发送该数据包。

2:接收程序无法正常执行,通过监测可以发现CANRX端有数据出现,但是Message Handler寄存器的新数据寄存器位没有发生变化。
说明:在正常工作模式下,CAN通信需要至少2个节点;假如只有1个节点,那么它自己发出的数据,自己是不会接收的。

3:在相同的配置下,自测模式时能够成功接收到数据
说明:没错,在测试模式(包括loopback,loopback+silent)下,跟正常工作模式不同,CAN模块把发送的数据当作接收的数据来处理,只要能通过过滤(filter),那么可以在接收缓冲区里收到发出的数据包。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

1

粉丝