CN110501935B - 用于将软件对象写入内燃机的电子控制单元的方法及设备 - Google Patents

用于将软件对象写入内燃机的电子控制单元的方法及设备 Download PDF

Info

Publication number
CN110501935B
CN110501935B CN201910406475.3A CN201910406475A CN110501935B CN 110501935 B CN110501935 B CN 110501935B CN 201910406475 A CN201910406475 A CN 201910406475A CN 110501935 B CN110501935 B CN 110501935B
Authority
CN
China
Prior art keywords
code
memory
key
key code
seed
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
CN201910406475.3A
Other languages
English (en)
Other versions
CN110501935A (zh
Inventor
费利切·德·约里奥
费德里科·科斯达
罗伯托·马萨罗
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.)
Kohler Co
Original Assignee
Kohler Co
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 Kohler Co filed Critical Kohler Co
Publication of CN110501935A publication Critical patent/CN110501935A/zh
Application granted granted Critical
Publication of CN110501935B publication Critical patent/CN110501935B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Abstract

本发明公开了一种将软件对象写入内燃机(100)的电子控制单元(215)的可重写非易失性存储器(245)中的方法,其中,所述方法包括:从存储器写设备(300)接收访问请求,生成种子代码,将种子代码传送给存储器写设备(300),基于种子代码和第一识别码生成第一密钥代码,基于种子代码和第二识别码生成第二密钥代码,从存储器写设备(300)接收参考密钥代码,将参考密钥代码与第一密钥代码和/或第二密钥代码进行比较,以及如果参考密钥代码对应于第一密钥代码或第二密钥代码,则使存储器写设备(300)将软件对象写入可重写非易失性存储器(245)。

Description

