中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 1107查看
  • 2回复

[求助] 电子弱智发帖求助,谁能用最形象的文字告诉我CAN的传递

[复制链接]


该用户从未签到

发表于 23-4-2012 12:13:08 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


本帖最后由 akulaqiang 于 23-4-2012 12:15 编辑

举个例子,系统要将当前的车速160km/h显示到仪表盘上(指针式)。
从轮速传感器开始。

下面是我理解的传送方式:

1.当车辆未发生滑动摩擦,车速是从四个轮速传感器经过计算得来,假设当前车速被定义在160.

2.这个160在ABS/ESP的ECU里转化为数字信号,要通过CAN,传送给BCM,然后在仪表盘上表示出来

3.那么,在CAN传送的若干信号中,怎么得知该信号是车速信号?(在CAN数据流的前几位,用二进制来表示该信号的类型,在后面的几位表示该信号的大小,即车速的大小),具体是多少位?根据CAN的传送速率,125kbps~1Mbps,是否能满足?因为还有其他很多信号同时传送。

4.当CAN传送该信号时,表示该段信号的数据流,一共有多少位?我知道其他还有故障位,校验位等等。

我都乱了,上述是我理解的CAN的传送方式,但是我不知道是否正确,里面有很多疑问,谁能帮我解答一下,谢谢大家。

  • TA的每日心情
    开心
    10-2-2018 16:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 26-4-2012 00:01:25 | 显示全部楼层
    本帖最后由 kksha 于 26-4-2012 00:09 编辑

    兄弟,我的一点理解,请参考:
    1,轮速传感器采集的是模拟量,也就是我们常听别人所说的类似正弦图形量,其原理应该是霍尔效应,即通过改变磁通量得到变化的电压信号。ABS或者ESP采集模拟信号后,并根据不同车轮速度的变化等参数,根据某种规则计算出来车速。
    2,车速信息通过某种介质和协议进行传输。CAN网络传输一般选用双绞线做为传输介质,此信号是数字信号,和前面提到的传感器的模拟信号不同,在网络上的节点通过收发器向外发送数据信号。在前期设计时,需要制定一个通信协议(即规则),这规则定义了网络上每个节点的名称和代码,传输数据的类型,个数,位数等信息。如果是车速,车速范围应该在(0,255)之间,需要定义一个8位数据,举个例子如将CAN传输数据的第9位到第16位定义为车速信息。当ABS/ESP需要发送一个100公里时速信息给组合仪表时,会向网络中发送一串数据,但是数据的第9位到第16位应该是(0110 0100,二进制数据),当组合仪表收到这个数据时,知道车速是个二进制数据,就知道车速了。
    3,数据流里不会包含数据的类型,信号的代号,这个在制定网络通信协议的时候就定义了好了,不需要再定义了。组合仪表会理所当然的理解为第9位到第16位就是车速。其他位数可以定义其他信息,第1位到第8位定义为发动机转速信号,定义第17位是空档信号(1位空档,0位非空档)。当组合仪表收到一个(0010  0011 0110 0100 1xxx 后省48位数据)时,根据在设计时就规定好的通信规则就知道此时发动机转速是35转/分(前8位0010 0011),档位是空档(第17位,1)。当然这里用前8位表示转速信息是有问题的,因为8位数据总共能表示256个数据,无法显示高于256以上的转速。
    4,各模块在设计运行程序时就把规则和计算方法烧制在芯片里了。
    5,单独采集到一组数据流没有多大意义,必须结合通信协议,因为没有协议的话,即使你得到了数据流,你也不清楚具体的信息。这个文件可以找你们的网络通信协议制定者索要。

    谢谢!

    评分

    参与人数 1贡献值 +4 积分 +15 收起 理由
    清雅轩 + 4 + 15 回帖有奖【论坛口号→知无不言,言无不尽】

    查看全部评分

    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

     楼主| 发表于 26-4-2012 11:10:15 | 显示全部楼层
    太感谢楼上了,让我理解深刻了很多,你上面提到的总共有四五十位数据,这么多数据在CAN中传播的时候,大概需要多少时间?
    我现在主要对速度这个东西没有概念,只是感觉车辆在高速公路上跑,速度很快,对CAN传送数据的速度还真没法很形象地形成一个概念。
    如果是128kb每秒的速度(这个速度对CAN来说应该是比较慢的了,对吧?),那么如果传送100个二进制字符,它的计算方法是怎样的??
    谢谢。
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 1-8-2025 02:11 , Processed in 0.523530 second(s), 38 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.