CN102326363B - 具有使用缓冲器描述表的控制器区域网络模块的微控制器 - Google Patents

具有使用缓冲器描述表的控制器区域网络模块的微控制器 Download PDF

Info

Publication number
CN102326363B
CN102326363B CN201080008842.1A CN201080008842A CN102326363B CN 102326363 B CN102326363 B CN 102326363B CN 201080008842 A CN201080008842 A CN 201080008842A CN 102326363 B CN102326363 B CN 102326363B
Authority
CN
China
Prior art keywords
message
descriptor table
buffer
buffer descriptor
microcontroller
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
Application number
CN201080008842.1A
Other languages
English (en)
Other versions
CN102326363A (zh
Inventor
蒂姆·L·威尔逊
约瑟夫·W·特里斯
史蒂文·G·道森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of CN102326363A publication Critical patent/CN102326363A/zh
Application granted granted Critical
Publication of CN102326363B publication Critical patent/CN102326363B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
    • H04L12/4135Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD] using bit-wise arbitration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

一种微控制器具有:随机存取存储器;及控制器区域网络(CAN)控制器,其具有接收经汇编CAN消息的控制单元。所述控制单元使用所述经汇编CAN消息产生缓冲器描述符表条目且将所述缓冲器描述符表条目存储于所述随机存取存储器中,且所述缓冲器描述符表条目具有来自所述CAN消息的至少一消息识别符及荷载数据以及随后缓冲器描述符表条目的信息。

Description

