如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
41ControllerAreaNetwork(CAN)41.1描述CAN控制器可以处理多种类型的帧:数据帧(Data)、远程帧(Remote)、错误帧(Error)、过载帧(Overload);处理速率可以达到1Mbit每秒。CAN控制器的访问可以通过配置多个寄存器来访问。有8个邮箱(mailbox)可以被使用。任何邮箱可以被编程为接收邮箱、发送邮箱。如果接收邮箱已经接收到一个报文,那么CAN控制器会加锁直到应用取出这个报文;否则已经接收的这个报文会被新接收的那个报文覆盖。发送邮箱必须同时激活。每个发送邮箱都被分配一个优先级。CAN控制器有一个16位的定时器,可以用于接收和发送报文的计数。此定时器在CAN控制器有效后开始计数。在时间触发模式下,此计数器可以在接收完最后一帧后自动复位或由应用程序复位。CAN控制器提供了优化的功能来支持TimeTriggeredCommunication(TTC)协议。41.2嵌入式功能1)充分兼容CAN2.0PartA和2.0PartB;2)速率可以达到1Mbit/s;3)8个具有以下功能的面向对象的邮箱:(1)每个消息的CAN规格2.0PartA和CAN规格2.0PartB的可编程性;(2)在接收和发送模式下的可配置性;(3)每个消息有独立的29位识别码和定义的掩码;(4)每一个邮箱数据对象有对应两个32位的可访问的数据寄存器;(5)在发送和接收消息时有一个16位的定时器来计数;(6)通过ID屏蔽的位域的硬件关联来加速家族ID处理。4)16位的内部定时器可用于计数和网络同步;5)可编程的接收缓存,长度可以达到8个邮箱对象;6)自动波特率和监听模式;7)(LowPowerMode)低功耗模式和在总线活动过程中的唤醒模式,或通过应用进入这些模式;8)可以处理数据帧(Data)、远程帧(Remote)、错误帧(Error)、过载帧(Overload)。41.7CAN控制器特征41.7.1CAN控制器概要CAN是一个多主串口通讯协议,可以高效的支持实时性、安全性要求比较高的实时控制应用场景,速率可以达到1Mbit/s。数据帧:发送节点发送数据帧给解决节点。最长的标准数据帧是108bit;最长的扩展数据帧128bit。远程帧:目的节点请求数据通过发送一个带有标识符远程帧给源节点。然后源节点发送一个数据帧作为回复给请求数据的节点。错误帧:任何节点检测到总线错误产生的帧。过载帧:为前一个报文和后一个报文之间或远程帧提供一个延迟的帧。AtmelCAN控制器为CPU提供充分兼容theCANprotocolV2.0PartAandV2.0PartB的功能。最小化CPU的通信负载。CAN控制器自动处理数据链路层和物理层。CPU读写数据或报文通过CAN控制器邮箱。每个邮箱有一个标识符。CAN控制器封装、解码要发送的报文或解析总线上收到的数据帧。远程帧、错误帧、过载帧在软件的监控下自动处理。41.7.2邮箱架构CAN模块有8个邮箱。每一个邮箱有个对应于CAN标志符的标志符。消息可以匹配标准帧标识符或扩展帧标识符。标志符在CAN初始化的时候被定义,后续可以动态改变,所以可以处理新的消息家族。多个邮箱可以被配置为相同的ID。每个邮箱可以被配置为发送或接收模式。邮箱类型在CAN_MMRx寄存器的MOT域中定义。41.7.2.1消息接收过程如果CAN_MIDx寄存器的MIDE域为1,则此邮箱可以处理扩展帧,否则可以处理标准帧。当接收到一个新的报文后,此报文ID被CAN_MAMx的值屏蔽,然后和CAN_MIDx值比较。如果相等,则把此消息ID拷贝到CAN_MIDx寄存器。如果一个邮箱要处理不同的报文(具有不同的ID),则CAN_MAMx寄存器屏蔽位将屏蔽ID家族中变化的位。当接收到一个报文后,应用必须解析CAN_MIDx寄存器中屏蔽的位。为了加速解码,CAN_MFIDx中变化的位都设置为0。41.7.2.2接收邮箱当CAN模块接收到一个报文后,CAN控制器查询优先级最高的邮箱,并比对ID。如果相等,则保存在此邮箱的数据寄存器中。根据配置,如果消息没有被应用识别,或一个带有相同ID新的消息接收到,此邮箱将会覆盖先前的一帧。也可以配置邮箱为消费者模式。此模式下,当接收到一个发送请求后,一个远程帧会被自动发送。接收的第一个答复被存放在对应的邮箱数据寄存器。多个邮箱可以组成链状结构来接收一个缓冲。这些邮箱必须配置为相同的ID,并为接收器模式,出来最后一个邮箱,应该被配置为写重复模式。最后一个邮箱要检测缓冲溢出。41.7.2.3发送邮箱当发送一个消息时,消息长度和数据写入到带有正确标识符的邮箱中。