CN102334314B - 用于并置控制器区域网络数据有效负载的方法 - Google Patents
用于并置控制器区域网络数据有效负载的方法 Download PDFInfo
- Publication number
- CN102334314B CN102334314B CN201080009764.7A CN201080009764A CN102334314B CN 102334314 B CN102334314 B CN 102334314B CN 201080009764 A CN201080009764 A CN 201080009764A CN 102334314 B CN102334314 B CN 102334314B
- Authority
- CN
- China
- Prior art keywords
- message
- buffer
- register
- zone network
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 34
- 239000000872 buffer Substances 0.000 claims abstract description 189
- 230000015654 memory Effects 0.000 claims abstract description 86
- 230000008878 coupling Effects 0.000 claims description 25
- 238000010168 coupling process Methods 0.000 claims description 25
- 238000005859 coupling reaction Methods 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 description 22
- 230000003139 buffering effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000000052 comparative effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101001003569 Homo sapiens LIM domain only protein 3 Proteins 0.000 description 1
- 101000639972 Homo sapiens Sodium-dependent dopamine transporter Proteins 0.000 description 1
- 102100026460 LIM domain only protein 3 Human genes 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 239000003921 oil Substances 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/407—Bus networks with decentralised control
- H04L12/413—Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/067—Bidirectional FIFO, i.e. system allowing data transfer in two directions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
一种控制器区域网络(CAN)控制器单元具有:消息汇编缓冲器,其接收串行位流;缓冲器存储器,其与所述消息汇编缓冲器并联耦合;CAN控制单元,其与所述消息汇编及所述缓冲器存储器耦合;及至少一个控制寄存器。所述至少一个控制寄存器可经编程以致使所述CAN控制单元以至少第一及第二模式存储被接收于所述消息汇编寄存器中的消息,其中在所述第一模式中,将所述所接收CAN消息的控制信息及数据有效负载存储于所述缓冲器存储器中,且在所述第二模式中,仅将所述CAN消息的所述数据有效负载存储于所述缓冲器存储器中。
Description
相关申请案交叉参考
本申请案请求在2009年4月23日提出申请且标题为“通过剥离控制器区域网络识别符及其它非数据信息的控制器区域网络消息数据并置(CAN MESSAGE DATACONCATENATION BY STRIPPING CAN IDENTIFIER AND OTHER NON-DATAINFORMATION)”的第61/171,891号美国临时申请案的权益,所述美国临时申请案全文并入本文中。
技术领域
本发明涉及控制器区域网络(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.0A)将消息识别符定义为具有11位的长度,从而给出可能2048个消息识别符。“扩展的CAN”规范版本2.0B允许使用11及/或29位的消息识别符长度(29位的识别符长度允许超过536,000,000个消息识别符)。所述CAN规范(所有版本)出于所有目的以引用方式并入本文中。
通常,两种方法可用于CAN,因为CAN标准不涵盖CAN控制器的架构,这两种方法是:“基本CAN”及“完全CAN”(不要与CAN 1及CAN 2或标准识别符及扩展的识别符混淆);其在消息的缓冲上不同。
基本CAN控制器架构类似于简单UART,除发送完整帧而非字符外。通常,存在单个传输缓冲器及双缓冲接收缓冲器。举例来说,微控制器将帧放入传输缓冲器中,且在发送所述帧时接收中断。当在接收缓冲器中接收到帧时,微控制器接收用以腾空所述接收缓冲器的中断且在接收随后帧之前将所述帧从所述接收缓冲器腾空。在基本CAN控制器架构中,微控制器必须管理传输及接收,且处置帧的存储。
完全CAN控制器架构包含专用缓冲器且将帧存储于此专用缓冲器中。可依据所述专用缓冲器的大小处理有限数目个帧。以映射到每一帧缓冲器的帧的识别符给所述缓冲器加标签。微控制器可更新所述缓冲器中的帧且对其进行标记以供传输。可检查接收缓冲器以查看是否已接收到具有匹配识别符的帧。另外,可使用滤波器来预筛选所接收到的帧,以使得仅既定供特定CAN控制器使用的那些帧存储于接收缓冲器中。
标准CAN对扩展的CAN
CAN协议通常以两个版本获得应用: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.0A的情况下,识别符必须为11位长。在CAN 2.0B的情况下,识别符可为11位(“标准”识别符)或29位(“扩展的”识别符)。为依从于CAN 2.0,控制器必须为2.0部分B被动或2.0部分B主动。如果其是被动的,那么其必须忽略扩展的帧(当CAN 1.0控制器看到具有29位识别符的帧时,其将产生错误帧)。如果其是主动的,那么其必须允许接收及传输扩展的帧。存在用于发送及接收两种类型的帧的一些兼容性规则。
CAN 2.0B主动控制器将发送及接受标准帧及扩展的帧两者。CAN 2.0B被动控制器将发送及接收标准帧,且将丢弃不具有错误的扩展的帧。
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的控制寄存器(未展示)中的BUKT位实现。表I描绘并解释接收缓冲器818的控制寄存器,其中R/W意指可读取/可写入位,且其中R意指只读位。
表I
位7 位6 位5 位4 位3 位2 位1 位0
R/W R/W R/W R/W R/W R/W R R/W
位7:消息就绪状态
1=接收缓冲器含有有效所接收消息
0=接收缓冲器打开以接收新消息
位仅由CAN模块设定,位仅由CPU清空。
位6到5:接收缓冲器操作模式
11=接收所有消息,包括那些具有错误的消息
10=仅接收具有扩展的识别符的有效消息
01=仅接收具有标准识别符的有效消息
00=接收所有有效消息
位4:消息接收中断启用
1=中断被启用
0=中断被停用
位3:所接收远程传送请求
1=接收到远程传送请求
0=未接收到远程传送请求
位2:(BUKT)启用到接收缓冲器122的过流
1=接收缓冲器118过流将写入到缓冲器122
0=不允许到缓冲器122的过流
位1:只读取位2(BUKT)的拷贝
位0:指示哪一接受滤波器启用消息接收
1=与缓冲器122相关联的接受滤波器
0=与缓冲器118相关联的接受滤波器
如果设定为“1”,那么BUKT位实施基于优先等级的协议。表II描绘并解释接收缓冲器822的控制寄存器。
表II
位7 位6 位5 位4 位3 位2 位1 位0
R/W R/W R/W R/W R/W R/W R/W R/W
位7:消息就绪状态
1=接收缓冲器含有有效所接收消息
0=接收缓冲器打开以接收新消息
位仅由CAN模块设定,位仅由CPU清空。
位6到5:接收缓冲器操作模式[这些位是任选的]
11=接收所有消息,包括那些具有错误的消息
10=仅接收具有扩展的识别符的有效消息
01=仅接收具有标准识别符的有效消息
00=接收所有有效消息
位4:消息接收中断启用
1=中断被启用
0=中断被停用
位3:所接收远程传送请求
1=接收到远程传送请求
0=未接收到远程传送请求
位2到0:指示哪一接受滤波器启用消息接收
101=接受滤波器116
100=接受滤波器114
011=接受滤波器112
010=接受滤波器110
001=接受滤波器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在大小及操作特性上是可编程的。举例来说,FIFO0具有四个消息缓冲器(MB0到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展示其中FIFO0配置为位160清空的情景。在此实施例中,每一消息缓冲器(MB0到MB3)包含4个32位字,其中数据如图4(其中170清空)或图5(其中170被设定)中所示布置。根据另一实例,如果FIFO0配置为位160被设定,那么图1中的缓冲器条目150将仅具有两个32位字(数据0及数据1),其对应于来自CAN协议的数据,如图6中所示。因此,根据一实施例,当位160被设定时,CAN控制引擎130控制CAN消息的传送,以使得仅所述CAN消息的数据有效负载传送到FIFO 120中。可这样做,以使得在没有任何间歇控制信息的情况下在FIFO 120内形成连续数据流。
模块含有用以存储CAN消息的若干个FIFO缓冲器FIFO0..31。所述FIFO可完全配置,其中CAN消息存储于模块外部,系统存储器中的任何地方。每一FIFO可配置为传输或接收FIFO,具有独立的大小、用户可读头部/尾部指针、可独立配置的中断、其它状态位以在传输或接收消息时给出其状态。
根据一实施例,可执行以下步骤来配置CAN模块FIFO:将模块置于配置模式(OPMOD=100);分配将FIFO定位于其中的存储器的区域(通常是SRAM的块);以FIFO的物理开始地址(基址)更新相应寄存器;以FIFO大小更新FIFO控制寄存器(CFIFOCON.FSIZE);选择FIFO成为传输还是接收FIFO(CFIFOCON.TXEN);设定控制寄存器140中的控制位中的任一者(举例来说,位160或170);及将模块置于正常模式(OPMOD=000)。
一旦FIFO存储器120的FIFO缓冲器已配置为传输FIFO,那么用户能够使用所述FIFO缓冲器来传输数据。用户可读取FIFO尾部指针(CFIFOUA),其给出用以放置待传输的消息的FIFO中的下一位置。将必须由CPU将此地址翻译成虚拟地址。应加载CAN消息,在CFIFOUA所给出的位置处开始。一旦FIFO缓冲器已加载有待传输的消息,那么用户通过设定CFIFOCON.UINC位来递增FIFO头部指针。此将递增头部指针且将CFIFOUA所指向的地址增加四个32位字或16个字节。那么消息已准备好被传输。
一旦FIFO存储器120的FIFO缓冲器已配置为具有由控制位160、170或任何其它控制位设定的相应传送模式的接收FIFO,那么用户将能够在消息由FIFO接收时读取所述消息。在接收到消息之后,用户将从CFIFOUA读取消息的开始的物理地址。接着可从此地址读取消息。在从FIFO读取消息之后,用户可通过设定CFIFOCON.UINC位来更新尾部指针。此将递增尾部指针且将CFIFOUA所指向的地址增加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获得的额外信息可存储于前两个数据字DAT0及DAT1中。因此,可将从时间捕获单元180中的相应计时器捕获的时间戳信息添加到消息。此情况的实例展示于图5中。
根据各种实施例,存在特殊接收模式,其中仅存储数据,且识别符、被保留位及其它控制信息不与消息一起存储。用户通过设定控制寄存器140中的位160来启用此模式。在此模式中,存储8个数据字节,而不管控制信息如何。因此,根据一特定实施例,忽略数据长度信息(DLC)且可用00h来填充未使用字节。此模式的一个可能用途是并置其数据跨越多个消息的消息,举例来说,跨越CAN总线传输串。根据一个实施例,不与数据一起存储时间戳,即使上文所解释的相应位170被设定。
举例来说,如果将串“Hello World”从节点1发送到节点2,那么必需两个消息,因为所述串长于8个字节。在前两个操作模式中,消息将如下被存储:
SID |
EID |
DLC=8 |
D0=’H’ |
D1=’e’ |
D2=’l’ |
D3=’l’ |
D4=’o’ |
D5=’‘ |
D6=’W’ |
D7=’o’ |
SID |
EID |
DLC=4 |
D0=’r’ |
D1=’l’ |
D2=’d’ |
D3=0x00 |
而在其中位160被设定的第三模式中,消息将如下被存储:
D0=’H’ |
D1=’e’ |
D2=’l’ |
D3=’l’ |
D4=’o’ |
D5=’‘ |
D6=’W’ |
D7=’o’ |
D0=’r’ |
D1=’l’ |
D2=’d’ |
D3=0x00 |
因此,在第三模式中,仅用每一CAN消息的数据顺序地填充存储器120。因此,当剖析完所接收的CAN消息时,第三模式将移除显著软件开销。此还将允许更简单地并置扩散于多个消息上的消息且节约保存消息所需要的硬件,因为通常需要四个32位字来存储地址与数据有效负载,而第三模式将仅需要两个32位字来存储数据有效负载。
图2展示例示性实施例的更详细框图。第一及第二屏蔽寄存器215及220是可逐位寻址的且包含单个输出位。此外,多个滤波器寄存器0...N(仅展示两个)由编号225及230指定。滤波器寄存器225、230也包含单个输出位且是可逐位寻址的。另外,屏蔽寄存器215及220以及所有滤波器寄存器225、230可由中央处理单元297以并行模式读取及写入(图2中未展示连接)。定序器与控制单元210作为位选择单元操作且产生地址信号,所述地址信号被馈送到屏蔽寄存器215及220以及所有滤波器寄存器225、230。每一滤波器寄存器225、230包含相关联位比较器单元235、240。屏蔽寄存器215及220的位输出信号被馈送到位比较器单元235、240的第一及第二输入。此外,滤波器寄存器225、230的每一位输出被馈送到其相关联位比较器单元235、240的第三输入。来自CAN总线的位流信号由CAN协议引擎295提供且被馈送到每一位比较器单元235、240的第四输入。滤波器寄存器225、230可提供额外存储位,所述额外存储位与每一相关联位比较器单元的第四输入耦合。每一位比较器单元235、240的输出载运接受信号且与相关联缓冲器指针245、250的控制输入耦合。提供具有与滤波器寄存器的数目一样多的输入的OR门255。每一输入从相应位比较器单元235、240接收接受信号。每一缓冲器指针245及250的输出与连接到多功能地址寄存器260的地址输入的缓冲器指针总线262耦合。OR门255的输出与多功能寄存器260的控制输入耦合。多功能寄存器260进一步包含模式控制输入265、指示缓冲器存储器285是否已满的第一状态输出275、指示缓冲器存储器285是否为空的第二状态输出280及用于多功能地址寄存器260的计数器功能的增加/减少控制输入。多功能地址寄存器260的地址输出264与缓冲器存储器285的地址输入耦合。缓冲器存储器285可完全配置为FIFO且可具有可在大小上可变的多个FIFO缓冲器。缓冲器存储器285可配置为双端口存储器,其第一端口与从CAN协议引擎295接收串行数据流的消息汇编缓冲器移位寄存器290耦合。CAN协议引擎295可具有一个或一个以上配置寄存器。图2展示FIFO模式寄存器299,其控制指示以其来将数据从消息汇编缓冲器移位寄存器290传送到缓冲器存储器285的相应FIFO缓冲器中的方式的操作模式。缓冲器存储器285的第二端口可与中央处理单元297耦合,中央处理单元297此外与用于存储程序及数据信息的存储器296耦合。
此实施例再次提供用以将来自串行数据流的数据写入到缓冲器存储器285中的相同模式,如下文将解释。可以逐位方式而非并行地实现滤波器寄存器225、230中所存储的滤波器值与所传输识别符的比较。因此,可避免需要相对大量的硅面积的并行比较器。CAN协议引擎295所提供的串行数据流包含识别符,所述识别符被直接馈送到所有位比较器单元235、240。定序器与控制单元210寻址屏蔽寄存器215、220及所有滤波器寄存器225、230以将对应位输出到位比较器单元235、240。位比较器单元235、240将所有滤波器寄存器位与帧内的相应识别符位进行比较。通过将结果与相应屏蔽寄存器位进行比较来对其进行进一步处理。为此,每一滤波器寄存器225、230的额外存储位可指示哪一屏蔽寄存器应用于此比较。下文将更详细地解释此功能。将针对帧内的每一识别符的所有位积累最终比较结果。如果单个比较失败,那么将不产生接受信号。如果每个位比较为正,那么会将接受信号馈送到相应缓冲器指针245、250且馈送到OR门255的相应输入。
中央处理单元297可以以下方式控制多功能地址寄存器260。根据一实施例,可通过模式信号265选择两个功能模式。在第一功能模式中,缓冲器指针245、250含有缓冲器存储器285中的地址以将数据直接写入到缓冲器存储器285中规定位置处。多功能地址寄存器260锁存已被放在地址总线262上的地址且寻址并行存储已由消息汇编缓冲器移位寄存器290汇编的数据的缓冲器存储器285,其中CAN协议引擎295控制哪些数据从消息汇编缓冲器移位寄存器290传送到缓冲器存储器285中。
可借助控制信号265选择第二功能模式。在此模式中,不需要缓冲器指针245、250且因此将忽视其输出信号。当此模式被激活时,多功能地址寄存器内的实际地址寄存器(举例来说)被设定为“Fh”且状态信号280将用信号通知空缓冲器。每当位比较器单元235、240产生接受信号,此触发多功能地址寄存器260的递增功能且其内容因此将递增1。因此,在CAN协议引擎295的控制下,由消息汇编缓冲器移位寄存器290汇编的第一数据将存储于存储器位置0处。此功能提供其中没有缓冲器与任一位比较器相关联的CAN模块的纯FIFO功能性。FIFO存储器285将被顺序地写入,直到地址再次到达“Fh”,其指示缓冲器已满,除非CPU已读取先前条目。已满FIFO存储器285将由控制信号275指示。在额外模式中,控制信号270可在地址寄存器的递增与递减功能之间进行选择。额外信号可由CPU 297提供以指示是否已读取缓冲器值以用于产生恰当状态信号275及280且确保没有值将在由CPU 297提取之前被覆写。可实施缓冲器存储器285的其它功能模式。
FIFO模式控制寄存器299可具有多个位,其每一者指示FIFO 285的特定操作模式,如上文关于图1所解释。图4到7更详细地展示先前解释的三个可能操作模式。在图4中,展示以其存储标准或扩展的CAN消息的正常模式。第一32字使用11位来存储识别符SID。使用第二32位字的27位来存储各种控制位DRR、IDE、扩展的识别符EID、位RTR、RB1、RB0及数据长度信息DLC。第三及第四32位字存储数据字节0到7。图5展示以其来将时间戳信息CMSGTS存储于第一32位字的上部16位中且将滤波器信息存储于第一32位字的接下来5个先前未使用位中的时间戳模式。使用与第一操作模式相同的其它三个32位数据字。
图6展示当FIFO模式寄存器299中的相应位被设定时存储消息的方式。现在,仅存储数据有效负载,占据第一及第二32位字。接着使用第三及第四32位字来存储连续消息的数据。
图7更详细地展示来自图1的CAN协议引擎480。协议引擎480组合数个功能块。引擎480的心脏是协议有限状态机310(FSM)。此状态机逐位地定序经过消息,从而在传输或接收各种帧类型的各种字段时改变机器的状态。FSM 310为控制分别RX/TX移位寄存器320、325、CRC寄存器330以及接收总线350及传输总线360之间的顺序数据流的定序器。移位寄存器320、325可为消息汇编寄存器490的部分。提供额外组件355及365以转换数据流且适应总线350及360上的相应计时。FSM还控制错误管理逻辑340(EML)及TX/RX移位寄存器320、325与CAN模块的其它组件之间的并行数据流RecData。根据CAN协议执行接收仲裁、传输及错误信令的过程。FSM 310还处置总线上消息的任何自动传输。
到协议引擎480的数据接口由字节宽的传输及接收数据组成。并非汇编及移位整个帧,而是将帧破分成字节。来自协议FSM 310的接收或传输地址表明帧的哪一字节是当前的。对于传输,选择来自传输缓冲器的适当字节且将其呈现给引擎,引擎接着使用8位移位寄存器来将数据串行化。对于接收,8位移位寄存器汇编字节,所述字节接着被加载于消息汇编缓冲器490中的适当字节内。
循环冗余校验寄存器330产生供在数据字节上传输的循环冗余校验(CRC)码且校验传入消息的CRC码。错误管理逻辑(EML)340负责CAN装置的故障约束。通过来自位流处理器的命令递增及递减其计数器,接收错误计数器及传输错误计数器。根据错误计数器的值,CAN控制器被设定成主动错误状态、被动错误状态或总线关断状态。
单元355内的位计时逻辑(BTL)监视总线输入且根据CAN协议处置与总线相关的位计时。如果CAN控制器本身不传输占有位,那么BTL在帧的开始的空闲到占有总线转变上及在任何进一步空闲到占有总线转变上同步。BTL还提供可编程时间段以补偿传播延迟时间及相移,且在界定位时间中的取样点的位置时进行补偿。BTL的编程取决于波特率及外部物理延迟时间。
在图8中,展示比较器单元的例示性实施例。展示单个位比较器单元的细节,但所述细节相应地适用于所有其它位比较器单元。编号600指示提供CAN串行数据流的单元,所述CAN串行数据流被馈送到消息汇编缓冲器寄存器490及异NOR门690的第一输入。滤波器寄存器620的单个位输出与异NOR门690的第二输入耦合,异NOR门690的输出与NOR门650的第一输入连接。NOR门650的第二输入从屏蔽寄存器630接收单个位输出信号。NOR门650的输出与AND门660的第一输入耦合,AND门660的输出与D触发器670的控制输入耦合。D触发器670的输入D与逻辑“低”信号(例如,Vcc)耦合。D触发器670的反相输出与AND门640的第一输入耦合,AND门640的输出提供接受信号。AND门640及660分别包含第二输入ACC_RDY及BIT_RDY,其用于与相应输入信号同步。位选择逻辑610与滤波器寄存器620及屏蔽寄存器630耦合以选择将用于每一帧内的比较的相应位。
传入CAN位流与位选择逻辑610同步。换句话说,位选择逻辑610选择滤波器寄存器620及屏蔽寄存器630中对应于串行位流的传入位的相应位。实际比较器由在两个输入信号相同的情况下仅在其输出处产生逻辑“高”的异NOR门690形成。NOR门650用作屏蔽单元以在屏蔽寄存器630内的相应位被设定的情况下屏蔽掉结果。D触发器670用作寄存器以积累一连串比较内的结果且在帧的开始被预设定为“1”。仅在帧内的所有比较成功的情况下,将产生AND门640的输出处的接受信号AccN。否则,D触发器670由错误比较结果设定为“0”且保持为“0”直到帧的结束。使用两个控制信号ACC_RDY及BIT_RDY来同步及激活相应信号。
图9更详细地展示具有甚至更多功能性的位比较器单元435、440的另一例示性实施例。而且,展示位比较器单元0的细节,但所述细节相应地适用于所有其它位比较器单元。屏蔽寄存器415及420的输出与4:1多路复用器520的第一及第二输入耦合。可在多路复用器520的第三及第四输入处提供额外输入560及570。举例来说,输入560与由编号580指定的滤波器寄存器15的输出耦合。滤波器寄存器425包含(举例来说)与多路复用器520的选择输入耦合的两个额外输出。多路复用器520可具有任何大小,举例来说,可扩充到N:1多路复用器,从而将屏蔽的数目增加到N。多路复用器520的输出连接到NOR门530的第一输入。NOR门530作为确认单元操作,从而指示是否将使用或忽略比较结果。NOR门530的第二输入与异NOR门510的输出耦合,异NOR门510的第一输入从滤波器寄存器425接收位输出信号且其第二输入从CAN协议引擎495接收串行数据流。NOR门530的输出与D触发器540的控制输入耦合。D触发器540的D输入接收逻辑低信号。在D触发器540的求反输出550处载运接受信号。
第一比较级由异NOR门510形成。在此级中,将串行位流的识别符位与滤波器寄存器425的相应位进行比较。异NOR门510仅在两个输入信号相同的情况下在其输出处产生逻辑“高”。定序器单元410选择滤波器寄存器425内的相应位。滤波器寄存器425包含指示应使用哪一屏蔽寄存器的额外数据位。在此例示性实施例中,可选择四个不同值。可选择屏蔽寄存器415或420中的任一者或可由另一滤波器寄存器(举例来说,滤波器寄存器15)提供第三值。可使用第四可能选择570来指示通过提供相应电平(举例来说,逻辑“1”)将不使用屏蔽。因此,可给每一滤波器寄存器425、430指派个别屏蔽功能。选定屏蔽值将放在NOR门530的第一输入处。如果所述屏蔽值指示应使用滤波器寄存器425中的相应位,那么NOR门530将作为可控制开关操作且将异NOR门510的比较结果馈送到控制输入D触发器540。D触发器540用作被预设定为“1”的寄存器。如果一个比较的结果为负(指示没有匹配)且相应屏蔽位无效,那么将清空D触发器540且将不产生接受信号550。D触发器540因此将重设为“0”。D触发器540将预设定为“1”,从而再次以下一帧开始以比较另一识别符,如上文所描述。
可使用任何其它类型的适当逻辑来实施比较器。举例来说,可使用可控制开关、等效布林运算器等。此外,可将确认单元放在比较器前面或比较器之后。确认单元的基本功能是并入选定位或将其从比较中排除。
因此,本发明极适于实施所述目标并获得所提及的结果及优点以及其中固有的其它结果及优点。虽然已参照本发明的特定优选实施例描述、描述及界定了本发明,但此些参照并不暗示对本发明的限制,且不应推断出存在此种限制。本发明能够在形式及功能上做出大量修改、替代及等效形式,所属领域的技术人员将联想到所述修改、替代及等效形式。所描绘及所描述的本发明的优选实施例仅为例示性,且并非对本发明的范围的穷尽性说明。因此,本发明既定仅由所附权利要求书的精神及范围的限制,从而在所有方面赋予对等效物的完全认知。
Claims (24)
1.一种控制器区域网络控制器单元,其包含:
消息汇编缓冲器,其接收串行位流;
缓冲器存储器,其与所述消息汇编缓冲器并联耦合;
控制器区域网络控制单元,其与所述消息汇编缓冲器及所述缓冲器存储器耦合;及
至少一个控制寄存器,其中所述至少一个控制寄存器可操作以经编程以致使所述控制器区域网络控制单元以至少第一及第二模式存储被接收于所述消息汇编缓冲器中的消息,其中在所述第一模式中,将所接收控制器区域网络消息的控制信息及数据有效负载存储于所述缓冲器存储器中,且在所述第二模式中,仅将所述控制器区域网络消息的所述数据有效负载存储于所述缓冲器存储器中。
2.根据权利要求1所述的单元,其中所述控制寄存器包含指示所述第二模式被设定的第一位。
3.根据权利要求1所述的单元,其中所述控制寄存器可经编程以致使所述控制器区域网络控制单元进一步将时间戳信息连同所述控制信息一起存储。
4.根据权利要求3所述的单元,其中所述控制寄存器包含指示存储所述时间戳信息的第二位。
5.根据权利要求4所述的单元,其中所述控制寄存器包含指示何时产生所述时间戳信息的第三位。
6.根据权利要求3所述的单元,其中当在所述第二模式中时,用以存储所述时间戳信息的编程被忽略。
7.根据权利要求1所述的单元,其中所述缓冲器存储器为FIFO存储器。
8.根据权利要求7所述的单元,其中所述FIFO存储器包含多个可配置FIFO缓冲器。
9.根据权利要求1所述的单元,其中所述缓冲器存储器包含多个可配置缓冲器。
10.根据权利要求9所述的单元,其进一步包含用于每一可配置缓冲器的控制寄存器,所述控制寄存器包含用于确定相应缓冲器的操作模式的至少一个位。
11.根据权利要求1所述的单元,其进一步包含将多个屏蔽寄存器及多个滤波器寄存器与所述控制器区域网络控制单元耦合的逻辑,其中所述逻辑产生指示所述消息汇编缓冲器移位寄存器中的有效条目的信号。
12.一种存储控制器区域网络消息的方法,其包含以下步骤:
编程至少一个控制寄存器以致使控制器区域网络控制单元以至少第一及第二存储模式存储被接收于消息汇编缓冲器中的控制器区域网络消息;
接收控制器区域网络消息;
在所述消息汇编缓冲器中汇编所述控制器区域网络消息;
确定存储模式,其中在第一模式中,将所接收控制器区域网络消息的控制信息及数据有效负载存储于缓冲器存储器中,且在第二模式中,仅将所述控制器区域网络消息的所述数据有效负载存储于所述缓冲器存储器中。
13.根据权利要求12所述的方法,其中所述控制器区域网络消息为标准控制器区域网络消息以及扩展的控制器区域网络消息。
14.根据权利要求12所述的方法,其中通过设定控制寄存器中的第一位来编程所述第二模式。
15.根据权利要求12所述的方法,其中提供多个缓冲器存储器且可在相关联控制寄存器中编程每一缓冲器存储器的操作模式。
16.根据权利要求12所述的方法,其进一步包含第三模式,在所述第三模式中将时间戳信息连同所述控制信息及数据有效负载一起存储。
17.根据权利要求16所述的方法,其中以可编程方式产生时间戳信息。
18.根据权利要求16所述的方法,其中通过设定控制寄存器中的第二位来编程所述第三模式。
19.根据权利要求16所述的方法,其中当在所述第二模式中时,忽略用以存储所述时间戳信息的编程。
20.根据权利要求12所述的方法,其中所述缓冲器存储器为FIFO存储器。
21.根据权利要求20所述的方法,其中所述FIFO存储器包含多个可配置FIFO缓冲器,且所述方法进一步包含配置所述FIFO缓冲器的步骤。
22.根据权利要求12所述的方法,其进一步包含借助多个屏蔽寄存器及多个滤波器寄存器来产生有效性信号的步骤,所述有效性信号指示所述消息汇编缓冲器移位寄存器中的有效条目。
23.一种微控制器,其包含:
中央处理单元;
控制器区域网络控制器,其包含:
消息汇编缓冲器,其接收串行位流;
FIFO存储器,其与所述消息汇编缓冲器且与所述中央处理单元并联耦合;
控制器区域网络控制单元,其与所述消息汇编缓冲器及所述FIFO存储器耦合;及
控制寄存器,其中所述控制寄存器可操作以由所述中央处理单元通过编程一位来编程以致使所述控制器区域网络控制单元以至少第一或第二模式存储被接收于所述消息汇编缓冲器中的消息,其中在所述第一模式中,将所接收控制器区域网络消息的控制信息及数据有效负载存储于所述FIFO存储器中,且在所述第二模式中,仅将所述控制器区域网络消息的所述数据有效负载存储于所述FIFO存储器中。
24.根据权利要求23所述的微控制器,其进一步包含时间捕获单元,其中所述控制寄存器包含可经编程以致使所述控制器区域网络控制单元进一步将来自所述时间捕获单元的时间戳信息连同所述控制信息一起存储的第二位。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17189109P | 2009-04-23 | 2009-04-23 | |
US61/171,891 | 2009-04-23 | ||
US12/758,448 | 2010-04-12 | ||
US12/758,448 US8650341B2 (en) | 2009-04-23 | 2010-04-12 | Method for CAN concatenating CAN data payloads |
PCT/US2010/031864 WO2010123970A1 (en) | 2009-04-23 | 2010-04-21 | Method for concatenating can data payloads |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102334314A CN102334314A (zh) | 2012-01-25 |
CN102334314B true CN102334314B (zh) | 2014-11-05 |
Family
ID=42235753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080009764.7A Active CN102334314B (zh) | 2009-04-23 | 2010-04-21 | 用于并置控制器区域网络数据有效负载的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8650341B2 (zh) |
EP (1) | EP2422494B1 (zh) |
KR (1) | KR101702352B1 (zh) |
CN (1) | CN102334314B (zh) |
TW (1) | TWI524699B (zh) |
WO (1) | WO2010123970A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8320392B1 (en) * | 2009-12-16 | 2012-11-27 | Integrated Device Technology, Inc. | Method and apparatus for programmable buffer with dynamic allocation to optimize system throughput with deadlock avoidance on switches |
DE102011080476A1 (de) * | 2011-08-05 | 2013-02-07 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Verbesserung der Datenübertragungssicherheit in einer seriellen Datenübertragung mit flexibler Nachrichtengröße |
JP2015519799A (ja) | 2012-04-16 | 2015-07-09 | エントロピック・コミュニケーションズ・インコーポレイテッドEntropic Communications, Inc. | ダウンストリームアクセスのための順次変調 |
US9112721B2 (en) * | 2012-05-28 | 2015-08-18 | Freescale Semiconductor, Inc. | System and methods for enabling a controller area network (CAN) device to operate in different power modes based upon the payload of a wake-up message |
CN102882261B (zh) * | 2012-10-29 | 2014-11-19 | 成都芯源系统有限公司 | 充电系统、数字接口电路及其控制方法 |
JP2014158241A (ja) * | 2013-02-18 | 2014-08-28 | Ricoh Co Ltd | データ通信装置及びデータ通信方法 |
SG11201605357QA (en) | 2013-12-30 | 2016-07-28 | Schneider Electric It Corp | System and method for automatically selecting baud rate in a can network |
US9892073B1 (en) | 2014-10-06 | 2018-02-13 | Master Lock Company Llc | Bus addressing systems and methods using repurposed bits |
KR101593840B1 (ko) * | 2014-12-10 | 2016-02-15 | 현대오트론 주식회사 | 캔 프레임 송신 방법 및 장치 |
TWI600560B (zh) * | 2016-01-13 | 2017-10-01 | Chun-Hsien Kuo | Vehicle controller area network general control method |
DE102016220895A1 (de) * | 2016-10-25 | 2018-04-26 | Volkswagen Aktiengesellschaft | Erkennung von Manipulationen in einem CAN-Netzwerk |
US10491418B2 (en) * | 2016-12-05 | 2019-11-26 | Electronics And Telecommunications Research Institute | Can controller and data transmission method using the same |
KR102204954B1 (ko) * | 2016-12-05 | 2021-01-20 | 한국전자통신연구원 | Can 컨트롤러 및 이를 이용한 데이터 전송 방법 |
CN111193648B (zh) * | 2018-11-14 | 2021-11-19 | 厦门雅迅网络股份有限公司 | 降低can总线负载的数据发送方法、终端设备及存储介质 |
KR102535563B1 (ko) * | 2021-03-05 | 2023-05-26 | 숭실대학교 산학협력단 | Can 버스를 이용한 다중 uart 통신 방법, 이를 수행하기 위한 기록 매체 및 장치 |
WO2023084050A1 (en) | 2021-11-11 | 2023-05-19 | Radiometer Medical Aps | Apparatus comprising cartridge with absorbing element |
CN114928581B (zh) * | 2022-04-22 | 2024-05-03 | 中国第一汽车股份有限公司 | 基于autosar架构的can报文转发方法、装置、设备及存储介质 |
CN115695268B (zh) * | 2022-10-28 | 2024-05-31 | 广州汽车集团股份有限公司 | Canfd第二采样点测试方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456240A (zh) * | 2010-10-30 | 2012-05-16 | 比亚迪股份有限公司 | 基于can总线的车载记录装置及其存储数据的控制方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0289400A3 (en) * | 1987-04-30 | 1990-01-24 | Fairchild Weston Systems Inc. | High speed asynchronous data multiplexer/demultiplexer |
US7024016B2 (en) | 1996-05-16 | 2006-04-04 | Digimarc Corporation | Digital watermarking apparatus and methods |
US6430183B1 (en) * | 1997-09-18 | 2002-08-06 | International Business Machines Corporation | Data transmission system based upon orthogonal data stream mapping |
US6760337B1 (en) | 1999-08-17 | 2004-07-06 | Conexant Systems, Inc. | Integrated circuit that processes communication packets with scheduler circuitry having multiple priority levels |
US6778548B1 (en) | 2000-06-26 | 2004-08-17 | Intel Corporation | Device to receive, buffer, and transmit packets of data in a packet switching network |
GB2372597B (en) * | 2001-02-27 | 2005-08-10 | Hewlett Packard Co | Device and method for data timestamping |
US20060059117A1 (en) | 2004-09-14 | 2006-03-16 | Michael Tolson | Policy managed objects |
US7076517B2 (en) * | 2001-09-20 | 2006-07-11 | Microchip Technology Incorporated | Serial communication device with dynamic filter allocation |
SE525273C2 (sv) * | 2002-01-07 | 2005-01-18 | Kvaser Consultant Ab | Distribuerat styr- och övervakningssystem |
US6819320B2 (en) * | 2002-03-04 | 2004-11-16 | Sun Microsystems, Inc. | Reading or writing a non-super sampled image into a super sampled buffer |
US7852867B2 (en) | 2007-07-06 | 2010-12-14 | Integrated Deoice Technology, Inc. | Integrated memory for storing egressing packet data, replay data and to-be egressed data |
-
2010
- 2010-04-12 US US12/758,448 patent/US8650341B2/en active Active
- 2010-04-21 EP EP10716956A patent/EP2422494B1/en active Active
- 2010-04-21 KR KR1020117021242A patent/KR101702352B1/ko active IP Right Grant
- 2010-04-21 CN CN201080009764.7A patent/CN102334314B/zh active Active
- 2010-04-21 WO PCT/US2010/031864 patent/WO2010123970A1/en active Application Filing
- 2010-04-23 TW TW099112906A patent/TWI524699B/zh active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456240A (zh) * | 2010-10-30 | 2012-05-16 | 比亚迪股份有限公司 | 基于can总线的车载记录装置及其存储数据的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201044816A (en) | 2010-12-16 |
KR20120006485A (ko) | 2012-01-18 |
US20110007759A1 (en) | 2011-01-13 |
KR101702352B1 (ko) | 2017-02-03 |
TWI524699B (zh) | 2016-03-01 |
WO2010123970A1 (en) | 2010-10-28 |
EP2422494B1 (en) | 2013-03-27 |
EP2422494A1 (en) | 2012-02-29 |
CN102334314A (zh) | 2012-01-25 |
US8650341B2 (en) | 2014-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102334314B (zh) | 用于并置控制器区域网络数据有效负载的方法 | |
US8650356B2 (en) | Microcontroller with CAN module | |
US9479461B2 (en) | Computer system and method for communicating data between computers | |
JP3863912B2 (ja) | データ伝送の自動開始装置 | |
CN100473066C (zh) | 简化的硬件网络适配器和通信方法 | |
KR100712242B1 (ko) | Can 장치 및 can 장치에서 승인 신호 프레임을 자동으로 전송하기 위한 방법 | |
US5392406A (en) | DMA data path aligner and network adaptor utilizing same | |
CN101385296B (zh) | 用于总线间信息自动路由的网关 | |
US7979594B2 (en) | Serial communications device with dynamic allocation of acceptance masks using serial implementation | |
EP1101328B1 (en) | Network controller | |
WO2003007547A2 (en) | System and method for processing bandwidth allocation messages | |
US6944739B2 (en) | Register bank | |
CN110971491A (zh) | 一种电力系统101和104通讯规约处理系统及其处理方法 | |
JP2009502072A (ja) | FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法 | |
EP1430653B1 (en) | Serial communication device with dynamic filter allocation | |
CN106533976A (zh) | 一种数据包处理方法及装置 | |
US6912594B2 (en) | Serial communication device with multi-mode operation of message receive buffers | |
US20030056016A1 (en) | Serial communication device with dynamic filter allocation | |
WO2006004966A2 (en) | Ethernet controller with excess on-board flash for microcontroller interface | |
JP2001520823A (ja) | データストリーム処理のためのプロトコルプロセッサ | |
CN213069544U (zh) | Can总线控制器的ip核 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |