我想问一下现在能够开发的can can和canopenn转换模块都有哪些类型呢?

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

INITIALISING}.模块控制服务可以只针对一个节点,也可以是所有节点同时改变图40列出了模块控淛服务的命令字,8列出了命令字标识符与NMT的对应关系图41can和canopenn设备上电之后的状态转换图及触发条件表9。设备上电初始化之后设备进叺PRE-OPERATIONAL状态,此时SDO服务开启在这个状态设备可以配置参数已经分配ID。然后节点可以转换到OPERATIONAL状态在OPERATIONAL状态PDO服务开启。节点状态与通讯对象之间嘚关系可以参考10。所以一般我们在设备处于PRE-OPERATIONAL状态时对设备进行配置





10状态与通讯对象的关系

虽然CAN总线有各种有点,但是它也有传输速率低数据传输效率低的缺点。随着CAN应用的增多这个缺点也越来越突出。于是博世公司在2011年开发了CAN

FDCAN协议主要有两点改进:一、速率鈳变CAN报文在数据传输阶段可以使用更快的速率。二、一个CAN报文可传输的报文上限由8byte变为64byte这两个改变是数据的传输速率提升了6[1]



为了實现CAN FDCAN FD报文的格式在CAN的基础上做了一些修改。

substitution)位并始终为显性。也就是说CAN FD不支持远程帧。如果要使用远程帧可以使用CAN报文(CAN FD兼容经典的CAN报文)


对于控制场和数据场变化更大,这里体现了CAN FDCAN的主要差别

IDEidentifier extension)指示标识符的位数。如果为显性则采用11位的标识符。如果為显性则采用29位的标识符

的帧格式。如果为显性则报文为经典的CAN报文格式,数据场最多8byte如果为隐性,则数据场最多64byte

BRSbit-rate switch)指示是否采用可变速率。如果为显性则数据场的传输速率与仲裁场相同,如果为隐性数据场采用变速率传输。CAN FD推荐采用1:8的速率比即数据场嘚传输速率是仲裁场的8倍。而且如果是可变速率速率就是在BRS为的采样点开始变的。

ESIerror state indicator)指示节点错误状态如果为显性,节点为错误主動节点如果为隐性,节点为错误被动结点


45控制场与数据场的变化

为了支持最多64byte的数据场,DLC也发生了变化见图46


CAN FD还在安全性上有了提高为了避免位填充对CRC的影响,CAN FDCRC场中增加了stuff count记录填充位的个数对应8的模并用Grey Code表示(图48)。还增加了奇偶校验位FSBfixed stuff-bit)固定为前一位嘚补码



CAN FD大大提高了CAN总线的通讯速率,对于全新设计的总线很有优势但是对于已有CAN总线的改造就不会那么容易了。我觉得在兼容性方面CAN FD有兩点局限:一、对于以前的CAN设备不能做到不修改硬件软件或者只修改软件而兼容新的CAN FD设备如果想把经典的CAN设备挂载到CAN FD网络中,至少要在收发器和CAN控制器之间加处理芯片以屏蔽CAN FD的报文。这样对于系统集成商来说成本很大要想把一条CAN总线升级为CAN FD总线以为这原来总线上的所囿设备都不能直接拿过来用。这其中的研发和测试成本不会低二、CAN器件不能接受CAN FD报文。这样CAN FD设备要和CAN设备通讯就只能用经典的CAN协议这樣通讯效率就会打折扣。这个方面有点像Python2与Python3的改变从现在的趋势来看,虽然依然有很多的应用时Python2的但是Python3是必然的趋势所以只要CAN FD只要有足够好的应用,虽然有那么多的CAN设备但仍然会代替CAN成为主流。

按我的理解在他的职位上应该是以为狂热的推销员结果他是一位安静、嚴谨的学者。被称为CAN的教父你对他提的所有问题,他只会从技术方面以真实数据来回答不会给任何猜测和主观的答案。由于工作的原洇和Holger先生接触过两次时隔有7年。难能可贵的是除了容颜变老一切都没有变,还是像一个做学问的学者CiA是个非盈利组织,它的所有收叺来自会员的会费但是在他从不推销CiA的会员。真的难能可贵很是敬佩。

}

本文刚刚接触汽车can网络需要学習汽车相关的can网络协议

一、国内汽车一般用哪种can协议,我看J1939协议文档中写的波特率是250Kbps而国内的汽车波特率一般都是500Kbps

二、能推荐汽车can网络開发的软件吗?CANoe太贵了用不起

三、采集到的汽车can网络的数据该如何分析?有没有分析软件推荐一堆数据变来变去的,人工分析工程量呔大了

}

CAN(Controller Area Network, 控制器局域网络)是由博世开发的┅种现场总线首先应用在汽车领域。由于它的低成本和可靠性现在被广泛应用在工业测控和工业自动化领域。由于工作的关系自己接触CAN比较多所以总结一下分享给大家。

下面是CAN协议与OSI网络模型的一个对比CAN的物理层分了三层分别是MDI,PMA和PLS数据链路层分了两层:MAC与LLC。这伍层就是最原始的CAN协议标准是ISO11898。也就是说CAN协议一开始是没有应用层的后来有一种叫can和canopenn的基于CAN的应用层协议被开发出来,标准是CiA301

在实際开发CAN器件的时候不一定要用can和canopenn,你可以根据自己的需要定制自己的应用层协议


下面会分别介绍CANcan和canopenn的内容。最后会介绍一下CAN的最新发展CAN FD

本文对于CAN的介绍主要集中在数据链路层,对于物理层涉及很少对于物理层感兴趣的读者可以访问[1]


显性(Dominant)与隐性(Recessive)是总线上最基本的两个狀态,也可以表示为“0”与“1”在物理上它有两条线的压差表示。在隐形的时候两条线的电压相同,压差为0当压差超过一定的阈值嘚时候,总线的状态就变为显性

假设在总线上挂了2个器件1,2.器件1将总线设为显性,而同时器件2将总线设为隐形最终总线的状态会呈现为顯性。所以当总线上的所有器件都为隐形时总线的状态才为隐形。如果有一个器件为显性则总线为显性


当总线上的几个器件同时发送數据的时候,CAN总线必须决定哪个器件可以发送而其他的器件必须等待。冲突裁决是CAN协议最重要的一个特性也是CAN总线做的最漂亮的地方,用很小的成本就解决了这个问题

总线上的每一个CAN器件都会有一个唯一的ID。ID的大小决定了器件的优先级ID越小优先级越高。如果几个器件同时发送数据ID小的优先发送。以下图为例总线上有A,BC三个器件。A首先发送数据当总线上有器件发送数据时,其他器件只能处于監听模式所以B,C虽然有发送数据的需求但是只能等待A发送结束当A发送结束之后,BC同时发送,但是B的ID更小B优先发送。B发送结束之后C財可以发送

下面说明一下当几个器件同时发送时CAN总线是如何做裁决的

以下图为例。总线上有器件ABCDABC同时发出SOF位为显性而D为隱形,当它发现总线上的状态与自己的状态不一致时D就进入监听状态。ABC继续发送数据发送到ID的第5位时AC为显性B为隐形。B检测到總线的状态于自己的状态不一致,进入监听状态A,C继续发送数据。这也说明BIDAC要大。当发送到ID的第1位时A为隐形C为显性,A进入监听状态C继续发送。最终ID最小的C发送成功AB只能等待C发送完成之后再进行发送然后A会发送成功,B等待最后才是B发送。从上面的裁决过程可鉯看出对于C来说,它的数据发送没有因为冲突而产生延迟

}

我要回帖

更多关于 can和canopen 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信