一种控制机动车中的受控设备的方法和装置的制作方法

文档序号:7619925阅读:292来源:国知局
专利名称:一种控制机动车中的受控设备的方法和装置的制作方法
技术领域
本发明涉及一种机动车中的受控设备进行控制的方法和装置;更具体地说,涉及在机动车内对车门、车窗、天窗等受控设备进行控制的方法和装置。
背景技术
已有技术的机动车中,由总线来管理的受控设备主要有两类,一类是基于局域交互网(LocalInterconnect Network,LIN)总线的受控设备,另一类是基于控制器局域网络(controllerarea network,CAN)总线的受控设备。
基于LIN总线的受控设备采用LIN通讯协议。LIN总线是一种低成本的串行通讯网络,可用于实现汽车中的分布式电子系统控制。机动车中的一个LIN总线本身既是一个小的网络,又可与CAN总线相连,成为CAN总线上的一个设备,为CAN总线上的其它设备提供辅助功能。在不需要CAN总线大带宽和多功能性能的场合,使用LIN总线可大大节省成本。
现行的LIN通讯是基于通用串行接口(UART)数据格式,采用单主控制器/多受控设备(即从控制器)的模式,即可由一个LIN主控制器来控制多个受控设备。一个LIN总线系统使用一根12V信号总线,和一个无固定时间基准的节点同步时钟线。LIN主控制器发出同步的时钟信号,并采用该时钟信号控制各个受控设备。已有技术的一个完整的LIN数据帧包括一个2字节(byte)帧头区、一个数据区和一个1字节的冗余性校验区(CRC)。其中,每个数据区包括至多8个字节(第0字节至第7字节),每个字节有8个比特(bit)。当采用LIN总线来控制车内的设备时,按照目前的LIN总线协议,应当首先确定所述的数据区的长度。已有技术中,根据该LIN总线所需控制的设备数及每个设备所对应的控制命令的个数,将数据区的长度设定为2字节、4字节或8字节这三种长度中的一种。所述的数据区包括两个区,即公共信息区和受控设备指令区。
这种方法至少有两个问题。一个问题是在一个数据帧的数据区中,某些字节可能是多余的。例如,假设当采用目前的LIN协议来控制机动车的3个设备(2个车窗及一个天窗)时,将数据区设定为8个字节(第0字节至第7字节),其中第0字节至第2字节为公共信息区,第3至第5字节为受控设备指令区,其中第3和第4字节分别对应于左右两个前车窗的开关动作,第5字节对应于天窗的开关动作。在某一个时间里,操作者(司机或车内其它乘员)发出对所有三个车窗关闭的指令。此时按照LIN总线协议,LIN控制器对所对应的LIN数据区进行扫描,至第3和第4字节时,执行有关的关窗指令;扫描到第5字节时,操作天窗执行有关的的指令。而每个数据帧中的第6、7字节在此设备中都没有得到使用。因此,对此方法而言,每个数据帧中的第6、7字节由于被空扫,因而被浪费了。
另一个问题是,如果操作者在某一个时间只操纵一部分(而非全部的)有关受控设备时,他也要对有关数据帧中数据区的每一个字节进行扫描。例如,在本例中,如果司机或乘员某一时刻没有发出对天窗的开或关指令,此时LIN控制器对该数据帧中的第5字节的扫描就是不必要的。
因此,目前的这种方法和设备存在着系统资源浪费的问题。由于LIN协议功能并非十分强大,其数据帧的扫描周期也较长(一般在100毫秒的数量级),在本来就紧张的时间资源里还浪费一些字节,设备响应时间长就成为一个问题。
图1示出了已有技术中基于目前的LIN总线协议的一种主、从控制器结构。LIN总线协议要求有一个主控制器,所有的受控设备(即图1中的从控制器)都要服从该主控制器的命令。图1中示出了一个LIN总线主控制器,它包括一个中央处理器(CPU),该CPU上有一个通用串行接口(UART)。该接口的主要功能是收发串行通讯报文,其物理上的实现是借助通用的CPU的两个信号连接线,一个为发送线(TxD),一个为接收线(RxD)。LIN总线还连有多个受控设备,即为图1中所示的LIN从控制器1至LIN从控制器n,所有的从控制器都要执行所述的主控制器的命令。其中,所涉及的LIN主控制器和各个从控制器分别通过一个LIN驱动器与所述的LIN总线相连。即,每个控制器的通用串行接口与相应的LIN驱动器之间以两根信号线相连,所述的LIN驱动器的另一端接到一根LIN总线上,又通过该LIN总线与机动车有关的LIN结点设备相连。所述的LIN结点设备,可以为例如电动门窗控制器、雨刷电机控制器、倒车雷达、天窗控制器、化霜器中的至少一种。已有技术的一根LIN总线,通常只能管理几个或十几个受控的设备。当使用者启动一个开关(例如靠近自身一端的开关)时,就可以通过所述的LIN总线、LIN驱动器以及所述的串行接口,向有关的LIN主控制器发出一个有关的动作请求。该LIN主控制器接到该请求时,会向有关设备的控制器发出一个命令;该控制器收到该命令后,会驱动有关设备的电机做出相应的动作。
一般来说,可以将LIN主控制器放置在操作者(例如司机)的附近。当操作者按动一个控制键时,所对应的控制命令(例如车窗开启的命令)通过所述的控制键与LIN主控制器之间的连线传到LIN主控制器,LIN主控制器通过LIN总线将有关的命令发送到有关的车窗控制器,所述的车窗控制器执行所述命令,驱动车窗开启。这就是一个LIN命令从请求到执行的通常的过程。
由于基于LIN总线的通讯协议相对比较简单,因此所需采用的设备的体积也较小,例如只需使用一个通用的CPU的串行接口,以及一个造价不高的LIN驱动器,另外就是很便宜的通讯线,所以整个设备的造价较低。
但是另一方面,由于LIN总线的通讯协议相对较简单,目前所能实现的功能也较少。例如,目前能够实现的功能为单门窗的升降、智能集控提升(IGC,即发出一个命令使所有的车窗都开启或关闭)、儿童锁等。用LIN通讯协议作为控制信号载体时,信号传输时会发生较大延迟,这种情况造成了采用LIN总线协议实现更多功能控制的一个技术困难。
另外,在LIN总线协议中,帧的字节数是固定的。这种规定对控制受控设备方面的缺点是,由于传输报文的长度是固定的,所以信号传输周期长,系统响应慢。对车门窗控制器而言,有时这种控制信号的延迟可以达到0.2秒之长,如此长度的延迟会造成操作者的困惑,他们有时会搞不清楚这种情况究竟是出自正常的信号延迟,还是汽车的什么部分出了故障。
第二种已有技术的方案是采用CAN总线协议的多节点方案。图2示出了已有技术一种采用CAN总线协议的汽车门窗控制器。CAN总线协议与LIN总线协议不同,它可以设置多个控制器,而且从理论上讲每个连接在CAN总线上的设备(即图2中所示的节点)都可以控制其它设备,因此每个设备上都要设置一个较为复杂的软硬件结构,因此系统以及所涉及的设备的价格较为昂贵。图2中所示的每个CAN总线的连接设备(或称节点)都包括一个带有专门的CAN接口的专用中央处理器(CPU),从该CPU的接口上引出一对CAN信号传输线,连接一个CAN收发器。从所述的CAN收发器的另一端引出一对CAN信号传输线,与所述的CAN总线相连。一条CAN信号传输线上可以连接多达1024个受控设备。也就是说,其中每个受控设备都可以单独地通过所述的CAN传输线以及CAN收发器,向有关的CPU发出动作请求。CPU随之通过CAN驱动器相应地向有关设备的控制器出动作指令,驱动有关设备的动作。
机动车中的CAN总线整合了机动车的主要机电设备,例如发动机、自动变速器等。一个CAN总线具有大带宽和多功能的特点,可以带动多达数百个受控设备,各个受控设备之间可以进行快速的数据交换。目前较为先进的机动车都装备了CAN总线,作为车内设备通讯的骨干网,有些汽车还使用了多个CAN总线。
CAN总线的协议复杂,控制模块的体积较大,所以可实现的功能也相对较多。但是另一方面,该类设备的造价也较高。用于汽车的内部设备控制时,通常一套CAN控制器的造价高于相应的LIN总线控制器几倍。较高的造价直接限制了其在中低档汽车中的应用。而目前中低档汽车的发展趋势是越来越需要原来高档汽车才有的功能。而且,从技术的角度看,CAN总线控制器也存在对其数据区中的部分字节的空扫的问题,只是由于CAN总线设备的速度较快,这一缺点没有造成很大的影响。

