一种采集车辆状态信号的方法

文档序号:6670686阅读:345来源:国知局
一种采集车辆状态信号的方法
【专利摘要】本发明一种采集车辆状态信号的方法,涉及一种采集车载控制器局域网上电子控制器网帧数据的方法。本发明中车载终端采集控制器局域网上网帧的处理包含以下的步骤:步骤1,帧计数器清零;执行步骤2;步骤2,接收和处理一个网帧,依据该网帧的帧识别码检查配置文件,若该网帧是记载在配置文件中的就把该网帧保存下来;否则丢弃该网帧;执行步骤3;步骤3,检查当前网帧是否为前述的基准网帧,是则把帧计数器的数值加一并执行步骤4,否则执行步骤2;步骤4,检查帧计数器的数值是否达到前述的额定数,是则执行步骤5,否则执行步骤2;步骤5,将所有经步骤2中保存的网帧打包、上传并将帧计数器清零,执行步骤2。它能保证采样周期的准确性。
【专利说明】一种采集车辆状态信号的方法
【技术领域】
[0001]本发明涉及一种采集车载控制器局域网上电子控制器信号的方法。
【背景技术】
[0002]随着智能控制技术的普及,新型的汽车上配置了多个电子控制单元(以下简称E⑶)分别对车上卫星定位(GPS)、发动机管理系统(EMS)、自动变速箱控制单元(T⑶)、安全气囊系统(SRS)、车身控制系统(BCM)、智能钥匙(PEPS)等不同的部分实施数据采集和实时控制;并设置车载的信号采集终端(以下简称车载终端)通过控制器局域网(以下简称CAN)收集这些E⑶发送的数据。每一个E⑶按照CAN的规定以指定格式的控制器局域网络数据帧(以下简称网帧)在CAN上传送数据;且每一 ECU在CAN上发送多种不同的网帧,以传递不同的状态数据组合。每一网帧的内容包含代表本ECU编号和网帧类型的网帧识别码(以下简称帧识别码)以及数据段。
[0003]例如,图1所示的车辆20中车载终端21和多个E⑶23连接到CAN22中。在车载终端21软件应用层上可以实时接收到各个E⑶23以不同发送周期发送过来的网帧。对于每一个具体的被中心关注并需要采集相应状态信息的ECU23的每种网帧而言,车载终端21通过配置文件记载该种网帧的帧识别码和发送周期(记为TF),以便在车载终端21每个采样周期内实时采集该种网帧的一个网帧。
[0004]一般车载终端21采集控制器局域网上网帧,需要设置一个专门的软件进程一定时进程(定时器),来按照采样周期定时发布“定时到”的信息,以便车载终端21将本采样周期内采集的每一种被中心关注并需要采集的网帧打包并上传给中心。车载终端21的处理流程如图2所示,它包含以下的步骤:
[0005]步骤SI I,启动定时进程;执行步骤S12 ;
[0006]步骤S12,接收和处理一个网帧,依据该网帧的帧识别码检查配置文件,若该网帧是记载在配置文件中的就把该网帧保存下来;否则丢弃该网帧;执行步骤S13 ;
[0007]步骤S13,检查是否有定时进程发出的“定时到”信息,是则执行步骤S14,否则执行步骤S12 ;
[0008]步骤S14,将所有经步骤S12中保存的网帧打包、上传中心,执行步骤S15 ;
[0009]步骤S15,重启定时进程,执行步骤S12。
[0010]每一车辆20上的车载终端21通过执行上述流程,将每一采样周期收集到的被中心关注并需要采集的网帧打包之后,再通过无线网络(例如GPRS网络)将这些网帧数据包发送给中心。以便中心及时了解各个车辆20的运行状态,对各个车辆20进行监控。
[0011]但是这种方法存在一个缺点:由于E⑶23的网帧发送周期都是毫秒级的,当车载终端21的采样周期设置到一个较小的数值时候,定时进程的定时精确性会对车载终端21采样的效率和实时性产生影响。主要体现在三个方面:第一、定时进程能过提供的最小定时周期与车载终端21使用的操作系统和CPU的频率相关。若CPU频率较低,定时进程可能实现不了规定的采样定时精度。第二、当CPU繁忙地处理其它任务时,会严重影响定时进程的定时精度,从而导致一个采样周期被缩短或延长,在此期间内各种ECU23的网帧独立地发送到CAN22上,车载终端21采集到的网帧数据量的不准确。第三、在高速的CAN22中,虽然ECU23的网帧发送周期能够到达精确的发送间隔,但是在实时性不高的操作系统中,到达应用层上时间点会有比较大的误差。因此要改善这些缺点的难题在于:高速的CAN22中,并且在网帧数量较为庞大的情况下,如何避免使用车载终端21的定时进程,又能保证采样周期的准确性,从而保证每个采样周期采集的网帧数量的精确性。