用于将软件对象写入内燃机的电子控制单元的方法及设备
技术领域
本公开涉及用于将软件对象写入(或覆写(overwrite))到内燃机的电子控制单元的可重写(rewritable)非易失性存储器中的方法及设备。
背景技术
已知内燃机(例如,机动车的燃烧机)可配备有用于控制各种发动机操作设备(例如,燃料喷射器)的电子控制单元(ECU)。
ECU可以包括中央处理单元(CPU),该中央处理单元使用包括发动机控制程序和校准数据(例如,数据表/地图)的预定软件对象控制发动机操作设备,所述预定软件对象可以存储到ECU的可重写非易失性存储器(例如,闪存)中。
这些软件对象可以通过可连接到ECU的外部存储器写设备来进行写入(或覆写)。
为了访问存储器,存储器写设备的用户可以执行鉴权程序,通过这种方式仅允许发动机制造商(即,发动机制造商的授权人员)写入(或覆写)发动机控制程序和校准数据。
通过改变存储在存储器中的控制程序和/或校准数据,发动机制造商可以在许多方面改变内燃机的性能,例如发电、污染物排放等方面。
通过这种方式,发动机制造商可以基于同一机械构造向其客户(例如,车辆制造商)提供各种内燃机。
然而,这种方法意味着发动机制造商应在内部编写所有ECU的存储器,并针对控制程序和校准数据的每个特定配置,为这些ECU分配不同的零件号,并为每个零件号保存至少最小数量的ECU,从而增加了工业和仓库成本。
发明内容
鉴于前述内容,本公开的目的是通过提供一种能够减少发动机制造商在ECU管理方面必须承担的成本的解决方案来解决或至少积极地减少上述缺点。
另一目的是通过简单、合理、安全且廉价的解决方案实现这一目标。
通过本公开的具有包含在独立权利要求中的特征的实施例来实现该目的和其他目的。从属权利要求描绘了各种实施例的其他方面。
本公开的实施例提供了一种将软件对象写入(或覆写)到内燃机的电子控制单元(ECU)的可重写非易失性存储器中的方法,其中,该方法包括:
-从存储器写设备接收访问请求;
-生成种子代码;
-将种子代码传送至所述存储器写设备;
-基于所述种子代码和第一识别码(例如,第一密码)生成第一密钥代码;
-基于所述种子代码和第二识别码(例如,第二密码)生成第二密钥代码;
-从所述存储器写设备接收参考密钥代码;
-将所述参考密钥代码与所述第一密钥代码和/或所述第二密钥代码进行比较,以及
-如果所述参考密钥代码对应于(例如,等于)所述第一密钥代码或所述第二密钥代码,则使得所述存储器写设备将软件对象写入所述可重写非易失性存储器中。
通过该解决方案,如果存储器写设备(其可以是被配置为连接到ECU的外部电子设备)能够提供与第一密钥代码或第二密钥代码匹配的参考密钥代码的,才可以对ECU的存储器进行写入(或覆写),从而执行防止未授权使用存储器写设备的鉴权过程。换句话说,由于第一密钥代码和第二密钥代码是基于可以保密并且仅提供给授权用户的第一识别码和第二识别码生成的,仅允许能够提供与第一密钥代码或第二密钥代码匹配的参考密钥代码的存储器写设备能够写入或覆写ECU的存储器,该过程保证ECU的存储器保持安全并且不能被未授权用户写入(例如,篡改)。另一方面,由于该鉴权过程可以通过参考密钥代码的两个不同值来满足,存储器写设备可以被两个授权用户有效地使用,例如由发动机制造商和其客户(例如,使用该内燃机的车辆的制造商)使用。通过这种方式,在发动机制造商始终保持对其所生产的内燃机的控制的同时,车辆制造商可以将软件对象写入ECU的存储器中,从而减少发动机制造商在ECU管理方面必须承担的成本。
根据一些实施例,如果(即,假如)访问请求对应于第一类型访问请求,则可以生成第一密钥代码,并且如果(即,假如)访问请求对应于第二类型访问请求,则可以生成第二密钥代码。
通过这种方式,并非每次执行该方法时都生成第一密钥代码和第二密钥代码。
当接收到第一类型访问请求时,该方法可以提供仅生成第一密钥代码,仅将参考密钥代码与第一密钥代码进行比较,并且仅在参考密钥代码对应于(例如,等于)第一密钥代码时才使存储器写设备能够将软件对象写入可重写非易失性存储器中。当接收到第二类型访问请求时,该方法可以提供仅生成第二密钥代码,仅将参考密钥代码与第二密钥代码进行比较,并且仅在参考密钥代码对应于(例如,等于)第二密钥代码时才使存储器写设备能够将软件对象写入可重写非易失性存储器中。
然而,其他实施例可以规定在执行该方法时总是生成第一密钥代码和第二密钥代码。
在这种情况下,可以将参考密钥代码与第一密钥代码和第二密钥代码进行比较,并且在参考密钥代码对应于第一密钥代码或第二密钥代码时使存储器写设备能够将软件对象写入可重写非易失性存储器中。
根据该方法的一个方面,如果参考密钥代码对应于第一密钥代码或第二密钥代码,则存储器写设备能够写(或覆写)到可重写非易失性存储器中的软件对象可以至少包括发动机控制程序和/或校准数据。
通过这种方式,发动机制造商就可以提供只有一种ECU的内燃机,例如,其存储器中没有存储发动机控制程序和校准数据的ECU(空白ECU),或者其存储器中只有例如不允许内燃机实际运行的临时控制程序和/或校准数据的ECU,而购买内燃机的客户可以将有效的发动机控制程序和/或校准数据写入或覆写到存储器中。
根据所述方法的另一方面,第一识别码和第二识别码可以存储在可重写非易失性存储器中。具体地,第一识别码和第二识别码可以预先存储在可重写非易失性存储器中,即,在例如由电子控制单元的供应商执行由上述方法描述的鉴权过程之前。
通过该解决方案,第一识别码和第二识别码被保留在ECU内,增加了该方法的安全性,即增加了未授权不能访问ECU的存储器的确定性。
具体地,第一识别码(可以例如分配给发动机制造商)可以存储在可重写非易失性存储器的固定存储器地址中,例如存储在其启动存储区域中。
通过这种方式,可以从规定的存储器地址容易地检索到第一识别码。
另一方面,第二识别码(可以例如分配给车辆制造商)可以存储在可重写非易失性存储器的存储器地址处,该存储器地址被也存储在可重写非易失性存储器中的指针代码加密。
该指针代码可以具有固定长度(例如,固定数量的位)和/或可以存储在可重写非易失性存储器的固定存储器地址处,例如存储在其数据存储区域中。
通过这种方式,可以通过读取指针代码、解密指针代码以获得第二识别码的实际存储器地址并最终从所获得的存储器地址读取第二识别码来检索到第二识别码。
由于该解决方案,可以容易地改变第二识别码的存储器地址,例如允许第二识别码具有不同的长度(例如,不同的位数)和/或更好地分配可重写非易失性存储器的存储区域,以处理要写入其中的发动机控制程序和/或校准数据的不同版本。
根据该方法的一个方面,种子代码可以由电子控制单元生成,例如通过执行可以存储在可重写非易失性存储器中(例如在启动存储区域中)的种子生成算法来生成。
通过这种方式,使用电子控制单元的内部资源安全地生成种子代码,而不需要与存储器写设备或其他外部设备共享信息。
根据该方法的另一方面,第一密钥代码和第二密钥代码可以由电子控制单元生成,例如通过执行可以存储在可重写非易失性存储器中(例如在启动存储器区域中)的密钥生成算法来生成。
通过这种方式,还使用电子控制单元的内部资源安全地生成第一密钥代码和第二密钥代码,而不需要与存储器写设备或其他外部设备共享信息。
种子生成算法和/或密钥生成算法可以预先存储在可重写非易失性存储器中,即,在例如由电子控制单元的供应商执行由上述方法描述的鉴权过程之前。
根据该方法的另一方面,参考密钥代码可以由存储器写设备基于种子代码和第三识别码(例如,第三密码)生成,例如使用与用于生成第一密钥代码和第二密钥代码的密钥生成算法类型相同的密钥生成算法生成。
通过这种方式,仅在存储器写设备使用的第三识别码对应于(例如,等于)第一识别码或第二识别码的情况下,ECU的存储器才能被写入(或覆写)。
第三识别码可以由存储器写设备的用户例如通过诸如键盘、读卡器、可视代码阅读器(例如,QR码阅读器)等用户接口提供给存储器写设备。
通过这种方式,只有在存储器写设备的用户知道(或以其他方式拥有)第一识别码或第二识别码的情况下,存储器写设备才能够写入(或覆写)ECU的可重写非易失性存储器。
在其他实施例中,第三识别码可以存储在设备的存储器中或者以其他方式存储在设备内。
通过这种方式,可以预先设置实际上能够访问ECU的存储器的多个设备,并且只有拥有这些设备之一的用户实际上能够写入可重写非易失性存储器。
根据另一方面,该方法可以包括如果从存储器写设备接收的参考密钥代码对应于第二密钥代码则使存储器写设备能够修改第二识别码的附加步骤。
由于这个方面,允许拥有第二识别码的用户(例如,车辆制造商)改变和/或个性化其代码,使其对购买同种类型的内燃机的每一个其他人保密。
例如,发动机制造商可以要求他的供应商提供具有预定第二识别码的ECU。当销售内燃机时,发动机制造商可以将第二识别码传送给他的所有客户,使得每一个客户都能够对ECU的可重写存储器进行写入(或覆写)。反过来,这些客户中的每一个可以随意改变第二识别码,从而防止对他购买的内燃机的ECU的存储器被所述发动机制造商的其他客户改写。另一方面,发动机制造商将总是能够使用第一识别码来对其内燃机的ECU的存储器进行写入或覆写。
在其他实施例中,如果从存储器写设备接收的参考密钥代码对应于第一密钥代码,则可以使存储器写设备能够修改第二识别码。
通过这种方式,发动机制造商甚至可以随时更改第二识别码。
该方法还可以借助于计算机程序来执行,该计算机程序包括用于执行上述方法的所有步骤的程序代码,并且可以通过包括该计算机程序的计算机程序产品的形式执行。该方法还可以体现为电磁信号,所述信号被调制以携带数据位序列,该数据位序列表示执行该方法的所有步骤的计算机程序。
本发明的另一实施例提供一种内燃机的电子控制单元,所述电子控制单元包括可重写非易失性存储器和处理单元,所述处理单元被配置成:
-接收来自存储器写设备的访问请求;
-生成种子代码;
-将所述种子代码传送到存储器写设备;
-基于所述种子代码和第一识别码生成第一密钥代码;
-基于所述种子代码和第二识别码生成第二密钥代码;
-从所述存储器写设备接收参考密钥代码;
-将所述参考密钥代码与所述第一密钥代码和/或所述第二密钥代码进行比较,以及
-如果所述参考密钥代码对应于(例如,等于)所述第一密钥代码或所述第二密钥代码,则使所述存储器写设备能够将软件对象写入所述可重写非易失性存储器。
该实施例实现了上述方法的类似效果,特别是允许至少两个授权用户将软件对象写入(或覆写)到ECU的可重写非易失性存储器中。
上述方法的任何一个附加方面可以作必要的变更应用于本公开的该实施例。
具体地,处理单元可以被配置成:如果(即,假如)访问请求对应于第一类型访问请求,则生成第一密钥代码,并且如果(即,假如)访问请求对应于第二类型访问请求,则生成第二密钥代码。存储器写设备能够写入(或覆写)到可重写非易失性存储器中的软件对象可以至少包括发动机控制程序和/或校准数据。第一识别码和第二识别码可以存储在可重写非易失性存储器中。第一识别码可以存储在可重写非易失性存储器的固定存储器地址中(例如其启动存储区域中)。第二识别码可以存储在可重写非易失性存储器的存储器地址处,该存储器地址被存储在可重写非易失性存储器中(例如,其存储器地址处)的指针代码进行加密。种子代码可以由ECU的处理单元通过执行种子生成算法生成,该种子生成算法可以存储在可重写非易失性存储器中(例如,启动存储区域中)。第一密钥代码和第二密钥代码可以由ECU的处理单元通过执行密钥生成算法生成,该密钥生成算法可以存储在可重写非易失性存储器中(例如,启动存储区域中)。存储器写设备可以包括处理单元,该处理单元被配置成基于种子代码和第三识别码生成参考密钥代码,例如,使用与用于生成第一密钥代码和第二密钥代码的密钥生成算法相同的密钥生成算法。ECU的处理单元还可以被配置成:如果从存储器写设备接收的参考密钥代码对应于第二密钥代码和/或第一密钥代码,则使存储器写设备能够修改第二识别码(例如,任何时候都允许存储器写设备将软件对象写入或覆写到可重写非易失性存储器中)。
本发明的另一实施例提供一种电子控制单元,所述电子控制单元包括访问存储器的处理单元,所述处理单元被配置成:
-接收来自设备的访问请求;
-从存储器中访问第一密码;
-根据第一密码计算种子并将所述种子发送至所述设备;
-基于所述种子接收所述设备生成的密钥;
-确定所述密钥是否有效;
-当所述确定指示所述密钥有效时,授予对所述设备的访问权限;以及
-授予访问权限以便用于将来访问请求后,将第二密码写入所述存储器。
附图说明
现在将参考附图通过示例描述本发明。
图1是结合了本公开的特征的内燃机的实施例的示意图;
图2是属于图1的内燃机的发动机控制单元的示意图;
图3是示出了在本公开的一个实施例中使用的可重写非易失性存储器的说明性内部构造的框图;
图4是说明种子和密钥逻辑的方案;
图5是示出根据本公开的实施例的方法的流程图;
图6是示出根据本公开另一实施例的方法的流程图。
具体实施方式
图1示出了包括内燃机(ICE)100的示例性实施例。内燃机100可以例如是诸如柴油发动机之类的压缩点火发动机,诸如汽油发动机之类的火花点火发动机,或其他类型的发动机。内燃机100可以用在机动车辆(未示出)中,例如客车、卡车或农业越野车辆。在其他实施例中,内燃机100可以用在发电机或动力设备中。内燃机100可用于各种其他应用中。
内燃机100可以包括限定至少一个汽缸110的发动机缸体105。每个汽缸110可容纳往复活塞115。每个活塞115可与汽缸110配合以限定设计用于接收燃料和空气混合物的燃烧室120。燃料和空气混合物可以被点燃(通常通过压缩,但在一些系统中可能是由于加热器或火花)。燃料和空气混合物的点火可以生成引起活塞115运动的热膨胀废气。在燃烧室120的相对侧,活塞115可以连接至曲轴125,使得活塞115的往复运动在曲轴125的旋转运动中变换。
燃料可通过具有至少一个燃料喷射器135的喷射设备130供应到燃烧室120中。燃料喷射器135可联接至汽缸110或以其他方式与燃烧室流体连通,以便在燃烧室120内直接喷射燃料。喷射设备130可以与燃料源140(例如罐)连接,并且在一些情况下,还可以与泵145连接,泵145从燃料源140抽取燃料并将其输送到与燃料喷射器135流体连通的燃料导轨150。燃料输送系统的其他变型是可能的。
内燃机100可以包括一个汽缸110。在其他系统中,内燃机100可以包括多个汽缸110(例如,2个、3个、4个、6个或8个汽缸),每个汽缸可容纳相应的活塞115以限定相应的燃烧室120。在多汽缸发动机中,喷射设备130可以包括多个燃料喷射器135,每个燃料喷射器135联接到相应的汽缸110。所有活塞115可联接到相同的曲轴125。一些或所有燃料喷射器135可以与同一燃料轨150流体连通。
每个汽缸110可以具有至少两个阀,包括允许空气进入燃烧室120的进气阀155和允许排气从燃烧室120排出的至少一个排气阀160。阀155和阀160可以被凸轮轴(未示出)致动,凸轮轴可以与曲轴125一起旋转,其中,可以设置凸轮相位器以选择性地改变凸轮轴和曲轴125之间的定时。
进气可以通过进气管165输送到进气阀155,进气管165将来自周围环境的空气提供给气缸110限定的燃烧室120。进气可以在进入燃烧室120之前通过空气过滤器。如果内部内燃机100包括多个气缸110,则可提供进气歧管(未示出),用于接收来自进气管165的空气,并通过相应的进气阀155将其分配到所有气缸110中。在一些实施例中,可以在进气管165(例如,进气歧管上游(如果存在))中提供节流阀体167,以调节进入一个或多个气缸110的气流。
排气(由燃烧室120中的燃料和空气混合物的点火产生)可以通过一个或多个排气阀160离开发动机汽缸110,并且可以被引导到排气管170中。排气管170可以传送废气并将其排出到周围环境中。在内燃机100包括多个汽缸110的一些实施例中,所有相应的排气阀160可以与排气歧管(未示出)流体连通,这可以收集废气并将其引导到排气管170中。
在一些实施例中,内燃机100可以包括强制通风系统,例如涡轮增压器175。涡轮增压器175可以包括位于进气管165中的压缩机180和位于排气管170中并旋转地联接至排气管170的涡轮机185。涡轮机185通过接收来自排气管170的废气而旋转,这引导废气在通过涡轮机185膨胀之前通过一系列叶片。在一些示例中,涡轮机185可以是具有VGT致动器(未示出)的可变几何涡轮机(VGT),其被布置成移动叶片以改变通过涡轮机185的废气流。在其他实施例中,涡轮增压器175可以是固定的几何形状和/或包括废气门。涡轮机185的旋转引起压缩机180的旋转,其效果是增加进气管165中的空气的压力和温度。中间冷却器190可设置在进气管165中,在压缩机的下游180,以降低空气温度。其他内燃机可以不包括涡轮增压器175和用于涡轮增压的相应部件。
内燃机100还可以包括一个或多个后处理设备195,其可以被设置在排气管170中,使得废气在排出到周围环境中之前通过所述一个或多个后处理设备195。在一些具有涡轮增压器的系统中,后处理设备195可以位于涡轮机185的下游。后处理设备195可以是或包括被配置成改变废气的组份的任何设备,例如通过保留所述废气的一些成分和/或化学转变所述废气的一些成分。后处理设备195的一些示例包括但不限于催化转化器(两路和三路)、氧化催化剂、贫NOx捕集器、碳氢化合物吸附器、选择性催化还原(SCR)系统、柴油氧化催化剂(DOC)以及颗粒过滤器(例如柴油颗粒过滤器)。
一些实施例还可以包括废气再循环(EGR)系统,用于将来自废气系统的至少部分废气再循环回到进气系统。EGR系统可以包括EGR管200,EGR管200联接在排气管170和进气管165之间,在存在的情况下例如在排气歧管和进气歧管之间。EGR系统还可以包括EGR冷却器205,以降低EGR管200和/或EGR阀210中的废气温度,从而调节EGR管200中的废气流。其他发动机可以不包括EGR系统和相应的部件。
内燃机100还可以包括电子控制单元(ECU)215,其被配置成控制发动机的操作。ECU 215可以与一个或多个传感器通信,所述传感器被配置成生成与内燃机100相关联的各种物理参数成比例的信号。这些传感器可以包括但不限于进气管165中的大量气流和温度传感器、进气歧管压力和温度传感器、燃烧压力传感器、冷却剂和油温和液位传感器、燃料轨压力传感器、凸轮位置传感器、曲柄位置传感器、废气压力和温度传感器、EGR温度传感器以及加速器(例如加速器踏板)位置传感器。基于从传感器接收的信号,ECU 215可以被配置成生成输出信号给各种发动机控制设备,所述发动机控制设备被布置成控制内燃机100的运行,所述发动机控制设备包括但不限于燃料喷射器135、节流阀体167、EGR阀210、VGT致动器以及凸轮相位器。
如图2所示,ECU 215可以包括计算系统220,其可以体现为计算机或微计算机。计算系统220可以经由输入电路225接收传感器信号,输入电路225可以以位于ECU 215中。输入电路225可以被配置成执行信号的波形整形、A/D转换等处理。在计算系统220中,可以基于传感器信号计算内燃机参数的最佳控制量,以便生成驱动发动机控制设备的输出信号。输出信号可以由计算系统220使用诸如发动机控制程序和校准数据之类的软件对象生成。发动机控制程序可以表示由计算系统220执行以操作内燃机100的控制设备的功能和/或程序(例如,指令序列),而校准数据可以表示这些功能和/或程序的设置。输出电路230可以设置在ECU 215中,以接收来自计算系统220的输出信号并将其转发至控制设备。此外,ECU215可以包括用于与存储器写设备300执行数据通信的通信电路235。当计算系统220使用的软件对象(例如发动机控制程序和/或校准数据)要被写入时,存储器写设备300可以连接至ECU 215。
ECU 215中的计算系统220可以包括中央处理单元(CPU)240,例如微处理器,中央处理单元240与有形或非暂态性机器可读或计算机可读存储器245通信,用于在其中存储将被CPU 240执行/读取的发动机控制程序、校准数据和其他软件对象。例如,CPU 240可以被配置成执行在存储器245中存储为发动机控制程序的指令。发动机控制程序可以体现控制方法,允许CPU 240执行这些方法的步骤并控制内燃机100。存储器245可以包括各种存储类型,包括光存储、磁存储,固态存储和其他非易失性存储器。具体地,存储器245可以是可重写非易失性存储器,即,一旦已经写入和正在写入程序和数据就能够再次擦除程序和数据的任何种类的存储器。在一些实施例中,存储器245可以包括闪存和/或可擦除可编程只读存储器(EPROM)。在其他实施例中,存储器245可以包括随机存取存储器(RAM)、只读存储器(ROM),或其他机器可读介质(例如光盘可重写存储器(CD-RW),或磁盘或光盘)。
可以在计算系统220中提供I/O(输入-输出)电路250,用于从输入电路225和通信电路235接收信号,并且用于将信号施加到输出电路230。计算系统220可以还包括连接各种电路的接口总线。接口总线可以被配置成向/从各种传感器和控制设备发送、接收和调制模拟信号和/或数字信号。
全部或部分的ECU 215可以附加地或替代地包括控制器、微处理器或专用集成电路(ASIC)中的电路,或者可以用离散逻辑或组件、或其他类型的模拟或数字电路的组合来实现,组合在单个集成电路上或分布在多个集成电路中。内燃机100可以附加地或替代地配备有不同类型的处理器以提供电子逻辑,例如嵌入式控制器、车载计算机或可以部署在车辆中的任何处理模块。
存储在存储器245中的程序可以通过电缆或以无线方式从外部传送。在存储器245之外,程序可以作为计算机程序产品可见,其在本领域中也可以称为计算机可读介质或机器可读介质,并且其应该被理解为驻留在载体上的计算机程序代码,所述载体是本质上暂态的或非暂态的,其结果是计算机程序产品可被视为本质上是暂态或非暂态的。暂态计算机程序产品的一个示例是信号,例如电磁信号,例如光信号,它是计算机程序代码的暂态载体。携带这种的计算机程序代码可以通过传统的调制技术(如用于数字数据的QPSK)对信号进行调制来实现,使得表示所述计算机程序代码的二进制数据就可以印在暂态电磁信号上。例如,当通过无线连接到笔记本电脑以无线方式传输计算机程序代码时使用此类信号。对于非暂态计算机程序产品,计算机程序代码可以体现在有形的存储介质中。存储介质是上述非暂态载体,使得计算机程序代码可以以可检索的方式永久或非永久地存储在存储介质中或存储介质上。存储介质可以是计算机技术中已知的常规类型,如闪存、ASIC、CD等。
ECU 215的处理能力可以分布在多个系统组件之间,例如多个处理器和存储器之间,可选地包括多个分布式处理系统。参数、数据库和其他数据结构可以单独存储和管理,可以合并到单个存储器或数据库中,可以以许多不同的方式在逻辑上和物理上组织,并且可以以多种方式实现,包括诸如链表、哈希表的数据结构或隐式存储机制。程序可以是单个程序的部分(例如子程序)、单独的程序、分布在几个存储器和处理器上,或者以许多不同的方式实现,例如在诸如共享库(例如,动态链接库(DLL))之类的库中。例如,DLL可以存储执行上述任何系统处理的代码。
图3中示出了ECU 215中使用的存储器245的内部构造的示例。根据该实施例,存储器245可以包括多个存储区域,包括用于启动程序的启动存储区域255、用于存储内燃机100的发动机控制程序的至少一个程序存储区域260,以及用于存储校准数据的至少一个数据存储区域265。这些存储区域255、存储区域260和存储区域265可以彼此分离或合并。启动程序可以是执行将程序(软件)和/或数据上传和安装到ECU 215的存储器245中的任务的基本软件。存储在程序存储区域260中的发动机控制程序可以是如上所述由计算系统220执行以控制内燃机100的程序。为了执行该任务,在执行发动机控制程序时,计算系统220还可以使用存储在数据存储区域265中的校准数据。
校准数据可以包括定义各种发动机运行参数之间的相关性的数学模型(例如,函数,公式)和/或数据表(例如,地图(map)),这些发动机运行参数必须被实现以有效地和/或高效地控制内燃机100。例如,为了恰当地操作内燃机100,由燃料喷射器135喷射的燃料量可以取决于发动机速度(即,曲轴125的旋转速度)并且取决于加速器(例如加速器踏板(未示出))的位置。为了使得CPU 240能够相应地命令燃料喷射器135,可以提供数据表,该数据表的每个单元位于发动机速度的特定值与加速器位置的特定值的交点处并且包含与这些输入值对应的燃料量的值。该数据表可以在实验校准活动期间获得并且可以存储在数据存储区域265中。通过这种方式,在内燃机100的操作期间,在执行控制程序时,CPU 240可以例如借助于专用传感器确定发动机速度的当前值和加速器位置的当前值、从数据表中检索或读取要喷射的燃料量的相应值,然后相应地命令燃料喷射器135。除了上述参数之外,燃料量还会受到其他发动机运行参数的影响,例如进气管165内的空气压力、发动机温度(例如,发动机冷却剂/水的温度)、节流阀167的位置、燃料轨150中的燃料压力等。因此,针对这些附加参数中的一个或多个的每个可能值,可以利用实验校准活动确定特定数据表并将该特定数据表存储在数据存储区域265中。通过这种方式,数据存储区域265可以包含多个数据表,CPU 240可以基于附加参数的当前值从所述多个数据表中选择正确的数据表。在其他实施例中,数据表可具有多于两个的维度,以便能够基于作为输入接收的三个或更多个发动机运行参数直接得出燃料量。校准数据还可以包括其他类似的数据表,其通过接收一个或多个可测量的发动机运行参数作为输入,提供可控发动机运行参数的对应值作为输出。除了燃料量之外,这些可控参数可以包括例如喷射正时、涡轮叶片的位置、废气门阀的位置、凸轮相位器的位置以及其他。
存储器245还可以存储所谓的喷射器代码(例如,QR代码),其对关于内燃机100的燃料喷射器135的重要技术信息加密。实际上,尽管以相同的方式制造燃料喷射器135,但是它们的行为例如由于生产扩散而可能略有不同。具体地,可能出现两个或更多相同类型的燃料喷射器135提供不同的燃料量,即使它们以相同的方式致动(例如,在相同的通电时间)。出于这个原因,在生产线的末端,可以对每个燃料喷射器进行测试以便确定通常被称为喷射偏差的参数,该参数表示由燃料喷射器实际喷射的燃料量与燃料量的预期值之间的偏差。该参数可以在喷射器代码中加密并存储在存储器245中,CPU 240可以读取和使用该参数以在内燃机100的运行期间恰当地控制燃料喷射器135。因此,如果例如由于故障,更换了内燃机100的一个燃料喷射器135,则需要用新燃料喷射器的喷射代码来覆写存储器245中的相应喷射器代码。存储器245还可以包含其他相关信息,例如使用内燃机100的车辆的标识号和/或车辆制造商的信息。该附加信息和/或喷射代码可以存储在存储器245的数据存储区域265中或者可以存储在存储器245的其他专用存储区域中。无论哪种方式,都可以通过存储器写设备300修改附加信息和/或喷射器代码。
如图2所示,存储器写设备300可以是电子设备。具体地,存储器写设备300可以是外部设备,其与ECU 215物理分离和/或与内燃机100物理分离。例如,存储器写设备300可以被设计成手持并且由用户使用电缆和/或连接器物理连接至ECU 215。更详细地,存储器写设备300可以包括中央处理单元(CPU)305,用于执行与ECU 215的计算系统220的串行通信和/或访问存储器245。如上所述,存储器写设备300可以能够在存储器245中写入或覆写软件对象(例如,发动机控制程序和校准数据)。存储器写设备300还可以包括用于存储各种程序和数据的有形或非暂态机器可读或计算机可读存储器310,例如闪存存储器和/或可擦除可编程只读存储器(EPROM)和/或RAM,各种程序和数据在某些情况下包括要写入ECU 215的存储器245中的软件对象。存储器写设备300和ECU215之间的串行通信可以实现为控制器区域网络(CAN总线),例如使用在其每端以120Ω阻抗端接的线性总线的ISO 11898CAN总线(例如电阻器)。CAN总线的数据传输速度可以是500kbps(千位(kilobit)每秒)或者不同的速度。存储器写设备300和ECU 215之间在CAN总线上的通信协议可以是ISO 15765-4类型,允许传输29位的数据包。在其他实施例中,通信协议和/或数据包的维度可以是不同的。当存储器写设备300通过物理电缆和/或电连接器(未示出)连接到ECU 215,例如连接到ECU215的通信电路235时,可以启用串行通信。电连接器可以包括OBD(车载诊断)或OBDII连接器以及相应对应物。在其他实施例中,连接器的类型可以不同。该有线连接确保不能非故意地访问(例如,写入或重写)ECU 215。
ECU的制造商可以以空白状态将ECU 215提供给内燃机100的制造商,其中仅将启动程序存储在存储器245的启动存储区域255中,而程序存储区域260和数据存储区265是空的。在其他实施例中,可以向ECU 215提供已经存储在程序存储区域260和数据存储区域265中的一些临时程序和/或数据。该临时程序和/或数据可以被设计以允许ECU 215能够执行通常与ECU 215本身的操作有关但不能有效地操作内燃机100的一些功能。无论哪种方式,ECU 215的存储器245需要加载正确操作和控制内燃机100所需的控制程序和校准数据(例如数据表)。在内燃机100的使用寿命期间,ECU 215的存储器245也需要在内燃机100的寿命期间被覆写一次或多次,例如以便于安装包含程序/数据升级或错误改正的新版本。
为了在存储器245的区域中覆写软件对象,可能需要擦除已经存在于该区域中的软件对象。因此,为了在存储器245上的特定区域中写入新的软件对象,可以首先将这些新的软件对象复制到ECU 215的RAM上,然后可以擦除存储器245的特定区域,最后被复制到RAM中的新软件对象可以被写入到存储器245上的已擦除的特定区域。
这些活动可以通过将ECU 215与存储器写设备300连接来执行。为了限制对ECU215的访问以防止篡改和/或其他未授权的活动,可以仅在鉴权过程成功完成之后才授权存储器写设备300可以访问ECU 215。当存储器写设备300访问ECU 215时,可以使设备300能够将软件对象写入或覆写到存储器245中。这些软件对象可以包括发动机控制程序和/或校准数据,例如喷射器代码、车辆识别码、发动机识别码以及车辆制造商信息。此外,存储器写设备300可以执行其他功能,包括但不限于读取存储在存储器245中的数据和/或信息,例如读取已经提到的喷射器代码、车辆识别码、发动机识别码、车辆制造商信息以及总发动机小时数(即发动机已使用的小时数)。
存储器写设备300经历的用于访问ECU 215的鉴权过程可以基于种子和密钥方法。通常,种子和密钥方法包括在图4的方案中表示的ECU 215和设备300之间的信息交换。实际上,设备300可以向ECU 215发送种子请求,也称为访问请求。ECU 215可以通过生成(例如,计算)种子(还称为种子代码),并且将该种子发送到设备300来进行回复。设备可以使用种子来生成(例如,计算)密钥,还称为参考密钥代码,并将该密钥发送回ECU 215。然后,ECU215可以检查从设备接收到的密钥是否有效。具体地,ECU 215可以将从设备300接收的密钥与ECU 215可以基于相同的种子并且使用与设备300使用的计算逻辑相同的计算逻辑生成的密钥进行比较。如果两个密钥匹配(例如,相等),则认为从设备300接收的密钥有效,并且ECU 215可以授权访问设备300。
基于该方案,图4的流程图表示了鉴权过程的第一实施例。实际上,一旦存储器写设备300已经连接到ECU 215,存储器写设备300就可以将访问请求发送到ECU 215(方框S100)。访问请求可以是具有预定编码和/或体现预定信息/指令的电子信号。在一些情况下,访问请求可以包括读取或写入存储器的请求或与ECU或发动机相关联的其他数据。访问请求可以是两种可选类型,即,第一类型访问请求或第二类型访问请求,其中第一类型访问请求与第二类型访问请求不同。ECU 215可以接收访问请求(方框S105)。响应于该访问请求,ECU 215可以被配置成生成种子代码,例如字母数字代码(方框S110)。该种子代码可以由CPU 240使用种子生成算法生成,该种子生成算法可以包括在启动程序中和/或例如由ECU 215的供应商存储在存储器245的启动存储区域255中。可替代地,种子生成算法可以存储在存储器245的另一存储区域中。在方框S110中生成种子代码之后,由此生成的种子代码然后可以由ECU 215转发到存储器写设备300(方框S115)。
ECU 215可以附加地或替代地被配置成确定最初从存储器写设备接收的访问请求是第一类型访问请求还是第二类型访问请求(方框S120)。
如果从存储器写设备300接收的访问请求是第一类型访问请求,则ECU 215可以被配置成生成第一密钥代码,例如另一个字母数字代码(框S125)。该第一密钥代码可以由CPU240使用密钥生成算法生成,该密钥生成算法可以包括在启动程序中和/或例如由ECU 215的供应商存储在存储器245的启动存储区域255中。可替代地,种子生成算法可以存储在存储器245的另一存储区域中。具体地,第一密钥代码可以基于种子代码和第一标识码(例如,第一密码)生成。例如,可以使用种子代码和第一识别码的预定组合逻辑和/或函数来生成第一密钥代码。第一识别码可以是另一字母数字代码。第一识别码可以单义地归因于内燃机100的制造商,使得发动机制造商可以是唯一知道第一识别码的人。第一识别码可以例如由ECU 215的供应商存储在存储器245中。具体地,第一识别码可以存储在启动存储区域255中或其他存储区域中。根据一些实施例,第一识别码可以存储在存储器245的固定和预定存储器地址处。该存储器地址可以写入密钥生成算法中,使得CPU 240在执行密钥生成算法时可以立即从规定的存储器地址中检索第一识别码。
反之,如果从存储器写设备300接收的访问请求是第二类型访问请求,则ECU 215可以被配置成生成第二密钥代码,例如另一字母数字代码(框S130)。具体地,第二密钥代码可以基于种子代码和第二识别码(例如,第二密码)生成。第二密钥代码可以由CPU 240使用种子代码和第二识别码的预定组合逻辑和/或函数来生成。例如,可以使用用于第一密钥代码的相同密钥生成算法来生成第二密钥代码。第二识别码可以是另一字母数字代码。第二识别码通常可归因于内燃机100的购买者,例如归因于配备有内燃机100的车辆的制造商。换句话说,该第二识别码可以由发动机制造商选择,可以被传送给所有车辆制造商和/或其他客户,使得他们中的每一个都知道第二识别码。第二识别码可以例如由ECU 215的供应商或发动机制造商存储在存储器245中。具体地,第二识别码可以存储在程序存储区域260中或数据存储区域265中或其他存储区域中。
根据一些实施例,第二识别码可以存储在存储器245的固定和预定存储器地址处。然而,存储器245中可用的空间,特别是在程序存储区域260中或者在数据存储区域265中的可用空间通常取决于存储在其中的发动机控制程序和/或校准数据的尺寸和/或位置,并且可以根据版本而异。另外,第二识别码可以具有不同的尺寸(例如,不同的位数)。由于这些原因和其他原因,可能难以将第二识别码定位在固定的存储器地址处。为了解决该问题,一些实施例可以允许第二识别码存储在存储器245的不同存储器地址处并且由ECU 215使用指向所述存储器地址的指针来检索。指针可以是软件对象,例如代码,其简单地加密第二识别码的存储器地址。指针代码可以具有固定的维度,并且可以存储在存储器245中的预定和固定的存储器地址处,例如存储到存储器245中可用的最后存储器地址。指针代码的存储器地址可以写入到密钥生成算法中,使得ECU 215在执行密钥生成算法时,可以从其存储器地址中检索到指针代码、解密指针代码以获得第二识别码的存储器地址,然后检索第二识别码。
种子代码还由存储器写设备300接收(方框S135),种子代码可以被配置成使用其生成参考密钥代码,例如另一字母数字代码(方框S140)。具体地,可以基于从ECU 215接收的种子代码和第三识别码(例如,第三密码)生成参考密钥代码。该第三识别码可以由其用户例如通过诸如键盘、读卡器或其他的用户接口提供给存储器写设备300。可替代地,第三识别码可以存储在存储器310中。无论哪种方式,可以使用与ECU 215所使用的密钥生成算法相同的密钥生成算法来生成参考密钥代码。密钥生成算法可以存储到存储器写设备300的存储器310中。通过这种方式,如果第三识别码对应于(例如,等于)存储在ECU 215的存储器245中的第一识别码或第二识别码,则存储器写设备300生成的参考密钥代码将对应(例如等于)ECU 215所生成的第一密钥代码或第二密钥代码。存储器写设备300可配置成将参考密钥代码发送回ECU 215(方框S145)。
在访问请求是第一类型访问请求的情况下,ECU 215可以被配置成接收参考密钥代码(方框S150)并将从存储器写设备300接收的参考密钥代码与第一密钥代码进行比较(方框S155)。该比较可以由CPU 240通过执行验证算法来执行,该验证算法可以被包括在启动程序中或者存储在存储器245的启动存储区域255或其他存储区域中。如果该比较得出该参考密钥代码与第一密钥代码不同,例如因为存储器写设备300使用的第三识别码与ECU215中的第一识别码不同,则ECU 215可以被配置为防止存储器写设备300访问存储器245(方框S160),并且特别地,防止将软件对象写入或覆写到存储器245。如果相反地,参考密钥代码对应于第一密钥代码,则ECU 215能够使存储器写设备300访问存储器245(方框S165)。并且,特别地,将软件对象写入或覆写到存储器245中。这些软件对象可以至少包括要写入或覆写到例如程序存储区域260中的发动机控制程序,和/或要写入或覆写到例如数据存储区域265中的校准数据。
在访问请求是第二类型访问请求的情况下,ECU 215可以被配置成接收参考密钥代码(方框S170)并将从存储器写系统300接收的参考密钥代码与第二密钥代码进行比较(方框S175)。这种比较还可以由CPU 240通过执行验证算法来执行,该验证算法可以被包括在启动程序中或者存储在存储器245的启动存储区域255或其他存储区域中。如果该比较得出该参考密钥代码与第二密钥代码不同,例如因为存储器写设备300使用的第三识别码与ECU 215中的第二识别码不同,则ECU 215可以被配置成防止存储器写设备300访问存储器245(方框S180),并且具体地,防止将软件对象写入或覆写到存储器245。如果相反地,参考密钥代码对应于第二密钥代码,则ECU 215能够使存储器写设备300访问存储器245(方框S185),并且,具体地,将软件对象写入或覆写到存储器245中。此外,在这种情况下,这些软件对象可以至少包括要写入或覆写到例如程序存储区域260中的发动机控制程序,和/或例如要写入或覆写到数据存储区域265中的校准数据。
根据本公开的一个方面,如果在这种情况下从存储器写设备300接收的参考密钥代码对应于第二密钥代码,则ECU 215还可以使存储器写设备300能够例如通过用新的和不同的代码(例如,不同的密码)覆写已经存在于存储器245上的第二识别码来修改第二识别码(方框S190)。在一些实施例中,可允许新的第二识别码相对于原始的第二识别码具有不同的长度。新的第二识别码可以被包括在由发动机制造商提供和授权的数据包中,并且可以由车辆制造商使用存储器写设备300写入(闪存)到存储器245中。通过这种方式,一旦购买了内燃机100,每个车辆制造商都可以个性化第二识别码,使其对于购买相同内燃机的所有其他车辆制造商保密。
图6的流程图中表示鉴权过程的另一实施例。根据该实施例,一旦存储器写设备300已连接到ECU 215,存储器写设备300可以生成访问请求(方框S200)。在这种情况下,访问请求可以是单个通用访问请求。ECU215可以接收访问请求(方框S205)。响应于访问请求,ECU 215可以被配置成生成种子代码(方框S210)。种子代码可以具有相同的属性,并且可以以与上面结合第一实施例已经描述的方式相同的方式生成。然后,ECU 215可以将如此生成的种子代码转发到存储器写设备300(方框S215)。
ECU 215还可以使用种子代码来生成第一密钥代码(方框S220)和第二密钥代码(方框S225)。第一密钥代码和第二密钥代码可以具有相同的属性,并且可以以与上面结合第一实施例已经描述的方式相同的方式生成。另一方面,存储器写设备300还可以接收种子代码(方框S230),种子代码可以被配置成使用其生成参考密钥代码(方框S235)。一旦生成,存储器写设备300可以将参考密钥代码发送回ECU 215(方框S240)。参考密钥代码可以具有相同的属性并且可以以与已经结合以上第一实施例描述的方式相同的方式生成。
此时,ECU 215可以被配置成接收参考密钥代码(方框S245)并将参考密钥代码与第一密钥代码进行比较(方框S250)。如果该比较得出参考密钥代码不同于第一密钥代码,则ECU 215可以被配置成将参考密钥代码与第二密钥代码进行比较(方框S255)。在其他实施例中,ECU 215可以首先将参考密钥代码与第二密钥代码进行比较,然后与第一密钥代码进行比较。一些其他实施例可以规定将参考密钥与第一密钥代码和第二密钥代码同时进行比较。在任何情况下,这些比较可以由CPU 240通过执行验证算法来执行,该验证算法可以被包括在启动程序中或者存储在存储器245的启动存储区域255或其他存储区域中。
如果参考密钥代码与第一密钥代码和第二密钥代码都不同,则ECU450可以被配置成以防止存储器写设备300访问存储器245(方框S260),特别是防止将软件对象写入或覆写到存储器245中。如果相反,参考密钥代码对应于第一密钥代码或第二密钥代码,则ECU 215可使存储器写设备300访问存储器245(方框S265),尤其是将软件对象写入或覆写到存储器245中。此外,在这种情况下,这些软件对象可包括至少例如写入或覆写到程序存储区260中的发动机控制程序,和/或例如写入或覆写到数据存储区265中的校准数据。具体地,如果参考密钥代码对应于第二密钥代码,则ECU 215可以进一步被配置成使存储器写设备300能够修改第二识别码(方框S270),如已经结合第一实施例解释的那样。
在一些实施例中,如果参考密钥代码对应于第一密钥代码,则也可以允许存储器写设备300修改第二识别码,从而在需要的情况下发动机制造商也可以改变该代码。其他实施例可以规定存储器写设备300从未被授权修改第一标识码和/或将软件对象写入或覆写到启动存储区域255中。
上述鉴权过程保证发动机制造商和车辆制造商的授权人员可以将软件对象写入或覆写到ECU 215的存储器245中,特别是写入程序存储区域260和/或数据存储区域265中。然而,值得强调的是,被允许写入或覆写到存储器245中的软件对象仅可以是已经由发动机制造商发布和批准的软件对象(例如,程序和/或数据)。
尽管在前面的发明内容和具体实施方式中已经呈现了至少一个示例性实施例,但是应该理解存在大量的变型。还应当理解的是,一个或多个示例性实施例仅是示例的,并不旨在以任何方式限制范围、适用性或配置。相反,前述发明内容和详细描述将为本领域技术人员提供用于实现至少一个示例性实施例的便利路线图,应当理解的是,可以在不偏离所附权利要求及其合法等同物所述的范围的情况下对示例性实施例中描述的元件的功能和布置进行各种改变。

