用于并置控制器区域网络数据有效负载的方法

文档序号:7909874阅读:315来源:国知局
专利名称:用于并置控制器区域网络数据有效负载的方法
技术领域
本发明涉及控制器区域网络(CAN或CAN总线)兼容的微控制器,且特定来说涉及 CAN消息的存储。
背景技术
控制器区域网络(CAN)是有效地以高水平的安全性支持分散式实时控制的串行通信协议。CAN的应用范围从高速数字通信网络到低成本多路复用布线。CAN是用于实时应用的高整体性串行数据通信总线。CAN以高达1兆位/秒的数据速率操作,具有优秀的错误检测与约束能力,且最初开发用于汽车中,但现在也用于其它领域中。CAN总线与CPU 之间的接口通常称为CAN控制器。CAN背后的动机是通过改善汽车电子器件、引擎控制单元、传感器、防滑刹车系统等的互可操作性同时减小线束重量及复杂性而使汽车更可靠、安全且燃料高效。由于CAN的出现,CAN协议已在工业自动化及汽车/卡车应用中获得广泛普及。CAN总线在嘈杂环境中的强健性及从故障条件检测及恢复的能力使CAN适合与工业控制设备、医学设备、测试设备、移动及便携式机器、器具等一起使用。CAN是具有一个逻辑总线的不同步串行总线系统。其具有具有相等总线节点的开放线性总线结构。CAN总线由两个或两个以上节点组成。可在不干扰其它节点的通信的情况下动态地改变总线上节点的数目。CAN逻辑总线对应于“线与”机构,“空闲”位(通常但未必等于逻辑电平“1”)被 “占有”位(通常是逻辑电平“0”)覆写。只要没有总线节点正在发送占有位,那么总线在空闲状态中,但来自任一总线节点的占有位产生占有总线状态。因此,对于CAN总线,选择能够传输两个可能位状态(占有及空闲)的媒体。所使用的常见物理媒体是双绞线对。总线则称为“CANH”及“CANL”,且可直接连接到CAN控制器节点或经由连接器连接到其。在CAN总线协议中,并非寻址总线节点,而是将地址信息包含于所传输的消息中。 此经由识别消息内容(例如,引擎速度、油温等)的识别符(每一消息的部分)来进行。所述识别符另外指示消息的优先等级。所述识别符的二进制值越低,则消息的优先等级越高 (更多占有位)。原始CAN规范(版本1.0、1.2及2.0幻将消息识别符定义为具有11位的长度,从而给出可能2048个消息识别符。“扩展的CAN”规范版本2. OB允许使用11及/或四位的消息识别符长度( 位的识别符长度允许超过536,000, 000个消息识别符)。所述CAN规范(所有版本)出于所有目的以引用方式并入本文中。
通常,两种方法可用于CAN,因为CAN标准不涵盖CAN控制器的架构,这两种方法是“基本CAN”及“完全CAN”(不要与CAN 1及CAN 2或标准识别符及扩展的识别符混淆); 其在消息的缓冲上不同。基本CAN控制器架构类似于简单UART,除发送完整帧而非字符外。通常,存在单个传输缓冲器及双缓冲接收缓冲器。举例来说,微控制器将帧放入传输缓冲器中,且在发送所述帧时接收中断。当在接收缓冲器中接收到帧时,微控制器接收用以腾空所述接收缓冲器的中断且在接收随后帧之前将所述帧从所述接收缓冲器腾空。在基本CAN控制器架构中, 微控制器必须管理传输及接收,且处置帧的存储。 完全CAN控制器架构包含专用缓冲器且将帧存储于此专用缓冲器中。可依据所述专用缓冲器的大小处理有限数目个帧。以映射到每一帧缓冲器的帧的识别符给所述缓冲器加标签。微控制器可更新所述缓冲器中的帧且对其进行标记以供传输。可检查接收缓冲器以查看是否已接收到具有匹配识别符的帧。另外,可使用滤波器来预筛选所接收到的帧,以使得仅既定供特定CAN控制器使用的那些帧存储于接收缓冲器中。标准CAN对扩展的CANCAN协议通常以两个版本获得应用CAN 1. 0及CAN 2. 0。CAN 2. 0与CAN 1. 0向后兼容,且大多数新控制器根据CAN 2.0构建。CAN 2.0标准存在两个部分部分A及部分 B。在CAN 1. 0及CAN 2. OA的情况下,识别符必须为11位长。在CAN 2. OB的情况下,识别符可为11位(“标准”识别符)或四位(“扩展的”识别符)。为依从于CAN 2. 0,控制器必须为2.0部分B被动或2.0部分B主动。如果其是被动的,那么其必须忽略扩展的帧(当 CAN 1.0控制器看到具有四位识别符的帧时,其将产生错误帧)。如果其是主动的,那么其必须允许接收及传输扩展的帧。存在用于发送及接收两种类型的帧的一些兼容性规则。CAN 2. OB主动控制器将发送及接受标准帧及扩展的帧两者。CAN 2. OB被动控制器将发送及接收标准帧,且将丢弃不具有错误的扩展的帧。CAN 1. 0控制器在看到扩展的帧时,其将产生错误。因此,其中网络上存在单个 CAN1. 0控制器的所述网络不能够与所述网络上的扩展的帧共处;所有控制器必须使用标准帧发送。控制器架构CAN标准不涵盖控制器的架构,因此如何使用其存在变化形式。虽然存在两种一般方法基本CAN及完全CAN(不要与CAN 1. 0及2. 0或标准识别符及扩展的识别符混淆); 其在消息的缓冲上不同。如上所述,在基本CAN控制器中,架构类似于简单UART,除发送完整帧而非字符外(通常)存在单个传输缓冲器及双缓冲接收缓冲器。CPU将帧放入传输缓冲器中,且在发送帧时采取中断;CPU将帧接收于接收缓冲器中,采取中断且腾空所述缓冲器(在接收随后帧之前)。CPU必须管理传输及接收,且处置帧的存储。如上所述,在完全CAN控制器中,帧存储于所述控制器的专用缓冲器中。可处理有限数目个帧(通常16个),因为网络上可存在更多的帧,以映射到每一缓冲器的帧的识别符给所述缓冲器加标签。CPU可更新所述缓冲器中的帧且对其进行标记以供传输;可检查缓冲器以查看是否已接收到具有匹配识别符的帧。完全CAN设计的意图是在网络中提供一组“共享变量” ;CPU周期性地更新所述变量(即,缓冲器中的帧的内容);CPU还可检查所述变量。实际上,(当然)事情由于并行性困难而并不如此简单当从帧读取一组字节时,控制器可用新帧的内容覆写数据,且在许多控制器中仅通过状态旗标来用信号通知此情况。在“基本CAN”实施方案中,通常存在一个具有一个或一个以上相关联消息接受滤波器的双缓冲接收信道。仅具有一个双缓冲消息信道意指处理器必须能够在此时间内处置先前消息。在“完全CAN”实施方案中,通常存在多达15个消息缓冲器或信道,每一消息缓冲器或信道具有一个相关联消息接受滤波器。具有大量接收缓冲器可在处理器非常慢的情况下有助于处理消息业务的突发,然而,如果总消息业务使得其倾覆处理器能力,那么没有什么缓冲量可防止消息的最终损失。通常,消息被传送到可由中央处理单元(CPU)读取的 FIFO存储器中。所述CPU接着可响应以中断所接收数据或将控制信息从数据荷载分离。然而,在许多应用中,至少对于传输的某些部分,极少关注所附加控制信息且所述数据荷载扩散于必须从FIFO存储器重新汇编的多个消息上。此可导致不需要的CPU开销。因此,此项技术中需要一种可供用户更方便地处置某些数据传输的CAN实施方案。

发明内容
根据一实施例,一种控制器区域网络(CAN)控制器单元可包含消息汇编缓冲器, 其接收串行位流;缓冲器存储器,其与所述消息汇编缓冲器并联耦合;CAN控制单元,其与所述消息汇编及所述缓冲器存储器耦合;及至少一个控制寄存器,其中所述至少一个控制寄存器可操作以经编程以致使所述CAN控制单元以至少第一及第二模式存储被接收于所述消息汇编寄存器中的消息,其中在所述第一模式中,将所述所接收CAN消息的控制信息及数据有效负载存储于所述缓冲器存储器中,且在所述第二模式中,仅将所述CAN消息的所述数据有效负载存储于所述缓冲器存储器中。根据进一步实施例,所述控制寄存器可包含指示所述第二模式被设定的第一位。 根据进一步实施例,所述控制寄存器可经编程以致使所述CAN控制单元进一步将时间戳信息连同所述控制信息一起存储。根据进一步实施例,所述控制寄存器可包含指示存储所述时间戳信息的第二位。根据进一步实施例,所述控制寄存器可包含指示何时产生所述时间戳信息的第三位。根据进一步实施例,当在所述第二模式中时,所述装置可忽略起始时间戳信息的所述存储的设定。根据进一步实施例,所述缓冲器存储器可为FIFO存储器。根据进一步实施例,所述FIFO存储器可包含多个可配置FIFO缓冲器。根据进一步实施例,所述缓冲器存储器可包含多个可配置缓冲器。根据进一步实施例,所述单元可进一步包含用于每一可配置缓冲器的控制寄存器,所述控制寄存器包含用于确定相应缓冲器的操作模式的至少一个位。根据进一步实施例,所述单元可进一步包含将多个屏蔽寄存器及多个滤波器寄存器与所述CAN控制单元耦合的逻辑,其中所述逻辑产生指示消息汇编缓冲器移位寄存器中的有效条目的信号。根据另一实施例,一种存储控制器区域网络(CAN)消息的方法可包含以下步骤_接收CAN消息;-汇编所述CAN消息;及-确定存储模式,其中在第一模式中,将所述所接收CAN消息的控制信息及数据有效负载存储于缓冲器存储器中,且在第二模式中,仅将所述CAN消息的所述数据有效负载存储于所述缓冲器存储器中。根据所述方法的进一步实施例,所述CAN消息可为标准CAN消息以及扩展的CAN消息。根据所述方法的进一步实施例,可通过设定控制寄存器中的第一位来编程所述第二模式。根据所述方法的进一步实施例,可提供多个缓冲器存储器且可在相关联控制寄存器中编程每一缓冲器存储器的操作模式。根据所述方法的进一步实施例,可提供第三模式,在所述第三模式中将时间戳信息连同控制信息及数据有效负载一起存储。根据所述方法的进一步实施例,可以可编程方式产生时间戳信息。根据所述方法的进一步实施例,可通过设定控制寄存器中的第二位来编程所述第三模式。根据所述方法的进一步实施例,当在所述第二模式中时,可忽略起始时间戳信息的所述存储的设定。根据所述方法的进一步实施例,所述缓冲器存储器可为FIFO存储器。根据所述方法的进一步实施例,所述FIFO存储器可包含多个可配置FIFO缓冲器,且所述方法进一步包含配置所述FIFO缓冲器的步骤。根据所述方法的进一步实施例,可通过消息汇编缓冲器移位寄存器来执行所述汇编CAN消息的步骤。根据所述方法的进一步实施例,所述方法可进一步包含借助多个屏蔽寄存器及多个滤波器寄存器来产生有效性信号的步骤,所述有效性信号指示所述消息汇编缓冲器移位寄存器中的有效条目。根据又一实施例,一种微控制器可包含中央处理单元(CPU);控制器区域网络 (CAN)控制器,其包含消息汇编缓冲器,其接收串行位流;FIFO存储器,其与所述消息汇编缓冲器且与所述CPU并联耦合;CAN控制单元,其与所述消息汇编及所述FIFO存储器耦合; 及控制寄存器,其中所述控制寄存器可操作以由所述CPU通过设定一位来编程以致使所述 CAN控制单元以至少第一及第二模式将所接收的消息存储于所述消息汇编寄存器中,其中在所述第一模式中,将所述所接收CAN消息的控制信息及数据有效负载存储于所述FIFO存储器中,且在所述第二模式中,仅将所述CAN消息的所述数据有效负载存储于所述FIFO存储器中。根据所述微控制器的进一步实施例,所述微控制器可进一步包含时间捕获单元, 其中所述控制寄存器包含可经编程以致使所述CAN控制单元进一步将来自所述时间捕获单元的时间戳信息连同所述控制信息一起存储的第二位。根据下文更特定来说对如附图中所图解说明的本发明优选实施例的说明将明了本发明的上述及其它目标、特征及优点。


图1展示根据一实施例的CAN模块/控制器的部分的框图;图2展示根据另一实施例的具有CAN模块/控制器的微控制器的部分的框图;图3展示标准CAN消息与扩展的CAN消息之间的差异;图4展示在第一操作模式中的FIFO的组织;图5展示在第二操作模式中的FIFO的组织;图6展示在第三操作模式中的FIFO的组织;图7展示来自图1的CAN协议引擎的实施例;图8展示比较器单元的例示性实施例;图9展示位比较器单元的另一例示性实施例;及图10展示常规CAN控制器模块。
具体实施例方式参照图10,其图解说明供用于微控制器中的常规CAN控制器的接收缓冲器818、 820及822以及相关联屏蔽802、808及滤波器寄存器804、806、810、812、814、816。缓冲器 820(指定为消息汇编缓冲器(MAB))发挥作用以仅监视用于传入消息的CAN逻辑总线(未展示)。MAB 820保持来自总线的经去充填位流。所述位流由包含识别符及数据字段的消息(即,数据帧、远程帧或其它帧)组成(未展示)。CAN控制器包含两个可由微控制器的 CPU存取的专用缓冲器818及822。MAB 820允许这些接收缓冲器818及822并行存取所述消息。MAB 820还允许接受滤波器806及816存取所述消息的识别符部分。位流消息到接收缓冲器818或822的并行传送在接受屏蔽802及808以及接受滤波器804、806、810、812、 814及816将接受匹配测试施加到所述消息之前可不被允许。分别使用可编程接受滤波器屏蔽802及808来选择应将未经充填位流消息的哪些位与接受滤波器804及806以及810、812、814及816的内容进行比较。接受匹配测试如下进行滤波器804、806、810、812、814及816接收所述消息的识别符字段且将所述字段与滤波器值进行比较。如果所述识别符字段与滤波器值之间存在匹配,那么将所述消息加载到匹配滤波器的对应接收缓冲器818或822中。滤波器804及806 连接到缓冲器818,滤波器810、812、814及816连接到缓冲器822。接收缓冲器存在暗示的优先等级。缓冲器818是较高优先等级缓冲器且具有与其相关联的消息接受滤波器804及806。缓冲器822是较低优先等级缓冲器且具有与其相关联的接受滤波器810、812、814及816。与缓冲器818相关联的滤波器比与缓冲器822相关联的滤波器少意指缓冲器818比缓冲器822更具限制性。更具限制性的缓冲器818含蓄地具有与其相关联的较高临界点。在MAB 820快速连续地接收两个“高优先等级”消息时,接收缓冲器818 (其被指定为第一高优先等级缓冲器)将接收第一高优先等级消息。在接收第二高优先等级消息时, MAB 820发现缓冲器818当前由高优先等级消息占据。MAB 820接着引导缓冲器822 (其被指定为第二高优先等级缓冲器)接收所述第二高优先等级消息。在此情境中,缓冲器818 及822分别被排定等级为所述第一高优先等级缓冲器及所述第二高优先等级缓冲器。中央处理单元(CPU)(未在图10中展示)可在接收缓冲器818及822中的一者上操作,而另一者供用于接收或保持先前接收的消息。在两个高优先等级消息的到达的情况下的协议由接收缓冲器818及822的控制寄存器(未展示)中的BMT位实现。表I描绘并解释接收缓冲器818的控制寄存器,其中R/ W意指可读取/可写入位,且其中R意指只读位。表 I位7 位6 位5 位4 位3 位2 位1 位0R/ff R/ff R/ff R/ff R/ff R/ff RR/W位7:消息就绪状态1 =接收缓冲器含有有效所接收消息0 =接收缓冲器打开以接收新消息位仅由CAN模块设定,位仅由CPU清空。位6到5 接收缓冲器操作模式
11 =接收所有消息,包括那些具有错误的消息10 =仅接收具有扩展的识别符的有效消息01 =仅接收具有标准识别符的有效消息00 =接收所有有效消息位4:消息接收中断启用1=中断被启用0=中断被停用位3 所接收远程传送请求1 =接收到远程传送请求0 =未接收到远程传送请求位2 (BUKT)启用到接收缓冲器122的过流1 =接收缓冲器118过流将写入到缓冲器1220 =不允许到缓冲器122的过流位1 只读取位2 (BUKT)的拷贝位0 指示哪一接受滤波器启用消息接收1 =与缓冲器122相关联的接受滤波器0 =与缓冲器118相关联的接受滤波器如果设定为“1”,那么BMT位实施基于优先等级的协议。表II描绘并解释接收缓冲器822的控制寄存器。表II位7 位6 位5 位4 位3 位2 位1 位0R/ff R/ff R/ff R/ff R/ff R/ff R/ff R/W位7:消息就绪状态1 =接收缓冲器含有有效所接收消息0 =接收缓冲器打开以接收新消息位仅由CAN模块设定,位仅由CPU清空。位6到5 接收缓冲器操作模式[这些位是任选的]11 =接收所有消息,包括那些具有错误的消息10 =仅接收具有扩展的识别符的有效消息01 =仅接收具有标准识别符的有效消息00 =接收所有有效消息位4:消息接收中断启用1=中断被启用0=中断被停用位3 所接收远程传送请求1 =接收到远程传送请求0 =未接收到远程传送请求位2到0 指示哪一接受滤波器启用消息接收101=接受滤波器116
100=接受滤波器114011=接受滤波器112010=接受滤波器110001 =接受滤波器106 [仅在缓冲器118的控制寄存器中BUKT位设定为“1”的情况下]000 =接受滤波器104 [仅在缓冲器118的控制寄存器中BUKT位设定为“1”的情况下]图1展示根据一实施例的常规CAN控制器的修改。此处,仅展示CAN控制器的最相关部分。消息汇编缓冲器(MAB)块110与缓冲器存储器120耦合。存储器120可配置为 FIFO存储器且可为独立的存储器装置。然而,根据其它实施例,也可由微处理器系统或微控制器的主存储器来形成存储器120。因此,微控制器可使用其通用存储器(举例来说,其数据存储器),且指派所指定的存储器空间以形成缓冲器存储器120。特定来说,在缓冲器存储器120由标准存储器装置形成的情况下,可添加额外电路以将FIFO存储器的功能性添加到缓冲器存储器120。提供CAN控制引擎130以控制所接收缓冲器条目到存储器120中的传送。至少一个控制寄存器140与CAN控制引擎130耦合且可编程以选择各种各样的不同操作模式。缓冲器存储器或FIFO存储器120可划分成多个缓冲器或FIFO 0.. 31,如图所示。每一缓冲器/FIFO 0. . 31可具有多个消息条目,其中所述缓冲器/FIFO在大小及操作特性上是可编程的。举例来说,FIF00具有四个消息缓冲器(ΜΒ0到MB3)条目,FIFO 1具有两个缓冲器条目等。图1还展示每一 FIFO 0.. 32的例示性相关联开始地址。根据一个实施例,经指派以存储来自MAB 110的消息的缓冲器条目150可由四个32位双字组成。根据各种实施例,配置寄存器140可具有第一位160且任选地还具有第二位170,第二位170指示来自MAB 110 的数据以其来存储于缓冲器存储器120中的模式。举例来说,第一位160可指示仅CAN消息的数据荷载传送到FIFO 120中。因此,当被设定时,所有进一步控制信息被清除掉且仅所述数据荷载传送到FIFO存储器120中。根据另一实施例,可使用第二位170来将来自时间捕获单元180的额外时间戳信息添加到所接收消息。根据进一步实施例可实施多个第二位170,如寄存器140中的点线额外位所指示,以规定在消息的第一位(开始位)处还是在消息的结束(停止位)处捕获时间。因此,导致时间戳的实际事件可为可选择的。具有更多指定模式位的其它配置是可行的。通常可存在用于装置中的每一 FIFO的配置寄存器,如点线所指示。具有图1中的用于每一 FIFO的单独位将允许应用程序将一个FIFO当作数据积累FIFO (其中位160被设定)且将单独FIFO视为用于需要由CPU进行进一步处理的通用FIFO (其中位160清空)。图1展示其中FIF00配置为位160清空的情景。在此实施例中,每一消息缓冲器 (ΜΒ0到MB3)包含4个32位字,其中数据如图4(其中170清空)或图5(其中170被设定) 中所示布置。根据另一实例,如果FIF00配置为位160被设定,那么图1中的缓冲器条目 150将仅具有两个32位字(数据0及数据1),其对应于来自CAN协议的数据,如图6中所示。因此,根据一实施例,当位160被设定时,CAN控制引擎130控制CAN消息的传送,以使得仅所述CAN消息的数据有效负载传送到FIFO 120中。可这样做,以使得在没有任何间歇控制信息的情况下在FIFO 120内形成连续数据流。
模块含有用以存储CAN消息的若干个FIFO缓冲器FIF00. .31。所述FIFO可完全配置,其中CAN消息存储于模块外部,系统存储器中的任何地方。每一 FIFO可配置为传输或接收FIFO,具有独立的大小、用户可读头部/尾部指针、可独立配置的中断、其它状态位以在传输或接收消息时给出其状态。根据一实施例,可执行以下步骤来配置CAN模块FIFO:将模块置于配置模式 (0PM0D = 100);分配将FIFO定位于其中的存储器的区域(通常是SRAM的块);以FIFO的物理开始地址(基址)更新相应寄存器;以FIFO大小更新FIFO控制寄存器(CFIF0C0N. FSIZE);选择FIFO成为传输还是接收FIFO (CFIF0C0N.TXEN);设定控制寄存器140中的控制位中的任一者(举例来说,位160或170);及将模块置于正常模式(0PM0D = 000)。一旦FIFO存储器120的FIFO缓冲器已配置为传输FIFO,那么用户能够使用所述 FIFO缓冲器来传输数据。用户可读取FIFO尾部指针(CFIF0UA),其给出用以放置待传输的消息的FIFO中的下一位置。将必须由CPU将此地址翻译成虚拟地址。应加载CAN消息,在 CFIF0UA所给出的位置处开始。一旦FIFO缓冲器已加载有待传输的消息,那么用户通过设定CFIF0C0N. UINC位来递增FIFO头部指针。此将递增头部指针且将CFIF0UA所指向的地址增加四个32位字或16个字节。那么消息已准备好被传输。一旦FIFO存储器120的FIFO缓冲器已配置为具有由控制位160、170或任何其它控制位设定的相应传送模式的接收FIFO,那么用户将能够在消息由FIFO接收时读取所述消息。在接收到消息之后,用户将从CFIF0UA读取消息的开始的物理地址。接着可从此地址读取消息。在从FIFO读取消息之后,用户可通过设定CFIF0C0N. UINC位来更新尾部指针。 此将递增尾部指针且将CFIF0UA所指向的地址增加4或2,此取决于控制寄存器140中的位 160的值。然而,可自动执行此递增,如下文将关于图2更详细地解释。CAN模块连续地监视CAN总线上的消息。当消息由CAN模块接收时,可将消息识别符与目前配置的滤波器/屏蔽组合进行比较,如下文将结合另一实施例更详细地解释。如果匹配发生,那么模块会将消息存储于指针寄存器所指向的FIFO中。图3展示标准CAN消息及扩展的消息的结构。两种类型在添加到消息的控制数据的大小上不同。特定来说,扩展的消息允许显著更长的识别位,而两种消息中载运的实际数据的大小总是8个字节。在CAN控制引擎130的控制下,这些消息间断地存储于消息汇编缓冲器110中且接着传送到存储器120的相应FIFO中。依据缓冲器存储器120的设计及组织,存储那些消息的不同方式适用。举例来说,在32位系统中,每一缓冲器条目MB0、MB1、 MB2、MB3可具有四个32位字数据0、数据1、数据2及数据3。在第一操作模式中,所接收标准或扩展的消息可存储于这四个32位字内,其中前两个字数据0及数据1可含有识别符 (SID、EID)及控制位,举例来说,指示消息中所含有的实际数据(DLC)的长度,而实际数据总是存储于第三及第四字数据2及数据3中。此情况的实例展示于图4中。第二模式可类似于第一模式且可通过设定(举例来说)控制寄存器140中的相应位170来触发。如果此位被设定,那么可从选择性地由消息的接收(或消息的开始)触发的时间捕获单元180获得的额外信息可存储于前两个数据字DATO及DATl中。因此,可将从时间捕获单元180中的相应计时器捕获的时间戳信息添加到消息。此情况的实例展示于图5中。根据各种实施例,存在特殊接收模式,其中仅存储数据,且识别符、被保留位及其它控制信息不与消息一起存储。用户通过设定控制寄存器140中的位160来启用此模式。在此模式中,存储8个数据字节,而不管控制信息如何。因此,根据一特定实施例,忽略数据长度信息(DLC)且可用OOh来填充未使用字节。此模式的一个可能用途是并置其数据跨越多个消息的消息,举例来说,跨越CAN总线传输串。根据一个实施例,不与数据一起存储时间戳,即使上文所解释的相应位170被设定。举例来说,如果将串“Hello World”从节点1发送到节点2,那么必需两个消息,因为所述串长于8个字节。在前两个操作模式中,消息将如下被存储
权利要求
1.一种控制器区域网络(CAN)控制器单元,其包含 消息汇编缓冲器,其接收串行位流;缓冲器存储器,其与所述消息汇编缓冲器并联耦合; CAN控制单元,其与所述消息汇编及所述缓冲器存储器耦合;及至少一个控制寄存器,其中所述至少一个控制寄存器可操作以经编程以致使所述CAN 控制单元以至少第一及第二模式存储被接收于所述消息汇编寄存器中的消息,其中在所述第一模式中,将所述所接收CAN消息的控制信息及数据有效负载存储于所述缓冲器存储器中,且在所述第二模式中,仅将所述CAN消息的所述数据有效负载存储于所述缓冲器存储器中。
2.根据权利要求1所述的单元,其中所述控制寄存器包含指示所述第二模式被设定的第一位。
3.根据权利要求1所述的单元,其中所述控制寄存器可经编程以致使所述CAN控制单元进一步将时间戳信息连同所述控制信息一起存储。
4.根据权利要求3所述的单元,其中所述控制寄存器包含指示存储所述时间戳信息的笛一位
5.根据权利要求4所述的单元,其中所述控制寄存器包含指示何时产生所述时间戳信息的第三位。
6.根据权利要求3所述的单元,其中当在所述第二模式中时,用以存储所述时间戳信息的编程被忽略。
7.根据权利要求1所述的单元,其中所述缓冲器存储器为FIFO存储器。
8.根据权利要求7所述的单元,其中所述FIFO存储器包含多个可配置FIFO缓冲器。
9.根据权利要求1所述的单元,其中所述缓冲器存储器包含多个可配置缓冲器。
10.根据权利要求9所述的单元,其进一步包含用于每一可配置缓冲器的控制寄存器, 所述控制寄存器包含用于确定相应缓冲器的操作模式的至少一个位。
11.根据权利要求1所述的单元,其进一步包含将多个屏蔽寄存器及多个滤波器寄存器与所述CAN控制单元耦合的逻辑,其中所述逻辑产生指示所述消息汇编缓冲器移位寄存器中的有效条目的信号。
12.—种存储控制器区域网络(CAN)消息的方法,其包含以下步骤 接收CAN消息;汇编所述CAN消息;确定存储模式,其中在第一模式中,将所述所接收CAN消息的控制信息及数据有效负载存储于缓冲器存储器中,且在第二模式中,仅将所述CAN消息的所述数据有效负载存储于所述缓冲器存储器中。
13.根据权利要求12所述的方法,其中所述CAN消息可为标准CAN消息以及扩展的CAN 消息。
14.根据权利要求12所述的方法,其中通过设定控制寄存器中的第一位来编程所述第二模式。
15.根据权利要求12所述的方法,其中提供多个缓冲器存储器且可在相关联控制寄存器中编程每一缓冲器存储器的操作模式。
16.根据权利要求12所述的方法,其进一步包含第三模式,在所述第三模式中将时间戳信息连同所述控制信息及数据有效负载一起存储。
17.根据权利要求16所述的方法,其中以可编程方式产生时间戳信息。
18.根据权利要求16所述的方法,其中通过设定控制寄存器中的第二位来编程所述第三模式。
19.根据权利要求16所述的方法,其中当在所述第二模式中时,忽略用以存储所述时间戳信息的编程。
20.根据权利要求12所述的方法,其中所述缓冲器存储器为FIFO存储器。
21.根据权利要求20所述的方法,其中所述FIFO存储器包含多个可配置FIFO缓冲器, 且所述方法进一步包含配置所述FIFO缓冲器的步骤。
22.根据权利要求12所述的方法,其中通过消息汇编缓冲器移位寄存器来执行所述汇编CAN消息的步骤。
23.根据权利要求12所述的方法,其进一步包含借助多个屏蔽寄存器及多个滤波器寄存器来产生有效性信号的步骤,所述有效性信号指示所述消息汇编缓冲器移位寄存器中的有效条目。
24.一种微控制器,其包含中央处理单元(CPU);控制器区域网络(CAN)控制器,其包含消息汇编缓冲器,其接收串行位流;FIFO存储器,其与所述消息汇编缓冲器且与所述CPU并联耦合;CAN控制单元,其与所述消息汇编及所述FIFO存储器耦合;及控制寄存器,其中所述控制寄存器可操作以由所述CPU通过编程一位来编程以致使所述CAN控制单元以至少第一或第二模式存储被接收于所述消息汇编寄存器中的消息,其中在所述第一模式中,将所述所接收CAN消息的控制信息及数据有效负载存储于所述FIFO存储器中,且在所述第二模式中,仅将所述CAN消息的所述数据有效负载存储于所述FIFO存储器中。
25.根据权利要求M所述的微控制器,其进一步包含时间捕获单元,其中所述控制寄存器包含可经编程以致使所述CAN控制单元进一步将来自所述时间捕获单元的时间戳信息连同所述控制信息一起存储的第二位。
全文摘要
一种控制器区域网络(CAN)控制器单元具有消息汇编缓冲器,其接收串行位流;缓冲器存储器,其与所述消息汇编缓冲器并联耦合;CAN控制单元,其与所述消息汇编及所述缓冲器存储器耦合;及至少一个控制寄存器。所述至少一个控制寄存器可经编程以致使所述CAN控制单元以至少第一及第二模式存储被接收于所述消息汇编寄存器中的消息,其中在所述第一模式中,将所述所接收CAN消息的控制信息及数据有效负载存储于所述缓冲器存储器中,且在所述第二模式中,仅将所述CAN消息的所述数据有效负载存储于所述缓冲器存储器中。
文档编号H04L12/413GK102334314SQ201080009764
公开日2012年1月25日 申请日期2010年4月21日 优先权日2009年4月23日
发明者史蒂文·G·道森, 约瑟夫·W·特里斯, 蒂姆·L·威尔逊 申请人:密克罗奇普技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1