【发明内容】

[0012]本发明旨在提供一种采集车辆状态信号的方法,它不需要车载终端设置定时进程,却能保证采样周期的准确性,从而保证每个采样周期采集的网帧数量的精确性。
[0013]本发明的技术方案是:一种采集车辆状态信号的方法,车载终端通过控制器局域网实时接收多个电子控制单元分别发送的记载车辆状态信号的网帧,其中每一电子控制单元向控制器局域网发送多种不同类型的网帧,每一种网帧具有其独立的发送周期;车载终端保存有一个配置文件,该配置文件记载了每一种需要保存的网帧的帧识别码和发送周期;从所有网帧中选择一个发送周期的整倍数为车载终端采样周期的网帧作为基准网帧,将该整倍数的数值作为帧计数器的额定数;车载终端在一个采样周期内对每一种需要保存的网帧只保存一个网帧的数据而丢弃其它冗余网帧的数据,车载终端采集控制器局域网上网帧的处理包含以下的步骤:
[0014]步骤1,帧计数器清零;执行步骤2 ;
[0015]步骤2,接收和处理一个网帧,依据该网帧的帧识别码检查配置文件,若该网帧是记载在配置文件中的就把该网帧保存下来;否则丢弃该网帧;执行步骤3 ;
[0016]步骤3,检查当前网帧是否为前述的基准网帧,是则把帧计数器的数值加一并执行步骤4,否则执行步骤2;
[0017]步骤4,检查帧计数器的数值是否达到前述的额定数,是则执行步骤5,否则执行步骤2 ;
[0018]步骤5,将所有经步骤2中保存的网帧打包、上传并将帧计数器清零,执行步骤2。
[0019]当需要保存每一种网帧在一个采样周期中最后出现的网帧时:所述的步骤2中接收和处理一个网帧的过程中,执行的子步骤有:
[0020]子步骤1,剔除不需要保存的网帧;从接收的网帧提取其帧识别码,并查对该帧识别码是否记载在配置文件中,是则执行子步骤2 ;否则,转子步骤3 ;
[0021]子步骤2,按帧识别码保存该网帧;执行子步骤3 ;
[0022]子步骤3,退出。
[0023]每一种网帧在一个采样周期中在先出现的网帧会被最后出现的网帧覆盖掉,因而可以保存每一种网帧在一个采样周期中最后出现的网帧。
[0024]若对于每一种网帧在一个采样周期中出现的网帧次序不作限定时:所述的步骤2中接收和处理一个网帧的过程中,执行的子步骤有:
[0025]子步骤1’,剔除不需要保存的网帧;从接收的网帧提取其帧识别码,并查对该帧识别码是否记载在配置文件中,是则执行子步骤2’ ;否则,转子步骤5’ ;
[0026]子步骤2’,保存发送周期大于车载终端采样周期的网帧;按帧识别码从配置文件提取当前网帧的发送周期,若该发送周期大于车载终端的采样周期则按帧识别码保存当前网帧并转子步骤5’ ;否则,执行子步骤3’ ;
[0027]子步骤3’,对于发送周期不大于车载终端采样周期的当前网帧,若采样周期为发送周期的整倍数,且当前网帧是车载终端当前采样周期中最后一个网帧则按帧识别码保存当前网帧并转子步骤5’,当前网帧不是车载终端当前采样周期中最后一个网帧则丢弃当前网帧并转子步骤5’ ;若采样周期不是发送周期的整倍数,执行子步骤4’ ;
[0028]子步骤4’,计算(〔M〕*发送周期)与采样周期的模余值,其中〔M〕为从第一次处理与当前网帧相同帧识别码的网帧到当前网帧期间所有具有与当前网帧相同帧识别码的网帧数;计算该模余值是否小于当前网帧的发送周期,是则保存当前网帧并转子步骤5’,否则执行子步骤5’ ;
[0029]子步骤5’,退出。
[0030]本发明采集车辆状态信号的方法,利用ECU的网帧发送周期的偏差极小(最大偏差为0.1毫秒)的特点,从所在车辆上所有网帧中选择一个发送周期的整倍数为车载终端采样周期的网帧作为基准网帧,将该整倍数的数值作为帧计数器的额定数。在车载终端采集控制器局域网上网帧的处理流程中使用帧计数器统计基准网帧在CAN上出现的次数,从而提供了一个独立于车载终端且十分精确、稳定的采样周期参照体系。它保证了每个采样周期内采集车辆状态信号数据的网帧数量和分布均匀,并且同时最大程度上减小了 CPU频率和不同操作系统类型等因素带来的采样误差。通过本发明,用户可以针对CAN中不同采样分析的需求,对所关心的CAN网帧和采样点进行精确的控制,从而实现比较精确的流量控制的目的。并且在最大程度上保证网帧采集数量与ECU发送信号理论值的接近,使采集的成功率几乎达到100%。
【专利附图】

