2024年3月13日发(作者:富察香馨)
AN916
比较CAN和ECAN模块
作者:
Caio Gübel
Microchip Technology Inc.
ECAN接口特性
•实现的CAN协议:CAN 1.2、CAN 2.0A和CAN
2.0B
•支持DeviceNet™数据字节过滤器
•标准和扩展数据帧
•0-8字节数据长度
•可编程的比特率,最高为 1 Mb/s
•与PIC18XX8 CAN模块完全向下兼容
•三种工作模式:
-模式 0 – 传统模式
-模式1 – 支持DeviceNet的增强型传统模式
-模式2 – 支持DeviceNet的FIFO模式
•支持具有自动处理功能的远程帧
•带有区分优先级的两个接收报文存储缓冲器的双缓
冲接收器
•6个可编程作为接收和发送报文缓冲器的缓冲器
•16 个可与4个屏蔽寄存器之一相关的完全(标准/
扩展标识符)接收过滤器
•两个可以被分配给任何过滤器的完全接收过滤器屏
蔽寄存器
•一个可以被用作接收过滤器或接收过滤器屏蔽寄存
器的完全接收过滤器
•三个专用的发送缓冲器,具有应用程序指定的优先
级和中止功能
•利用集成的低通滤波器实现可编程唤醒功能
•可编程环回模式支持自测试操作
•在所有CAN接收器和发送器出现错误状态时,通
过中断发出信号
•可编程时钟源
•可编程的到定时器模块的链接,用于时间标记和网
络同步
•低功耗休眠模式
欲知有关CAN和ECAN的更多信息,请参见附录A:
“参考资料”。
随着带有增强型控制局域网(Enhanced Control Area
Network,ECAN)模块的PIC18FXX8X系列单片机的
面世,设计人员现在可以在PIC18FXX8系列器件原有
的CAN模块的和这种使能ECAN的新型器件之间进行
选择。
本应用笔记比较了两种模块的通信时间,并给出了结论
和建议,旨在帮助设计人员找到最适合给定应用和可用
部件的CAN解决方案。
比较和相关的建议均根据以下规则给出:
1.
2.
以指令条数(汇编语言)表示代码处理时间
以位时间表示发送和接收时间
CAN接口特性
•实现的CAN协议:CAN 1.2、CAN 2.0A和CAN
2.0B
•标准和扩展数据帧
•0-8字节数据长度
•可编程的比特率,最高为 1 Mb/s
•支持远程帧
•带有区分优先级的两个接收报文存储缓冲器的双缓
冲接收器
•6个完全(标准/扩展标识符)接收过滤器;两个
与高优先级接收缓冲器相关联,四个与低优先接收
缓冲器相关联
•两个完全接收过滤器屏蔽寄存器,每个都与高和低优
先级接收缓冲器相关联
•三个发送缓冲器,具有应用程序指定的优先级和中
止功能
•利用集成的低通滤波器实现可编程唤醒功能
•可编程环回模式支持自测试操作
•在所有CAN接收器和发送器出现错误状态时,通
过中断发出信号
•可编程时钟源
•可编程的到定时器模块的链接,用于时间标记和网
络同步
•低功耗休眠模式
2007 Microchip Technology 00916A_CN 第 1页
AN916
发送延时
CAN 实现的总线存取方法称为带冲突检测和报文优先
级仲裁的载波帧听多路存取(Carrier Sense Multiple
Access with Collision Detection and Arbitration on Mes-
sage Priorityi,CSMA/CD+AMP)。使用这种方法时,
将根据报文的优先级(由报文的标识符定义,标识符的
数字越小,优先级越高)解决发送冲突。
这种方法虽然可靠,但其发送报文的总时间会有变化。
这种变化一般不会给软实时系统带来问题,然而在需要
确定延时的硬实时系统中,发送总时间的变化可能导致
丢失死区时间。对最差情形下延时的分析不在本文的讨
论范围之内(见附录B:“CAN分析”了解有关该主题
的参考资料)。以下公式是描述这一过程的简化公式:
3.报文的总长度(包括填充位)应该尽可能地短,
因此,仔细选择报文标识符和报文内容非常重
要。
附录B:“CAN分析”提供了一份参考资料,介
绍了用来使填充量最小的控制优先级和数据发送
的有趣方法。
应用程序对接收的反应
CAN协议确保正确分配报文而没有规定单片机如何处
理报文。 因此,确保接收到报文的单片机有能力及时处
理报文以避免报文覆盖是至关重要的。
在这种情况下,可使用以下三种基本方法:
1.
2.
3.
增加处理器的时钟速率
降低总线速度
增加可用的接收缓冲器的数量
公式1:
L = Qj + Qt + Tt
其中:
L = 总延时
Qj = 排队抖动。发送任务所要花费的最长时间。它
表示将报文装入 CAN外设并请求发送的时间。
Qt = 排队时间。报文排队的最大有效时间。它包括
发送完已经在上一次仲裁中获胜的报文的时间、发
送所有具有更高优先级的报文的时间,以及所有总
线错误信令/恢复时间。
Tt = 有效发送时间。通过总线发送帧的时间。
第一种方法不仅要求单片机能够在更高的时钟频率下工
作,而且要求功耗和产生的噪声(由EMI引起)满足
系统规范。在某些场合,它可能适用,但必须进行仔细
的分析。在某些情形下,可能还需要调整硬件。
第二种方法相对而言使用较少,因为在许多情形下,总
线速度与外部因素有关,不能由设计人员控制。这些因
素包括关键报文的最大延时和传统硬件环境等。
第三种方法暗指系统中可以使用更多的缓冲器,或具有
将单片机升级为具有更多缓冲器的器件的可能性。
为了评估在CAN模块和ECAN模块中使用不同数量的
缓冲器的影响以及处理器速度的影响,已根据以下条件
进行了一些计算:
•主时钟:16、25、33和40MHz(16MHz是达到
1Mb/s比特率所需的最小频率)
•总线速度:1Mb/s
•RTR帧时间(无数据):47 和67µs
•响应报文发送时间: 130和154µs
由此,我们可以得出一些简单但却十分重要的结论:
1.将报文装载到外设的时间在使用高速总线(接近
1Mb/s)时对通信有影响。可用的发送缓冲器越
多,用来管理发送缓冲器的时间就越短。一般建
议至少使用三个发送缓冲器。
安排发送时间的最佳方法为截止期单调算法, 其
中截止期最近的发送被分配给最高的优先级,以
优先级递减的顺序依次类推。Microchip的应用
“
AN853
,
PIC18XXX8 CAN Driver with Pri-
笔记
(DS00853A)介绍了优oritized Transmit Buffer
”
先级发送机制的一种有趣的实现方案。
2.
DS00916A_CN 第 2页 2007 Microchip Technology Inc.
2024年3月13日发(作者:富察香馨)
AN916
比较CAN和ECAN模块
作者:
Caio Gübel
Microchip Technology Inc.
ECAN接口特性
•实现的CAN协议:CAN 1.2、CAN 2.0A和CAN
2.0B
•支持DeviceNet™数据字节过滤器
•标准和扩展数据帧
•0-8字节数据长度
•可编程的比特率,最高为 1 Mb/s
•与PIC18XX8 CAN模块完全向下兼容
•三种工作模式:
-模式 0 – 传统模式
-模式1 – 支持DeviceNet的增强型传统模式
-模式2 – 支持DeviceNet的FIFO模式
•支持具有自动处理功能的远程帧
•带有区分优先级的两个接收报文存储缓冲器的双缓
冲接收器
•6个可编程作为接收和发送报文缓冲器的缓冲器
•16 个可与4个屏蔽寄存器之一相关的完全(标准/
扩展标识符)接收过滤器
•两个可以被分配给任何过滤器的完全接收过滤器屏
蔽寄存器
•一个可以被用作接收过滤器或接收过滤器屏蔽寄存
器的完全接收过滤器
•三个专用的发送缓冲器,具有应用程序指定的优先
级和中止功能
•利用集成的低通滤波器实现可编程唤醒功能
•可编程环回模式支持自测试操作
•在所有CAN接收器和发送器出现错误状态时,通
过中断发出信号
•可编程时钟源
•可编程的到定时器模块的链接,用于时间标记和网
络同步
•低功耗休眠模式
欲知有关CAN和ECAN的更多信息,请参见附录A:
“参考资料”。
随着带有增强型控制局域网(Enhanced Control Area
Network,ECAN)模块的PIC18FXX8X系列单片机的
面世,设计人员现在可以在PIC18FXX8系列器件原有
的CAN模块的和这种使能ECAN的新型器件之间进行
选择。
本应用笔记比较了两种模块的通信时间,并给出了结论
和建议,旨在帮助设计人员找到最适合给定应用和可用
部件的CAN解决方案。
比较和相关的建议均根据以下规则给出:
1.
2.
以指令条数(汇编语言)表示代码处理时间
以位时间表示发送和接收时间
CAN接口特性
•实现的CAN协议:CAN 1.2、CAN 2.0A和CAN
2.0B
•标准和扩展数据帧
•0-8字节数据长度
•可编程的比特率,最高为 1 Mb/s
•支持远程帧
•带有区分优先级的两个接收报文存储缓冲器的双缓
冲接收器
•6个完全(标准/扩展标识符)接收过滤器;两个
与高优先级接收缓冲器相关联,四个与低优先接收
缓冲器相关联
•两个完全接收过滤器屏蔽寄存器,每个都与高和低优
先级接收缓冲器相关联
•三个发送缓冲器,具有应用程序指定的优先级和中
止功能
•利用集成的低通滤波器实现可编程唤醒功能
•可编程环回模式支持自测试操作
•在所有CAN接收器和发送器出现错误状态时,通
过中断发出信号
•可编程时钟源
•可编程的到定时器模块的链接,用于时间标记和网
络同步
•低功耗休眠模式
2007 Microchip Technology 00916A_CN 第 1页
AN916
发送延时
CAN 实现的总线存取方法称为带冲突检测和报文优先
级仲裁的载波帧听多路存取(Carrier Sense Multiple
Access with Collision Detection and Arbitration on Mes-
sage Priorityi,CSMA/CD+AMP)。使用这种方法时,
将根据报文的优先级(由报文的标识符定义,标识符的
数字越小,优先级越高)解决发送冲突。
这种方法虽然可靠,但其发送报文的总时间会有变化。
这种变化一般不会给软实时系统带来问题,然而在需要
确定延时的硬实时系统中,发送总时间的变化可能导致
丢失死区时间。对最差情形下延时的分析不在本文的讨
论范围之内(见附录B:“CAN分析”了解有关该主题
的参考资料)。以下公式是描述这一过程的简化公式:
3.报文的总长度(包括填充位)应该尽可能地短,
因此,仔细选择报文标识符和报文内容非常重
要。
附录B:“CAN分析”提供了一份参考资料,介
绍了用来使填充量最小的控制优先级和数据发送
的有趣方法。
应用程序对接收的反应
CAN协议确保正确分配报文而没有规定单片机如何处
理报文。 因此,确保接收到报文的单片机有能力及时处
理报文以避免报文覆盖是至关重要的。
在这种情况下,可使用以下三种基本方法:
1.
2.
3.
增加处理器的时钟速率
降低总线速度
增加可用的接收缓冲器的数量
公式1:
L = Qj + Qt + Tt
其中:
L = 总延时
Qj = 排队抖动。发送任务所要花费的最长时间。它
表示将报文装入 CAN外设并请求发送的时间。
Qt = 排队时间。报文排队的最大有效时间。它包括
发送完已经在上一次仲裁中获胜的报文的时间、发
送所有具有更高优先级的报文的时间,以及所有总
线错误信令/恢复时间。
Tt = 有效发送时间。通过总线发送帧的时间。
第一种方法不仅要求单片机能够在更高的时钟频率下工
作,而且要求功耗和产生的噪声(由EMI引起)满足
系统规范。在某些场合,它可能适用,但必须进行仔细
的分析。在某些情形下,可能还需要调整硬件。
第二种方法相对而言使用较少,因为在许多情形下,总
线速度与外部因素有关,不能由设计人员控制。这些因
素包括关键报文的最大延时和传统硬件环境等。
第三种方法暗指系统中可以使用更多的缓冲器,或具有
将单片机升级为具有更多缓冲器的器件的可能性。
为了评估在CAN模块和ECAN模块中使用不同数量的
缓冲器的影响以及处理器速度的影响,已根据以下条件
进行了一些计算:
•主时钟:16、25、33和40MHz(16MHz是达到
1Mb/s比特率所需的最小频率)
•总线速度:1Mb/s
•RTR帧时间(无数据):47 和67µs
•响应报文发送时间: 130和154µs
由此,我们可以得出一些简单但却十分重要的结论:
1.将报文装载到外设的时间在使用高速总线(接近
1Mb/s)时对通信有影响。可用的发送缓冲器越
多,用来管理发送缓冲器的时间就越短。一般建
议至少使用三个发送缓冲器。
安排发送时间的最佳方法为截止期单调算法, 其
中截止期最近的发送被分配给最高的优先级,以
优先级递减的顺序依次类推。Microchip的应用
“
AN853
,
PIC18XXX8 CAN Driver with Pri-
笔记
(DS00853A)介绍了优oritized Transmit Buffer
”
先级发送机制的一种有趣的实现方案。
2.
DS00916A_CN 第 2页 2007 Microchip Technology Inc.