Claims (13)

1.一种将软件对象写入内燃机的电子控制单元的可重写非易失性存储器的方法,其中,所述方法包括:
-从存储器写设备接收访问请求;
-生成种子代码;
-将所述种子代码传送到所述存储器写设备;
-基于所述种子代码和第一标识码生成第一密钥代码;
-基于所述种子代码和第二标识码生成第二密钥代码;
-从所述存储器写设备接收参考密钥代码;
-将所述参考密钥代码与所述第一密钥代码和/或所述第二密钥代码进行比较,
-如果所述参考密钥代码对应于所述第一密钥代码或所述第二密钥代码,则使所述存储器写设备能够将软件对象写入所述可重写非易失性存储器,以及
-如果从所述存储器写设备接收到的所述参考密钥代码对应于所述第二密钥代码,则进一步地使所述存储器写设备能够修改所述第二标识码。
2.根据权利要求1所述的方法,其中,如果所述访问请求对应于第一类型访问请求,则生成所述第一密钥代码;以及如果所述访问请求对应于第二类型访问请求,则生成所述第二密钥代码。
3.根据权利要求1或2所述的方法,其中,所述存储器写设备能够写入所述可重写非易失性存储器中的所述软件对象至少包括发动机控制程序和/或校准数据。
4.根据权利要求1或2所述的方法,其中,所述第一标识码和所述第二标识码存储在所述可重写非易失性存储器中。
5.根据权利要求4所述的方法,其中,所述第一标识码存储在所述可重写非易失性存储器的固定存储器地址处。
6.根据权利要求4所述的方法,其中,所述第二标识码存储在所述可重写非易失性存储器的存储器地址处,所述存储器地址被也存储在所述可重写非易失性存储器中的指针代码加密。
7.根据权利要求1或2所述的方法,其中,所述种子代码由执行种子生成算法的所述电子控制单元生成。
8.根据权利要求7所述的方法,其中,所述第一密钥代码和所述第二密钥代码由执行密钥生成算法的所述电子控制单元生成。
9.根据权利要求8所述的方法,其中,所述种子生成算法和所述密钥生成算法存储在所述可重写非易失性存储器中。
10.根据权利要求1或2所述的方法,其中,所述参考密钥代码由所述存储器写设备基于所述种子代码和第三标识码生成。
11.根据权利要求10所述的方法,其中,所述第三标识码由所述存储器写设备的用户提供给所述存储器写设备。
12.一种内燃机的电子控制单元,所述电子控制单元包括可重写非易失性存储器和处理单元,所述处理单元被配置成:
-从存储器写设备接收访问请求;
-生成种子代码;
-将所述种子代码传送到所述存储器写设备;
-基于所述种子代码和第一标识码生成第一密钥代码;
-基于所述种子代码和第二标识码生成第二密钥代码;
-从所述存储器写设备接收参考密钥代码;
-将所述参考密钥代码与所述第一密钥代码和/或所述第二密钥代码进行比较,
-如果所述参考密钥代码对应于所述第一密钥代码或所述第二密钥代码,则使所述存储器写设备能够将软件对象写入所述可重写非易失性存储器,以及
-如果从所述存储器写设备接收到的所述参考密钥代码对应于所述第二密钥代码,则进一步地使所述存储器写设备能够修改所述第二标识码。
13.一种内燃机的电子控制单元,其包括访问存储器的处理单元,所述处理单元被配置成:
-接收来自设备的第一访问请求;
-从所述存储器访问第一密码;
-基于所述第一密码计算第一种子并将所述第一种子发送到所述设备;
-接收所述设备基于所述第一种子生成的第一参考密钥;
-基于所述第一种子和所述第一密码生成第一密钥,并将所述第一参考密钥与所述第一密钥进行比较以确定所述第一参考密钥是否有效;
-当确定表明所述第一参考密钥有效时,授予对所述设备的访问权;以及
-在授予访问权后,向所述存储器写入第二密码以用于将来访问请求,以及
-从所述设备接收第二访问请求;
-生成第二种子;
-将所述第二种子传送到所述设备;
-基于所述第二种子和所述第二密码生成第二密钥,
-从所述设备接收第二参考密钥;
-将所述第二参考密钥与所述第二密钥进行比较;
-如果从所述设备接收到的所述第二参考密钥对应于所述第二密钥,则进一步地使所述设备能够修改所述第二密码。
CN201910406475.3A 2018-05-17 2019-05-16 用于将软件对象写入内燃机的电子控制单元的方法及设备 Active CN110501935B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IT102018000005466 2018-05-17
IT102018000005466A IT201800005466A1 (it) 2018-05-17 2018-05-17 Metodo e dispositivo per scrivere oggetti software in una unita' elettronica di controllo di un motore a combustione interna

