首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

CAN总线,没有同步信号,收发双方如何准确交换数据?

CAN总线,没有同步信号,收发双方如何准确交换数据?

最近接触到CAN总线,看了好久了,云里雾里,资料翻了好多,都讲的很抽象,没有一个能用通俗的语言把CAN通信的原理及实现方法讲透的,也许这个协议只适合研究人员进行学术研究。
但现在的项目又必须搞清楚这个该死的协议怎么工作的,噢-卖糕的!!
我仅代表初学者,向前辈,大侠们,请教如下问题:

1
,这个CAN总线共两根线,两根线都是数据线,没有同步信号线,怎么确定?也就是说多久认为是1,超出多少ns认为是11了?如果有很长时间的一个高信号,怎样区分是111111111111111???
2
,这个该死的协议用了报文这个词,报文里又有起始位”+“标志符1129”+“数据位”+“效验,这个标识符好像是决定了谁有发言权,那挂在总线上的每个分机这个标识符该是多少?如果某个分机A总是发00000000000,哪这个分机A总有对总线的控制权,那别的分机何时才能有发言权,我的意思是,各个分机的标示符是如何生成的?随机的?还是定好的?还是跟要说的话有关系?如果某个分机总是平民,进不来*,是不是总也说不上话?哪他的言论不久无法表达了吗???
3
,有的CPU芯片上有两组CAN总线,例如:STM32F107V和英飞凌XC886等,一组都可以并联100多个节点(分机),用得着两组吗?真要用得到两组来交换200多分机的数据,哪数据量也很不小啦,还是说两组CAN总线另有他用??
1,如楼上hwm大师所说,can是靠双方约定好的波特率来确定位的
2,标识符是报文的id,一个模块可以有多个报文,id是由用户根据实际应用规定的,在同一时刻,高优先级报文优先发送,发送完后低优先级就可以发送了,所以说优先级低的报文还是可以发出去的,低优先级的报文有可能出现较大延迟

3,一个系统有2个CAN网络的话,一方面是由于系统包括2个完全不同的子系统,比如汽车中的PCAN,和BCAN,前者挂的是与安全息息相关的动力模块,双CAN可以实现安全隔离,使整个系统更加可靠,另一方面,can总线在不同的波特率下支持的模块数量是有限的。
做人要做懒羊羊啊!
关于标示符: 1,这个里边可以包含分站的“身份识别”成份,也就是系统设计者自定义的,可以这样理解吧。 2,两个不同优先级的同时申请发送时,高优先级的先传,之后多久低优先级的可以传?好像协议里只是讲到了仲裁,没看到“高优先”传完“低优先”接着传的这部分内容,如果10个子站同时申请仲裁,那就是由高到低10个分站依次传完,总线空闲下来后再传回应信息,哪子站的接收缓冲溢出了丢数据了怎么办?
做人要做懒羊羊啊!
返回列表