具有使用缓冲器描述表的控制器区域网络模块的微控制器
相关申请案交叉参考
本申请案请求在2009年5月28日提出申请且标题为“轻量级缓冲器描述符表(LIGHTWEIGHT BUFFER DESCRIPTOR TABLE)”的第61/181,720号美国临时申请案的权益,所述美国临时申请案全文并入本文中。
技术领域
本发明涉及控制器区域网络(CAN或CAN总线)兼容的微控制器,且更特定来说涉及一种用于CAN消息存储的轻量级缓冲器描述符表(BDT)。
背景技术
控制器区域网络(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非常慢或非常忙,那么为接收许多不同被寻址消息需要单独的接收缓冲器及接受滤波器。在较快速处理器的情况下,可因接受滤波器的编程的灵活性而使用更有限数目个接收缓冲器。简而言之,处理器必须具有带宽以服务总线上的总业务。作为折衷,通常实施多个缓冲器。然而,每一接收缓冲器具有相关联的多个屏蔽寄存器及过滤器寄存器以及相关联比较器。此需要大量硅面积。
因此,此项技术中需要一种不需要大量硅面积的CAN实施方案。
发明内容
根据一实施例,一种微控制器可包含:随机存取存储器;及控制器区域网络(CAN)控制器,其包含接收经汇编CAN消息的控制单元,其中所述控制单元使用所述经汇编CAN消息产生缓冲器描述符表条目且将所述缓冲器描述符表条目存储于所述随机存取存储器中,且其中所述缓冲器描述符表条目包含来自所述CAN消息的至少一消息识别符及荷载数据以及随后缓冲器描述符表条目的信息。
根据进一步实施例,缓冲器描述符表条目可具有恒定大小。根据进一步实施例,所述缓冲器描述符表条目可进一步包含帧状态及扩展的CAN消息识别符。根据进一步实施例,所述微控制器可为32位微控制器且所述缓冲器描述符表条目由六个32位字组成。根据进一步实施例,所述缓冲器描述符表条目可包含帧状态字、下一地址位置字、消息识别符字、扩展的消息识别符字、包含四个字节的第一数据字及包含四个字节的第二数据字。根据进一步实施例,所述随机存取存储器可为双端口或多端口存储器。根据进一步实施例,所述CAN控制器可包含与所述控制单元耦合的消息汇编缓冲器移位寄存器。根据进一步实施例,所述CAN控制器可包含将多个屏蔽寄存器及多个滤波器寄存器与所述控制单元耦合的逻辑,其中所述逻辑产生指示所述消息汇编缓冲器移位寄存器中的有效条目的信号。
根据另一实施例,一种在微控制器内存储控制器区域网络(CAN)消息的方法可包含以下步骤:-接收CAN消息;-汇编所述CAN消息;-使用所述经汇编CAN消息产生缓冲器描述符表条目;及-将所述缓冲器描述符表条目存储于所述微控制器的随机存取存储器中,其中所述缓冲器描述符表条目包含来自所述CAN消息的至少一消息识别符及荷载数据以及随后缓冲器描述符表条目的信息。
根据所述方法的进一步实施例,所述CAN消息可为标准CAN消息以及扩展的CAN消息。根据所述方法的进一步实施例,缓冲器描述符表条目可具有恒定大小。根据所述方法的进一步实施例,所述缓冲器描述符表条目可进一步包含帧状态及扩展的CAN消息识别符。根据所述方法的进一步实施例,所述微控制器可为32位微控制器且所述缓冲器描述符表条目由六个32位字组成。根据所述方法的进一步实施例,所述缓冲器描述符表条目可包含帧状态字、下一地址位置字、消息识别符字、扩展的消息识别符字、包含四个字节的第一数据字及包含四个字节的第二数据字。根据所述方法的进一步实施例,所述随机存取存储器可为双端口或多端口存储器。根据所述方法的进一步实施例,可通过消息汇编缓冲器移位寄存器来执行所述汇编CAN消息的步骤。根据所述方法的进一步实施例,所述方法可进一步包含借助多个屏蔽寄存器及多个滤波器寄存器来产生有效性信号的步骤,所述有效性信号指示所述消息汇编缓冲器移位寄存器中的有效条目。
根据又一实施例,一种32位微控制器可包含:双端口32位宽随机存取存储器;及控制器区域网络(CAN)控制器,其包含接收经汇编CAN消息的控制单元,其中所述控制单元使用所述经汇编CAN消息产生缓冲器描述符表条目且将所述缓冲器描述符表条目存储于所述随机存取存储器中,且其中所述缓冲器描述符表条目由32位帧状态字、32位下一地址位置字、32位消息识别符字、32位扩展的消息识别符字、第一32位数据字及第二32位数据字组成。
根据所述32位微控制器的进一步实施例,所述CAN控制器可包含与所述控制单元耦合的消息汇编缓冲器移位寄存器。根据所述32位微控制器的进一步实施例,所述CAN控制器可包含将多个屏蔽寄存器及多个滤波器寄存器与所述控制单元耦合的逻辑,其中所述逻辑产生指示所述消息汇编缓冲器移位寄存器中的有效条目的信号。
根据下文更特定来说对如附图中所图解说明的本发明优选实施例的说明将明了本发明的上述及其它目标、特征及优点。
附图说明
图1展示根据一实施例的具有CAN模块/控制器的微控制器的部分的框图;
图2展示常规CAN控制器的接收缓冲器及其相关联滤波器的示意图;
图3展示标准CAN消息与扩展的CAN消息之间的差异;
图4展示供与CAN控制器一起使用的根据一实施例的缓冲器描述符表;
图5展示使用图4的缓冲器描述符表的微控制器的随机存取存储器;
图6展示来自图1的CAN协议引擎的实施例;
图7展示比较器单元的示范性实施例;
图8展示位比较器单元的另一示范性实施例。
具体实施方式
参照图2,其图解说明供用于微控制器中的常规CAN控制器的接收缓冲器118、120及122以及相关联屏蔽102、108及滤波器寄存器104、106、110、112、114、116。缓冲器120(指定为消息汇编缓冲器(MAB))发挥作用以仅监视用于传入消息的CAN逻辑总线(未展示)。MAB 120保持来自总线的经去充填位流。所述位流由包含识别符及数据字段的消息(即,数据帧、远程帧或其它帧)组成(未展示)。CAN控制器包含(例如)两个可由微控制器的CPU存取的专用缓冲器118及122。MAB 120允许这些接收缓冲器118及122并行存取所述消息。MAB 120还允许接受滤波器106及116存取所述消息的识别符部分。位流消息到接收缓冲器118或122的并行传送在接受屏蔽102及108以及接受滤波器104、106、110、112、114及116将接受匹配测试施加到所述消息之前可不被允许。所列缓冲器的数目仅为实例,可利用更多的缓冲器。
分别使用可编程接受滤波器屏蔽102及108来选择应将未经充填位流消息的哪些位与接受滤波器104及106以及110、112、114及116的内容进行比较。
接受匹配测试如下进行:滤波器104、106、110、112、114及116接收所述消息的识别符字段且将所述字段与滤波器值进行比较。如果所述识别符字段与滤波器值之间存在匹配,那么将所述消息加载到匹配滤波器的对应接收缓冲器118或122中。滤波器104及106连接到缓冲器118,滤波器110、112、114及116连接到缓冲器122。
根据一实施例,接收缓冲器可存在暗示的优先等级。举例来说,缓冲器118可为较高优先等级缓冲器且具有与其相关联的消息接受滤波器104及106。缓冲器122可为较低优先等级缓冲器且具有与其相关联的接受滤波器110、112、114及116。与缓冲器118相关联的滤波器比与缓冲器122相关联的滤波器少意指缓冲器118比缓冲器122更具限制性。更具限制性的缓冲器118含蓄地具有与其相关联的较高临界点。具有优先等级并非要求,但可为可选择选项。
在MAB 120快速连续地接收两个“高优先等级”消息时,接收缓冲器118(其被指定为第一高优先等级缓冲器)将接收第一高优先等级消息。在接收第二高优先等级消息时,MAB 120发现缓冲器118当前由高优先等级消息占据。MAB 120接着引导缓冲器122(其被指定为第二高优先等级缓冲器)接收所述第二高优先等级消息。在此情境中,缓冲器118及122分别被排定等级为所述第一高优先等级缓冲器及所述第二高优先等级缓冲器。
中央处理单元(CPU)(未在图2中展示)可在接收缓冲器118及122中的一者上操作,而另一者供用于接收或保持先前接收的消息。
根据示范性实施方案,在两个高优先等级消息的到达的情况下的协议可由接收缓冲器118及122的控制寄存器(未展示)中的BUKT位实现。表I描绘并解释接收缓冲器118的控制寄存器,其中R/W意指可读取/可写入位,且其中R意指只读位。
表I
如果设定为“1”,那么BUKT位实施基于优先等级的协议。表II描绘并解释接收缓冲器122的控制寄存器。
表II
图1展示供用于微控制器中的CAN控制器的示范性实施例。微控制器被视为包含至少一CPU、存储器及多个外围装置的单芯片装置,例如CAN模块。在CAN模块/控制器的此实施例中,第一及第二屏蔽寄存器415及420可为可逐位寻址的且可包含单个输出位。此外,多个滤波器寄存器0...N(仅展示两个)由编号425及430指定。滤波器寄存器425、430也可包含单个输出位且是可逐位寻址的。另外,屏蔽寄存器415及420以及所有滤波器寄存器425、430可为可由中央处理单元485以并行模式读取及写入(图1中未展示连接)。定序器与控制单元410可作为位选择单元操作且产生地址信号,所述地址信号被馈送到屏蔽寄存器415及420以及所有滤波器寄存器425、430。每一滤波器寄存器425、430可包含相关联位比较器单元435、440。屏蔽寄存器415及420的位输出信号被馈送到位比较器单元435、440的第一及第二输入。此外,滤波器寄存器425、430的每一位输出可被馈送到其相关联位比较器单元435、440的第三输入。来自CAN总线的位流信号由CAN协议引擎480提供且被馈送到每一位比较器单元435、440的第四输入。滤波器寄存器425、430可提供额外存储位,所述额外存储位与每一相关联位比较器单元的第四输入耦合。可提供具有更少或更多的功能性的CAN模块的其它设计。
根据各种实施例,每一位比较器单元435、440的输出可载运接受信号且与描述符表控制单元460的控制输入耦合。可提供具有与滤波器寄存器的数目一样多的输入的OR门450。每一输入从相应位比较器单元435、440接收接受信号。描述符表控制单元460的地址输出与微控制器的与CPU 485耦合的通用随机存取存储器470的地址输入耦合。OR门450的输出与描述符表控制单元460的另一控制输入耦合。根据一实施例,随机存取存储器470可为双端口或多端口存储器,其第一数据端口与描述符表控制单元460的数据输出耦合。描述符表控制单元460从标准消息汇编缓冲器移位寄存器490接收经汇编消息,标准消息汇编缓冲器移位寄存器490又从CAN协议引擎495接收串行数据流。存储器470的第二数据端口与中央处理单元485耦合。然而,根据另一实施例,CPU 485与描述符表控制单元460可共享与存储器470耦合的同一数据总线。
使用特定设计的缓冲器描述符表来以特定方式将CAN消息存储到随机存取存储器470中。通常,(例如)从以太网协议知道的缓冲器描述符表(BDT)具有与其相关联的显著开销。此外,此些传统缓冲器描述符表存储指针数据,所述指针数据分支到实际上存储附加到消息或嵌入于消息中的数据的存储器的不同部分。BDT可含有相对大量的必须读取的信息。当结合显著大于BDT中所含有的信息的数据消息读取BDT时,那么读取及处理BDT中的信息的开销相对低。此导致显著开销及复杂的存储器管理。然而,对于具有小数据大小的应用,例如CAN系统,用于从BDT读取及处理信息的开销可显著影响系统性能。
因此,根据各种实施例提供供用于CAN控制器中的特定设计的缓冲器描述符表。此特定设计的缓冲器描述符表减少从CAN装置的BDT读取及处理信息的开销。根据一实施例,已设计一种轻量级BDT,其中每一缓冲器描述符表条目可具有恒定大小及/或含有实际数据荷载。根据本发明的教示,此轻量级BDT放弃完全BDT的一些灵活性,但节约显著硅面积、所需的处理能力及总线存取。在轻量级BDT中,消除对数据的指针且可合并状态字段,因此每BDT查找节约两次(2)读取。
不限制应用专用缓冲器。而是,系统存储器或可用RAM的大小理论上限制多少条目可用。如上文所提及,根据一实施例所使用的特定描述符表允许快速数据检索,因为使所需读取的数目最小化。根据一实施例,缓冲器描述符表可包含以下条目。编号210指定含有帧状态的具有32位的第一条目。编号220指定下一表条目的32位地址。地址220允许存储器的灵活处置。举例来说,可使用多个非连续存储器段来代替连续表条目。编号230含有标准CAN识别符(SID)且编号240含有扩展的识别符及DLC条目。以下两个32位字250及260包含CAN消息的实际8个数据字节。可设计其它缓冲器描述符表。根据各种实施例的基本要求是包括实际数据荷载以及对下一表条目的指针。另外,可添加状态信息及各种识别符信息。相应条目的次序可变化且不重要。
描述符表控制单元460以图4中所示的此特定设计的缓冲器描述符表操作。图3展示标准及扩展的消息被接收于消息汇编缓冲器移位寄存器490中时的标准及扩展的消息。主要差异在于额外发送者识别符,其中在扩展的版本中,将额外29个位提供给标准11位识别符。两个版本中的数据有效荷载为8个字节。因此,最多需要14个字节来存储CAN消息。一旦经接收,经汇编消息被并行转发到描述符表控制单元460。描述符表控制单元460还接收经由屏蔽寄存器415、420、滤波器寄存器425、430及评估逻辑435、440、450产生的所有必需控制信号。在接收到待传送到缓冲器中的有效消息之后,描述符表控制单元460借助从消息汇编缓冲器接收的数据产生如图4中所示的缓冲器描述符表条目。如果此为第一表条目,那么可从相关联控制寄存器检索开始表地址。否则,使用来自先前所存储的表条目的字段220的下一可用地址。因此,不必需专用缓冲器存储器,特定来说不必需需要集成电路上的实质面积的FIFO。根据本发明的各种实施例提供在不考虑其相应复杂性的情况下与USB及以太网装置类似的外观及感觉。控制单元仅必须存储对第一存储器条目的指针,此节约大量原本需要的存储容量及逻辑。
举例来说,通过高等级指令(例如,存储器分配指令(malloc)或任何其它合适的存储器分配指令),用户程序可将存储器空间分配给CAN控制器且将开始及结束地址指派给描述符表控制单元460。用户程序接着可仅检索相应表条目,其中每一表条目内的固定指派允许非常快速的检索。由于缓冲器的大小仅受存储器大小的限制,因此缓冲器的非常灵活的管理适用,其中不会容易地丢失数据。如图4中所设计的缓冲器描述符表针对来自存储于存储器中的表条目的实际CAN消息仅需要四次字读取。状态字段可容易地更新且含有所有必需信息。控制单元可容易地包括时间戳条目。
此外,实际数据荷载总是存储于表条目内且因此具有从每一表条目的开始地址的(举例来说)四个32位字的恒定偏移(见图4)。此结构中不存在可变长度,此允许快速地检索所需信息。
图5展示可如何将数据存储于RAM 470中。可存储于专用控制寄存器中的CAN缓冲器开始地址指示表条目的开始。每一表条目中的第二32位数据字含有下一表条目的实际地址,其可如实线所展示为连续的或如断线所展示为不连续的。
以逐位方式而非并行地进行滤波器寄存器425、430中所存储的滤波器值与所传输识别符的比较。因此,避免需要相对大量的硅面积的并行比较器。CAN协议引擎495所提供的串行数据流包含识别符,所述识别符被直接馈送到所有位比较器单元435、440。定序器与控制单元410寻址屏蔽寄存器415、420及所有滤波器寄存器425、430以将对应位输出到位比较器单元435、440。位比较器单元435、440将所有滤波器寄存器位与帧内的相应识别符位进行比较。通过将结果与相应屏蔽寄存器位进行比较来对其进行进一步处理。为此,每一滤波器寄存器425、430的额外存储位可指示哪一屏蔽寄存器应用于此比较。下文将更详细地解释此功能。将针对帧内的每一识别符的所有位积累最终比较结果。如果单个比较失败,那么将不产生接受信号。如果每个位比较为正,那么会将接受信号馈送到描述符表控制单元460且馈送到OR门450的相应输入。
图6更详细地展示来自图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的编程取决于波特率及外部物理延迟时间。
在图7中,展示比较器单元的示范性实施例。展示单个位比较器单元的细节,但所述细节相应地适用于所有其它位比较器单元。编号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来同步及激活相应信号。
图8更详细地展示具有甚至更多功能性的位比较器单元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 (20)

1.一种微控制器,其包含:
随机存取存储器;
控制器区域网络(CAN)控制器,其包含接收经汇编CAN消息的控制单元,其中所述控制单元使用所述经汇编CAN消息产生缓冲器描述符表条目且将所述缓冲器描述符表条目存储于所述随机存取存储器中,且其中所述缓冲器描述符表条目包含来自所述CAN消息的至少一消息识别符及荷载数据以及随后缓冲器描述符表条目的信息。
2.根据权利要求1所述的微控制器,其中缓冲器描述符表条目具有恒定大小。
3.根据权利要求1所述的微控制器,其中所述缓冲器描述符表条目进一步包含帧状态及扩展的CAN消息识别符。
4.根据权利要求1所述的微控制器,其中所述微控制器为32位微控制器且所述缓冲器描述符表条目由六个32位字组成。
5.根据权利要求1所述的微控制器,其中所述缓冲器描述符表条目包含帧状态字、下一地址位置字、消息识别符字、扩展的消息识别符字、包含四个字节的第一数据字及包含四个字节的第二数据字。
6.根据权利要求1所述的微控制器,其中所述随机存取存储器为双端口或多端口存储器。
7.根据权利要求1所述的微控制器,其中所述CAN控制器包含与所述控制单元耦合的消息汇编缓冲器移位寄存器。
8.根据权利要求7所述的微控制器,其中所述CAN控制器包含将多个屏蔽寄存器及多个滤波器寄存器与所述控制单元耦合的逻辑,其中所述逻辑产生指示所述消息汇编缓冲器移位寄存器中的有效条目的信号。
9.一种在微控制器内存储控制器区域网络(CAN)消息的方法,其包含以下步骤:
接收CAN消息;
汇编所述CAN消息;
使用所述经汇编CAN消息产生缓冲器描述符表条目;及
将所述缓冲器描述符表条目存储于所述微控制器的随机存取存储器中,其中所述缓冲器描述符表条目包含来自所述CAN消息的至少一消息识别符及荷载数据以及随后缓冲器描述符表条目的信息。 
10.根据权利要求9所述的方法,其中所述CAN消息可为标准CAN消息以及扩展的CAN消息。
11.根据权利要求9所述的方法,其中缓冲器描述符表条目具有恒定大小。
12.根据权利要求9所述的方法,其中所述缓冲器描述符表条目进一步包含帧状态及扩展的CAN消息识别符。
13.根据权利要求9所述的方法,其中所述微控制器为32位微控制器且所述缓冲器描述符表条目由六个32位字组成。
14.根据权利要求9所述的方法,其中所述缓冲器描述符表条目包含帧状态字、下一地址位置字、消息识别符字、扩展的消息识别符字、包含四个字节的第一数据字及包含四个字节的第二数据字。
15.根据权利要求9所述的方法,其中所述随机存取存储器为双端口或多端口存储器。
16.根据权利要求9所述的方法,其中通过消息汇编缓冲器移位寄存器来执行所述汇编CAN消息的步骤。
17.根据权利要求16所述的方法,其进一步包含借助多个屏蔽寄存器及多个滤波器寄存器来产生有效性信号的步骤,所述有效性信号指示所述消息汇编缓冲器移位寄存器中的有效条目。
18.一种32位微控制器,其包含:
双端口32位宽随机存取存储器;及
控制器区域网络(CAN)控制器,其包含接收经汇编CAN消息的控制单元,其中所述控制单元使用所述经汇编CAN消息产生缓冲器描述符表条目且将所述缓冲器描述符表条目存储于所述随机存取存储器中,且其中所述缓冲器描述符表条目由32位帧状态字、32位下一地址位置字、32位消息识别符字、32位扩展的消息识别符字、第一32位数据字及第二32位数据字组成。
19.根据权利要求18所述的微控制器,其中所述CAN控制器包含与所述控制单元耦合的消息汇编缓冲器移位寄存器。
20.根据权利要求19所述的微控制器,其中所述CAN控制器包含将多个屏蔽寄存器及多个滤波器寄存器与所述控制单元耦合的逻辑,其中所述逻辑产生指示所述消息汇编缓冲器移位寄存器中的有效条目的信号。 
CN201080008842.1A 2009-05-28 2010-05-21 具有使用缓冲器描述表的控制器区域网络模块的微控制器 Active CN102326363B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US18172009P 2009-05-28 2009-05-28
US61/181,720 2009-05-28
US12/776,046 2010-05-07
US12/776,046 US8650356B2 (en) 2009-05-28 2010-05-07 Microcontroller with CAN module
PCT/US2010/035767 WO2010138416A1 (en) 2009-05-28 2010-05-21 Microcontroller with can module using a buffer description table

Publications (2)

Publication Number Publication Date
CN102326363A CN102326363A (zh) 2012-01-18
CN102326363B true CN102326363B (zh) 2014-10-29

Family

ID=43221568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080008842.1A Active CN102326363B (zh) 2009-05-28 2010-05-21 具有使用缓冲器描述表的控制器区域网络模块的微控制器

Country Status (5)

Country Link
US (1) US8650356B2 (zh)
EP (1) EP2436150B1 (zh)
KR (1) KR101708876B1 (zh)
CN (1) CN102326363B (zh)
WO (1) WO2010138416A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9219597B2 (en) * 2011-01-25 2015-12-22 Abb Technology Ag Method and transmission protocol for transmission of data among devices sharing a communication channel
EP2521319B1 (en) * 2011-05-02 2015-10-14 Robert Bosch GmbH Controller area network with flexible data-rate
GB201206409D0 (en) * 2012-03-26 2012-05-23 Continental Automotive Systems Method and apparatus to reduct flash memory device programming time over a C.A.N. bus
CN103248520A (zh) * 2013-04-28 2013-08-14 安徽江淮汽车股份有限公司 一种can总线的总线脱离故障处理方法及系统
EP2822230B1 (de) * 2013-07-04 2017-10-18 Omicron electronics GmbH Datenübertragung über einen Speicher einer Kommunikationsvorrichtung
US9288048B2 (en) * 2013-09-24 2016-03-15 The Regents Of The University Of Michigan Real-time frame authentication using ID anonymization in automotive networks
US9892073B1 (en) 2014-10-06 2018-02-13 Master Lock Company Llc Bus addressing systems and methods using repurposed bits
DE102015105110A1 (de) 2015-04-02 2016-10-06 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Steuergerät zum Verbinden eines CAN-Busses mit einem Funknetzwerk und Kraftfahrzeug mit einem solchen Steuergerät
DE102015105112A1 (de) 2015-04-02 2016-10-06 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Steuergerät zum Verbinden eines CAN-Busses mit einem Funknetzwerk und Kraftfahrzeug mit einem solchen Steuergerät
DE102015105134A1 (de) 2015-04-02 2016-10-06 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Steuergerät zum Verbinden eines CAN-Busses mit einem Funknetzwerk und Kraftfahrzeug mit einem solchen Steuergerät
US10361934B2 (en) * 2015-09-28 2019-07-23 Nxp B.V. Controller area network (CAN) device and method for controlling CAN traffic
US10129150B2 (en) 2015-12-01 2018-11-13 Marvell World Trade Ltd. Systems and methods for implementing a switched controller area network
DE102017002806B4 (de) * 2017-03-23 2018-10-04 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Koppler für ein Automatisierungssystem
CN108199941B (zh) * 2017-12-29 2022-03-08 北京纳米维景科技有限公司 一种基于can2.0b的can总线通信方法
TWI678902B (zh) * 2018-11-28 2019-12-01 中華電信股份有限公司 針對應用進行封包處理/交換的網路系統與方法
US10992516B2 (en) * 2018-12-13 2021-04-27 Honeywell International Inc. Efficient self-checking redundancy comparison in a network
CN110808891B (zh) * 2019-09-30 2021-10-12 深圳市道通合创新能源有限公司 一种can过滤器合并的方法、装置及can控制器
KR102275145B1 (ko) * 2019-12-30 2021-07-07 현대오트론 주식회사 베이직 캔 메시지 송신 방법 및 베이직 캔 컨트롤러
KR20220001350A (ko) 2020-06-29 2022-01-05 주식회사 엘지에너지솔루션 네트워크 라우팅 장치 및 방법
WO2022080520A1 (ko) * 2020-10-14 2022-04-21 엘지전자 주식회사 차량이 메시지를 고속으로 전송하는 방법
KR102471960B1 (ko) * 2020-11-18 2022-11-30 한국자동차연구원 차량용 can 통신 보안 장치 및 방법
CN113852533B (zh) * 2021-09-27 2022-06-07 北京微纳星空科技有限公司 一种多通道数据通信系统、方法及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556642A (zh) * 2003-12-31 2004-12-22 中兴通讯股份有限公司 Pos-phy总线与pci总线间的数据包转发的装置和方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2684362B2 (ja) 1986-06-18 1997-12-03 株式会社日立製作所 可変長データの記憶方式
US6604156B1 (en) 1999-09-15 2003-08-05 Koninklijke Philips Electronics N.V. Message buffer full handling in a CAN device that employs reconfigurable message buffers
US6944739B2 (en) * 2001-09-20 2005-09-13 Microchip Technology Incorporated Register bank
US7882505B2 (en) 2005-03-25 2011-02-01 Oracle America, Inc. Method and apparatus for switching between per-thread and per-processor resource pools in multi-threaded programs
US7975120B2 (en) * 2006-12-27 2011-07-05 Freescale Semiconductor, Inc. Dynamic allocation of message buffers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556642A (zh) * 2003-12-31 2004-12-22 中兴通讯股份有限公司 Pos-phy总线与pci总线间的数据包转发的装置和方法

Also Published As

Publication number Publication date
KR101708876B1 (ko) 2017-02-21
CN102326363A (zh) 2012-01-18
EP2436150A1 (en) 2012-04-04
WO2010138416A1 (en) 2010-12-02
US8650356B2 (en) 2014-02-11
KR20120014554A (ko) 2012-02-17
US20100306457A1 (en) 2010-12-02
EP2436150B1 (en) 2013-04-03

Similar Documents

Publication Publication Date Title
CN102326363B (zh) 具有使用缓冲器描述表的控制器区域网络模块的微控制器
CN102334314B (zh) 用于并置控制器区域网络数据有效负载的方法
US5392406A (en) DMA data path aligner and network adaptor utilizing same
US8660131B2 (en) Storage unit for communication system node, method for data storage and communication system node
US6925512B2 (en) Communication between two embedded processors
RU2377729C2 (ru) Способ и устройство для обращения к памяти сообщений коммуникационного модуля
US7979594B2 (en) Serial communications device with dynamic allocation of acceptance masks using serial implementation
US20080140949A1 (en) Flexray Communication Module
CN1819554B (zh) 数据处理系统及其数据接口连接方法
US20120044951A1 (en) Alignment apparatus and method
JP2009512259A (ja) FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法
US6944739B2 (en) Register bank
US7069407B1 (en) Method and apparatus for a multi-channel high speed framer
JP2009502072A (ja) FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法
CN100586092C (zh) 采用动态滤波器分配的串行通信设备
US6912594B2 (en) Serial communication device with multi-mode operation of message receive buffers
US7076517B2 (en) Serial communication device with dynamic filter allocation
EP0344915B1 (en) Apparatus and method for processing bit streams
CN117687947A (zh) 基于PCIe读取位流的方法及装置
KR100652357B1 (ko) 최종 데이터를 효율적으로 처리하는 하이 레벨 데이터링크 제어 시스템

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