Publications (2)

Publication Number Publication Date
CN110501935A CN110501935A (zh) 2019-11-26
CN110501935B true CN110501935B (zh) 2024-03-12

Family

ID=62952364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910406475.3A Active CN110501935B (zh) 2018-05-17 2019-05-16 用于将软件对象写入内燃机的电子控制单元的方法及设备

Country Status (5)

Country Link
US (2) US11068173B2 (zh)
EP (1) EP3570193B1 (zh)
CN (1) CN110501935B (zh)
ES (1) ES2869240T3 (zh)
IT (1) IT201800005466A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1315275A (zh) * 2000-03-16 2001-10-03 本田技研工业株式会社 用于车辆控制器的存储器重写系统
CN1794630A (zh) * 2004-12-20 2006-06-28 国际商业机器公司 伪公钥加密方法和系统
CN104219049A (zh) * 2013-05-29 2014-12-17 通用汽车环球科技运作有限责任公司 用以改进安全闪存编程的方法
CN104917745A (zh) * 2014-03-13 2015-09-16 通用汽车环球科技运作有限责任公司 使用密码钥控制对存储在车辆中的个人信息的访问
CN105279441A (zh) * 2014-07-21 2016-01-27 恩智浦有限公司 用于对数据进行加密和解密的方法和架构
CN107273152A (zh) * 2017-05-26 2017-10-20 安徽贵博新能科技有限公司 一种防止系统ecu软件被误升级的解决方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3785299B2 (ja) * 2000-03-16 2006-06-14 本田技研工業株式会社 車両制御装置のためのメモリ書き換えシステム
US7100011B2 (en) * 2002-03-01 2006-08-29 Arris International, Inc. Method and system for reducing storage requirements for program code in a communication device
US7091857B2 (en) * 2004-02-12 2006-08-15 Mi-Jack Products, Inc. Electronic control system used in security system for cargo trailers
US7368940B1 (en) * 2006-06-08 2008-05-06 Xilinx, Inc. Programmable integrated circuit with selective programming to compensate for process variations and/or mask revisions
JP4197038B2 (ja) * 2007-03-27 2008-12-17 トヨタ自動車株式会社 ハイブリッド自動車およびその制御方法
JP4475346B2 (ja) * 2008-05-13 2010-06-09 トヨタ自動車株式会社 故障診断システム及びこれに用いる車載ecu
WO2011034083A1 (ja) * 2009-09-18 2011-03-24 ヤンマー株式会社 エンジン制御装置及びその制御方法
US8204480B1 (en) * 2010-10-01 2012-06-19 Viasat, Inc. Method and apparatus for secured access
JP5395036B2 (ja) * 2010-11-12 2014-01-22 日立オートモティブシステムズ株式会社 車載ネットワークシステム
DE102013101508A1 (de) * 2012-02-20 2013-08-22 Denso Corporation Datenkommunikationsauthentifizierungssystem für ein Fahrzeug, Netzkopplungsvorrichtung für ein Fahrzeug, Datenkommunikationssystem für ein Fahrzeug und Datenkommunikationsvorrichtung für ein Fahrzeug
WO2013165995A1 (en) * 2012-04-30 2013-11-07 Thermo King Corporation Transport refrigeration system controller to engine control unit interface
US10127743B2 (en) * 2016-03-29 2018-11-13 Rm Acquisition, Llc Apparatuses, systems and methods for electronic data logging
US10171478B2 (en) * 2016-06-30 2019-01-01 Faraday & Future Inc. Efficient and secure method and apparatus for firmware update
US10371071B2 (en) * 2016-11-09 2019-08-06 Fev North America, Inc. Systems and methods for non-intrusive closed-loop combustion control of internal combustion engines
CN107453864B (zh) * 2017-07-04 2020-08-04 奇瑞新能源汽车股份有限公司 一种安全验证方法和系统
JP6940365B2 (ja) * 2017-10-12 2021-09-29 日立Astemo株式会社 情報更新装置
CN107894790B (zh) * 2017-11-23 2020-03-17 重庆长安汽车股份有限公司 一种mt车型发动机油门扭矩特性匹配方法
US10891809B2 (en) * 2018-03-20 2021-01-12 Shenzhen Launch Software Co., Ltd Intelligent diagnosis assistance method, device and equipment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1315275A (zh) * 2000-03-16 2001-10-03 本田技研工业株式会社 用于车辆控制器的存储器重写系统
CN1794630A (zh) * 2004-12-20 2006-06-28 国际商业机器公司 伪公钥加密方法和系统
CN104219049A (zh) * 2013-05-29 2014-12-17 通用汽车环球科技运作有限责任公司 用以改进安全闪存编程的方法
CN104917745A (zh) * 2014-03-13 2015-09-16 通用汽车环球科技运作有限责任公司 使用密码钥控制对存储在车辆中的个人信息的访问
CN105279441A (zh) * 2014-07-21 2016-01-27 恩智浦有限公司 用于对数据进行加密和解密的方法和架构
CN107273152A (zh) * 2017-05-26 2017-10-20 安徽贵博新能科技有限公司 一种防止系统ecu软件被误升级的解决方法

