专利名称:照明工程总线用户的并行编程和更新的制作方法
技术领域:
本发明涉及用更新软件编程或者说更新照明工程总线用户的尤其是固件的软件状态的方法。
照明工程总线用户是指例如通过总线且尤其是通过双线总线连接的装置例如像传感器、执行机构如尤其是发光机构的驱动装置和用户接口。当然,也可以更新至少有时用软件来驱动和/或控制的其它的照明工程总线用户。
背景技术:
为了消除在照明工程总线用户的固件内的错误或者为了在照明工程总线用户上提供新的/其它的特征,可能期望该固件即用以驱动和/或控制照明工程总线用户的软件通过新的或其它的固件软件状态来替换(利用更新软件的软件更新)。但所述方法不局限于更新/修正固件,而是也可以被用于更新/修正照明工程总线用户的其它软件组成部分。
W02006/066884A1此时公开了一种用于发光机构的单独驱动装置的编程方法,其中通过接口来更新或者说改变发光机构的驱动装置的固件。
与之相比,本发明尤其涉及多个照明工程总线用户的并行更新。
为此确定在总线上可提供的照明工程总线用户,例如通过连上的中央单元,并且随后选择应被更新的照明工程总线用户。在此,可供使用的多个照明工程总线用户可根据不同的更新标准来汇总。例如同一类型的照明工程总线用户被分级。于是,本发明允许提供用于许多不同照明工程总线用户的软件更新,例如对于不同等级的所有照明工程总线用户有效传输软件更新并且在各自照明工程总线用户上运行。
这些照明工程总线用户此时与一个或多个中央单元相连,借此控制该更新过程。尤其是可以通过单个或多个照明工程总线用户的中央单元选择一个或多个照明工程总线用户级或所有连上的照明工程总线用户用于更新。该中央单元可以提供更新软件即能借以驱动照明技术设备照明工程总线用户的计算机程序产品并且将此软件更新传输给选中的照明工程总线用户。
如以下将详述的更新软件传输此时可由使用者来控制,以便例如确定一个更新软件何时被传播至一个选中的照明工程总线用户。因此例如可以确定在晚上或在特定时间段内给某些照明工程总线用户提供更新软件。中央单元此时也可以预报更新软件至选中的照明工程总线用户的传播需要多少时间。如果所求出的时间例如在一个可供使用的时间窗夕卜,则该中央单元可以将更新软件运行划分给多个时间窗或者给一个使用者提供这样的划分。
在第一步骤中,此时可通过该中央单元识别并列明照明工程总线用户。随后,该更新软件例如按照分块方式通过总线传播至事先结合通过该中央单元针对软件更新所规定的更新标识(更新ID)被选中的照明工程总线用户。
在分块式传输更新软件时,在传输了一个软件块后确定哪个总线用户已正确接收到该软件块。如果对于一个或多个照明工程总线用户出现更新软件传输故障,则在以下步骤中仅还是重新传输有缺陷的软件块或者未被接收的软件块。
在软件更新被传输至选中的照明工程总线用户时,未被更新的照明工程总线用户可以继续正常运行并通过经总线所传输的控制指令来控制。
每个选中的照明工程总线用户可以通过一个明确无疑的ID来识别。该明确无疑的ID可以由该照明工程总线用户读取。识别服务即在例如在中央单元上运行的所谓的问询管理器识别所有与该总线相连的装置,从而可以给使用者列出所有相连的装置的名单。随后,使用者确定所谓的任务,通过所述任务来确定给哪些照明工程总线用户提供软件更新。
此时,能够如上所述地选择照明工程总线用户。同类型的照明工程总线用户,即例如具有相似的硬件且因而可用相同的更新软件更新的照明工程总线用户,此时可以具有唯一的更新标识和/或按照照明工程总线用户等级归总。随后给一个等级的照明工程总线用户提供一个更新软件,而可以给另一个照明工程总线用户/照明工程总线用户等级提供其它的软件更新。
这些照明工程总线用户也可以根据在建筑物中的其地点/其楼层来选择。因此例如可行的是,在一个楼层上的所有照明执行机构(发光机构的驱动装置)具有更新软件,而在另一个位置上的照明执行机构未被更新。根据其它标准的选择也是可行的。因此,例如也可以选择在不同空间(例如旅馆的已出租房间)内的照明工程总线用户用于软件更新。
使用者可以根据任务提供用于该软件更新的配置。这样的配置可以存在于用于软件更新附加参数的说明中。另外,可以说明应该也取决于现存的软件状态,按照哪个软件版本更新选中的照明工程总线用户。
在任务完成后,例如在中央单元上运行的控制程序即更新工具给任何一个选中的照明工程总线用户发送包含明确无疑的更新标识的初始化指令。通过该更新标识,要用软件更新更新的照明工程总线用户可以被设置为所谓的引导程序模式。该更新标识此时可以根据任务的不同是不同的。
在发送初始化指令后,该中央单元开始传输一个软件更新,即例如按照分块方式传输更新软件至选中的照明工程总线用户。更新软件此时不必位于该中央单元上,而是也可存储在相连的存储介质或者也与总线相连的存储器上。
在分块式传输中,周期性传输包含软件更新数据和更新标识的数据。为此,在总线上的每个照明工程总线用户可以识别是否要分析或者拒绝所接收的数据。一直发送数据,直到所有的软件更新数据已被传输。在传输结束后,在每个照明工程总线用户中进行以发给中央单元的〃更新结束〃信息结束的检查。
此外,例如计算出在照明工程总线用户上的校验和并且传输给中央单元。依据校验和信息,该中央单元可以确定是否一个照明工程总线用户已正确接收到整个软件更新。该数据或数据块也可以具有校验和信息,因而在一个照明工程总线用户接收数据时可以确定是否该照明工程总线用户已接收到所发送的数据。于是,在接收到数据/数据块后可以将信息/应答发送给中央单元。在中央单元内可以确定传输是否成功。
通过照明工程总线用户的应答,该中央单元可以显示正确接收的软件块并且记录下未正确接收的软件块并向使用者显示相应信息。
利用所述方法,可以并行地给不同等级的照明工程总线用户提供软件更新。在软件更新的准备阶段内可以准备好随后要由该中央单元自动执行的任务。通过检查在分块传输中的若干数据块,可以确定正确的传输。另外,可以确定错误传输的数据块并且只重新将错误传输的数据块传输给该照明工程总线用户。
因而,本发明基于以下任务,提供一种用于更新照明工程总线用户的新可能性。发明内容
该任务将通过独立权利要求所要求保护的发明来完成。本发明的改进方案是从属权利要求的主题。
根据本发明的第一方面,提出一种用于照明工程总线用户的编程方法,包括以下步骤:通过利用总线与照明工程总线用户相连的中央单元确定可供使用的照明工程总线用户如传感器和/或执行机构,利用该中央单元从可供使用的照明工程总线用户中选择至少一个照明工程总线用户,将选中的照明工程总线用户设置为更新模式,将更新标识(更新ID)分派给该照明工程总线用户,将具有更新标识的更新软件尤其是固件传输给该选中的照明工程总线用户。
照明工程总线用户是指:
-用于发光机构例如像气体放电灯、LED、0LED、卤素灯等的驱动装置,
-传感器例如像运动传感器、烟传感器或光传感器,
-控制单元,或许呈用户接口形式(例如调光器、触屏等)
可以确定该更新软件是否总是被无误传输。
一旦该更新软件已无误传输且被完全写入,则一个照明工程总线用户可以被设置为驱动模式。
一个照明工程总线用户可以在更新模式中通过引导程序来驱动。
更新软件的传输能按照分块方式(blockweise)进行。
可以确定该更新软件/更新软件块是否已被无误传输并且确定结果可以针对每个选中的照明工程总线用户被记录下。
在整个更新软件的传输结束后,该更新软件或者该更新软件块可以重新被传输给对其记录下非无误传输/不成功传输的照明工程总线用户。
选中的照明工程总线用户的编程可以按照时控方式进行。
照明工程总线用户的选择可以根据类型、硬件版本和/或层级/安设地点来进行。
照明工程总线用户的选择可以包括不同类型的照明工程总线用户。
每个照明工程总线用户类型可以被分派一个更新标识。
对于每个照明工程总线用户类型,可以传输一个更新软件。
用于照明工程总线用户的所传输的更新软件/所传输的更新软件块可以被存在该照明工程总线用户的缓存器中,并且该缓存器可以至少记录下多于一个的软件块。
存在于一个照明工程总线用户的缓存器中的所有更新软件块可以总是被写在一个更新软件存储器中。
在接收新的更新软件块之前,存在于缓存其中的所有更新软件块可以被写在更新软件存储器中。
在写入更新软件/ 一个或多个更新软件块之后,可以将关于写入完成的应答传输给一个中央单元。
—个照明工程总线用户的引导程序可以在更新软件/所有更新软件块的成功写入后例如通过校验和的确定和/或比较来检查更新软件的无误性。
根据另一个方面,本发明提供一种照明工程总线用户,其具有:存储引导程序的第一存储器区,用于记载更新软件的第二存储器区,数据接收机构,数据发送机构。
照明工程总线用户可以具有用于记录一个更新软件或者更新软件块的缓存器。
该更新软件可以在接收到初始化指令时将该照明工程总线用户设置为更新模式。
该引导程序可以接收一个更新标识。
引导程序可以依据更新标识、硬件ID和/或依据其它参数来确定所接收的更新软件/所接收的更新软件块是否被指定用于该照明工程总线用户。
引导程序可以在更新模式中起效并且从中央单元接收一个更新软件/更新软件块并且将其写入第二存储器区中。
弓丨导程序可以检查是否已无误接收到该更新软件。
该引导程序可以将表示该更新软件/更新软件块的非无误传输的应答传输给中央单元。
在另一个方面,本发明提供一种基于计算机的中央单元,其设立用于运行控制器软件,确定可供使用的照明工程总线用户,针对所确定的照明工程总线用户确定合适的更新软件,提供用于照明工程总线用户选择的用户接口,通过初始化指令的传输将选中的照明工程总线用户设置为更新模式,并且将更新软件传输给选中的照明工程总线用户。
基于计算机的中央单元可以进一步设立用于接收关于更新软件传输的信息/应答。
基于计算机的中央单元可以进一步设立用于记录下关于更新软件传输的信息。
更新软件可以按照分为多个更新软件块的方式来传输。
基于计算机的中央单元可以进一步设立用于在该更新软件/更新软件块成功传输后将相应的照明工程总线用户设置为驱动模式。
基于计算机的中央单元可以进一步设立用于将传输不成功的更新软件/更新软件块重新传输给相应的照明工程总线用户。
该更新软件能以时控方式来传输。
基于计算机的中央单元可以给每个照明工程总线用户类型分派一个更新标识。
基于计算机的中央单元可以针对每个照明工程总线用户类型传输一个更新软件。
最后,本发明提出一种由至少一个如上所述的照明工程总线用户和如上所述的基于计算机的中央单元构成的系统,该系统设立用于运行如上所述的方法。
图1示出了照明工程总线用户的存储器被示例性划分为用于引导程序的存储器、固件(更新软件/应用)和RAM存储器;
图2示出了利用中央单元的记录过程的示例性视图3示出了本发明方法的大致流程图4a从中央单元的视角示出了本发明方法的具体流程图;和
图4b示出了流程图,示出了图4a的步骤“执行更新”。
具体实施方式
本发明允许使用这样的照明工程总线用户,其软件可以更新并且其无须因为纠错或为了提供功能扩展而被更换。
为此,照明工程总线用户必须配备允许固件软件更新的引导程序。只要以下提到用更新软件进行固件的软件更新,则这是指也可以相应进行其它软件尤其是应用的软件更新并且也可以更新其它软件组成部分。固件更新此时也称为“刷入(Flashen) ”,在这里尤其是指将更新软件写到针对更新软件设置的存储器中。
首先描述弓I导程序的近硬件方面。
该引导程序尽量一般化地实现,以便可容易适应于不同的硬件盘形。此时,针对每个照明工程总线用户可以执行引导程序的至少略微调整,因此产生装置特定的引导程序。
引导程序为了其所用的硬件的基础控制而采用了抽象层即固件/应用建立于其上的所谓硬件抽象层(HAL)。
也可设有相应驱动器用于不同的硬件版本(例如L3SXXX控制版本...)。另外,弓丨导程序可以包括用于不同辅助的接口(串行、以太网、USB...)的协议执行以及用于访问不同的硬件元件的底层路由。引导程序此时也可以动用现有的协议(例如用于Luxmate总线的协议组)。
引导程序也访问存储器(如闪存器)并且给固件提供访问该存储器的相应功能。对于一次软件更新,引导程序通过存储器控制器及其寄存器访问存储器。此时尤其是一个或多个以下的功能可供使用:
-选择更新时间,其适用于所用处理器的工作频率,
-抹除存储页(例如千字节大小的大型闪存页面),
-在存储器中写入一个软件块。
该软件块此时能例如始于可由4整分的地址,并且是4字节长的多倍。此时可以规定,一个存储器地址在用于存储器抵制的相应存储页被抹除之前最多写两次。
也规定了,用于固件的存储器按照分块方式被保护免于不小心覆盖。但此时要注意,在保护永久存储时有时可能无法再更新该引导程序,因为写保护是不可逆的。因此规定,在照明工程总线用户每次重置(RESET)时通过引导程序设立写保护并且抛开永久存储。保护启动可以通过在寄存器中设立一个值来完成。
为了发信表示当前引导程序驱动状态,最好在照明工程总线用户上设有发信机构例如LED。这样就能发信表示在照明工程总线用户上运行的软件的状态,例如该固件是否有误和/或该引导程序是否主动等待软件更新。这例如可以通过光学信号和/或声音可闻信号来实现。当引导程序已通过初始化指令被设置为初始化状态时,产生一个与之不同的信号。
在该照明工程总线用户中可以设置多个存储单元和/或存储器区。一般,引导程序和固件划分一个存储器(例如闪存器),在该存储器中存有这两个组成部分的程序码以及可能有的其它参数(例如配置)。在驱动中,另一个存储器(RAM存储器,SRAM)或者存储器区可供执行引导程序或者说固件所用,在这里,这些组成部分通常是排他设计的。图1示出了示例性的存储器分配。
要注意所涉及的保护预防措施,其阻止了这两个组成部分的相互覆盖。
为了单独提到一个照明工程总线用户的引导程序并可为软件更新提供相关信息,须与固件/应用功能无关地由其提供某些信息。
它们例如是:
-引导程序和引导程序协议的版本号,
-照明工程总线用户的序列号(基础P号),用于使引导程序能够接收通过序列号寻址的数据,
-硬件ID,用于能判断软件更新是否适用于当前的照明工程总线用户并且用于能抛弃不适用的软件更新,
-存储器参数,用于能拒绝对软件更新无效的存储器地址,
-固件区的起始地址,用于能计算出校验和,
-更新软件的参数,用于确定在其中写入更新软件的存储器区,
-固件的校验和,用于在控制器每次启动时通过例如在引导程序中存储和/或传输的校验和与固件校验和的比较检查是否存在一个有效的固件,
-固件输入点,用于允许固件的启动。
为了在装置中装载合适的更新软件,要注意所用的硬件、当前存在的软件及其当前配置。例如要避免用于一个照明工程总线用户的更新软件被装载到具有截然不同的IO布线的照明工程总线用户上。
但是,通过软件更新,也可以将具有同一硬件的照明工程总线用户转换为具有相同硬件的另一装置。当为此准备好所依据的硬件时,例如IR接收器可被转换为AWS传感器,就是说功能性可被相应改变。
除了引导程序和固件外,还必须存储照明工程总线用户上的基础配置并且保护免于被不小心覆盖。基础配置可以在一次软件更新后清空/不初始化。但该固件/更新软件可根据需要在一定前提下例如软件更新过程后的初次启动而确定基础配置的某些值。基础配置所包含的值例如是P号、模块ID、硬件状态和或许以太联网装置中的MAC地址。对于基础配置,例如可以设置千字节。固件/更新软件可以在一次重启后也覆盖基础配置。还规定将基础配置的备份副本存储在另一个存储器区中,以便能在故障情况下重建基础配置。
为了实现尽量有效地存储基础配置而可以规定,密钥值对依序存储在存储页中且分别附加改变,直到存储页已满或者执行重启。此时,可以将最后写的密钥值对定义为当前密钥对。校验数(魔数:“magic number”)此时可被改变,只要加挂了数据。错误的校验数也可以表示错误。
如果一个存储页被分段,则密钥值对可以被复制到另一存储页中。如果存储页有误,则可以从备份副本或另一存储页中将密钥值对拷贝到有误的页中(有误在此是指密钥值对的有误存储)。当找到特殊命名的密钥对时,可以结束对密钥对的搜寻。
为了实现有效访问无隙增大存储的密钥,密钥值对可以被暂存RAM存储器中。此做法的优点是,不必在每次改变时抹除一个存储页并重写。此外,如果多个密钥值对被改变,则得到速度优势。
在引导程序中实现尽量少的命令,以节约用于更新软件/应用的存储器位。但例如可在引导程序中实现用于测试各照明工程总线用户的指令。
如果一个照明工程总线用户具有多个引导程序和固件,则也可以规定,单独更新一个或多个照明工程总线用户的若干组成部分的固件。
也可以规定递增更新固件,从而不是所有的固件而是只是其一部分在软件更新时被更新。
也可以规定提供这样的机制,借此机制可以重新开始中断后的更新。但最好对于分块式传输记录下哪些软件块被成功写入以及哪些没有。随后,只须对未成功写入的软件块执行重新写入。也可以规定,照明工程总线用户同时记录下更新软件的哪些部分被成功写入。由此,可以自动询问照明工程总线用户是否以及到何种程度地进行了更新以及须重新传输哪些数据。
更新过程开始时,照明工程总线用户的引导程序或者固件/应用接收初始化指令,其启动该引导程序并且分派一个更新标识(更新ID)给照明工程总线用户。随后,照明工程总线用户切换至引导程序模式。引导程序存储该更新标识用于随后的命令。通过更新标识限定了哪个更新软件设置用于该照明工程总线用户。例如不同等级的照明工程总线用户可以具有不同的更新标识,以便它们与一次软件更新并行地但利用不同的更新软件来更新。但如上所述也可以选择所有、若干或者等级/分组的照明工程总线用户。
如果引导程序在初始化后过来一定时间没有接收到更新软件的一部分,则引导程序又启动上述的固件/应用。引导程序本身可以仅通过特殊方法来更新,因为例如断电在引导程序更新过程中使得相应的照明工程总线用户无法使用。
还提供了重置指令,它也可与该更新标识一起来传输,以便能中止更新过程。
另外,提供用于询问引导程序信息的指令。固件/应用版本此时已可以在将控制器设置为弓I导程序模式之前被询问。弓I导程序可以依据问询指令将相应信息例如传输给该中央单元。
引导程序进一步提供写指令,借此将更新软件/更新软件块写在为此设置的存储器(区)中。传输数据此时被压缩(例如用RLE)传输并且具有“前注(Vorspann) ”和“后注(Nachspann) ”。为此,例如可以将重复的字节串编码,不用明确发送。因此通过压缩,可以一次性传输许多数据。另外,在软件更新启动时,固件/应用可以被标记为无效,因而在出错更新情况下照明工程总线用户保持在引导程序模式中并且固件也在重置后不启动。在一次成功的更新过程后,也可以存储已经发生了一次更新过程。这样,例如可以在重启时执行特殊功能,例如基础配置的更新。
因为照明工程总线用户的更新通过总线来进行,所以,需要在多个装置的同时/并行的更新过程中执行有意义的传输速度调整。尤其是,在无通过相应装置的操作时的在照明工程总线用户处的更新速度的控制在此是成问题,因为不存在更新软件是否被太快地发送至各照明工程总线用户的依据。如果更新软件发送太快,则这些装置可能收不到新数据。
本发明如此解决该问题,S卩,软件更新的真正写入照明工程总线用户的相应存储器中与数据传输是彼此分开的。视存储器存储空间而定,可以批量传输多个数据块,没有因在照明工程总线用户上执行更新过程而暂停接收更新软件块。软件更新的写入此时可以至依据单独的要求来进行。已完成软件更新的装置以信息例如对中央单元应答。中央单元等候重新传输,直到存在所有的待更新装置的应答或者出现超时。待更新装置的应答此时可以是成功应答或错误应答。
中央单元记录下错误应答或者超时,但在这里,为了不延迟其余装置的更新,不进行直接重复尝试。当已更新成功的装置又离开引导程序模式时,随后处置出错的软件更新。
为了该总线不成为瓶颈,由该装置输入的报告数量相对待传输的更新软件占较小比例。因此,在照明工程总线用户中设置相对大的缓存器例如4-8千字节。为此,在照明工程总线用户上的更新过程数量被减少。可以在照明工程总线用户上启动软件更新写入之前传输多个更新软件块。在例如8千字节的缓存器大小的情况下,当更新软件为64千字节大小时,更新软件例如分8步传输并且被写在各自存储器里。
如果一个照明工程总线用户有中央单元可借此对其寻址的多个地址,则可以规定,照明工程总线用户总是只以一个预定地址应答更新询问,以防止软件更新被多次传输给照明工程总线用户。
在该中央单元上可运行一个控制器软件,其控制并操控软件更新。
控制器软件给使用者例如提供了图形使用者界面,使用者可借此挑选应更新哪些装置。在总线上可提供的装置及其类型以及例如硬件和/或软件版本通过控制器软件(问询)的总线问询来确定。此时也规定,对于其固件不再工作且还处于引导程序模式的照明工程总线用户,也能向控制器软件发挥通报。从所获得的应答中,控制器软件建立可在双线总线上供使用的照明工程总线用户的名单。对控制器软件的应答此时包含例如一个硬件ID,基于此硬件ID,控制器软件可以建立用于由硬件ID识别的硬件基础的相容的更新软件版本的名单。对于正确工作的照明工程总线用户,也可以由固件发回其它附加信息。
为了该控制器软件可确定哪个更新软件版本与照明工程总线用户相容,在更新软件中例如存储以下数据:
-可被用于该更新软件的硬件ID,
-准确的装置名称,
-准确的更新软件名称,
-更新软件的版本号,
-校验和,
-更新软件(更新软件的字节数)的大小说明,
-最大支持的数据块大小(它或者也可以通过被分为多个合适数据块的更新软件数据来规定),和/或
-真正的更新软件数据。
在控制器软件已经确定所有在总线上可供使用的照明工程总线用户后,所确定的数据可以被显示给使用者。使用者现在可以依据所显示的信息选择单独的照明工程总线用户或者等级/分组的照明工程总线用户用于通过合适的/选择的更新软件的软件更新。此时,利用控制器软件通过版本检查来确定一个软件更新究竟是否有意义,例如可以从哪个固件至哪个其它固件地更新。
软件更新为此可以包括一个或多个以下步骤:
-在软件控制中选择待更新的照明工程总线用户,
-选择更新功能,
-通过控制器软件询问在总线上可供使用的照明工程总线用户,
-由控制器软件接收在总线上的照明工程总线用户的应答,其中每个照明工程总线用户提供一个地址,
-形成由选中的照明工程总线用户和已应答了控制器软件的询问的照明工程总线用户构成的交叉集合,
-显示能被更新的照明工程总线用户,在此也能与之不同地显示不能被更新的照明工程总线用户,
-在使用者操作后,启动更新过程,其中,使用者也能确定软件更新应该在某个时刻进行,
-记录下更新过程/修正过程的进展,以确定哪些照明工程总线用户(部分)的哪些更新是成功的/出错的。
该更新进程的记录可以例如如图2所示地进行。在此图中能看到,已经传输了 12个完整的缓存器内容。照明工程总线用户2、6和7已经肯定确认了相应数据块的写入。在传输了用于装入第七缓存器的数据块之后,照明工程总线用户3未曾发回确认(这可能表示相应的照明工程总线用户脱离了总线)。在照明工程总线用户5处,从装入第五缓存器后只接收到否定的确认报告(这可能意味着通讯问题)。照明工程总线用户7在装入第六和第九缓存器时已经发出否定的确认(这可能或许指明校验和错误)。
带有错误传输的模块的照明工程总线用户在更新过程结束后可以被单独或分组在此设置为引导程序模式,以做另一次尝试,即,将对其不利的信息或甚至没有信息被传输给控制器软件的模块被再次传输。
可存储协议信息,从而在控制器软件异常结束时又能无附加总线通讯地建立更新进展。
如果一个照明工程总线用户应在更新过程中失效,则可以如下所述地重新开始更新:
尤其注意到该控制器软件能重建用于软件更新的更新标识。为做到这一点,当它因为出错的固件而以相应报告通知该控制器软件时,控制器软件将被选定用于更新的照明工程总线用户重新设置为引导程序模式。该控制器软件此时传输更新标识至相应的装置,随后它又参与更新过程。未被传输给照明工程总线用户的软件块(其例如通过重置于引导程序模式被“错过”)如上所述在初次更新过程结束后被重新发送。
在此当然是指,要被传输给一个照明工程总线用户的更新软件不必依序被写在规定的存储器中,而是根据所传输的软件块也能无关联地来写入。只有当所有软件块被成功传输且写入存储器时,才彻底且相关联地存在新的更新软件。图3示意示出了相应的更新过程。图4a从控制器软件/中央单元角度示意示出了更换过程。图4b准确示出了更新步骤如何进行。
为了能在任何事后通过相应的命令启动一个引导程序并且为了能确定关于引导程序的信息,必须通过固件提供不同的服务。它们例如是:
服务__m_问询引导程序版本号等可以应答对引导程序版本号的问询_启动引导程序__可切换至引导程序模式_无存储器保护地重启该装该服务尤其需耍用于引导程序更新软件实现引导程序置更新。在RAM内设立特殊标记(魔数)后,该引导程序 在重置后未启动临时存储器保护,因此可以实现引导程序更新。此时存在多个不同的存储器区,其能被彼此独_立地解锁。_
另外,须由该固件/更新软件可将参数转交给引导程序。此时的难点是,为了启动引导程序,须执行照明工程总线用户的重置。但是,例如在EEPROM中永久存储这样的参数是没有意义的,因为为此须将一个EEPROM驱动器整合到引导程序中,而这使引导程序增大。因此规定利用例如RAM存储器的转交。转交可以如下所述地进行:
-固件/更新软件在预先确定的存储器地址处写入某些参数,
-随后固件/更新软件引发重置(软件重置),
-引导程序启动并识别因明确引发的重置(软件重置)而进行重启(如果是其它重置起因,则忽略存储内容),
-引导程序读取来自RAM的相应参数并紧接着将其重置。
更新标识的永久存储也有以下缺点,需要存储器位,并且当存储在EEPROM中时,引导程序中需要附加的相应驱动器。另外,当装置被重启时,更新标识可能已过期。在最糟糕的情况下,利用重用的更新标识的另一软件更新可能正在进行,但该重用的更新标识不是针对该装置规定的。因而提前进行通过控制器软件的更新标识管理。
为了保证可靠的更新,规 定了多种不同的保障机理。首先,在照明工程总线用户每次启动时启动引导程序,在此在存储器中适当地设定相应矢量。通过启动引导程序,在固件/更新软件有误的情况下存在着该装置可以通过软件更新又处于运行的可能性。
为了保证一个照明工程总线用户无误工作,所采用固件/更新软件必须处于无误状态中。该引导程序因而在每次启动时检查固件/更新软件的一致性。为此,例如可以进行根据简单算数校验和的在存储器某个位置上的签名,或者比较或确定用于固件/更新软件(CRC)的完整校验和。如果当固件/更新软件的验证成功时即当固件/更新软件根据校验和是完美无缺时还是出错,则可以规定引导程序使用处理器的“监控程序”,以记录下固件/更新软件的出错装载过程。
也要检查一个软件更新究竟是否指定用于一个照明工程总线用户。因此,引导程序必须能评估一个软件更新是否是指定用于该引导程序的。为此,在更新软件中设有上述的头部,该头部包含包括或许有的硬件版本在内的照明工程总线用户的真实类型。该引导程序随后根据头部与装置特定信息的比较来评估它是否应该执行更新。
为了也从正常运行开始启动软件更新,固件/更新软件必须可以在接收到对其相应的请求后启动该引导程序。固件/更新软件例如在存储器中标出一个“旗标”并且通过重置监控程序来启动引导程序。该旗标随后在启动时被分析并阻止引导程序启动固件/更新软件,而是取而代之地等候其它引导程序指令。只要存在能发挥功能的固件/更新软件,则弓I导程序可通过预定命令又被放弃。
如果一个固件/更新软件不应该能启动引导程序,则引导程序还是在其例如因为校验和被显示为无误时装载固件/更新软件。
为了阻止确定无误但仍然出错的固件/更新软件的连续装载而规定,引导程序在启动过程中为初始化指令等候一段预定时间。如果引导程序在这段时间内接收到初始化指令,则它没有启动该固件/更新软件,而是着手于引导程序模式。如果没有收到初始化指令,则正常启动该固件/更新软件。为了没有让这段预定时间白白流走而还规定,在此时间内同时执行用于固件/更新软件的一致性检查的校验和形成。预定延迟例如可以是1-3秒。
如此获得传输时的附加安全性,所发送的数据具有序列号。由此,避免错误分派或错误互换。另外,这些数据和所传输的软件块用校验和(CRC)来保险。而且,该更新软件完整性通过校验和来保障和控制(CRC,CRC32)。
也可以规定,通过周期性形成校验和来保障固件/更新软件的永久检查。
也可以规定真正的引导程序更新。因为引导程序更新是很重要的且在错误进行引导程序更新时该照明工程总线用户是不可用的,所以规定以下更新机理:
首先将一个引导程序更新软件传输并写入照明工程总线用户的存储器,就像以上针对更新软件所述的那样。其中一个引导程序-更新软件在一次重启后检查其本身是否无误且处于完美状态。随后,引导程序更新软件设定启动地址、启动矢量,从而它在装置点一次重启后本身被启动。在引导程序-更新软件启动后,它重写该引导程序并检查是否写得无误完好。随后,引导程序更新软件又如此再设启动矢量,即在重新装置启动时启动该引导程序。如果确保(例如通过监控程序重置)该引导程序发挥作用,则可以使引导程序更新软件无用。
附件I
术语释意表
CRC
循环冗余校验,校验和方法。
Φ, R11 http: //de.wikipedia.0rg/wiki/Cyclic Redundancy Check。
更新ID
用于同时下载到多个同类装置的唯一数字代码。至不同装置的多达15个下载可利用不同的下载ID并行地进行(4字节;有效取值范围1...15)。
HAL
硬件抽象层。为了能尽量与照明工程总线用户的某控制器版本无关,所有的硬件访问被打包到唯一的软件层中。该应用随后通过规定的接口访问该底层功能性。在或许有的控制器等级切换时,在理想情况下只需调整HAL,而其余部分无其它改变地就能工作。
硬件ID
用于装置的基础硬件的单意名称(例如3字节)。基本上对于每个新的装置和或许还有对软件有影响的每个硬件版本给出。借此可以保证只有相容的软件被写到装置上。出于实用的原因,硬件ID由一个模块ID和硬件状态构成。在包括多个模块ID的照明工程总线用户中,从中挑选一个作为基础模块ID来形成硬件ID。
RLE
行程长度编码。它涉及一种简单的压缩技术,以便采用节约存储空间的方式来表示大量的重复字节。也参见http://de.1kipedia.0rg/wiki/RLE。
权利要求
1.一种照明工程总线用户的编程方法,其包括以下步骤: a.通过经由总线与照明工程总线用户相连的中央单元来确定可供使用的照明工程总线用户和/或执行机构,所述可供使用的照明工程总线用户例如是传感器,所述执行机构例如是发光机构的驱动装置; b.利用该中央单元从所述可供使用的照明工程总线用户中选择出至少一个照明工程总线用户; c.将所述选择出的照明工程总线用户设置为更新模式并且向该照明工程总线用户分派一个更新标识;和 d.向所选中的照明工程总线用户传输具有所述更新标识的更新软件,尤其是固件。
2.根据权利要求1所述的方法,其中,确定是否无误地接收到该更新软件。
3.根据权利要求1或2所述的方法,其中,一旦已无误地传输了且完整地写入了更新软件,则将该照明工程总线用户设置为驱动模式。
4.根据前述权利要求之一所述的方法,其中,在更新模式中是通过引导程序来驱动该照明工程总线用户的。
5.根据前述权利要求之一所述的方法,其中,所述更新软件的传输是按照分块方式进行的。
6.根据前述权利要求之一所述的方法,其中,确定更新软件/更新软件块是否已无误传输,并且针对每个所选的照明工程总线用户,记录下确定结果。
7.根据前述权利要求之一所述的方法,其中,在整个更新软件的传输结束后,向对其记录下非无误传输/传输不成功的照明工程总线用户重新传输该更新软件或者更新软件块。
8.根据前述权利要求之一所述的方法,其中,所选中的照明工程总线用户的编程是按照时控方式进行的。
9.根据前述权利要求之一所述的方法,其中,照明工程总线用户的选择是根据类型、硬件版本和/或位置/安设地点来进行的。
10.根据前述权利要求之一所述的方法,其中,给每个照明工程总线用户类型分别指定一个更新标识。
11.根据权利要求10所述 的方法,其中,给每个照明工程总线用户类型分别传输一个更新软件。
12.根据前述权利要求之一所述的方法,其中,用于照明工程总线用户的所传输的更新软件/所传输的更新软件块被写入该照明工程总线用户的缓存器,并且该缓存器至少容纳多于一个的更新软件块。
13.根据前述权利要求之一所述的方法,其中,存在于照明工程总线用户的缓存器内的所有更新软件块均被写入更新软件存储器。
14.根据权利要求13所述的方法,其中,在接收新的更新软件块之前,存在于该缓存器中的所有更新软件块被写入更新软件存储器。
15.根据前述权利要求之一所述的方法,其中,在写入更新软件或者一个或多个更新软件块后,将有关写入完成的信息传输给该中央单元。
16.根据前述权利要求之一所述的方法,其中,该照明工程总线用户的引导程序在成功写了所有更新软件块后例如通过确定和/或比较校验和来检查该更新软件的无误性。
17.一种照明工程总线用户,其具有: a.存有引导程序的第一存储器区, b.用于存纳更新软件的第二存储器区, c.数据接收机构,和 d.数据发送机构。
18.根据权利要求17所述的照明工程总线用户,其中,该照明工程总线用户在接收初始化指令时被设置为更新模式。
19.根据权利要求17或18所述的照明工程总线用户,其中,该引导程序接收更新标识。
20.根据权利要求17-19之一所述的照明工程总线用户,其中,该引导程序依据更新标识、硬件ID和/或依据其它参数来确定是否所接收的更新软件/所接收的更新软件块是被指定用于该照明工程总线用户的。
21.根据权利要求17-20之一所述的照明工程总线用户,其中,该引导程序在更新模式中起用,并且从中央单元接收更新软件/更新软件块并将其写入所述第二存储器区。
22.根据权利要求17-21之一所述的照明工程总线用户,其中,该引导程序检查是否无误地接收到该更新软件。
23.根据权利要求17-22之一所述的照明工程总线用户,其中,该引导程序向控制器软件发送表示更新软件/更新软件块的传输并非无误的消息。
24.一种基于计算机的中央单元,其被设立用于: a.运行控制器软件, b.确定可供使用的照明工程总线用户, c.确定适用于所确定的照明工程总线用户的更新软件, d.提供用于选择照明工程总线用户的用户接口, e.通过发送初始化指令将所选中的照明工程总线用户设置为更新模式,和 f.将更新软件传输给所选中的照明工程总线用户。
25.根据权利要求24所述的基于计算机的中央单元,其被进一步设立用于接收关于更新软件传输的信息。
26.根据权利要求24或25所述的基于计算机的中央单元,其被进一步设立用于记录下关于更新软件传输的信息。
27.根据权利要求24 -26之一所述的基于计算机的中央单元,其中,该更新软件是按照更新软件块的形式传输的。
28.根据权利要求24-27之一所述的基于计算机的中央单元,其被进一步设立用于在成功传输更新软件/更新软件块后,将相应的照明工程总线用户设置为驱动模式。
29.根据权利要求24-28之一所述的基于计算机的中央单元,其被进一步设立用于将传输不成功的更新软件/更新软件块重新传输给相应的照明工程总线用户。
30.根据权利要求24-29之一所述的基于计算机的中央单元,其中,该更新软件以时控方式传输。
31.根据权利要求24-30之一所述的基于计算机的中央单元,其中,该基于计算机的中央单元给每个照明工程总线用户类型分别分派一个更新标识。
32.根据权利要求31所述的基于计算机的中央单元,其中,该基于计算机的中央单元给每个照明工程总线用户类型分别传输一个更新软件。
33.一种由至少一个根据权利要求17-25之一所述的照明工程总线用户和至少一个根据权利要求24-32之一所述的基于计算机的中央单元构成的系统,该系统设立用于执行根据权利要求1- 16之一所述的方法。
全文摘要
一种照明工程总线用户的编程方法,包括以下步骤通过用总线与该照明工程总线用户相连的中央单元确定可供使用的照明工程总线用户如传感器和/或执行机构例如发光机构的驱动装置;利用该中央单元从可供使用的照明工程总线用户中选择至少一个照明工程总线用户;将选中的照明工程总线用户设置为更新模式并且分派一个更新标识给该照明工程总线用户;向选中的照明工程总线用户传输具有该更新标识的更新软件尤其是固件。
文档编号G06F9/445GK103154889SQ201180048268
公开日2013年6月12日 申请日期2011年8月26日 优先权日2010年8月30日
发明者S·佐姆 申请人:赤多尼科两合股份有限公司