【附图说明】
[0031]图1为一个车载的车辆状态信号采集系统的结构示意图。
[0032]图2为图1车辆状态信号采集系统的车辆状态信号采集处理流程图。
[0033]图3为本发明采集车辆状态信号的方法一个实施例的处理流程图。
[0034]图4为图3处理流程图中步骤2展开的一种子流程图。
[0035]图5为图3处理流程图中步骤2展开的又一种子流程图。
【具体实施方式】
[0036]本发明采集车辆状态信号的方法,实施的硬件背景,请参看图1。车载终端21通过CAN22实时接收多个E⑶23分别发送的记载车辆20状态信号的网帧,其中每一 E⑶23向CAN22发送多种不同类型的网帧,每一种网帧具有其独立的发送周期。车载终端21保存有一个配置文件,该配置文件记载了每一种需要保存的网帧的帧识别码和发送周期。由于E⑶23的各个网帧发送周期是已知的,并且一个网帧的发送周期相对误差在0.1ms以下,应用层可以通过计算ECU23发出的对应网帧的个数,作为计算一段时间结束的依据,例如一个网帧的发送周期为10ms,当应用层收到10条对应的网帧时,默认认为这一段时间是准确的100ms。预先从所有网帧中选择一个发送周期TF的整倍数为车载终端21采样周期的网帧作为基准网帧,将该整倍数的数值作为帧计数器的额定数。车载终端21在一个采样周期内对每一种需要保存的网帧只保存一个网帧的数据而丢弃其它冗余网帧的数据。
[0037]车载终端21采集CAN22上网帧的处理步骤,请参看图3:
[0038]步骤S20,开始本流程;执行步骤S21。
[0039]步骤S21,帧计数器清零;执行步骤S22。
[0040]步骤S22,接收和处理一个网帧,依据该网帧的帧识别码检查配置文件,若该网帧是记载在配置文件中的就把该网帧保存下来;否则丢弃该网帧;执行步骤S23。
[0041]步骤S23,检查当前网帧是否为前述的基准网帧,是则执行步骤S24,否则执行步骤 S22。
[0042]步骤S24,把帧计数器的数值加一,执行步骤S25。
[0043]步骤S25,检查帧计数器的数值是否达到前述的额定数,是则执行步骤S26,否则执行步骤S22。
[0044]步骤S26,将所有经步骤2中保存的网帧打包、上传;执行步骤S27。
[0045]步骤S27,将帧计数器清零,执行步骤S22。
[0046]若对于每一种网帧在一个采样周期中出现的网帧次序不作限定时,图3中步骤S22中接收和处理一个网帧的过程如图4所示,本子流程中使用一个寄存器M和一个暂存单元L。寄存器M的数值最初为0,在每一次进入图4所示的子流程并发生增量后保持其数值,直到该寄存器M达到最大计数值并增量时自动变为O。暂存单元L的数值最初为0,在每一次进入图4所示的子流程并发生增量或清零后保持其数值。车载终端21每一次进入图4所示的子流程,执行的子步骤有:
[0047]子步骤S30,开始,进入本子流程,执行子步骤S31。
[0048]子步骤S31,接收一个网帧;执行子步骤S32。
[0049]子步骤S32,从接收的网帧提取其帧识别码,执行子步骤S33。
[0050]子步骤S33,查对该帧识别码是否记载在配置文件中,是则执行子步骤S34;否则,丢弃当前网帧,转子步骤S43。
[0051]子步骤S34,按照该帧识别码从配置文件中提取该网帧的发送周期(图4中简记为TF),并提取本车载终端21的采样周期(图4中简记为TC),执行子步骤S35。
[0052]子步骤S35,检查车载终端21的采样周期(图4中简记为TC)是否小于该网帧的发送周期(图4中简记为TF),是则执行子步骤S42,否则执行子步骤S36。
[0053]子步骤S36,计算车载终端采样周期与该网帧发送周期的模余数,以该模余数是否为O检查车载终端21的采样周期是否为发送周期的整倍数,是则执行子步骤S37,否则执行子步骤S40。
[0054]子步骤S37,将暂存单元L的数值加I,执行子步骤S38。
[0055]子步骤S38,检查暂存单元L的数值是否等于采样周期与发送周期之比,是则,当前网帧是车载终端21当前采样周期中最后一个网帧,执行子步骤S39 ;否则,当前网帧不是车载终端21当前采样周期中的最后一个网帧,丢弃当前网帧,执行子步骤S43。
[0056]子步骤S39,对暂存单元L清零,为下一个采样周期中该网帧的处理做好准备;执行子步骤S42。
[0057]子步骤S40,将寄存器M的数值加I,执行子步骤S41。
[0058]子步骤S41,计算(〔M〕*发送周期)与采样周期的模余值,其中〔M〕为寄存器M的数值,代表从第一次处理与当前网帧相同帧识别码的网帧到当前网帧期间所有具有与当前网帧相同帧识别码的网帧数;计算该模余值是否小于当前网帧的发送周期,是则转子步骤S42 ;否则丢弃当前网帧,执行子步骤S43。
[0059]子步骤S42,按帧识别码保存当前网帧并转子步骤S43。
[0060]子步骤S43,退出本子流程。
[0061]当需要保存每一种网帧在一个采样周期中最后出现的网帧时,图3中步骤S22中接收和处理一个网帧的过程如图5所示,该子流程中车载终端21执行的子步骤有:
[0062]子步骤S50,开始,进入本子流程,执行子步骤S51。
[0063]子步骤S51,接收一个网帧;执行子步骤S52。
[0064]子步骤S52,从接收的网帧提取其帧识别码,执行子步骤S53。
[0065]子步骤S53,查对该帧识别码是否记载在配置文件中,是则执行子步骤S54;否则,丢弃当前网帧,转子步骤S55。
[0066]子步骤S54,按巾贞识别码保存该网巾贞;执行子步骤S55。
[0067]子步骤S55,退出。
[0068]以上所述,仅为本发明较佳实施例,不以此限定本发明实施的范围,依本发明的技术方案及说明书内容所作的等效变化与修饰,皆应属于本发明涵盖的范围。
【权利要求】
1.一种采集车辆状态信号的方法,车载终端通过控制器局域网实时接收多个电子控制单元分别发送的记载车辆状态信号的网帧,其中每一电子控制单元向控制器局域网发送多种不同类型的网帧,每一种网帧具有其独立的发送周期;车载终端保存有一个配置文件,该配置文件记载了每一种需要保存的网帧的帧识别码和发送周期;从所有网帧中选择一个发送周期的整倍数为车载终端采样周期的网帧作为基准网帧,将该整倍数的数值作为帧计数器的额定数;车载终端在一个采样周期内对每一种需要保存的网帧只保存一个网帧的数据而丢弃其它冗余网帧的数据,车载终端采集控制器局域网上网帧的处理包含以下的步骤: 步骤1,帧计数器清零;执行步骤2 ; 步骤2,接收和处理一个网帧,依据该网帧的帧识别码检查配置文件,若该网帧是记载在配置文件中的就把该网帧保存下来;否则丢弃该网帧;执行步骤3 ; 步骤3,检查当前网帧是否为前述的基准网帧,是则把帧计数器的数值加一并执行步骤4,否则执行步骤2; 步骤4,检查帧计数器的数值是否达到前述的额定数,是则执行步骤5,否则执行步骤2 ; 步骤5,将所有经步骤2中保存的网帧打包、上传并将帧计数器清零,执行步骤2。
2.根据权利要求1所述的一种采集车辆状态信号的方法,其特征在于:所述的步骤2中接收和处理一个网帧的过程中,执行的子步骤有: 子步骤1,剔除不需要保存的网帧;从接收的网帧提取其帧识别码,并查对该帧识别码是否记载在配置文件中,是则执行子步骤2 ;否则,转子步骤3 ; 子步骤2,按帧识别码保存该网帧;执行子步骤3 ; 子步骤3,退出。
3.根据权利要求1所述的一种采集车辆状态信号的方法,其特征在于:所述的步骤2中接收和处理一个网帧的过程中,执行的子步骤有: 子步骤1’,剔除不需要保存的网帧;从接收的网帧提取其帧识别码,并查对该帧识别码是否记载在配置文件中,是则执行子步骤2’ ;否则,转子步骤5’ ; 子步骤2’,保存发送周期大于车载终端采样周期的网帧;按帧识别码从配置文件提取当前网帧的发送周期,若该发送周期大于车载终端的采样周期则按帧识别码保存当前网帧并转子步骤5’ ;否则,执行子步骤3’ ; 子步骤3’,对于发送周期不大于车载终端采样周期的当前网帧,若采样周期为发送周期的整倍数,且当前网帧是车载终端当前采样周期中最后一个网帧则按帧识别码保存当前网帧并转子步骤5’,当前网帧不是车载终端当前采样周期中最后一个网帧则丢弃当前网帧并转子步骤5’ ;若采样周期不是发送周期的整倍数,执行子步骤4’ ; 子步骤4’,计算(〔M〕*发送周期)与采样周期的模余值,其中〔M〕为从第一次处理与当前网帧相同帧识别码的网帧到当前网帧期间所有具有与当前网帧相同帧识别码的网帧数;计算该模余值是否小于当前网帧的发送周期,是则保存当前网帧并转子步骤5’,否则执行子步骤5’ ; 子步骤5’,退出。
【文档编号】G07C5/08GK103810768SQ201210444248
【公开日】2014年5月21日 申请日期:2012年11月8日 优先权日:2012年11月8日
【发明者】刘伟峰, 郑福弟, 许宁, 郑振贵 申请人:厦门雅迅网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1