Also Published As

Publication number Publication date
EP3570193B1 (en) 2021-03-03
US20190354297A1 (en) 2019-11-21
IT201800005466A1 (it) 2019-11-17
US20210200451A1 (en) 2021-07-01
ES2869240T3 (es) 2021-10-25
CN110501935A (zh) 2019-11-26
EP3570193A1 (en) 2019-11-20
US11068173B2 (en) 2021-07-20

Similar Documents

Publication Publication Date Title
Contag et al. How they did it: An analysis of emission defeat devices in modern automobiles
CN110541749B (zh) 用于电加热后处理系统的预测控制的方法和系统
US20170096927A1 (en) Method of testing a proper functioning of a selective catalytic reduction system
CN104343509B (zh) 柴油机排气流体注射器的控制设备
CN105298655B (zh) 具有增强冷启动能力的双燃料发动机
RU2622777C2 (ru) Способ обнаружения самовольного нарушения настройки
CN110501935B (zh) 用于将软件对象写入内燃机的电子控制单元的方法及设备
GB2519329A (en) Method of controlling an exhaust recirculation gas system
US9845746B2 (en) Internal combustion engine provided with a selective catalytic reduction system
US20110106505A1 (en) Method for estimating ambient air temperature prior to combustion in an internal combustion engine
EP1970552A2 (en) A change recognition and change protection devie and process for the control data of a controlled motor vehicle device
US10125713B2 (en) Method of detecting a clogging of a fuel injector in an internal combustion engine
US20190063353A1 (en) Systems and methods to control engine fuel delivery
CN111520242B (zh) 一种空燃比调整方法及装置
US20130073176A1 (en) Method to operate an electronically controlled internal combustion engine
US7739028B2 (en) Method of operation of internal combustion engine with permanent fault code implementation
CN106837574A (zh) 运行内燃发动机的燃料喷射器的方法
CN105626286A (zh) 排气系统部件输入压力估计系统和方法
US20080157920A1 (en) Calibratable uds security concept for heavy-duty diesel engine
US20240112200A1 (en) Systems and methods for controller updating and configuring emission certification level enforcement
CN110273774B (zh) 控制内燃机的喷射装置的方法
Prajwowski Possibilities of changes of parameters of the driver to engine Fiat 1.3 JTD performances
US9644565B2 (en) Method of controlling a fuel injection
Leelakumar Design of Electronic Control for Diesel Engines
US20130070804A1 (en) Method for estimating ambient air temperature prior to combustion in an internal combustion engine

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant