永发信息网

请教高手,CAN总线传输N个传感器的信号,然后上传至上位机,我想问的是,上位机怎么剥离出这N个信号呢?

答案:1  悬赏:30  手机版
解决时间 2021-03-29 15:44
  • 提问者网友:回忆在搜索
  • 2021-03-28 20:30
请教高手,CAN总线传输N个传感器的信号,然后上传至上位机,我想问的是,上位机怎么剥离出这N个信号呢?
最佳答案
  • 五星知识达人网友:行路难
  • 2021-03-28 21:47
1.如果你没有一定的基础很难听懂
2.我试着给你讲一下吧,讲得通俗易懂难啊。你能听懂多少算多少吧。
3.CAN确实就这两条线,他是串行通信。啥是串行通信呢,打个比方,大家排好队,一人手里拿一个球,从一端放到到另一端,这个人一个接一个的跑就是串行,把人带的球想象成数据,数据一个接一个的从一头传递到另一头。如果弄成自动运行的呢,大家规定一个跑步的速度(通信速率),那么两端就可以自动的进行放球和拿球。
4.CAN通信也是串行通信,但是要复杂的多的多。从物理角度讲,CAN有两根线,一个叫CANH一个叫CANL。按照CAN协议的规定,这两根线上只会会有两种状态,一个叫显性(什么是显性呢,就是canh和canl的电位值做减法,差值在零附近),一个叫隐形(什么是隐形呢,就是他们的差值为他们本身的两倍左右)。总线就是靠这两种状态传递数据的。(这两种状态就像是3中讲的,有没有球。)
5.至于你说的N,其实每个CAN模块代表一个节点,现实当中是没有N个那么多的。受制于传输介质和通信距离,can协议规定了最多可以连接的节点数目。
6.在某一时刻,总线上不是隐形就是显性。那么怎么传输N个信号呢。其实,这是分时复用的结果。就是说,在一段时间内信号可能只和1号节点有关系,但是在另外的时间段,就只负责处理2号节点的信息。只不过,这些时间段都特别小。瞬间完成。
7.至于你说的中断,这些个节点都要规定好优先级,这样总线发生冲突(两个节点都要使用总线)时,can模块可以依据中断优先级进行仲裁,选择哪个节点使用总线。追问哎呀,怎么说的,五体投地的感谢。
不好意思,最后第7中,我说错了,应该是终端,不是中断。我的意思是CAN数据传输到上位机或者RAM之后,怎么把好几个传感器的信号分离开表示的。?追答1.你不是也看见了吗。上位机和can节点之间,还有以太网转换和MCU吗?他们负责进行数据的转换。如果信号已经存在ram中,这个上位机编程的软件有关系。也就是说需要软件进行实现。需要你自己编织数据通信协议。上位机和下位机,双方规定一下,那个字节的那个位带表什么意思。要不然大家谁也不知道在干什么啊。就像接头暗号一样。这样约定好了,就是协议。实际的要比这个复杂。协议的约定是要遵守某些固定的格式的。如果你想搞懂,还要细细看一下,can和tcp/ip的知识。追问我大致明白这个意思了,真是胜读十年书啊,我要是看书,看十本也未必入门。多谢了。
是不是可以这么理解,就好像进地铁站要安检,在CAN里传数据,就好像每个人一个包,放带子上,让带子传过去。
上位机取数据,也是一个一个按照顺序编号来的,第一个是张三的,第二个是李四的。。。。。
可能1秒钟内要接受60个点,在这1s内,张三有60个包,李四有60个,他们存包的顺序是张三,李四;张三,李四...,取包也是这么顺序。对不对追答1.因为中间有一个以太网转换,我对这块不太了解。还不能确定上位机具体是如何处理的。
2.但是这个东西大同小异,就是个协议问题,TCP/IP也是协议(协议就是一大堆的规则,就像你看到红灯就得踩刹车一样。)。
3.我觉得你已经入门了
4.看你给的图,通信的方式应该是主从式的,就是说,上位机发送一个指令,要查询某个节点的信息,然后节点给出响应信息,上位机将收到的信息显示。然后上位机在查询下一个节点的信息,如此往复循环。这些个节点完全轮一圈也不见的有几个毫秒。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