CAN总线学习笔记一:CAN总线的相关概念
时间:02-25
来源:互联网
点击:
七、CAN的高层协议
CAN的高层协议(也可理解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。许多系统(像汽车工业)中,可以特别制定一个合适的应用层,但对于许多的行业来说,这种方法是不经济的。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容易。
一些可使用的CAN高层协议有:
1、制定组织主要高层协议
2、CiA CAL协议
3、CiA CANOpen协议
4、ODVA DeviceNet 协议
5、Honeywell SDS 协议
6、Kvaser CANKingdom协议
八、什么是标准格式CAN和扩展格式CAN?
标准CAN的标志符长度是11位,而扩展格式CAN的标志符长度可达29位。CAN 协议的2.0A版本规定CAN控制器必须有一个11位的标志符。同时,在2.0B版本中规定,CAN控制器的标志符长度可以是11位或29位。遵循CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文。如果禁止CAN2.0B,则CAN 控制器只能发送和接收11位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误。
目前,Philips公司主要推广的CAN独立控制器均支持CAN2.0B协议,即支持29位标识符的扩展格式报文结构。
九、CAN的报文格式:
(关于这部分内容,对于我下一步要进行编程实验控制CAN总线是很重要的一个知识点。很郁闷的是搜了老半天只看见有文字叙述这部分内容的,不仅说得不系统完整,而且远没有贴图说明来的具体直观。不过还好,搜到了一份E文版的CAN总线资料,再把这个资料详细看了下,再做了整理,还是用图来说明CAN传输的报文格式比较容易理解。老外写的东西确实比国内的好,这个不是我吹出来的,有兴趣下了看看就知道了,见附件下载。)
CAN通信是一种点对多点的传输协议,不是基于地址的传统的点对点传输协议。当一个点传输数据时,总线上的其它点都可以为接受方,它们可以通过ID来作出对总线上传送数据的处理(接收或者丢弃)。并且当数据被正确接收到以后,接收方便会作出应答响应。CAN协议还有一个很实用的功能,就是总线上的任一个节点可以请求其它节点向其发送数据,这被称作远程发送请求(RTR)。除此以外,CAN协议还有一个优点,当总线新加入一个节点进行通信时无需更改原有的程序,新节点只要通过ID就可以知道是接收还是丢弃数据。
CAN协议定义了四种不同的帧。
1、数据帧,这个帧被用于当一个节点把信息传送给系统的任何其它节点。数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结束。
2、远程帧,此帧是基于数据帧格式,只要把RTR位设置成远程发送请求(Remote Transmit Request),并且没有数据场。总线上发送此帧后,表示请求接收与该帧ID相符的数据帧。远程帧由6个不同的位场组成,即帧起始、仲裁场、控制场、CRC场、应答场、帧结束。
3、错误帧,任何单元监测到错误时就发送错误帧。错误帧由两个不同的场组成。第一个场是错误标志,用做为不同站提供错误标志的叠加;第二个场是错误界定符。
4、超载帧,节点需要增加时间来处理接收到的数据时便发送过载帧。超载帧包括两个位场:超载标志和超载界定符。
CAN总线传输的起始帧如图1。帧起始标志数据帧或远程帧的起始,由一个单独的“显性”位(0)组成。由控制芯片完成。
由图2和图3可以看到数据帧的两种不同格式,两种格式的差别只是它们的ID位数不同。
1、帧起始。
2、仲裁场,仲裁场包括标识符和远程发送请求位(RTR)。
对于CAN2.0A标准,标识符的长度为11位。RTR位在数据帧中必须是显性位,而在远程帧必须为隐性位。
对于CAN2.0,标准格式和扩展格式的仲裁场不同。在标准格式中,仲裁场由11位标识符和远程发送请求位组成。在扩展格式中,仲裁场由29位标识符和替代远程请求位(SRR) 、标志位(IDE)和远程发送请求位组成。
仲裁场的作用之一是说明数据帧或远程帧发送目的地;之二是指出是数据帧还是远程帧。
3、控制场,控制场由6个位组成,说明数据帧中有效数据的长度。标准帧的最高位是IDE位,扩展帧的最高位是保留位RB1,它们的次高位都是保留位RB0。低四位是DLC(Data Length Code)位,标识传送的数据字节数(0-8字节)。
4、数据场,数据场由数据帧中的发送数据组成。它可以为0-8个字节。
5、CRC场,CRC场包括CRC序列,这部分由SJA1000控制芯片完成。
6、应答场,应答场长度为两个位,包括应答间隙和应答界定符。由SJA1000控制芯片自动完成。
7、帧结束,每一个数据帧和远程帧均由一标志序列界定,这个标志序列由7个“隐性”位组成。这部分由SJA1000控制芯片自动完成。
仲裁场、控制场、数据场由软件编程配置SJA1000完成;帧起始、CRC场、应答场、帧结束由CAN总线控制芯片SJA1000自动完成。
CAN的高层协议(也可理解为应用层协议)是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。高层协议是在CAN规范的基础上发展起来的应用层。许多系统(像汽车工业)中,可以特别制定一个合适的应用层,但对于许多的行业来说,这种方法是不经济的。一些组织已经研究并开放了应用层标准,以使系统的综合应用变得十分容易。
一些可使用的CAN高层协议有:
1、制定组织主要高层协议
2、CiA CAL协议
3、CiA CANOpen协议
4、ODVA DeviceNet 协议
5、Honeywell SDS 协议
6、Kvaser CANKingdom协议
八、什么是标准格式CAN和扩展格式CAN?
标准CAN的标志符长度是11位,而扩展格式CAN的标志符长度可达29位。CAN 协议的2.0A版本规定CAN控制器必须有一个11位的标志符。同时,在2.0B版本中规定,CAN控制器的标志符长度可以是11位或29位。遵循CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文。如果禁止CAN2.0B,则CAN 控制器只能发送和接收11位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误。
目前,Philips公司主要推广的CAN独立控制器均支持CAN2.0B协议,即支持29位标识符的扩展格式报文结构。
九、CAN的报文格式:
(关于这部分内容,对于我下一步要进行编程实验控制CAN总线是很重要的一个知识点。很郁闷的是搜了老半天只看见有文字叙述这部分内容的,不仅说得不系统完整,而且远没有贴图说明来的具体直观。不过还好,搜到了一份E文版的CAN总线资料,再把这个资料详细看了下,再做了整理,还是用图来说明CAN传输的报文格式比较容易理解。老外写的东西确实比国内的好,这个不是我吹出来的,有兴趣下了看看就知道了,见附件下载。)
CAN通信是一种点对多点的传输协议,不是基于地址的传统的点对点传输协议。当一个点传输数据时,总线上的其它点都可以为接受方,它们可以通过ID来作出对总线上传送数据的处理(接收或者丢弃)。并且当数据被正确接收到以后,接收方便会作出应答响应。CAN协议还有一个很实用的功能,就是总线上的任一个节点可以请求其它节点向其发送数据,这被称作远程发送请求(RTR)。除此以外,CAN协议还有一个优点,当总线新加入一个节点进行通信时无需更改原有的程序,新节点只要通过ID就可以知道是接收还是丢弃数据。
CAN协议定义了四种不同的帧。
1、数据帧,这个帧被用于当一个节点把信息传送给系统的任何其它节点。数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结束。
2、远程帧,此帧是基于数据帧格式,只要把RTR位设置成远程发送请求(Remote Transmit Request),并且没有数据场。总线上发送此帧后,表示请求接收与该帧ID相符的数据帧。远程帧由6个不同的位场组成,即帧起始、仲裁场、控制场、CRC场、应答场、帧结束。
3、错误帧,任何单元监测到错误时就发送错误帧。错误帧由两个不同的场组成。第一个场是错误标志,用做为不同站提供错误标志的叠加;第二个场是错误界定符。
4、超载帧,节点需要增加时间来处理接收到的数据时便发送过载帧。超载帧包括两个位场:超载标志和超载界定符。
CAN总线传输的起始帧如图1。帧起始标志数据帧或远程帧的起始,由一个单独的“显性”位(0)组成。由控制芯片完成。
由图2和图3可以看到数据帧的两种不同格式,两种格式的差别只是它们的ID位数不同。
1、帧起始。
2、仲裁场,仲裁场包括标识符和远程发送请求位(RTR)。
对于CAN2.0A标准,标识符的长度为11位。RTR位在数据帧中必须是显性位,而在远程帧必须为隐性位。
对于CAN2.0,标准格式和扩展格式的仲裁场不同。在标准格式中,仲裁场由11位标识符和远程发送请求位组成。在扩展格式中,仲裁场由29位标识符和替代远程请求位(SRR) 、标志位(IDE)和远程发送请求位组成。
仲裁场的作用之一是说明数据帧或远程帧发送目的地;之二是指出是数据帧还是远程帧。
3、控制场,控制场由6个位组成,说明数据帧中有效数据的长度。标准帧的最高位是IDE位,扩展帧的最高位是保留位RB1,它们的次高位都是保留位RB0。低四位是DLC(Data Length Code)位,标识传送的数据字节数(0-8字节)。
4、数据场,数据场由数据帧中的发送数据组成。它可以为0-8个字节。
5、CRC场,CRC场包括CRC序列,这部分由SJA1000控制芯片完成。
6、应答场,应答场长度为两个位,包括应答间隙和应答界定符。由SJA1000控制芯片自动完成。
7、帧结束,每一个数据帧和远程帧均由一标志序列界定,这个标志序列由7个“隐性”位组成。这部分由SJA1000控制芯片自动完成。
仲裁场、控制场、数据场由软件编程配置SJA1000完成;帧起始、CRC场、应答场、帧结束由CAN总线控制芯片SJA1000自动完成。
总线 CAN总线 电子 汽车电子 收发器 PLC 传感器 电压 相关文章:
- 热插拔和缓冲I2C总线 (04-14)
- PCIe总线何时突破Unix服务器坚冰(02-03)
- TMS320VC5402 HPI接口与PCI总线接口设计(04-12)
- 基于Nios II的I2C总线接口的实现(04-09)
- 双口RAM CY7C026在高速数据采集系统中的应用(04-12)
- 计算机在新型多电机同步系统中的应用(07-08)