发明内容
因此,本发明的一项任务是提供一种对机动车中的受控设备进行控制的方法,针对已有技术的LIN主控制器进行帧扫描时会出现有些字节空闲以及对有些字节空扫等不足,将帧中的数据区设置为动态的数据区,该数据区的长度直接与当时的对受控设备的控制指令有关。
本发明的另一项任务是提供一种造价相对于CAN总线设备较低、体积较小的设备,该设备能够有效地、动态地分配LIN总线的字节资源,使主控制器对数据区的扫描较已有技术更为合理。
根据本发明的一个方面,本发明提出了一种控制机动车中的受控设备的方法,基于LIN总线协议,所采用LIN总线上连接了至少一个受控设备,一个LIN总线的主控制器向LIN总线连续地发送数据帧,每个受控设备都接收所述的数据帧,每个数据帧包括一个固定长度的帧头区、一个长度可变的数据区,以及一个固定长度的冗余性校验区,并且包括以下步骤1)将所述的基于LIN总线协议的数据帧的数据区设置为动态区;
2)根据对所述受控设备的控制要求,将每个帧的数据区分为受控设备指令标注区、公共信息区和受控设备指令区;其中受控设备指令标注区和公共信息区的比特数在根据给定的受控设备做了设置以后即为固定数目,而受控设备指令区的比特数根据设备使用者所发出的对所述设备的控制指令而实时改变;受控设备指令标注区表示对受控设备指令的数据与受控设备指令区的数据的关系;3)所述的LIN总线主控制器对所述的一个数据帧中的数据区进行动态扫描,其中对受控设备指令标注区和公共信息区的扫描是对这些区中的每个比特进行的,对受控设备指令区的扫描是根据受控设备指令标注区的受控设备指令标注,只对存在着对受控设备控制指令的那些比特进行的;4)重复上述步骤3)的操作,对下一个数据帧进行扫描。
本发明中的“机动车”可以为广义的机动工具,包括汽车、拖拉机等等。
本发明中所述的受控设备为响应外部命令并进行动作的受控电气设备,包括车门、车窗、天窗、后视镜、雨刷、倒车雷达、化霜器、车门显示器的显示灯等安装在LIN总线上的设备中的至少一种。对这些受控设备的控制命令包括对它们进行“开”和“关”,此时命令用一个比特就可表示。或者,车门和车窗来说,除“开”和“关”外,还可设置了一个“智能集控提升”命令,这时就需要两个比特才能表示对该受控设备的控制命令。或者,控制车门显示器的显示灯使其在不同的场合下呈现不同级别的亮度,例如在白天使该显示灯处于低亮度,而在夜间使该显示灯处于高亮度,这种情况需要用一个比特来表示这种高亮度和低亮度的区别。
因此,通常对每个受控设备的控制指令的长度为一个比特,即“0”或“1”,可分别对应于有关设备的“关”或“开”);也可以占用多个比特,例如多达8个比特,例如“00000000”、“00000001”等。
例如,采用本发明上述方法,一条LIN总线上带有第一至第五受控设备,分别为左前车窗、右前车窗、左后车窗、右后车窗以及天窗的控制器。LIN主控制器所发送的每个数据帧的数据区都为8个字节,每个字节有8个比特。这8个字节分为三个区,即上述的受控设备指令标注区、公共信息区和受控设备指令区。受控设备指令标注区为该数据区的第0字节,其中的第1至第5位分别表示当前是否存在对第一受控设备至第五受控设备的控制指令,当某个比特为“0”时表示不存在对有关的受控设备的控制指令,为“1”时表示存在对有关受控设备的控制指令,第6至第8位没有定义,可空置为0。公共信息区为数据区的第1和第2字节。受控设备指令区为第3至第7字节,这五个字节中的每个字节从前至后分别用来代表对第一至第五受控设备的控制指令。
在本发明的方法和装置中,公共信息区被用来放置与受控设备有关的信息,例如外界温度、车型代码、信号指示灯亮度等级等信息。
通常,外界温度信息是车门、车窗及天窗等受控设备都需要的。该信息可用来补偿关门阻力,预测车门胶条硬度等;当将外界温度的范围设定为零下40至零上50摄氏度时,并且温度的间隔为1度时,该区间的温度范围为90度,需要用7个二进制比特(27=128)来表示。车门电机的温度也是一个重要的参数,可以实时地监测电机是否处于异常状态;该温度范围可设定为零下40至零上200摄氏度,当温度的显示间隔为1度时需要用8个二进制比特(28=256)来表示,温度的显示间隔为2度时需要用7个二进制比特来表示。
通常,可以将一种LIN控制设备设计用于几种不同的车型上,即在该LIN控制器上预先存储对应于几个不同车型的几套不同的控制参数。在这种情况下,可以用公共信息区内的1至3个比特作为车型的代码。
另外,车门指示灯的亮度也可以分为若干个等级,例如分为“暗”和“亮”两个等级,以适应白天和夜晚,或高光照和低光照两种情况。在这种情况下,可以可以用公共信息区内的1比特作为车门指示灯亮度等级的标注。
此外,公共信息区中还可以预留若干个比特,用来根据操作者的需要进行对其它有用信息进行灵活的定义。
因此,通常公共信息区需要2至3个字节来容纳有用的公共信息。
需要强调的是,数据帧的数据区中的受控设备指令标注区、公共信息区和受控设备指令区的长度并非是以一个完整的字节为单位的,它们可以是以比特为单位的。
在某一时刻,机动车的操作者(司机或乘员)通过按动身边的左前车窗的上升键,发出了一个使左前车窗上升的请求,所述的LIN主控制器此时发出一个数据帧,由于此时只有一个指令,其数据区中的受控设备指令标注区的8个比特为“10000000”,公共信息区的两个字节包含了此时的一些公共信息,受控设备指令区此时只有第3字节这一个字节,该字节中的数据代表了对左前车窗的上升指令。因此,此时所述的数据帧的数据区只有4个字节。作为该LIN总线的一个受控设备,左前车窗的控制器接收到该数据帧后,会发出相应的命令,启动该车窗的摇窗电机,使该车窗上升。
又例如,某一时刻,机动车的操作者(司机或乘员)按动身边的左前车窗(在此例中的第一受控设备)和左后车窗(在此例中的第三受控设备)的上升控制键,发出了一个请求,所述的LIN主控制器此时发出一个数据帧,由于此时有两个指令,其数据区中的受控设备指令标注区的8个比特为“10100000”。公共信息区的两个字节包含了此时的一些公共信息。受控设备指令区此时有两个字节(第3字节和第4字节),该两字节中的数据代表了对左前车窗和左后车窗的上升指令。因此,此时所述的数据帧的数据区共有5个字节。作为该LIN总线的受控设备,左前车窗的控制器和左后车窗的控制器接收到该数据帧后,会发出相应的命令,启动这两个车窗的摇窗电机,使车窗上升。
根据本发明上述方法的一个进一步的方面,所述的LIN主控制器根据操作者的命令对数据帧的扫描过程做出休眠或唤醒类型的中断操作。所述的休眠操作例如可以是当车内乘员离开机动车时,司机在车外按动遥控器,关闭车窗系统,其后使LIN总线主控制器暂时停止在LIN总线上发送信号。所述的唤醒操作例如可以是司机在车外按动遥控器,启动车窗系统,将LIN总线从休眠的状态激活,使LIN总线主控制器不断地通过所述的LIN总线向有关受控设备发出可能包含控制命令的数据帧。
如上所述,本发明中所述的操作者指控制指令的最初发出者,如司机和/或乘客。
根据本发明上述方法的一个进一步的方面,当设定了一个数据帧的数据区中的受控设备指令标注区和公共信息区后,如果在该数据区中的受控设备指令区中无法容纳对应于所有受控设备的所有控制指令时,将所述的受控设备指令区定义为对应于全体受控设备的全体受控设备指令区的一部分,所述的全体受控设备指令区的另外部分采用下一个或后面依次的数据帧中与上述受控设备指令区相对应的部分,用于容纳对应于所有受控设备的所有控制指令,并且还包括将所述的数据区的至少一个未被占用的比特设置为帧号指示位,用于指示当前数据帧的帧号;其中不同帧号的至少两个数据帧中的每个数据区中的受控设备指令区含有对至少一个受控设备的控制指令,相邻的至少两个数据帧的数据区中含有与该LIN对应的所有受控设备的控制指令。
例如,当某一条LIN总线带有8个受控设备时,可以设定两个数据帧的数据区。其中,将每个数据帧中的第0字节设定为受控设备指令标注区,第1和第2字节设定为公共信息区,并且将第一数据帧的数据区中的第3至第7字节分别设定为对应于本例中的第一受控设备至第五受控设备的受控设备指令区,将第二数据帧的数据区的第3至5字节分别设定为对应于第六受控设备至第八受控设备的受控设备指令区。
在此例中,第一数据帧的数据区中的受控设备指令标注区有8个比特,其中第1至第5比特分别代表是否存在对第一受控设备至第五受控设备的控制指令,例如可以用“0”来表示不存在该命令,用“1”来表示存在该命令;将受控设备指令标注区中的第6至第8比特设置为帧号位,例如该三个比特为“000”时表示所对应的数据帧为第一数据帧,相应地,该帧的数据区中受控设备指令区的至多五个动态字节分别对应于当时接到命令的五个受控设备的控制指令。例如,当受控设备指令标注区此时为“11111000”时,其所对应的受控设备指令区的五个字节(即数据区的第3至第7字节)分别对应于对第一受控设备至第五受控设备的指令。又例如,当受控设备指令标注区此时为“11001101”时,其所对应的受控设备指令区的五个字节(即数据区的第3至第7字节)分别对应于对第一、第二、第五、第六和第八受控设备的指令。又例如,当受控设备指令标注区此时为“11111111”时,表示此时存在对所有八个受控设备的指令,此时对第6至第8受控设备的指令应该在随后一个数据帧的数据区的第3至第5字节中读取。
当LIN总线及其有关设备处于工作状态时,所述的LIN总线主控制器不断地通过LIN总线向有关的设备发出一个接一个的数据帧,所有的受控设备都能接收到这些数据帧。在本例中,有关的受控设备可根据这些数据帧中帧头区了解帧数据的类型,根据该数据帧中数据区第0字节数据区号位的指示以及该字节前五个比特的数据,判断出该数据区相应的受控设备指令区代表着哪些针对哪个或哪些受控设备的控制指令,并且执行有关的指令。
本发明中上述各方法的一个要点是,可以根据有关受控设备的情况灵活地设置所述数据区中的三个区。
在本发明的上述方法中,每个数据帧带有一个帧头区、一个数据区和一个冗余性校验区。优选的方案是,帧头区的长度为2字节,冗余性校验区的长度为1字节。
根据本发明的另一个方面,本发明还公开了一种用于控制受控设备的控制装置;所述的控制装置包括一条LIN总线和一个LIN总线主控制器,所述的LIN总线分别与所述的LIN总线主控制器以及至少一个受控设备相连,用于在所述的LIN总线主控制器与受控设备之间传送控制命令;所述控制装置的特征在于1)所述的LIN总线主控制器被设置得可以通过所述的LIN总线,向有关的受控设备发出可以带有控制命令的数据帧;每个所述的数据帧包括一个帧头区、一个长度可变的数据区和一个冗余性检验区,将所述的基于LIN总线协议的数据帧的数据区设置为动态区;并且,根据对所述受控设备的控制要求,将每个帧的数据区分为受控设备指令标注区、公共信息区和受控设备指令区;其中受控设备指令标注区和公共信息区的比特数在根据给定的受控设备做了设置以后即为固定数目,而受控设备指令区的比特数根据设备使用者所发出的对所述设备的控制指令而实时改变;受控设备指令标注区表示对受控设备指令的数据与受控设备指令区的数据的关系;所述的LIN总线主控制器对所述的一个数据帧中的数据区进行动态扫描,其中对受控设备指令标注区和公共信息区的扫描是对这些区中的每个比特进行的,而对受控设备指令区的扫描是根据受控设备指令标注区的受控设备指令标注,只对存在着对受控设备控制指令的那些比特进行的;2)所述的受控设备被设置得可以接受所述的LIN总线主控制器的所发出的数据帧,并执行所述的数据帧的动态的数据区所带有的控制指令。
因此,本发明所提供的基于LIN总线的控制器及其控制方法,对目前的LIN总线控制信号的帧长度做出改变,将一些固定的2字节、4字节及8字节的信号长度调整为可变长度的帧信号。这种改变可以更有效、准确地传送控制信号,降低控制信号的差错率。


