CN101427198A - 在控制域网微控制器中节省电耗的方法和采用该方法的控制域网微控制器 - Google Patents

在控制域网微控制器中节省电耗的方法和采用该方法的控制域网微控制器 Download PDF

Info

Publication number
CN101427198A
CN101427198A CNA008026521A CN00802652A CN101427198A CN 101427198 A CN101427198 A CN 101427198A CN A008026521 A CNA008026521 A CN A008026521A CN 00802652 A CN00802652 A CN 00802652A CN 101427198 A CN101427198 A CN 101427198A
Authority
CN
China
Prior art keywords
cal
message
signal
processor cores
module
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.)
Granted
Application number
CNA008026521A
Other languages
English (en)
Other versions
CN101427198B (zh
Inventor
W·斯尔夫科夫
H·哈本
N·E·比尔恩斯
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN101427198A publication Critical patent/CN101427198A/zh
Application granted granted Critical
Publication of CN101427198B publication Critical patent/CN101427198B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/46Interconnection of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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/40039Details regarding the setting of the power status of a node according to activity on the bus
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • 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/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1664Details of the supervisory signal the supervisory signal being transmitted together with payload signals; piggybacking
    • 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
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Power Sources (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

一种在CAN微控制器中节省电耗的方法,CAN微控制器包括微处理器内核和CAN/CAL模块,后者包括若干子模块,这些子模块协同工作来处理输入的CAL/CAN消息。所述方法包括以下步骤:将处理器内核置于省电的工作方式(如睡眠或空闲工作方式);将CAN/CAL模块置于省电的工作方式;以及激活CAN/CAL模块去处理输入CAL/CAN消息(例如,对多帧分段CAL/CAN消息作自动硬件装配),从而结束其省电的工作方式,而处理器内核在其省电工作方式。在最佳实施例中,由CAN/CAL模块自动地将输入的多帧分段消息装配,而其处理器内核仍保持其省电工作方式不变,对多帧分段消息组装完成作出反映,CAN/CAL产生消息完成中断,由此响应所述消息完成中断来执行结束步骤。在另外一个实施例中,所述方法包括如下步骤:将整个CAN微控制器,包括其处理器内核和CAN/CAL模块,置于掉电的工作方式;检测输入消息的接收;以及对检测步骤作出反应来激活CAN/CAL模块去处理输入消息(例如,自动地对多帧分段CAL/CAN消息做硬件装配),由此结束CAN/CAL模块的掉电工作方式,但处理器内核的掉电工作方式却不终结。

Description

在控制域网微控制器中节省电耗的方法和采用该方法的控制域网微控制器
本申请要求拥有1999年9月15日申请的美国临时申请No.60/154022的全部利益和优先权。所公开的内容全部纳入此申请范围并供各种场合应用。
一般地说,本发明涉及数据通信技术领域,更具体地说,涉及串行通信总线控制器和含有串行通信总线控制器的微控制器技术领域。
CAN(控制域网,Control Area Network)是一种工业标准的二线串行通信总线,它广泛地用在自动化和工业控制、以及医疗器械、航空电子设备、办公室自动化设备、消费电器和许多其它产品和应用场合中。目前,CAN控制器既可以作为独立的、与微控制器接口适配的设备使用,也可以作为电路或模块嵌入到微控制器芯片中。自1986年以来,CAN的用户(软件程序员)已经开发了无数高级CAN应用层(CAL),这些应用层利用CAN物理层和CAN帧格式,并遵循CAN规范,扩展了CAN的功能。目前为止,CAL主要是用在软件方面,硬件CAL支持非常少。其结果使得目前CAL工作过程仍需要主CPU的大量干预,由此增加了处理开销和降低了主CPU的性能。
因此,技术上需要CAN硬件实现通常由软件实现的CAL功能,从而将原来主CPU的工作转由CAN硬件来做,达到大量节省主CPU的处理资源,相应改善主CPU性能的目的。其中最急需而又消耗大量CPU资源的CAL功能是消息管理,具体来说,就是对通过CAN串行通信总线接收的输入CAL/CAN消息,和/或通过CAN串行通信总线发送的输出CAL/CAN消息进行控制、储存和处理。CAL协议,例如DeviceNet、CANopen、和OSEK等,提供分布到多个CAN帧的长消息,该方法有时称为分段@(Afragment@或Asegmented@)消息接发。组装这种分段多帧消息的过程直到目前为止仍需要主CPU的大规模干预。具体来说,为了将消息片或分段组装成完整的消息,运行在主CPU上的CAL软件主动地监视和管理这种消息数据的缓存和处理。
基于以上和先前的理由,可以这样认为:为了卸下主CPU的上述任务,进而节省大量的CPU处理资源,达到相应改善主CPU性能的目的,目前技术上需要硬件实现通常由软件实现的CAL功能。
本发明的受让方最近开发了一种新的微控制器产品,称为“XA-C3”,来满足技术上的这种需要。XA-C3是Philips XA(扩展体系结构-eXtendedArchitecture)高性能16位单片微控制器家族的最新成员。相信XA-C3是第一种具有硬件CAL支持特征的芯片。
XA-C3是CMOS 16位CAL/CAN 2.0B微控制器。该产品整合了多种不同的发明,包括本发明。这些发明包含新颖的技术和硬件,它们用于对CAL/CAN消息进行过滤、缓存、控制和处理的,包括自动装配多帧分段的CAL/CAN消息时需要CPU的干预最小,以及用于对消息数据的储存和检索以及对在此过程中所使用的存储资源进行管理。
本发明涉及电力节省方案,它使微控制器中的一个或多个硬件元件,例如CPU内核,停留在睡眠或空闲方式,而其它硬件,例如CAL/CAN硬件单元处于有效状态,如能自动进行装配多帧分段消息的状态。
本发明包括在CAN微控制器中节省电力的方法,该微控制器包括处理器内核和CAN/CAL模块,而后者含有多个子模块,这些子模块协同工作来处理输入CAL/CAN消息,上述方法包括如下步骤:将处理器内核设置为省电的工作方式(如睡眠或空闲工作方式),将CAN/CAL模块设置为省电的工作方式,激活CAN/CAL模块来处理输入CAN/CAL消息(例如,对多帧分段的CAN/CAL消息作自动硬件装配),从而终止该模块的省电工作方式,但同时继续让处理器内核以省电方式工作。
在最佳实施例中,该方法还包括以下步骤,对装配多帧分段的CAL/CAN消息的完成作出反应,产生“消息完成中断”;对“消息完成中断”作出反映,激活处理器内核。在特定的最佳实施例中,所述方法还包括以下步骤:连续多次地反复执行将CAN/CAL模块设置为省电工作方式的步骤和激活的步骤,而处理器内核处于省电的工作方式。
在本具体的实现中,将CAN/CAL模块设置为省电工作方式的步骤是由CAN/CAL模块内含的供电或睡眠控制模块按下述方式完成的。具体地说,与多个子模块中的每一个都相联系的第一逻辑电路在那个子模块当前正处于有效状态时产生相应的具有第一逻辑电平的第一信号;如果该子模块当前不是处于有效状态,则产生具有第二逻辑电平的第一信号。第二逻辑电路产生第二信号。如果第一信号中的任何一个为第一逻辑电平,则该第二信号具有第一逻辑电平;如果所有第一信号都具有第二逻辑电平,则第二信号将拥有第二逻辑电平与之相对应。第三逻辑电路产生第三信号。如果处理器内核不是处于空闲状态,则第三信号具有第一逻辑电平;如果处理器内核处于空闲状态,则第三信号具有第二逻辑电平。第四逻辑电路产生第四信号。如果输入消息正被接收,则第四信号具有第一逻辑电平;如果输入消息当前没有被接收,则第四信号具有第二逻辑电平。如果第二、第三和第四信号全都处于它们各自的第二逻辑电平,则第五逻辑电路产生时钟禁止信号作为响应。作为对时钟禁止信号的响应,第六逻辑电路禁止向CAN/CAL模块输入时钟信号,从而将CAN/CAL模块设置为省电的工作方式。
在本具体的实现中,将处理器内核设置为省电工作方式的步骤是由CAN/CAL模块内部包含的供电或睡眠控制模块以下述方式完成的。具体地说,如果处理器内核具有未决中断,则供电控制模块的第一逻辑部分产生具有第一逻辑电平的时钟禁止信号,如果该处理器内核没有未决中断,则产生具有第二逻辑电平的时钟禁止信号。作为对时钟禁止信号的响应,供电控制模块的第二逻辑部分将禁止向处理器内核输送时钟信号,由此将处理器内核设置为省电的工作方式。
另一方面,本发明包括一种CAN微控制器中节省电能的方法,所述CAN微控制器包括处理器内核和CAN/CAL模块,所述方法包括以下步骤:将处理器内核设置为省电的工作方式(例如,睡眠或空闲工作方式),而让CAN/CAL模块主动处理输入CAN/CAL消息(例如对多帧分段CAN/CAL消息做自动硬件装配);和响应中断而终止省电工作方式。
在最佳实施例中,CAN/CAL模块对输入多帧分段的消息进行自动装配的同时,让处理器内核保持省电工作方式;对多帧分段消息装配的完成作出反应,CAN/CAL模块产生“消息完成”中断,由此对“消息完成”中断作出反应,执行终止的步骤。
在本具体的实现中,将处理器内核设置为省电工作方式的步骤是由CAN/CAL模块中所含的供电或睡眠控制模块以下述方式完成的。具体来说,供电控制模块的第一逻辑部分产生时钟禁止信号,如果处理器内核有未决中断,则该信号具有第一逻辑电平;如果处理器内核没有未决中断,则该信号具有第二逻辑电平。对时钟禁止信号作出反应,供电控制模块的第二逻辑部分禁止向处理器内核输送时钟信号,由此将处理器内核设置为省电工作方式。
再一方面,本发明包括一种用于在CAN微控制器中节省电力的方法,所述CAN微控制器包括微处理器内核和CAN/CAL模块,所述方法包括以下步骤:将整个CAN微控制器,包括处理器内核和CAN/CAL模块都设置为掉电工作方式;检测输入消息的接收;对检测步骤作出反应,激活CAN/CAL模块去处理输入消息(例如,对多帧分段消息进行自动硬件装配);由此终止CAN/CAL模块的掉电工作方式,而处理器内核的掉电工作方式没有终结。
在最佳实施例中,该方法还包括以下步骤:对所述检测步骤作出反应,将处理器内核设置为省电工作方式(例如睡眠或空闲工作方式)。处于省电工作方式时的处理器内核可以被即时充分唤醒,也可以经过一段预先设定的唤醒时间后被唤醒。
在具体的实现中,所述设置步骤是通过以下方式来执行的:确定CAN/CAL模块是否作好进入掉电工作方式的准备,对CAN/CAL模块已经作好了进入掉电工作方式的准备的确定作出反应,停止主系统时钟的工作。还有,在具体的实现中,该方法还包括如下步骤:响应外部中断或系统复位命令,终止整个CAN微控制器的掉电工作方式,包括微处理器内核和CAN/CAL模块。
又一方面,本发明包含其中使用上面讨论方法中的一个或多个方法的CAN微控制器。
参阅下述详细说明及附图,本发明的这些和各种其它方面、特征和优点很容易理解。附图中:
图1是表示标准CAN帧格式和扩展CAN帧格式的示意图;
图2是表示不同的,相互无关的消息的CAN数据帧的交织的示意图;
图3是表示XA-C3微控制器高级功能块的示意图;
图4是由XA-C3提供的所有内存映射寄存器(MMR)的列表;
图5是表示XA-C3微控制器整个数据储存空间映射情况的示意图;
图6是表示XA-C3微控制器的整个数据储存空间中所包含的MMR空间的示意图;
图7是表示XA-C3微控制器的片上(on-chip)XRAM基地址形成的示意图,其中对象n消息缓存器被映射到片外(off-chip)数据储存器;
图8是表示XA-C3微控制器的片上XRAM基地址形成的示意图,其中对象n消息缓存器被映射到片上XRAM上;
图9是表示标准CAN帧的筛选器ID(Screener ID)字段的示意图;
图10是表示扩展CAN帧的筛选器ID字段的示意图;
图11是表示分段CAL消息的消息储存格式的示意图;
图12是表示分段CAN消息的消息储存格式的示意图;
图13是根据本发明整合到XA-C3微控制器内部的睡眠控制模块的部分功能模块的部分示意图;和
图14是图示XA-C3微控制器的CAN/CAL模块及其组成子模块的高级功能方框图。
下面结合本发明的特定实现,即根据由飞利普半导体(PhilipsSemicon-ductors)公司制造的XA-C3微控制器对本发明加以说明。当然,显然本发明不限于该特定实现,在此公开的本发明的一个或多个方面和特征可以被单独地或结合起来用于任何所需的应用场合,如独立的CAN控制器或作为其它控制器或系统的一部分。
下面是在描述本发明最佳实施例(即XA-C3微控制器)时所用到的术语,他们的定义如下:
标准CAN帧:        标准CAN帧的格式在图1中表示。
扩展CAN帧:        扩展CAN帧的格式也在图1中表示。
接受过滤:         CAN装置所执行的过程,目的是确定应该接受一个CAN帧还是不予理睬,而一旦接受,就把该帧储存到预先分配的消息对象中。
消息对象:         与特定接受过滤器相联系的具有预先规定尺寸(对CAL消息不超过256个字节)的接收RAM缓存器;或指用户为了发送一个完整的CAN数据帧而将全部所需的数据预先加载到的发送RAM缓存器。消息对象可以看成是通信信道,通过该信道,可以发送一条完整的消息或一连串消息。
CAN仲裁ID:        放在CAN帧标题的、长度为11比特(标准CAN2.0帧)或29比特(扩展CAN2.0B帧)的标识(ID—identifier)字段。该ID字段用来对访问CAN总线的帧作出仲裁。还用在CAN帧接受的接受过滤和发送预仲裁。
筛选器ID:    从输入消息中抽取然后在接受过滤中使用的长度为30比特的字段。筛选器ID包括CAN仲裁ID和IDE比特,最多可含有2个数据字节。这30个被抽出的比特是由接受过滤判为合格的信息。
匹配ID:      用户预先规定的长度为30比特的字段,用来和输入筛选器ID作比较。用户负责将每32个消息对象的各个匹配ID编程写入指定的内存映射寄存器(MMR)中。
屏蔽:        由用户预先规定的29比特长的字段,该字段能够在接受过滤器的任何特定比特(或比特的组合)处不考虑(屏蔽)匹配ID比较。各个屏蔽与消息对象一一对应,它们被用户编程写入指定的MMR中。各个屏蔽模式保证:对多个被确认的CAL/CAN帧,单一的接收对象可筛选,这样就可以将专供于这种优先级帧的接收对象的数目减到最少。屏蔽各个消息对象的能力是重要的新的CAL特征。
CAL:         CAN应用层(CAN Application Layer)。这是使用CAN物理层和CAN帧格式扩展CAN功能并且符合CAN规范的任何高级协议的通用术语。其中,CAL允许发送超出CAN帧固有的8字节数据长度限制的消息。具体做法是将每条消息划分到多个分组(packet),每个分组是作为一个长度不超过8字节的CAN帧被发送。这种消息通常被称作“分段的”或“分片的”消息。构成完整的分段消息的各个CAN帧通常不是以连续方式发送,而是不同的相互无关的消息的各个CAN帧在CAN总线上交织起来发送,如图2所示。
分段消息:     一条长消息(超过8字节)被划分到多个数据分组然后用一连串的各个CAN帧发送。这种用系列CAN帧构成这些长消息的特定方式将根据特定的CAL环境来定义。XA-C3微控制器自动地用硬件将这些分组重新组装成原来的长消息,并当完整的(重新组装好的)消息可以作为相关的接收消息对象被使用时(通过中断)发出报告。
消息缓存器:  XA数据存储器中的一块地方,用来存放输入(接收的)消息或输出的(发送的)消息。
MMR:         内存映射寄存器(Memory MappingRegister)。片上命令/控制/状态寄存器,其地址被映射到XA数据储存空间,并被XA处理器作为数据储存器访问。对XA-C3微控制器而言,每8个专用MMR为一组与一个消息对象相联系。另外,有几个MMR,其比特控制全局参数,后者适用于所有消息对象。
参阅图3,可以看到XA-C3微控制器20的高级功能块的示意图。XA-C3微控制器20包括下列功能模块,这些模块是制作在单片的有44引出脚的PLCC或44脚的LQFP封装的集成电路(IC)上的。
XA CPU内核22目前用16位全静态CPU实现,具有24位的程序和数据地址范围,向上与80C51体系结构兼容,最高工作频率可达30MHz。
程序或代码存储器24目前用32K ROM/EPROM实现,而且通过内部程序总线25与XA CPU内核22实现双向耦合。图4说明代码储存空间的映射。
数据RAM 26(内部或暂存数据储存器),目前为占整个XA-C3存储空间中的大小为1024字节的部分,并且通过内部数据总线27与XA CPU内核22实现双向耦合。
片上消息缓存RAM或XRAM 28,目前为占整个XA-C3数据储存空间中大小为512字节的部分,它可能包含部分或全部CAN/CAL(发送和接收对象)消息缓存器。
存储器接口(MIF)单元30,它通过外部地址/数据总线32、内部内核数据总线34、以及内部MMR总线36提供与诸如SRAM、DRAM、快闪储存器、ROM和EPROM存储器件的一般储存器的接口。
DMA引擎38提供32个CAL DMA通道。
多个片上内存映射寄存器(MMR)40被映射到整个XA-C3数据储存空间—整个XA-C3数据存储空间中有大小为4K字节的部分保留给MMR使用。这些MMR包括32个(消息)对象或地址指针和32个筛网ID或匹配ID,对应于32个CAL消息对象。图5的表格提供了所有MMR的完整列表。
2.0B CAN/DLL内核42是CAN控制器内核Philips公司的SJA1000CAN(2.0A/B)数据链路层(CDLL)器件(自今以后称为“CAN内核块(CAN Core Block)”(CCB));以及,
一系列标准的微控制器外围设备,它们通过特殊功能寄存器(Special Function Register—SFR)总线43实现与XA CPU内核22的双向耦合。这些标准微控制器外围设备包括:通用异步收发器UART(Universal Asynchronous Receiver Transmitter)49、SPI串行接口(端口)51、三个标准的具有切换功能的定时器/计数器(即定时器模块53中的定时器0和定时器1,以及定时器模块54所包含的定时器2)、看门狗定时器55和四个8位I/O端口(也就是模块61所包含的端口0-3,每个口有4个可编程输出配置)。
DMA引擎38,RMM40和CCB 42可整体地视为CAN/CAL模块77的组成部分,并将会在以下的说明过程中多次提到。而且,在CAN/CAL模块77内部还包含特定的逻辑元件,它们起着“消息管理”和“消息处理”的功能,在以下整个说明过程中将会多次分别称为“消息管理引擎”和“消息处理程序”。其它名词术语将在以下阐述过程中介绍时定义。
正如先前所提到的,XA-C3微控制器20自动地用硬件实现许多消息管理和其它功能,而这些功能先前只能用运行于主CPU上的软件实现(或者根本没有实现),包括透明自动重新组装多达32个并发的、交织的、多帧分段的CAL消息。对每一个安装运行于主CPU(即XA CPU内核22)的应用来说,用户(软件编程人员)必须设置硬件去实现这些功能,方法是按照“XA-C3功能规范”和“XA-C3 CAN传输层控制器用户手册”对某些MMR和SFR进行编程。对寄存器编程的过程大多数情况下牵涉到对本发明的理解,并将在以下文字中介绍,接下来是阐述各种消息管理和其它功能,这些功能是经用户适当设置之后在XA-C3微控制器20的工作过程中由CAL/CAN模块77自动完成的。在这些章节后,将给出与本应用有关的具体发明的更详细描述。
设置/编程过程
作为初始化,用户必须映射整个XA-C3数据储存空间,如图5所示。特别是,在某种限制的情况下,用户必须指定XRAM 28的起始地址或基地址,以及MMR 40的起始地址或基地址。MMR 40的基地址可以通过对特殊功能寄存器SFR:Special FunctionRegisters)MRBL和MRBH进行适当编程来指定。XRAM 28的基地址可以通过对MMR指定的MBXSR和XRAMB(参见图4)恰当编程来确定。
用户可以将保留给MMR 40的4K字节的空间放在XA体系结构所支持的整个16M字节的数据储存器空间的任何地方,但储存器空间的最底部(即从地址000000h开始的第一1K字节部分)除外,因为在这个地方可能会与用作内部或暂存储存器的片上数据RAM 26发生冲突。4K字节的MMR空间总是会从4K边界开始。MRBH和MRBL的复位值相应为0Fh和F0h。因此复位后,MMR空间被映射到数据段0Fh的最上面的4K字节,但对MMR 40的访问被禁止。MMR空间的头512字节(偏移000h-1FFh)是对象n=0-31的消息对象寄存器(每消息对象8个),如图6所示。
XRAM28的基地址由MMR指定的MBXSR和XRAMB的内容确定,如图7和图8所示。正如先前所提到的,512字节的XRAM 28是32个(Rx/Tx)消息缓存器(对应于消息对象n=0-31)中的某些(或全部)驻留的地方。消息缓存器可以片外扩展到最大8K字节。片外扩展的容量可容纳32个256字节的消息缓存器。因为所有消息缓存器地址的最高8位内容由MBSXR寄存器的内容构成,XRAM 28和所有32个消息缓存器必须驻留在同一个64K字节的数据储存段。因为XA-C3微控制器20只将地址线A0-A19提供给外部储存器访问用,故所有外部储存器地址必须在地址空间的最低1M字节的范围内。所以,如果存在一个外部储存器,其中所述32个消息缓存器中的任何一个要映射到系统的该外部储存器,则所有32个消息缓存器和XRAM 28也必须整个地映射到同一个64K字节段,而且不能超出1M字节的地址界限。
储存器空间被映射过后,用户可以建立或定义多达32个单独的消息对象,其中每一个都可以是发送(Tx)或接收(Rx)消息对象。一个Rx消息对象既可以和唯一的CAN ID联系,也可以和CAN ID的一个集合相联系,集合中所有CAN ID共享某ID比特字段。正如先前所提到的,每一个消息对象都有其自己的数据储存器空间保留块(最大256字节),称为该消息对象的消息缓存器。我们将会看到,每个消息对象的缓存器的大小和基地址都是可以编程的。
正如先前所提到的,每一个消息对象都与一组该消息对象专用的8个MMR 40相联系,它们之中有些寄存器对Tx消息对象起的作用与对Rx消息对象起的作用有所不同。这8个MMRs 40被称为“消息对象寄存器”(参阅图4)。
这八个MMR 40的名称是:
1.MnMIDH     消息n匹配ID高
2.MnMIDL     消息n匹配ID低
3.MnMSKH     消息n屏蔽高
4.MnMSKL     消息n屏蔽低
5.MnCTL      消息n控制
6.MnBLR      消息n缓存器存储单元寄存器
7.MnBSZ  消息n缓存器大小
8.MnFCR  消息n分段计数寄存器
其中n的范围是从0到31(即对应32个独立的消息对象)。
一般说来,用户定义或建立一个消息对象的方法是配置(编程)某些或全部八个专用于该消息对象的MMR实现的,下面将进一步说明这一点。而且,即如下面所述,用户必须配置(编程)全局GCTL寄存器,该寄存器的各位控制着施用于所有消息对象的全局参数。
具体地说,用户可以指定每一个消息对象的匹配ID值,而该值将与从输入CAN帧中抽取的筛选器ID值作比较,以便进行接受过滤。每一个消息对象n的匹配ID值将在与所述消息对象n相联系的MnMIDH和MnMIDL寄存器中指定。用户可以将筛选器ID中那些不准备在接受过滤中使用的位屏蔽掉,做法是,一个对象接着另一个对象地在与每一个特定消息对象n相联系的适当的MnMSKH和/或MnMSKL寄存器中那些需要的(将被屏蔽的)比特位置写入逻辑“1”。在创建时,用户要负责为每一个消息对象n分配唯一的消息缓存器存储单元,具体做法是,用户可以通过对与消息对象n相联系的寄存器MnBLR编程来指定每一个特定的消息对象n的消息缓存器的基地址的最低16有效位。即如先前所讨论的那样,所有消息对象的24位地址的高8位是由MBXSR寄存器的内容指定的,这样就可以让所有消息对象的消息缓存器驻留在同一个64K字节的储存段中。在创建时,用户还负责指定每一个消息对象n的消息缓存器的大小。具体地说,用户通过对与每一个消息对象n相联系的MnBSZ寄存器进行编程来指定每一个特定消息对象n的消息缓存器的大小。每个消息对象的消息缓存器的顶部存储单元由相应MnBSZ寄存器中指定的所述消息缓存器的尺寸大小来确定。
用户可以配置(编程)与每一个特定的消息对象n相联系的MnCTL寄存器以便可以激活或禁止该消息对象n;以便定义或指定该消息对象n为Tx或Rx消息对象;以便允许或禁止对该消息对象n的分段Rx消息做自动硬件装配(即自动分段消息处理);以便允许或禁止自动产生该消息对象n的消息完成中断;以及,以便允许或不允许该消息对象n用于远程发送请求(RTR)处理。在CANopen和OSEK系统中,用户还必须初始化与每一个消息对象n相联系的MnFCR寄存器。
正如先前所讲的,创建时,用户必须配置(编程)全局GCTL寄存器,该寄存器的各位控制着施用于所有消息对象的全局参数。具体地说,用户可以配置(编程)GCTL寄存器,以便指定使用的高级CAL协议(如果有的话)(例如,DeviceNet、CANopen、或OSEK);以便允许或禁止自动确认CANopen帧(CANopen自动确认);以及,以便指定采用两个发送(Tx)预仲裁方案/策略的其中一个(也就是,或者基于CAN ID的Tx预仲裁,这种方案中对象号被用作第二仲裁器,或者仅基于对象号的预仲裁方案)
接收消息对象和接收过程
在接收过程中(即,当输入CAN帧正被XA-C3微控制器20接收的时候),CAN/CAL模块77将输入CAN帧储存在暂时的缓存器(13字节)中,并确定是不是已经成功地接收到了完整的、没有错误的CAN帧。如果确定已成功地接收到完整的、无差错的CAN帧,然后,CAN/CAL模块77启动接受过滤,以便确定是接收、储存或忽略/丢弃该CAN帧。
接受过滤
一般来说,XA-C3微控制器20为用户提供了对32个独立的消息对象中的每一个的各自的匹配ID和屏蔽字段的编程能力。如前面所述,XA-C3微控制器20执行的过滤过程可以表现为“匹配与屏蔽”技术的特征。此接受过滤过程的基本目的就是确定所接收的CAN帧的筛选器ID字段(不包括被每个消息对象的屏蔽字段所屏蔽掉的“不用管”的位)是否与32个消息对象中任何被允许了的已经指定接收消 息对象的匹配ID相匹配,如果被接收的CAN帧和一个以上的消息对象相匹配,则该被接收的CAN帧就被认为与具有最低对象号(n)的消息对象相匹配。
XA-C3微控制器20如下所述地执行接受过滤:
(1)从输入(被接收的)CAN帧中提取出筛选器ID字段。在这方面,从输入位流装配的筛选器ID字段对标准的CAN帧与对扩展的CAN帧是不一样的。具体地说,如图9所示,标准CAN帧的筛选器ID字段有28位,包括从所接收到的CAN帧的标题抽取的11个CAN ID位,加上接收的CAN帧的第一和第二数据字节(Data Byte 1和Data Byte 2)的2×8(16)位,再加上IDE位。这样,对标准CAN帧而言,用户就需要设置屏蔽字段(MnMSKL寄存器)中的Msk1和Msk0位,也就是设为“不用管”。另外,在许多基于标准CAN帧的应用场合,要么Data Byte 1,要么Data Byte 2,或者两者都不参加接受过滤。在这样的应用场合,用户还必须将未用的Data Byte屏蔽掉。IDE位是不可屏蔽的。如图10所示,扩展CAN帧的筛选器ID字段是30位的,包括29个从输入CAN帧标题抽取的CAN ID位加上IDE位。这里,IDE位也是不可屏蔽的。
(2)然后,所接收的CAN帧的装配筛选器ID字段依次和所有当前被允许了的接收消息对象的寄存器MnMIDH和MnMIDL所规定的相应匹配ID值相比较。当然,任何被特定消息对象所屏蔽了的筛选器ID字段的位不在比较之中。这就是说,如果由某个特定消息对象的MnMSKH和MnMSKL寄存器所规定的屏蔽字段中某位的值是‘1’,则该特定消息对象的匹配ID字段的对应位就变成为“不用管”位,即是说,与所接收的CAN帧的筛选器ID的相应位比较时总是会产生出匹配的结果。
(3)如果上述比较过程产生出和不止一个消息对象匹配的结果,则认为所接收的CAN帧与拥有最低对象号(n)的消息对象相匹配。
消息储存
每一个经过接收过滤的输入(被接收的)CAN帧都会经DMA引擎38自动地存储到与该特定CAN帧匹配的接收消息对象的缓存器中。在示例性实现中,所有消息对象的消息缓存器都包含在XRAM 28中。
消息装配
一般说来,DMA引擎38会把每一个被接受的CAN帧从13字节的预缓存器转移到合适的消息缓存器中(例如,在XRAM28中),一次转移一个字,从MBXSR和MnBLR寄存器内容指定的地址开始。每次DMA引擎38转移一个字节或一个字时,它就需要请求总线。关于这点,MIF单元30就负责在XA CPU内核和DMA引擎38之间就访问权作出仲裁。总线仲裁是基于“交替”的策略作出的。DMA总线访问完成后,XA CPU内核22如果请求了的话,就将被授权访问总线(但是,XA CPU内核22的突发访问不能被DMA总线访问中断的)。
一旦获得MIF单元30授予的总线访问权后,DMA引擎38将会把数据从13字节的预缓存器写入到合适的消息缓存器中。DMA引擎不断地发出总线占用请求,不断地将消息数据依次写入到合适的消息缓存器,一直到整个所接受CAN帧被传送完毕为止。在DMA引擎38成功地将被接受的CAN帧传送到合适的消息缓存单元之后,消息缓存器中的内容将取决于该CAN帧所属的消息是非分段的(单帧的)消息还是分段的消息。下面将针对每种情况加以说明:
非分段的消息装配
对于那些已创建为禁止(不允许,即将该消息对象的寄存器MnCTL的FRAG位置“0”)将消息做自动分段处理的消息对象而言,当DMA引擎38成功地将所接受的CAN帧传送到与该消息对象相联系的消息缓存器时,所接受的CAN帧的完整的CAN ID(由11位或29位组成,取决于所接受的CAN帧是标准的还是扩展的CAN帧)被写入到与已被以为构成匹配的消息对象相联系的MnMIDH和MnMIDL寄存器。这样就允许用户的应用(程序)能够看到导致匹配的确实的CAN ID,即使该CAN ID的一部分因接受过滤而被屏蔽。这种机理所产生的结果是,每次接受一个输入CAN帧时,寄存器MnMIDH和MnMIDL的内容都可能改变。由于输入CAN帧必须通过接受过滤才能够被接受,故只有被屏蔽的位才可以改变。所以,作为对一个已被接受的输入CAN帧被传送到适当的消息缓存器事件的响应而改变寄存器MnMIDH和MnMIDL内容的结果,并没有改变匹配和屏蔽接受过滤的准则。
分段消息的装配
对于那些已创建为允许(即,将该消息对象的寄存器MnCTL的FRAG位置“1”)进行自动消息分段处理的消息对象,屏蔽11/29位CAN ID字段是不允许的。这样一来,被接受的CAN帧的CAN ID就会被一览无遗,并包含在与已被认为构成匹配的消息对象有关的寄存器MnMIDH和MnMIDL中。所以,没有必要将被接受的CAN帧的CAN ID写入到与已被认为构成匹配的消息对象有关的寄存器MnMIDH和MnMIDL中。
随着分段消息的后续的CAN帧被接收,新的数据字节添加到先前接收和储存的数据字节后面。这个过程一直进行下去,直到整个多帧消息被接收和储存到适当的消息缓存器。
根据CAL协议DeviceNet、CANopen和OSEK,如果消息对象是被允许的接收消息对象,且其有关的MnCTL寄存器中的FRAG位被置“1”(即允许与该特定的接收消息对象相关的自动分段消息装配),则每个所接收的与该特定的接收消息对象匹配的CAN帧的第一个数据字节(Data Byte 1)将只用来对分段信息进行编码,因而将不储存到该特定的接收消息对象的消息缓存器中。这样,这种“FRAG允许的”接收消息对象的消息储存将从第二数据字节(Data Byte 2)开始,并且以前述方式进行下去,直到整个多帧消息被接收和储存到适当的消息缓存器。消息储存格式如图11所示,消息处理硬件利用从每个CAN帧的第一数据字节中包含分段信息以便利于该过程。
根据CAN协议,如果消息对象是允许的接收消息对象,且其有关的MnCTL寄存器中FRAG位被置“1”(即允许该特定的接收消息对象进行自动分段消息装配),则使用图12所示的格式,将与该特定的接收消息对象相匹配的CAN帧顺次储存到该特定接收消息对象的消息缓存器中。
当把消息数据写入到与消息对象n有关的消息缓存器时,DMA引擎38将自动地产生从该消息缓存器基地址(在与该消息对象n有关的MnBLR寄存器中规定的)开始的地址。由于该消息缓存器的大小在与该消息对象有关的MnBSZ寄存器中规定,故DMA引擎38能够确定什么时候可以到达该消息缓存器的顶部。如果DMA引擎38确定已经到达该消息缓存器的顶部并且正被写入到该消息缓存器的消息还没有被传送完,则DMA引擎38将通过再次产生从该消息缓存器的基地址开始的地址而回转。有时候,在这种情况发生之前会产生告警中断,使用户应用(程序)可以采取必要的措施来防止数据丢失。
消息处理器一直跟踪通过DMA引擎38正被写入的消息缓冲器的当前地址位置以及正在指定的消息缓存器中装配的每个CAL消息的字节数。当某CAL消息的“消息结束”被解码后,消息处理器将完成通过DMA引擎38将整条CAL消息和字节计数写入指定的消息缓存器内,然后产生一个中断给XA CPU内核22,表示整条消息已被接收。
由于每个CAN帧的数据字节1(Data Byte 1)包含着分段的信息,所以它永远不会被储存在所述CAN帧的指定消息缓存器中。这样,每个CAN帧最多储存七个数据字节。当整条消息被储存完毕后,所述指定消息缓存器将包含实际接收到的消息数据字节数(分段信息字节除外)加00单元处的字节计数,所述单元00将含有已储存的信息数据字节总数。
应该指出的是,存在着几个特定的用户设置/编程的过程,当唤醒分段OSEK和CANopen消息的自动硬件装配功能时,这些过程是一定要遵照执行的。这些或其它细节将会在“XA-C3 CAN传输层控制器用户使用手册”中找到。该手册是“Provisional Application SerialNo.60/154,022(临时申请序列号60/154022)”的一部分,其公开已经被完整结合在此供各种场合使用。
发送消息对象和发送过程
为了发送一条消息,XA应用程序必须首先完成整条消息的装配并把它储存到指定给适当的发送消息对象n使用的消息缓存器中。消息标题(CAN ID和帧信息)必须被写入到与该发送消息对象n有关的寄存器MnMIDH、MnMIDL、和MnMSKH中。在完成这些步骤之后,该XA应用就准备好发送该消息。为了启动发送过程,与该发送消息对象n相联系的寄存器MnCTL中的对象允许位(OBJ_EN位)必须置位,发送CANopen的自动应答帧时除外。这将容许该准备发送消息参与预仲裁过程。就此而论,若准备发送的消息多于一个(即已经被允许的发送消息对象多于一个),则执行Tx预仲裁过程以确定选择哪一个被允许的发送消息对象来发送。有两种预仲裁策略,用户可以通过设置或清除GCTL寄存器的Pre_Arb位来进行选择。
当对消息处理器(handler)确定已经成功地发送一条完整的消息作出反映产生Tx消息完成中断后,Tx预仲裁过程“复位(reset)”,并重新开始。还有,如果“取胜”的发送消息对象后来失去了对CAN总线的占用权,则Tx预仲裁过程同样会复位和重新开始。如果仅有一个其OBJ_EN位被置位的发送消息对象,则不管选用何种预仲裁策略,这个发送消息对象都会被选中。
当某被允许的发送消息对象被选中发送时,DMA引擎38将开始从与该发送消息对象有关的消息缓存器中检索该发送消息数据,并开始将检索的发送消息数据传送到CCB 42准备发送。如前所述,相同的DMA引擎和地址指针逻辑用于发送消息的消息检索,象用于接收消息的消息存储一样。而且,如前所述,消息缓存器的位置和大小信息也用相同的方式指定。简言之,在检索到发送消息时,DMA引擎38将会相继把该发送消息写入到CCB 42中。在此过程中,DMA引擎38会不停地请求总线,在得到总线访问权后,就从地址指针逻辑当前所指向的消息缓存器的位置依次读出发送消息数据,并且,DMA引擎38将所检索到的发送消息数据写入到CCB 42中。应该指出,在准备供发送的消息的过程中,用户应用不必将CAN ID和帧信息字段包括在被写入到指定的消息缓存器的发送消息数据中,因为发送(Tx)逻辑将会直接从合适的MnMIDH、MnMIDL和MnMSKH寄存器中检索出该信息。
XA-C3微控制器20不会用硬件处理分段消息的发送。用户将负责将分段消息的每一个CAN帧写入到合适的消息缓存器中,有关的发送消息对象发送,等待这些工作完成后再将分段消息的下一个CAN帧写入到合适的消息缓存器中。因此用户应用必须一次一帧地发送多个CAN帧,直到整条多帧分段发送消息被成功地发送。然而,通过使用多个发送消息对象,可以将几个分段发送消息的CAN帧排队并将其启动,然后依次发送,其中,所述发送消息对象的对象数目相继增加并且其CAN ID已被同样配置。
有三种可能的方法来避免发送消息的过程中发生数据恶化:
1.如果启动发送消息的Tx消息完成中断,则每当接收到Tx消息完成中断,用户应用程序就会将下一条发送消息写入到指定的发送消息缓存器中。一旦中断标志被置位,就会确知未决的发送消息已经被发送。
2.等待有关发送消息对象的MnCTL寄存器的OBJ_EN位被清除,再向有关发送消息缓存器写入数据。具体做法是轮询有关发送消息对象的MnCTL寄存器的OBJ_EN位。
3.在发送消息对象仍然处于Tx预仲裁时,清除有关发送消息对象的MnCTL寄存器的OBJ_EN位。
在上面所讲的前两种情况下,所述未决的发送消息完全被发送后下一条发送消息才有机会发送。对上述第三种情况来说,所述发送消息将不被发送。而是让带有新内容的发送消息进入发送预仲裁过程。
还有另外一种机制来避免正被发送的消息的恶化。具体地说,如果正在进行发送消息对象的发送,则禁止用户清除与那个特定发送消息对象相联系的寄存器MnCTL的OBJ_EN位。
CAN/CAL有关的中断
XA-C3微控制器20的CAN/CAL模块77目前被配置成可以产生下列五种不同的事件中断给XA CPU内核22:
1.Rx消息完成
2.Tx消息完成
3.Rx缓存器满
4.消息错误
5.帧错误
对于单帧消息,在单帧结束时出现“消息完成”条件;对多帧(分段的)消息,在最后一帧被接收和储存后出现“消息完成”条件。由于XA-C3微控制器20的硬件不识别或处理发送消息的分段,在每个被成功发送的帧结束时,总会产生Tx消息完成条件。
正如先前讲到的,每一个消息对象都有一个与之有关的控制位来表示消息完成条件是否应该产生中断,或者只是将“消息完成状态标志”置位(供轮询用)而不是产生中断。这就是与每个消息对象n有关的MnCTL寄存器的INT_EN位。
存在两种16位的MMR 40,MCPLH和MCPLL,它们含有用于所有32个消息对象的消息完成状态标志。对特定的消息对象,如果检测到消息完成(发送的或接收的)条件,在MCPLH或MCPLL寄存器中相应的位就被置位。不论该特定的消息对象(与它的MnCTL寄存器相联系)的INT_EN位是否置位,或者不管任何其它消息对象的消息完成状态标志是否已经置位,这都会发生。
除了这32个消息完成状态标志外,还有一个Tx消息完成中断标志和一个Rx消息完成中断标志,对被命名为CANINTFLG的MMR40而言,它们分别对应于位[1]和位[0],它们会向XA CPU内核22提出实际的事件中断请求。当“消息结束(End-of-Message)”条件出现时,在消息完成状态标志被置位的同一时间,假如有关消息对象的INT_EN=1,以及该中断还没有设置和未决,则适当的Tx或Rx消息完成中断触发器就会被置位。
更多的关于中断产生和相关寄存器方面的详细情况可以参阅“XA-C3功能规范(XA-C3 Functional Specification)”以及“XA-C3CAN传输层控制器用户手册(XA-C3 CAN Transport Layer ControllerUser Manual),以上两种文件都是它们的父文件“临时申请系列60/154022(Provisional Application Serial No.60/154,022)”的一部分,其公开已完整地结合于此以供各种场合使用。
本发明
所有目前可利用的CAN设备,整个设备包括处理器内核、CAN/CAL模块、以及其它外围元件和部件,都必须是唤醒的(即接通电源且有效的),无论何时检测到任何CAN活动,或正在进行中,例如,每逢CAN消息正被接收、发送、装配、处理、储存、过滤或其他处理时,由于运行在主CPU上的CAL软件必须主动参与这些功能,例如,运行在主CPU上的CAL软件主动监视和管理消息数据的缓存和处理过程,以及多帧分段消息的装配等。在这方面,对于所有现有的CAN器件,任何省电的工作方式,如空闲、睡眠、或掉电的工作方式,都必须在全系统级被激活,以便使CAN设备进行任何CAN有关的活动,例如装配多帧分段消息。
在上述和以后的叙述中将会清楚地看到,最佳实施例中的XA-C3微控制器20除了提供许多增强的特性和更多的与CAL/CAN消息管理和处理有关的性能外,主要是执行所述CAL/CAN消息管理和处理的功能,包括用硬件自动进行多帧分段消息装配,由此将CPUCAL/CAN消息处理的开销(“CAL指令带宽一CAL instructionbandwidth”)从大约80%(利用目前的技术)减小到低至10%(用XA-C3微控制器20)。由于这种新颖的体系结构,在执行这些功能中的某些功能的有效工作期间,XA-C3微控制器20的XA CPU内核22(从今以后有时简称为“处理器内核”)、其它各种外围设备和CCB 42的组成部件,不再需要处于唤醒状态。
按照本发明,XA-C3微控制器20支持称为空闲方式的省电工作方式,这将显著减小电力消耗。在这一点上,光是将处理器内核22本身投入空闲方式,就可以减少电力消耗约15mA(30MHz时)。
总体来看,在空闲方式时,处理器内核“暂停”工作(进入“睡眠状态”)而且停止向处理器内核22输送时钟信号以便节省电力。这里所用的术语“停止”的含义是禁止、关闭时钟或用门电路阻断时钟向处于睡眠状态的元件或部件输送,例如向如处理器内核22输送。向某些外围部件输送的时钟也被停止,而其他外围设备(如定时器)则继续工作。当任何中断或系统复位事件发生时,空闲方式立即终止。
在XA-C3微控制器20中,CAN/CAL模块77占了整个芯片面积的大部分,相应地也占了大部分功率消耗。基于这一点,就很有必要在空闲方式中,如实际上不使用时关闭掉这一模块。但是,如果CAL/CAN模块77正在被使用,无论它正在处理什么,也要等到它完成手头的工作后才能关闭它。而且,在CAL/CAN模块77关闭以后,如果在CAN总线检测到什么新的活动,最重要的是立即唤醒CAL/CAN模块77去处理输入消息。一般认为,CAL/CAN模块77可以随意进入或离开它自己的空闲方式(Aidle mode@)而无需重新启动处理器内核22,处理器内核22(以及其它所选外围设备)可以无限期地停留在省电的(“空闲的”)方式,而CAL/CAN模块77可以在需要时被拉离空闲方式(Aidle mode@),而当不立即需要其功能时让它回到睡眠(Asleep@)状态。
根据本发明,所有实现“空闲”方式所需要的逻辑(在下文中,称作“睡眠控制模块”)包含在CCB 42中。在本实现中,CAN/CAL模块77的默认状态是空闲方式的唤醒状态,以便CAN正在进行发送或接收、或有关的消息管理时,处理器内核22可以“睡眠”。任何中断,例如Rx消息完成中断、Tx消息完成中断、Rx缓存器满中断、消息错误中断、帧错误中断、或任何其它内部或外部中断都会唤醒处理器内核22。所提供的一种选择是让用户将CAN/CAL模块77包含在空闲方式中。这种选择(“CAN/CAL模块睡眠允许”)可以由用户通过软件选择,方法是将的MMR 40的CANCMR(CAN命令寄存器)中的SLPEN位[3]置位。调用这种选项,即是,激活CAN/CAL模块睡眠允许功能,无论何时XA-C3微控制器20在空闲方式,CAL睡眠控制模块91(参见图13)都会不断地轮询所有包括CAN/CAL模块77的子部件或子模块,以便确定它们之中当前有无任何成员在进行消息处理活动。如果没有检测到任何进行中的活动,或一旦任何活动结束,睡眠控制模块91就会停止向整个CAN/CAL模块77输送时钟,由此让模块进入“睡眠”状态。接下来,如果在CAN Rx引脚93检测到信号转变,则向CAN/CAL模块77输送的时钟将会即时重新被允许,并且这个模块的全部运作将会恢复,以便它能够开始接收输入的帧。但是,不会产生中断,并且处理器内核22将继续睡眠。
一旦整个CAN帧被接收及(如果需要的话)被储存,CAN/CAL模块77的通常回到睡眠,直到在CAN总线上检测到新的CAN帧(即是,直到在CAN Rx引脚93检测到信号转变)为止。当XA-C3微控制器20处于空闲方式时,处理器内核22和XA-C3微控制器20的其它组成部分只有在整条消息已经被接收和装配时响应正常的中断才会被唤醒(当然,除非某些系统中断先于此时将它唤醒)。在本XA-C3微控制器20的实现中,从空闲方式唤醒是即时的,并且是通过任何中断启动的;而且,如果CAN/CAL模块77处于无效状态(进入睡眠),则空闲方式的Idd的范围为20-30mA(毫安);如果CAN/CAL模块77处于有效(唤醒)状态,则Idd的范围约为60-120mA(毫安)。
XA-C3 CAN/CAL模块的一个主要特征是其独一无二的自动用硬件组装长(Afragmented@)CAL消息的能力,该消息是通过多个独立的CAN帧传送的。有了这个功能,就有可能,而且很有可能在CAN总线活动开始之后,在需要处理一条完整的消息之前,让处理器内核22保持在省电方式(就是在“空闲”期间睡眠)一段很长的时间。在这段时间,CAN/CAL模块77可以反复地进入和离开它自己的省电方式(即睡眠状态)。在这一点上,处理器内核22和CAN/CAL模块77均被认为各自具有空闲方式,在CAN/CAL模块77反复进入和离开自己的空闲方式时,处理器内核22保持在空闲方式。让CAN/CAL模块77安稳睡眠(空闲或掉电方式)要满足的唯一条件是既没有进行中的CAN活动,也没有中断未决(即是,处理器内核22本身必须已经处于自己的空闲方式中)
在本XA-C3微控制器20的实现中的“掉电方式”的含义是主振荡器(未示出)被关断,此时不存在任何形式的芯片活动。在此方式的Idd的取值大约是几十微安。从掉电方式唤醒是通过系统复位或在外部中断0或1引脚(未示出)上的信号转变来完成的。唤醒周期是10000个振荡器时钟,利用这段时间足以发送几个CAN帧。如果在XA-C3微控制器20处于掉电工作方式时发生CAN RxD输入的转变,则处理器内核22将进入空闲方式(经历9892个时钟延迟后),并且CAN/CAL模块77将被激活去接收和处理输入的帧。当CAN/CAL模块77产生一个中断(或发生其它某些被允许的中断)时,并只有在那时,处理器内核22才会离开它的空闲方式并开始执行(程序)代码。要么是在中断服务程序重新开始代码执行,如果其优先级高于当前代码的话;要么是紧跟着掉电指令后面的指令重新开始代码执行。在这时,实际完成终结掉电方式。
如先前所讲的,术语“睡眠控制模块”指的是包含在CCB 42内的逻辑电路,它是进入“空闲”方式所需要的。现参阅图13来描述睡眠控制模块91。可以看到,睡眠控制模块91包括与(AND)门95和97,还有异步锁存器99。该异步锁存器99有一个输入端与CAN Rx引脚93相连。该异步锁存器99目前用交叉耦合的或非(NOR)门实现(未示出)。该异步锁存器99的输出(“No Rx”)通常处于逻辑高(“1”)电平。当在CAN Rx引脚93出现任何信号转变时,该信号转变就会清除异步锁存器99,由此驱动输出No Rx转向逻辑低(“0”)电平。
在工作的过程中,CAN/CAL模块77内每个独立的子模块(稍后描述)将Sleepokn(Asleepokn@)信号送回到睡眠控制模块91以表明它已准备好关闭(就是说,表示它没有进行任何CAN消息处理活动)。具体地说,假设有n个子模块,于是产生n个sleepkn信号。这些信号Sleepokn的每一个都表示提供子模块目前处于无效状态,而且,目前就该特定的子模块而言,它可以让CAN/CAL模块77进入睡眠状态。这n个sleepokn信号各自输入到与门95。由此,仅当子模块都表示了它们各自的sleepokn(Asleepokn@)信号,就是说,仅当所有的sleepokn(Asleepokn@)信号都处于逻辑高(‘1’)电平,表明CAN/CAL模块77内的所有独立的子模块当前都处于无效和准备进入睡眠的状态时,在与门95的输出端产生的sleep_enable(Asleep_enbale@)信号才会因此而处于有效状态(逻辑>1=)。在本XA-C3微控制器20的实现中产生sleepokn信号的CAN/CAL模块77内的独立的子模块由图14表示。这些子模块包括DMA引擎38、Tx预仲裁子模块101、消息管理子模块103、Tx逻辑子模块105、和消息指针/处理器子模块107。
在没有未决中断的情况下,sleep_enable(Asleep_enbale@)信号然后和由处理器内核22提供的全局的idle_mode(Aidle_mode@)信号进行逻辑与操作。具体地说,将sleep_enable和idle_mode信号作为第一和第二输入送到与门97,第三个输入到与门97的信号是异步锁存器99的输出No Rx。正如先前所讲的,异步锁存器99的输出No Rx的默认状态是有效(逻辑高),并且只有在响应CAN Rx引脚93上的信号转变时,即正在接收输入消息时才会变为无效(逻辑低)。
这样,只有在与门97的三个输入信号,即sleep_enable、idle_mode和No Rx,都是有效(逻辑高)时,与门97所产生的输出“ccb_idle_n”信号才会是有效(逻辑高)。为了让这种情况发生,必须要满足三个条件:
1.处理器内核22本身必须已经在自己的空闲方式;
2.所有在CAN/CAL模块77内的成员子模块必须表达出接受关闭的意愿;以及,
3.没有输入消息正被接收。
与门97的输出作为时钟禁止信号“ccb_idle_n”,当它处于逻辑高(‘1’)电平时,就会直接关断向整个CAN/CAL模块77输送的时钟。对检测到输入消息时作出反应而对异步锁存器99的清除会立即让时钟禁止信号ccb_idle_n转入无效,其结果是马上激活向CAN/CAL模块77输送的时钟。此时,CAN/CAL模块77将恢复全部功能并可以开始接收输入消息。当输入帧的最后一位被接收后,异步锁存器99立即被设置回逻辑>1=,使得它不再干预,也就是禁止时钟,这是因为它的输出“No Rx”也有效(逻辑‘1’)。但是,这时候CAN/CAL模块77内一个或多个子模块将主动地参与处理输入的帧并相应降低其sleepokn(Asleepokn@)线。一旦完成该帧的处理,假定该帧不是一条允许的消息的最后一帧,并假定CAN总线上没有另外的活动,向CAN/CAL模块77输送的时钟将被再次禁止并返回到它的空闲状态。当消息的最后一帧最终被接收和储存时,CAN/CAL模块77将向处理器内核22产生标准的message_complete(Amessage_complete@)中断请求。就像任何其它中断一样,该请求将结束全局idle_mode状态(即是,驱动idle_mode信号电平变低)并唤醒处理器内核22以及CAN/CAL模块77内任何正在睡眠的子模块。
而且,MMR40指定CANSTR(CAN状态寄存器)含有一个位CAL_SLEEP_OK,此位的值可以被处理器内核22所读取,而且,如果将此位置位(取值‘1’),则表示可以令CAN/CAL模块77睡眠。就此而论,如果处理器内核22想要使XA-C3微控制器20进入掉电方式,它必须首先从CANSTR寄存器读取此位(CAL_SLEEP_OK),以确定这样做是否安全。对处理器内核22来说,在进入其空闲方式之前没有必要读取该位,因为不管这位取什么值,处理器内核22都可以自由进入它的空闲方式,与CAN/CAL模块77无关。如果CAN/CAL模块77准备好,它将跟随进入。
虽然上面已经结合特定的最佳实施例(实现)对本发明作了详细的说明。需要明确指出的是,这里讲授的基本发明概念可能会产生许多变种、修改的版本,及/或变换方式的实施例/实现方法,这些会被本领域的技术人员利用,但它们没有超出后附权利要求书中定义的本发明的精神和范围。

Claims (43)

1.一种用于在CAN微控制器(20)中节省电力的方法,所述控制器(20)包括处理器内核(22)和CAN/CAL模块(77),所述CAN/CAL模块(77)包括多个子单元(38,101,103,105,107),所述子单元协同工作来处理输入CAL/CAN消息(图2),所述方法包括如下步骤:
设置所述处理器内核(22)为省电工作方式;
设置所述CAN/CAL模块(77)为省电工作方式;以及
激活所述CAN/CAL模块(77)来处理输入CAL/CAN消息,由此结束其省电工作方式,而所述处理器内核(22)处于其省电工作方式。
2.权利要求1提出的方法,其特征在于所述输入CAL/CAN消息是多帧分段CAL/CAN消息(图2)。
3.权利要求2提出的方法,其特征在于还包括如下步骤:所述CAN/CAL模块(77)对所述多帧分段CAN/CAL消息执行自动硬件装配,同时所述处理器内核(22)处于其省电工作方式。
4.权利要求3提出的方法,其特征在于还包括如下步骤:
对所述多帧分段CAL/CAN消息的装配完成作出反应,产生消息完成中断;以及,
对所述消息完成中断作出反应,激活所述处理器内核(22)。
5.权利要求1提出的方法,其特征在于还包括如下步骤:逐一地多次重复所述第二次陈述的设置步骤和所述激活步骤,同时所述处理器内核(22)处于其省电工作方式。
6.权利要求1提出的方法,其特征在于所述省电工作方式包括睡眠状态。
7.权利要求1提出的方法,其特征在于所述省电工作方式包括空闲工作方式。
8.权利要求1提出的方法,其特征在于设置所述CAN/CAL模块(77)为省电工作方式的所述步骤包括如下步骤:
所述多个子单元(38,101,103,105,107)的每一个都产生各自的第一信号(sleepok;图13),若该子单元当前处于激活状态,则所述第一信号具有第一逻辑电平,而如果该子单元当前不处于激活状态,则所述第一信号具有第二逻辑电平;
产生第二信号(sleep_enable;图13),若所述第一信号中任何一个具有所述第一逻辑电平,则所述第二信号具有第一逻辑电平,而对所有所述第一信号都具有所述第二逻辑电平作出反应,所述第二信号具有第二逻辑电平;
产生第三信号(idle_mode;图13),若所述处理器内核(22)不空闲,则所述第三信号具有第一逻辑电平,而如果所述处理器内核(22)空闲,则所述第三信号具有第二逻辑电平;
产生第四信号(No Rx;图13),如果输入消息正在被接收,则所述第四信号具有第一逻辑电平,而如果输入消息不是正在被接收,则所述第四信号具有第二逻辑电平;
对所述第二,第三和第四信号全都正处于其相应的第二逻辑电平作出反应来产生时钟禁止信号(ccb_idle_n;图13);并且,
对所述时钟禁止信号(ccb_idle_n;图13)作出反应,禁止向所述CAN/CAL模块(77)施加时钟信号,由此设置CAN/CAL模块(77)为所述省电工作方式。
9.权利要求1提出的方法,其特征在于设置所述处理器内核(22)为省电工作方式的所述步骤包括:
如果所述处理器内核(22)具有未决中断,则产生具有第一逻辑电平的时钟禁止信号,而如果所述处理器内核(22)没有未决中断,则产生具有第二逻辑电平的时钟禁止信号;而且,
对所述时钟禁止信号作出反应,禁止向所述处理器内核(22)施加时钟,由此设置所述处理器内核为所述省电工作方式。
10.权利要求1提出的方法,其特征在于设置所述CAN/CAL模块(77)为省电工作方式的所述步骤包括如下步骤:
所述多个子单元(38,101,103,105,107)中的每一个子单元都产生各自的第一信号(sleepok;图13),如果该子单元当前处于活动状态,则所述第一信号具有第一逻辑电平,而如果该子单元当前不是处于活动状态,则所述第一信号具有第二逻辑电平;
产生第二信号(sleep_enable;图13),如果所述第一信号中任何一个具有所述第一逻辑电平,则所述第二信号具有第一逻辑电平,而对所有所述第一信号都具有所述第二逻辑电平作出反应,所述第二信号具有所述第二逻辑电平;
产生第三信号(idle_mode;图13),若所述处理器内核(22)具有未决中断,则所述第三信号具有第一逻辑电平,而如果所述处理器内核(22)没有未决中断,则所述第三信号具有第二逻辑电平;
产生第四信号(No Rx;图13),如果输入消息正在被接收,则所述第四信号具有第一逻辑电平,而如果输入消息不是正在被接收,则所述第四信号具有第二逻辑电平;
对所述第二,第三和第四信号全都正处于其相应的第二逻辑电平作出反应来产生时钟禁止信号(ccb_idle_n;图13);并且,
对所述时钟禁止信号(ccb_idle_n;图13)作出反应,禁止向所述CAN/CAL模块(77)施加时钟信号,由此设置CAN/CAL模块(77)为所述省电工作方式。
11.权利要求1提出的方法,其特征在于还包括对中断作出反应来激活所述处理器内核(22)的步骤。
12.一种用于在包括处理器内核(22)和CAN/CAL模块(77)的CAN微控制器(20)中节省电力的方法,所述方法包括如下步骤:
设置所述处理器内核(22)为省电工作方式而所述CAN/CAL模块(77)主动地处理输入CAL/CAN消息;以及,
对中断作出反应来结束所述省电工作方式。
13.权利要求12提出的方法,其特征在于所述省电工作方式包括睡眠状态。
14.权利要求12提出的方法,其特征在于所述省电工作方式包括空闲工作方式。
15,权利要求12提出的方法,其特征在于所述CAN/CAL模块(77)自动地装配输入的多帧分段的消息(图2)而所述处理器内核(22)保持在其省电工作方式。
16.权利要求15提出的方法,其特征在于:对所述多帧分段消息的装配完成作出反应,所述CAN/CAL模块(77)产生消息完成中断,由此对所述消息完成中断作出反应来执行所述结束步骤。
17.权利要求12提出的方法,其特征在于设置所述处理器内核(22)为省电工作方式的步骤包括如下步骤:
如果所述处理器内核(22)具有未决中断,则产生具有第一逻辑电平的时钟禁止信号,而如果所述处理器内核(22)没有未决中断,则产生具有第二逻辑电平的时钟禁止信号;而且,
对所述时钟禁止信号作出反应,禁止向所述处理器内核(22)施加时钟,由此设置所述处理器内核为所述省电工作方式。
18.一种用于在包括处理器内核(22)和CAN/CAL模块(77)的CAN微控制器(20)中节省电力的方法,所述方法包括如下步骤:
设置整个CAN微控制器(20),包括所述处理器内核(22)和所述CAN/CAL模块(77),为掉电工作方式;
检测输入消息的接收;以及,
对所述检测步骤作出反应来激活所述CAN/CAL模块(77)去处理所述输入消息,由此结束所述CAN/CAL模块(77)的所述掉电工作方式,而不结束所述处理器内核(22)的所述掉电工作方式。
19.权利要求18提出的方法,其特征在于还包括对所述检测步骤作出反应来设置所述处理器内核(22)为省电工作方式的步骤,其中:
所述处理器内核(22)在处于所述掉电工作方式时可以即时充分地被唤醒;以及,
所述处理器内核(22)在处于所述掉电工作方式时可以经过指定的唤醒时间后被唤醒。
20.权利要求18提出的方法,其特征在于所述设置步骤包括:
确定所述CAN/CAL模块(77)是否准备被设置为所述掉电工作方式;以及,
对所述CAN/CAL模块(77)准备被设置为所述掉电工作方式的确定作出反应来停止主系统时钟。
21.权利要求19提出的方法,其特征在于:所述CAN/CAL模块(77)自动装配输入的多帧分段消息(图2),而所述处理器内核(22)保持在其省电工作方式。
22.权利要求18提出的方法,其特征在于还包括对外部中断作出反应来结束包括所述处理器内核(22)和所述CAN/CAL模块(77)的整个CAN微控制器(20)的所述掉电工作方式的步骤。
23.权利要求18提出的方法,其特征在于还包括对系统复位命令作出反应来结束包括所述处理器内核(22)和所述CAN/CAL模块(77)的整个CAN微控制器(20)的所述掉电工作方式的步骤。
24.一种CAN微控制器(20),包括:
运行CAN应用程序的处理器内核(22);
CAN/CAL模块(77),它包括多个子单元(38,101,103,105,107),所述子单元共同协作来处理输入CAL/CAN消息,所述CAN/CAL模块(77)包括供电控制模块(42,91),所述供电控制模块(42,91)包括:
用于设置所述处理器内核为省电工作方式的装置(idle_mode);
用于设置所述CAN/CAL模块(77)为省电工作方式的装置(91,93,95,97,99);以及,
用于激活所述CAN/CAL模块(77)去处理输入CAL/CAN消息并由此结束其省电工作方式而同时让所述处理器内核(22)保持在其省电工作方式的装置(91,93,95,97,99)。
25.权利要求24提出的CAN微控制器(20),其特征在于所述输入CAL/CAN消息是多帧分段CAL/CAN消息。
26.权利要求25提出的CAN微控制器(20),其特征在于所述CAN/CAL模块(77)可以操作用来对所述多帧分段CAL/CAN消息作自动硬件装配,而所述处理器内核(22)处于其省电工作方式。
27.权利要求26提出的CAN微控制器(20),其特征在于所述供电控制模块(42,91)还包括:
对所述多帧分段CAL/CAN消息的装配完成作出反应来产生消息完成中断的装置(42);以及,
对所述消息完成中断作出反应来激活所述处理器内核(22)的装置(42)。
28.权利要求24提出的CAN微控制器(20),其特征在于所述省电工作方式包括睡眠状态。
29.权利要求24提出的CAN微控制器(20),其特征在于所述省电工作方式包括空闲工作方式。
30.权利要求24提出的CAN微控制器(20),其特征在于设置所述CAN/CAL模块(77)为省电工作方式的所述装置(91,93,95,97,99)包括:
与所述多个子单元(38,101,103,105,107)中的每一个子单元相关的装置(42),用于产生所述每一个子单元各自的第一信号(sleepok),如果该子单元目前正处于有效状态,则所述第一信号具有第一逻辑电平,而如果该子单元目前不处于有效状态,则所述第一信号具有第二逻辑电平;
用于产生第二信号(sleep_enable)的装置(95),若所述第一信号中任何一个(sleepok)具有所述第一逻辑电平,则所述第二信号具有第一逻辑电平,而对所有所述第一信号(sleepok)都具有所述第二逻辑电平作出反应,所述第二信号具有第二逻辑电平;
用于产生第三信号(idle_mode)的装置(42),若所述处理器内核(22)不空闲,则所述第三信号具有第一逻辑电平,而如果所述处理器内核(22)空闲,则所述第三信号具有第二逻辑电平;
用于产生第四信号(No Rx)的装置(99),如果输入消息正在被接收,则所述第四信号具有第一逻辑电平,而如果输入消息不是正在被接收,则所述第四信号具有第二逻辑电平;
用于对所述第二,第三和第四信号(idle_mode;sleep_enable;NoRx)全都正处于其相应的第二逻辑电平作出反应来产生时钟禁止信号(ccb_idle_n)的装置(97);和,
用于对所述时钟禁止信号(ccb_idle_n)作出反应来禁止向所述CAN/CAL模块(77)施加时钟信号并由此设置CAN/CAL模块(77)为所述省电工作方式的装置(42)。
31.权利要求24提出的CAN微控制器(20),其特征在于用于设置所述处理器内核(22)为省电工作方式的所述装置(42)包括:
用于产生时钟禁止信号(idle_mode)的装置(42),如果所述处理器内核(22)具有未决中断,则所述时钟禁止信号(idle_mode)具有第一逻辑电平,而如果所述处理器内核(22)没有未决中断,则所述时钟禁止信号(idle_mode)具有第二逻辑电平;和,
用于对所述时钟禁止信号(idle_mode)作出反应来禁止向所述处理器内核(22)施加时钟并由此设置所述处理器内核为所述省电工作方式的装置(42)。
32.权利要求1提出的CAN微控制器(20),其特征在于设置所述CAN/CAL模块(77)为省电工作方式的所述装置(42,91)包括:
与所述多个子单元(38,101,103,105,107)中的每一个子单元相关的装置(42),用于产生各自的第一信号(sleepok),如果该子单元目前正处于有效状态,则所述第一信号具有第一逻辑电平;如果该子单元目前不处于有效状态,则所述第一信号具有第二逻辑电平;
用于产生第二信号(sleep_enable)的装置(95),若所述第一信号中任何一个(sleepok)具有所述第一逻辑电平,则所述第二信号具有第一逻辑电平,而对所有所述第一信号(sleepok)都具有所述第二逻辑电平作出反应,所述第二信号具有第二逻辑电平;
用于产生第三信号(idle_mode)的装置(42),若所述处理器内核(22)具有未决中断,则所述第三信号具有第一逻辑电平,而如果所述处理器内核(22)没有未决中断,则所述第三信号具有第二逻辑电平;
用于产生第四信号(No Rx)的装置(99),如果输入消息正在被接收,则所述第四信号具有第一逻辑电平,而如果输入消息不是正在被接收,则所述第四信号具有第二逻辑电平;
用于对所述第二,第三和第四信号(idle_mode;sleep_enable;NoRx)全都正处于其相应的第二逻辑电平作出反应来产生时钟禁止信号(ccb_idle_n)的装置(97);和,
用于对所述时钟禁止信号(ccb_idle_n)作出反应来禁止向所述CAN/CAL模块(77)施加时钟信号并由此设置CAN/CAL模块(77)为所述省电工作方式的装置(42)。
33.一种CAN微控制器(20),它包括:
运行CAN应用程序的处理器内核(22);
处理输入CAL/CAN消息(图2)的CAN/CAL模块(77),所述CAN/CAL模块(77)包括供电控制模块(42,91),所述供电控制模块(42,91)包括:
用于设置所述处理器内核(22)为省电工作方式同时让所述CAN/CAL模块(77)主动处理输入CAL/CAN消息的装置(42);以及,
用于对中断作出反应来结束所述省电工作方式的装置(42)。
34.权利要求33提出的CAN微控制器(20),其特征在于;所述CAN/CAL模块(77)自动地装配输入的多帧分段消息(图2),而所述处理器内核(22)保持在其省电工作方式。
35.权利要求34所提出CAN微控制器(20),其特征在于所述CAN/CAL模块(77)对所述多帧分段CAL/CAN消息的装配完成作出反应来产生所述中断。
36.权利要求33所提出CAN微控制器(20),其特征在于用于设置所述处理器内核(22)为省电工作方式的所述装置(42)包括:
用于产生时钟禁止信号(idle_mode)的装置(42),如果所述处理器内核(22)具有未决中断,则所述时钟禁止信号(idle_mode)具有第一逻辑电平,而如果所述处理器内核(22)没有未决中断,则所述时钟禁止信号(idle_mode)具有第二逻辑电平;和,
用于对所述时钟禁止信号(idle_mode)作出反应来禁止向所述处理器内核(22)施加时钟并由此设置所述处理器内核为所述省电工作方式的装置(42)。
37.一种CAN微控制器(20),它包括:
运行CAN应用程序的处理器内核(22);
处理输入CAL/CAN消息(图2)的CAN/CAL模块(77),所述CAN/CAL模块(77)包括供电控制模块(42,91),所述供电控制模块(42,91)包括:
用于将包括所述处理器内核(22)和所述CAN/CAL模块(77)的整个CAN微控制器(20)设置为省电工作方式的装置(42,91);
用于检测输入消息的接收的装置(93,99);和,
用于对输入消息的所述接收的检测作出反应来激活所述CAN/CAL模块(77)去处理所述输入消息并由此结束所述CAN/CAL模块(77)的所述掉电工作方式但不结束所述处理器内核(22)的所述掉电工作方式的装置(95,97)。
38.权利要求37提出的CAN微控制器(20),其特征在于所述供电控制模块(42,91)还包括用于对输入消息的所述接收的检测作出反应来设置所述处理器内核(22)为省电工作方式的装置(42),其中:
所述处理器内核(22)在处于所述掉电工作方式时可以即时充分地被唤醒;以及,
所述处理器内核(22)在处于所述掉电工作方式时可以经过指定的唤醒时间后被唤醒。
39.权利要求27提出的CAN微控制器(20),其特征在于用于设置的装置包括:
用于确定所述CAN/CAL模块(77)是否准备被设置为所述掉电工作方式的装置(22,40,CANSTR;CAL_SLEEP_OK);和,
用于对所述CAN/CAL模块(77)准备被设置为所述掉电工作方式的确定作出反应来停止主系统时钟的装置(42)。
40.权利要求38提出的CAN微控制器(20),其特征在于所述CAN/CAL模块(77)自动地装配输入的多帧分段消息(图2),而所述处理器内核(22)保持在其省电工作方式。
41.权利要求37提出的CAN微控制器(20),其特征在于所述供电控制模块(42,91)还包括用于对外部中断作出反应来结束包括所述处理器内核(22)和所述CAN/CAL模块(77)的所述整个CAN微控制器(20)的所述掉电工作方式的装置(22,42)。
42.权利要求37提出的CAN微控制器(20),其特征在于所述供电控制模块(42,91)还包括用于对系统复位命令作出反应来结束包括所述处理器内核(22)和所述CAN/CAL模块(77)的所述整个CAN微控制器(20)的所述掉电工作方式的装置(22,42)。
43.一种CAN微控制器(20),它包括:
运行CAN应用程序的处理器内核(22);
包括多个子单元(38,101,103,105,107)的CAN/CAL模块(77),所述子单元协同工作去处理输入CAL/CAN信息(图2),所述CAN/CAL模块(77)包括供电控制模块(42,91),所述供电控制模块(42,91)包括:
设置所述处理器内核(22)为省电工作方式的第一逻辑电路(42);
设置所述CAN/CAL模块(77)为省电工作方式的第二逻辑电路(91);和,
激活所述CAN/CAL模块(77)去处理输入CAL/CAN消息并由此结束其省电工作方式而同时让所述处理器内核(22)保持在其省电工作方式的第三逻辑电路(42,91)。
44.一种CAN微控制器(20),它包括:
运行CAN应用程序的处理器内核(22);
处理输入CAL/CAN消息(图2)的CAN/CAL模块(77),所述CAN/CAL模块(77)包括供电控制模块(42,91),所述供电控制模块(42,91)包括:
设置所述处理器内核(22)为省电工作方式并同时让所述CAN/CAL模块(77)主动处理输入CAL/CAN消息的第一逻辑电路(42);和
对中断作出反应来结束所述省电工作方式的第二逻辑电路(22,40,42)。
45.一种CAN微控制器(20),它包括:
运行CAN应用程序的处理器内核(22);
处理输入CAL/CAN消息(图2)的CAN/CAL模块(77),所述CAN/CAL模块(77)包括供电控制模块(42,91),所述供电控制模块(42,91)包括:
将包括所述处理器内核(22)和所述CAN/CAL模块(77)的所述整个CAN微控制器(20)设置为掉电工作方式的第一逻辑电路(22,40,42);
检测输入消息的接收的第二逻辑电路(93,99);和,
对输入消息的所述接收的检测作出反应来激活所述CAN/CAL模块(77)去处理所述输入消息并由此结束所述CAN/CAL模块(77)的所述掉电工作方式但不结束所述处理器内核(22)的所述掉电工作方式的第三逻辑电路(42,91)。
CN008026521A 1999-09-15 2000-09-06 在控制域网微控制器中节省电耗的方法和采用该方法的控制域网微控制器 Expired - Fee Related CN101427198B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15402299P 1999-09-15 1999-09-15
US60/154022 1999-09-15
US09/474,901 US6728892B1 (en) 1999-09-15 1999-12-30 Method for conserving power in a can microcontroller and a can microcontroller that implements this method
US09/474901 1999-12-30
PCT/EP2000/008716 WO2001020434A2 (en) 1999-09-15 2000-09-06 A method for conserving power in a can microcontroller and a can microcontroller that implements this method

Publications (2)

Publication Number Publication Date
CN101427198A true CN101427198A (zh) 2009-05-06
CN101427198B CN101427198B (zh) 2011-05-18

Family

ID=26851068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN008026521A Expired - Fee Related CN101427198B (zh) 1999-09-15 2000-09-06 在控制域网微控制器中节省电耗的方法和采用该方法的控制域网微控制器

Country Status (7)

Country Link
US (1) US6728892B1 (zh)
EP (1) EP1145100B1 (zh)
JP (1) JP2003509764A (zh)
KR (1) KR100713956B1 (zh)
CN (1) CN101427198B (zh)
DE (1) DE60040838D1 (zh)
WO (1) WO2001020434A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020417A (zh) * 2016-03-30 2016-10-12 威盛电子股份有限公司 内存装置及其节能控制方法
CN108170133A (zh) * 2018-01-26 2018-06-15 安徽江淮汽车集团股份有限公司 一种远程故障诊断方法及系统
CN113852533A (zh) * 2021-09-27 2021-12-28 北京微纳星空科技有限公司 一种多通道数据通信系统、方法及电子设备
CN113890783A (zh) * 2021-09-27 2022-01-04 北京微纳星空科技有限公司 一种数据收发系统、方法、电子设备及存储介质

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2827056B1 (fr) * 2001-07-06 2003-12-12 Peugeot Citroen Automobiles Sa Systeme de reveil de stations associes pour la mise en oeuvre d'au moins une fonction repartie, notamment dans un vehicule automobile
US6943667B1 (en) * 2002-02-25 2005-09-13 Palm, Inc. Method for waking a device in response to a wireless network activity
US7248146B1 (en) 2002-02-25 2007-07-24 Palm, Inc. Method for waking a device in response to wireless network activity
DE10217291B4 (de) * 2002-04-18 2005-09-29 Infineon Technologies Ag Datenverarbeitungsvorrichtung und Verfahren zum Betreiben eines Datenverarbeitungsmoduls
US6920574B2 (en) * 2002-04-29 2005-07-19 Apple Computer, Inc. Conserving power by reducing voltage supplied to an instruction-processing portion of a processor
DE10358584A1 (de) 2002-12-30 2004-07-15 Robert Bosch Gmbh Verfahren und Vorrichtung zum Aufwecken von Teilnehmern eines Bussystems und entsprechender Teilnehmer
EP1503269A1 (en) * 2003-07-31 2005-02-02 Freescale Semiconductor, Inc. Controller apparatus for a communication bus
CN101010915B (zh) 2004-06-30 2011-11-02 Nxp股份有限公司 用于对总线系统上的数字信号进行非比特率依赖性编码的方法
DE102004062683A1 (de) * 2004-12-21 2006-06-29 Bosch Rexroth Aktiengesellschaft Verfahren zur Regelung einer Übertragung mit kurzen Datentelegrammen
US20060268855A1 (en) * 2005-05-31 2006-11-30 Caterpillar Inc. Communication apparatus for real-time embedded control
JP4621113B2 (ja) * 2005-10-28 2011-01-26 ルネサスエレクトロニクス株式会社 半導体集積回路装置
EP1785810A1 (en) * 2005-11-14 2007-05-16 Texas Instruments Incorporated Idle mode for power mangagement
US7539888B2 (en) * 2006-03-31 2009-05-26 Freescale Semiconductor, Inc. Message buffer for a receiver apparatus on a communications bus
KR100850209B1 (ko) * 2007-02-08 2008-08-04 삼성전자주식회사 전력을 효율적으로 관리할 수 있는 시스템 인 패키지반도체 장치 및 그에 따른 전력 관리 방법
US8055822B2 (en) * 2007-08-21 2011-11-08 International Business Machines Corporation Multicore processor having storage for core-specific operational data
DE102009015197A1 (de) * 2009-03-31 2010-10-14 Volkswagen Ag Steuergerät für ein Fahrzeugnetzwerk und Verfahren zum Betreiben eines Fahrzeugnetzwerkes
CN101552785B (zh) * 2009-05-07 2012-10-10 浙江大学 基于消息机制的用于海量数据传输的can总线通信方法
JP5363379B2 (ja) 2009-05-20 2013-12-11 ルネサスエレクトロニクス株式会社 通信システム
EP2339790A1 (en) 2009-12-28 2011-06-29 Nxp B.V. Definition of wakeup bus messages for partial networking
EP2339789A1 (en) 2009-12-28 2011-06-29 Nxp B.V. Improved pattern detection for partial networking
EP2424174A1 (de) * 2010-08-27 2012-02-29 ELMOS Semiconductor AG Verfahren zum Betreiben eines Bus-Systems
US9268611B2 (en) 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
DE102011079412A1 (de) * 2011-07-19 2013-01-24 Robert Bosch Gmbh Verfahren und Vorrichtung zum Abspeichern einer Weckinformation in Teilnehmern eines CAN-Bussystems
DE112011105590T5 (de) 2011-09-06 2014-07-03 Intel Corp. Energieeffiziente Prozessorarchitektur
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
US9383805B2 (en) 2013-03-12 2016-07-05 Atmel Corporation Generating clock on demand
US9563260B2 (en) 2013-03-15 2017-02-07 Intel Corporation Systems, apparatuses, and methods for synchronizing port entry into a low power state
US20150067363A1 (en) * 2013-09-04 2015-03-05 Sebastien Jouin Clock generator circuit with automatic sleep mode
DE102014000248B3 (de) * 2014-01-08 2015-03-05 Stmicroelectronics Application Gmbh Bus-Microcontroller und Bus-Knoten-Schaltung, sowie elektronische Steuereinheit für ein Fahrzeug
US9892073B1 (en) 2014-10-06 2018-02-13 Master Lock Company Llc Bus addressing systems and methods using repurposed bits
CN105389281A (zh) * 2015-10-15 2016-03-09 珠海格力电器股份有限公司 Can总线数据发送、接收方法及固件升级方法
DE102016206109A1 (de) * 2016-04-13 2017-10-19 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung für mindestens eine einen Arbeitsspeicher aufweisende Recheneinheit
US10635619B2 (en) * 2016-10-12 2020-04-28 Cirrus Logic, Inc. Encoding for multi-device synchronization of devices
US10277385B1 (en) 2018-05-27 2019-04-30 Nxp B.V. Slave node for CAN bus network
DE102019201316A1 (de) 2019-02-01 2020-08-06 Robert Bosch Gmbh Teilnehmerstation für ein serielles Bussystem und Verfahren zur Kommunikation in einem seriellen Bussystem

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU676160B2 (en) * 1992-04-28 1997-03-06 Dynamic Controls Limited Control means for electrically driven vehicles
US5404544A (en) * 1992-06-05 1995-04-04 Advanced Micro Devices System for periodically transmitting signal to/from sleeping node identifying its existence to a network and awakening the sleeping node responding to received instruction
US5487181A (en) * 1992-10-28 1996-01-23 Ericsson Ge Mobile Communications Inc. Low power architecture for portable and mobile two-way radios
US5493684A (en) * 1994-04-06 1996-02-20 Advanced Micro Devices Power management architecture including a power management messaging bus for conveying an encoded activity signal for optimal flexibility
KR100272472B1 (ko) * 1995-09-19 2000-11-15 씨. 필립 채프맨 디지탈 프로그램가능 임계 레벨을 가진 마이크로컨트롤러 재작동 기능
US5848281A (en) * 1996-07-23 1998-12-08 Smalley; Kenneth George Method and apparatus for powder management in a multifunction controller with an embedded microprocessor
TW329487B (en) * 1996-10-29 1998-04-11 Mitsubishi Electric Corp Device for processing data and method therefor
US6021500A (en) * 1997-05-07 2000-02-01 Intel Corporation Processor with sleep and deep sleep modes
US6047378A (en) * 1997-09-29 2000-04-04 International Business Machines Corporation Wake multiple over LAN
US6279048B1 (en) * 1997-11-14 2001-08-21 Lucent Technologies, Inc. System wake-up based on joystick movement
US6092207A (en) * 1997-12-29 2000-07-18 Intel Corporation Computer having a dual mode power supply for implementing a power saving mode
US6141705A (en) * 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
US6311276B1 (en) * 1998-08-25 2001-10-30 3Com Corporation Secure system for remote management and wake-up commands
US6202107B1 (en) * 1998-11-19 2001-03-13 Sun Microsystems, Inc. Host controller interface descriptor fetching unit
SG65097A1 (en) * 1998-12-28 2001-08-21 Compaq Computer Corp Break event generation during transitions between modes of operation in a computer system
US6463542B1 (en) * 1999-05-28 2002-10-08 Advanced Micro Devices, Inc. Power management indication mechanism for supporting power saving mode in computer system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020417A (zh) * 2016-03-30 2016-10-12 威盛电子股份有限公司 内存装置及其节能控制方法
CN106020417B (zh) * 2016-03-30 2018-11-02 威盛电子股份有限公司 内存装置及其节能控制方法
CN108170133A (zh) * 2018-01-26 2018-06-15 安徽江淮汽车集团股份有限公司 一种远程故障诊断方法及系统
CN113852533A (zh) * 2021-09-27 2021-12-28 北京微纳星空科技有限公司 一种多通道数据通信系统、方法及电子设备
CN113890783A (zh) * 2021-09-27 2022-01-04 北京微纳星空科技有限公司 一种数据收发系统、方法、电子设备及存储介质
CN113852533B (zh) * 2021-09-27 2022-06-07 北京微纳星空科技有限公司 一种多通道数据通信系统、方法及电子设备
CN113890783B (zh) * 2021-09-27 2022-07-26 北京微纳星空科技有限公司 一种数据收发系统、方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN101427198B (zh) 2011-05-18
KR20010081010A (ko) 2001-08-25
JP2003509764A (ja) 2003-03-11
US6728892B1 (en) 2004-04-27
WO2001020434A3 (en) 2001-12-06
EP1145100B1 (en) 2008-11-19
KR100713956B1 (ko) 2007-05-02
DE60040838D1 (de) 2009-01-02
WO2001020434A2 (en) 2001-03-22
EP1145100A2 (en) 2001-10-17

Similar Documents

Publication Publication Date Title
CN101427198B (zh) 在控制域网微控制器中节省电耗的方法和采用该方法的控制域网微控制器
EP1129548B1 (en) A method for automatically transmitting an acknowledge frame in canopen and other can apllication layer protocols
EP0577778B1 (en) Transceiver interface
US6732255B1 (en) Can microcontroller that permits concurrent access to different segments of a common memory by both the processor core and the DMA engine thereof
EP1129561B1 (en) A semaphore coding method to ensure data integrity in a can microcontroller and a can microcontroller that implements this method
KR20200139673A (ko) 시스템 온 칩(SoC) 에이전트 리셋 및 전력 관리를 위한 프로토콜 레벨 제어
JPH08202469A (ja) ユニバーサル非同期送受信回路を備えたマイクロ・コントローラユニット
KR100697396B1 (ko) 입력 can 프레임을 승인 필터링하기 위한 방법 및 can 장치
CN101441504B (zh) 应用于交通工具的中控计算机及其相关电源管理方法
US6493287B1 (en) Can microcontroller that utilizes a dedicated RAM memory space to store message-object configuration information
US7284071B2 (en) Waking a link layer based on data contained in a network packet
JP3571886B2 (ja) データ処理装置
CN116301272A (zh) 服务器、服务器上电管理系统及方法
US20040177185A1 (en) Method for operating a network of interface nodes, and an interface device
CN1272651A (zh) 计算机硬盘隔离装置
Dietterle et al. A hardware accelerated implementation of the IEEE 802.15. 3 MAC protocol
CN117909278A (zh) 一种usb集线器芯片、usb集线器及数据传输方法
CN100435071C (zh) 中央处理器的省电方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: ROYAL PHILIPS ELECTRONICS CO., LTD.

Effective date: 20090605

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20090605

Address after: Holland Ian Deho Finn

Applicant after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Applicant before: Koninklike Philips Electronics N. V.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110518

Termination date: 20150906

EXPY Termination of patent right or utility model