图1示出了已有技术中一种基于LIN总线的汽车门窗控制器的设备示意图;图2示出了已有技术中一种基于CAN总线的汽车门窗控制器的多节点设备的示意图;
图3示出了本发明方法的一个数据帧的数据区;图4表示在一个数据帧中只对第1个设备发出命令的数据帧的数据区;图5表示在一个数据帧中只对第3个设备发出命令的数据帧的数据区;图6表示在一个数据帧中对第2个和第4个设备发出命令的数据帧的数据区;图7表示当一条LIN总线上运行8个受控设备时,由两个数据帧组成的一个完整的数据单元。
具体实施例方式
本发明也可以采用与已有技术相似的LIN协议部件。实施本发明的方法时所采用的部件其区别主要体现在应用层面上数据格式的设定。也就是说,可以对如图1中所示的已有技术的设备进行适当的设置,来执行本发明的方法。下面着重介绍本发明在设备执行命令方面特有的内容。
在下面介绍本发明的方法和装置时,所有的例子都是基于冗余性校验区为1个字节,且每个字节为8个比特这种情况。需要强调的是,本发明的方法和装置一般地说并非基于这一具体的特例。
图3示出了本发明方法中基于LIN总线协议的一个数据帧的示意图。该例中,采用一个LIN总线控制机动车的5个车窗的开关,即4个侧车窗以及一个天窗的开关。一个LIN数据帧的数据区包括8个字节(从第0字节至第7字节),每个字节包括8个比特。将第0字节的头5个比特分别定义为对所述的5个受控设备的所发的控制指令的指示位。例如,可以将每个指示位的“1”状态时定义为“命令有效”,“0”状态定义为“命令无效”。
在该例中,按照本发明的控制机动车中的受控设备的方法,基于LIN总线协议,所采用LIN总线上连接了五个天窗,一个LIN总线的主控制器(图3中未示出)向LIN总线逐个地发送数据帧,每个受控设备都接收所述的数据帧,每个数据帧包括一个2字节的帧头区、一个长度可变的数据区,以及一个1字节的冗余性校验区。此处,控制车窗的方法还包括以下步骤1)将所述的基于LIN总线协议的数据帧的数据区设置为动态区;2)根据对所述受控设备的控制要求,将每个帧的数据区分为受控设备指令标注区、公共信息区和受控设备指令区;其中,受控设备指令标注区为第0字节的前五位,公共信息区为第0字节的后三位以及全部的第1和第2字节;受控设备指令区的比特的个数根据设备使用者所发出的对所述设备的控制指令而实时改变;受控设备指令标注区表示了对受控设备的指令数据与受控设备指令区的数据之间的关系;3)所述的LIN总线主控制器对所述的一个数据帧中的数据区进行动态扫描,其中对受控设备指令标注区和公共信息区的扫描是对这些区中的每个比特进行的,对受控设备指令区的扫描是根据受控设备指令标注区的受控设备指令标注,只对存在着对受控设备控制指令的那些比特进行的;4)重复上述步骤3)的操作,对下一个数据帧进行扫描。
具体地说,在本例中,当操作者同时对五个车窗发出开启指令时,LIN总线主控制器发出一个数据帧,该数据帧的数据区的受控设备指令标注区(第0字节的头5个比特)的程序语句例如可以为description of the framebit0=1,1st device information in framebit1=1,2nd device information in framebit2=1,3rd device information in framebit3=1,4th device information in framebit4=1,5th device information in frame当某一个比特为“1”,而前面的至少一个比特都为“0”时,表示该数据帧中紧接在公共信息区后面的那个区域所代表的数据为对应于那个比特为“1”的受控设备接到了操作者的命令。这里,5个车窗同时接到了车内乘员的命令。也就是说,随后在该数据帧第3至第7字节中的数据即为操作者对所述5个设备所发出的具体命令。
又例如,当存在4个受控设备时,可以将受控设备指令标注区设定为第0字节的前4位;当存在8个受设备时,可以将受控设备指令标注区设定为整个第0字节。
如上所述,在本发明方法的下述的一个实例中,对于4个受控设备的情况,将第一个数据帧的第0字节的前4个比特反映在该数据帧中受控设备的控制指令是否存在,如该位为0时表示此数据帧中没有对该设备发出指令,为1时表示对该设备发出了指令,具体的指令在该帧后面的字节中或随后的帧中给出。
例如,用本发明方法来控制一个双门跑车的2个车门和相应的2个车窗,共4个受控设备。此处所涉及的门窗控制器的控制协议为基于LIN总线上的运行的门窗控制器(DCU1)单元运行程序。这里所说的基于LIN通讯协议基础上的门窗控制协议的一个帧包括最多为8个字节的数据,在此将其定义为字节0至字节7,其中每个字节有8个比特。其中将第0字节的头4位规定为帧信息(frame information),即受控设备的状态位,表示所述的门窗控制器的控制对象。第0字节的后4位至第3字节(共对应4个受控设备的28种指令)表示公共信息信号,如外界温度、车型等。在该门窗控制器的一个数据帧中,用第4字节到第7字节来放置门窗控制器对所涉及的车门和车窗的控制指令,可用的位数共有32比特。例如,对应于每个控制对象的控制指令可以为3比特,表示车窗的“上升”、“下降”以及“允许自动上升”。也可以将其进行扩充以包括门锁的“打开”、“关闭”等,此时需要多于3位的位数以容纳这些指令。对一个控制对象来说,这里规定最长的控制指令为8位。对4个控制对象而言,保留了32位数来容纳所涉及的控制指令。一般来说,这些控制指令是足够多了。
当门窗控制器执行完全一个帧中的所有指令后,会等待下一个数据帧。也就是说,这时可以接受司机和车内乘员的新的车窗控制指令。
在本发明的采用的基于LIN总线控制受控设备的方法中,当所涉及的受控设备较多时,且在某一个时刻同时存在着对所有设备的控制指令时,可以采用一个数据帧的数据区中的前3个字节用于容纳前两个区的数据时,在用第3至第7字节来放置对前4个设备的控制指令的同时,可以用下一帧的公共信息以下的各字节来记载对第5个设备及以后设备的控制指令。当然,上述这种同时存在对所有设备发出控制指令的情形是较少见的。
例如,当对每个受控设备的控制命令都要占用一个字节时,当用一个数据帧的数据区中的前3个字节来表示本发明方法所述的前两个区的数据时,可以用该数据区的第3至第7个字节来表示对第一至第五受控设备的控制指令,用下一数据帧的第3至第7个字节来表示第6至第10个受控设备的控制指令,以此类推。当所述设备在10个以上时,可以用下面的第2帧及以后的各帧来记载对第9个设备及对再其后设备的控制指令。此时,需要在有关的数据区的受控设备指令标注区和公共信息区找寻一些空余位来对有关的帧号做出标识。当然,如上所述,上述这种同时存在对所有设备发出控制指令的情形是很少见的。
例如,当需控制8个受控设备时,可以将受控设备指令标注区设定为整个第0字节;将公共信息区设定为有关数据区的第1字节至第2字节,从中保留一至两个空余的比特,用于标注帧号。将数据区的第3至第7字节设定为分别对应于第1个至第5个受控设备控制指令的指令区。同时,将下一个数据帧中的第3至第5字节设定为分别对应于第6个至第8个受控设备控制指令的指令区。另一种情况是,也可以把帧号位设在受控设备指令标注区或受控设备指令区;也就是说,帧号位可以设置在所述数据区的任何空余的位置。
由于LIN协议并非一个功能强大的通讯协议,如果设备过多,则执行指令的周期也较长;同一个受控设备的指令类型过多,也会使执行指令的周期变长。当然,如果确实存在某个受控设备的控制指令较多的情况,例如第4个控制对象的控制指令多于8位,还可以定义用数据区的一个字节的全部8个比特以及另一个字节的至少部分比特来表示相应于该受控设备的控制指令。
以上的例子中着重介绍了如何设定数据帧中的比特,以便即使同时存在对所有受控设备的指令时,也可以控制受控设备执行这些指令。
下面用例子来进一步说明,如果在某一个时刻只有少数设备接到控制指令,那么可以在一个数据帧里容纳对有关受控设备的控制指令。从下面的例子中可以看出,本发明是如何实现对数据帧中的那些非固定的字节及比特资源实现动态分配的。
在图3的例子中,比上面的例子略为简单的一种情况是,当司机只开启左前窗(第一受控设备)和天窗(第五受控设备)时,该数据帧的数据区的受控设备指令标注区(第0字节的头5个比特)的程序语句例如可以为description of the framebit0=1,1st device information in framebit1=0,2nd device information in framebit2=0,3rd device information in framebit3=0,4th device information in framebit4=1,5th device information in frame此时,所述的LIN主控制器读取了上面的受控设备指令标注区的指令以及公共信息区的信息后,在随后的受控设备指令区中只扫描第3字节(代表对左前窗的指令)和第4字节(代表对天窗的指令)的数据。然后,进行冗余性校验,结束了对此数据帧的扫描。在此情形下,受控设备指令区在此时的动态长度为2个字节。因此,采用本发明的方法,可以有效地利用LIN总线数据帧中的数据区的空间,加快受控设备的反应时间。
从中可以看出,本发明方法的一个要点是,可以根据有关受控设备的情况灵活地设置LIN总线主控制器所发出的数据帧中数据区的三个组成部分。
图4表示在图3所示的例子中,在某一个时刻只有对第1个设备的控制指令。此时LIN总线主控制器扫描完第0至第3字节后,马上扫描第4个字节,并执行此时该第4字节所代表的对第1个设备的指令。随后进行冗余性校验,这样就结束了一个数据帧。
图5表示在图3所示的例子中,在某一个时刻只有都第3个设备的控制指令。此时控制器扫描完第0至第3字节后,马上扫描第4个字节,并执行此时该第4字节所代表的对第3个设备的指令。随后进行冗余性校验,这样就结束了一个数据帧。
图6表示在上例中,在某一个时刻只有对第2和第4个设备的控制指令。此时控制器扫描完第0至第3字节后,马上扫描第4个和第5个字节,并在第4个字节执行所代表的对第2个设备的指令,在第5个字节执行所代表的对第4个设备的指令。随后进行冗余性校验,这样就结束了一个数据帧。实际上,所述的控制器通过读取第0字节的前4个比特,就知道此时存在两个控制指令;然后它依次在有关的字节里读取有关的控制指令,并执行之。
又一个例子为,当有关汽车的车门窗控制对象超过4个时,例如带有一个天窗的5门掀背式轿车,其控制对象可以有6个,即五个车门加上一个天窗。根据本发明的方法,可以在数据帧的第0字节的头6位定义这些控制对象,将第0字节的后两位加上第1、第2字节设置为公共信息位,而将前4个常用设备(例如四个侧门窗)的控制指令放在该数据帧的第3至第6字节,而将另两个不常用的控制设备(例如背门及天窗)的控制指令放在随后的那个数据帧的第7字节中的两个不同区域。例如,用第7字节的前4位来容纳对背门的控制指令,后4位来容纳对天窗的控制指令。这样可以在一个数据帧的数据区中容纳7个受控设备的控制指令。
图7表示当在一个LIN总线上运行8个受控设备时,采用两个顺序相连的数据帧来容纳对这8个受控设备的控制指令。其中,在这两个数据帧中进行一个特别的设置,即在第一数据帧的数据区中的受控设备指令标注区8个比特中的前5位分别作为对第一个至第五个受控设备的控制指令标注位,用第二数据帧的数据区中的受控设备指令标注区8个比特中的前3位分别作为对第六个至第八个受控设备的控制指令标注位,而用这两个数据帧的数据区中受控设备指令标注区的8个比特中的后3位来表示有关数据帧的帧号。例如,第一帧的帧号为“000”,第二帧的帧号为“001”。采用这种帧号体系,可以用连续的多个数据帧来表示对较多个受控设备的控制指令。
在上例中,帧号位被设备在所述数据区的受控设备指令标注区的后三位上。当然,也可以把它们设置在公共信息的某些空余比特上。还可以将帧号位设置在数据区中公共信息区中第1字节的第7和第8位上。又例如,当对每个受控设备的控制指令都可以用一个五位的二进制数来表示时,还可以把帧号位设置在受控设备指令区中某些比特上,比如当一个数据区的前两个区占据了数据区的前4个字节(第0字节至第3字节)时,可以将帧号位设置在第4字节的最后一位、两位或三位上。事实上,帧号位可以设置在所述数据区的任何一处空余的位置上。
本发明的控制受控设备的控制装置包括一个LIN总线主控制器和一根LIN总线。从硬件的构成上,本发明的控制装置与已有技术的LIN总线主控制器相似,有关的控制信号也是通过其上的一个通用串行接口以及一个LIN驱动器发送到LIN总线上。有关的LIN总线从控制器(即受控设备)接收并执行有关的控制命令。与已有技术的LIN总线主控制器不同的是,在本发明的LIN总线主控制器经过设置,其数据帧的结构与已有技术的数据帧结构相比明显不同,其数据区包含了受控设备指令标注区、公共信息区和受控设备指令区(还可以在这三个区中的某处空余区设置帧号区),数据区的长度依当时对受控设备的指令情况而动态改变。所述的LIN总线主控制器对数据帧的扫描也变为动态的扫描,数据区的利用率显著提高,有效地避免了无用的扫描时间,提高了受控设备的响应速度。同样,有关的受控设备也需要与所述的LIN总线主控制器进行有关的匹配。
本发明的方法和装置可以使基于LIN总线的设备工作得更快,甚至在LIN总线的设备中实现某些需要在CAN总线下才能实现的功能。
权利要求
1,一种控制机动车中的受控设备的方法,基于LIN总线协议,所采用的LIN总线上连接了全少一个受控设备,一个LIN总线的主控制器向LIN总线连续地发送数据帧,每个受控设备都接收所述的数据帧,每个数据帧包括一个固定长度的帧头区、一个长度可变的数据区,以及一个固定长度的冗余性校验区,所述的方法还包括以下步骤1)将所述的基于LIN总线协议的数据帧的数据区设置为动态区;2)根据对所述受控设备的控制要求,将每个帧的数据区分为受控设备指令标注区、公共信息区和受控设备指令区;其中受控设备指令标注区和公共信息区的比特数在根据给定的受控设备做了设置以后即为固定数目,而受控设备指令区的比特数根据设备使用者所发出的对所述设备的控制指令而实时改变;受控设备指令标注区表示对受控设备指令的数据与受控设备指令区的数据的关系3)所述的LIN总线主控制器对所述的一个数据帧中的数据区进行动态扫描,其中对受控设备指令标注区和公共信息区的扫描是对这些区中的每个比特进行的,对受控设备指令区的扫描是根据受控设备指令标注区的受控设备指令标注,只对存在着对受控设备控制指令的那些比特进行的;4)重复上述步骤3)的操作,对下一个数据帧进行扫描。
2,如权利要求1所述的方法,其特征在于当设定了一个数据帧的数据区中的受控设备指令标注区和公共信息区后,如果在该数据区中的受控设备指令区中无法容纳对应于所有受控设备的所有控制指令时,将所述的受控设备指令区定义为对应于全体受控设备的全体受控设备指令区的一部分,所述的全体受控设备指令区的另外部分采用下一个或后面依次的数据帧中与上述受控设备指令区相对应的部分,用于容纳对应于所有受控设备的所有控制指令;并且,将所述的数据区的至少一个未被占用的比特设置为帧号指示位,用于指示当前数据帧的帧号;其中不同帧号数据帧中的每个数据区中的受控设备指令区含有对至少一个受控设备的控制指令,相邻的至少两个数据帧的数据区中含有与该LIN对应的所有受控设备的控制指令。
3,如权利要求1或2中任一权利要求所述的方法,其中所述的受控设备包括车门、车窗、天窗、后视镜、雨刷、倒车雷达、化霜器、车门显示器的显示灯中的至少一种。
4,如权利要求1或2中所述的方法,其中所述的LIN主控制器根据操作者的命令对数据帧的扫描过程做出休眠或唤醒类型的中断操作。
5,如权利要求3中所述的方法,其中所述的LIN主控制器根据操作者的命令对数据帧的扫描过程做出休眠或唤醒类型的中断操作。
6,如权利要求1、2或5所述的方法,其特征在于,在所述的每个数据帧中,所述的帧头区的长度为2字节,冗余性检验区的长度为1字节,并且每个字节包含8比特。
7,如权利要求3所述的方法,其特征在于,在所述的每个数据帧中,所述的帧头区的长度为2字节,冗余性检验区的长度为1字节,并且每个字节包含8比特。
8,如权利要求4所述的方法,其特征在于,在所述的每个数据帧中,所述的帧头区的长度为2字节,冗余性检验区的长度为1字节,并且每个字节包含8比特。
9,一种控制机动车中的受控设备的装置,包括一条LIN总线和一个LIN总线主控制器,所述的LIN总线分别与所述的LIN总线主控制器以及至少一个受控设备相连,用于在所述的LIN总线主控制器与受控设备之间传送控制命令;所述装置的特征在于1)所述的LIN总线主控制器被设置得可以通过所述的LIN总线,向有关的受控设备发出可以带有控制命令的数据帧;每个所述的数据帧包括一个帧头区、一个长度可变的数据区和一个冗余性检验区,将所述的基于LIN总线协议的数据帧的数据区设置为动态区;并且,根据对所述受控设备的控制要求,将每个帧的数据区分为受控设备指令标注区、公共信息区利受控设备指令区;其中受控设备指令标注区和公共信息区的比特数在根据给定的受控设备做了设置以后即为固定数目,而受控设备指令区的比特数根据设备使用者所发出的对所述设备的控制指令而实时改变;受控设备指令标注区表示对受控设备指令的数据与受控设备指令区的数据的关系;所述的LIN总线主控制器对所述的一个数据帧中的数据区进行动态扫描,其中对受控设备指令标注区和公共信息区的扫描是对这些区中的每个比特进行的,而对受控设备指令区的扫描是根据受控设备指令标注区的受控设备指令标注,只对存在着对受控设备控制指令的那些比特进行的;2)所述的受控设备被设置得可以接受所述的LIN总线主控制器的所发出的数据帧,并执行所述的数据帧的动态的数据区所带有的控制指令。
全文摘要
一种控制机动车中的受控设备的方法和装置,基于LIN总线协议,将数据帧的数据区分为受控设备指令标注区、公共信息区和受控设备指令区等三个区,其中受控设备指令标注区、公共信息区的比特数对给定的受控设备来说是固定的,而受控设备指令区的比特数根据操作者所发出的控制指令而实时改变;对受控设备指令区的扫描是根据受控设备指令标注区的标注,只对存在着对受控设备控制指令的那个或那些比特进行。
文档编号H04L12/403GK1889495SQ20051008021
公开日2007年1月3日 申请日期2005年6月30日 优先权日2005年6月30日
发明者冉平 申请人:西门子(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1