本发明主要涉及汽车数据流技术领域,具体地说,涉及一种汽车数据流获取方法、系统及计算机可读存储介质。
背景技术:
汽车数据流是指电子控制单元(ecu)与传感器和执行器交流的数据参数,ecu中所记忆的数据流真实的反映了各传感器和执行器的工作电压和状态,为汽车故障诊断提供了依据,数据流只能通过专用诊断仪器读取。读取汽车数据流可以检测汽车各传感器的工作状态,并检测汽车的工作状态,通过数据流还可以设定汽车的运行数据。汽车数据流可作为汽车ecu的输入输出数据,使维修人员随时可以了解汽车的工作状况,及时诊断汽车的故障。
目前汽车的传感器越来越多,从而使汽车的数据流也越来越多,在对汽车进行诊断的时候,有时候需要同时监控查看多条数据流的值,但当同时选取多条数据流,逐一循环发送显示,数据流刷新时间会明显变慢,数据流的变化不够及时。
技术实现要素:
本发明的主要目的是提供一种汽车数据流获取方法、系统及计算机可读存储介质,旨在解决现有技术多条数据流逐一循环发送,数据流变化不及时,刷新时间慢的问题。
为实现上述目的,本发明提供一种汽车数据流获取方法,所述汽车数据流获取方法包括以下步骤:
接收数据流选择指令,并将所述数据流选择指令对应的数据流作为待查看数据流;
当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据;
在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示。
优选地,所述当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据的步骤包括:
当接收到待查看数据流的查看指令时,获取与待查看数据流对应的通信参数,并将所述通信参数发送到下位机,以供下位机进行通信通道的参数设置;
将所述查看指令发送到下位机,以供下位机通过通信通道将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据。
优选地,所述通信参数包括发送id、接收id以及obd接口引脚号,所述在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示的步骤包括:
根据接收id以及obd接口引脚号,接收下位机反馈的回复数据;
根据与接收id对应的发送id,将回复数据与待查看数据流一一对应,并按照预设规则将回复数据转换成数值和待查看数据流对应显示。
此外,为实现上述目的,本发明还提出一种汽车数据流获取方法,所述汽车数据流获取方法包括以下步骤:
当接收到上位机发送的通信参数时,根据所述通信参数进行通信通道的参数设置;
接收与通信参数对应的待查看数据流的查看指令,并将所述查看指令通过通信通道发送到汽车obd接口;
获取汽车obd接口基于查看指令输出的回复数据,并将所述回复数据反馈到上位机。
优选地,所述通信参数包括发送id和接收id,所述通信通道包括通信发送器和通信接收器,所述当接收到上位机发送的通信参数时,根据所述通信参数进行通信通道的参数设置的步骤包括:
当接收到上位机发送的通信参数时,启动通信发送器和通信接收器;
将通信发送器的id配置为发送id,通信接收器的id配置为与发送id对应的接收id,以在通信发送器根据发送id执行发送指令的同时,通信接收器根据接收id执行接收指令。
此外,为实现上述目的,本发明还提出一种汽车数据流获取系统,所述汽车数据流获取系统包括:存储器、处理器、通信总线以及存储在所述存储器上的汽车数据流获取程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述汽车数据流获取程序,以实现以下步骤:
接收数据流选择指令,并将所述数据流选择指令对应的数据流作为待查看数据流;
当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据;
在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示。
优选地,所述当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据的步骤包括:
当接收到待查看数据流的查看指令时,获取与待查看数据流对应的通信参数,并将所述通信参数发送到下位机,以供下位机进行通信通道的参数设置;
将所述查看指令发送到下位机,以供下位机通过通信通道将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据。
优选地,所述通信参数包括发送id、接收id以及obd接口引脚号,所述在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示的步骤包括:
根据接收id以及obd接口引脚号,接收下位机反馈的回复数据;
根据与接收id对应的发送id,将回复数据与待查看数据流一一对应,并按照预设规则将回复数据转换成数值和待查看数据流对应显示。
优选地,所述所述处理器用于执行所述汽车数据流获取程序,以实现以下步骤:
当接收到上位机发送的通信参数时,根据所述通信参数进行通信通道的参数设置;
接收与通信参数对应的待查看数据流的查看指令,并将所述查看指令通过通信通道发送到汽车obd接口;
获取汽车obd接口基于查看指令输出的回复数据,并将所述回复数据反馈到上位机。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行以用于:
接收数据流选择指令,并将所述数据流选择指令对应的数据流作为待查看数据流;
当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据;
在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示。
本发明提出的汽车数据流获取方法,将与数据流选择指令对应的数据流作为待查看数据流,当接收到待查看数据流的查看指令时,将此查看指令发送到下位机,以通过下位机将此查看指令发送到汽车obd接口,并通过下位机获取汽车obd接口基于此查看指令输出的回复数据;在下位机获取回复数据后,将此回复数据反馈;在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并进行显示。本方案通过将多条待查看数据流的查看指令同时发送到下位机,以供下位机和汽车obd接口交互,获取与查看指令对应的回复数据,从而避免需要查看多条数据流时,逐一循环发送显示,使数据流变化更及时,加快了数据流刷新速度。
附图说明
图1是本发明的汽车数据流获取方法第一实施例的流程示意图;
图2是本发明的汽车数据流获取方法第二实施例的流程示意图;
图3是本发明实施例方法涉及的硬件运行环境的设备结构示意图;
图4是本发明的汽车数据流获取方法及系统数据传输场景示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种汽车数据流获取方法,请参照图1,在第一实施例中,该汽车数据流获取方法包括:
步骤s10,接收数据流选择指令,并将所述数据流选择指令对应的数据流作为待查看数据流;
汽车数据流是指电子控制单元(ecu)与传感器和执行器交流的数据参数,包括冷却液温度、发动机转速、发动机负荷、发动机每循环喷油持续时间等信息,可使用诊断仪读取,为汽车故障诊断提供依据。当汽车出现故障时,可通过读取汽车数据流来检测汽车的故障点;未出现故障时,可通过读取汽车数据流检测汽车的工作状态来防止出现故障。汽车车身上设置有obd接口,当需要读取汽车数据流时,通过诊断接头将此obd接口和诊断仪连接,诊断仪上有显示装置,用于显示汽车数据流;此外,也可以使用诸如电脑、平板等移动终端读取,诊断接头将obd接口和移动终端连接,在移动终端的显示界面显示汽车数据流。还可以使用无线诊断接头读取,无线诊断接头和obd接口连接,且通过无线的方式和移动终端通信,在移动终端上显示无线诊断接头读取的汽车数据流。当需要读取数据流时,在显示装置上选择需要查看的数据流,此选择操作即为数据流选择指令。接收此数据流选择指令,并将与此数据流选择指令对应的数据流作为待查看数据流。在一实施例中,汽车数据流以列表的形式显示在显示装置上,当需要查看冷却液温度、发动机转速和发动机负荷三项时,在列表对应的位置上点击将此三项作为需要查看的数据流,当接收到此数据流选择指令时,将与此数据流选择指令对应的数据流作为待查看数据流,即将冷却液温度、发动机转速和发动机负荷作为待查看数据流。
步骤s20,当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据;
本方案将移动终端或者诊断仪等用于发送指令或者显示的装置作为上位机,将诊断接头或无线诊断接头等直接和汽车车身上的obd接口连接,可直接读取obd接口数据的装置作为下位机。在根据数据流选择指令确定待查看数据流后,发送待查看数据流的查看指令,当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,下位机直接与汽车obd接口连接,将查看指令通过汽车obd接口发送到汽车总线。汽车根据其遵循的总线协议在接收查看指令的同时查找与查看指令相关的回复数据,并将回复数据返回到汽车obd接口,再经过汽车obd接口将回复数据返回到与其连接的下位机。具体地,当待查看数据流的查看指令为查看冷却液温度、发动机转速和发动机负荷的数据流时,下位机将冷却液温度、发动机转速和发动机负荷的查看指令通过汽车obd接口发送到汽车总线。因发送的时序性,汽车总线可能并没有在同一时间接收到其需要查看三个数据流,可能第一时间接收到查看冷却液温度,第二时间接收到查看发动机转速。此时汽车总线对第一时间接收的冷却液温度做出响应、进行查找并发送,而不影响第二时间接收发动机转数查看指令;此外,可能当第二时间接收到查看发动机转速指令时,冷却液温度尚未找到,从而对冷却液温度和发动机转速并行查询,当查找到发动机转速相关响应时,将此响应返回到汽车obd接口,或者先查找到冷却液温度相关响应,将此响应返回到汽车obd接口,返回数据并不受接收数据的先后顺序影响,发送和接收各自运行,无需相互交互等待。
步骤s30,在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示。
进一步地,当汽车obd接口将回复数据返回到下位机时,下位机向上位机进行反馈,因汽车总线对待查看数据流的处理不受先后顺序的影响,具有无序性,处理完一个即向下位机返回一个,从而使下位机向上位机反馈的数据也具有无序性。在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应,且在一一对应完成后对回复数据进行计算,将字节数据转换为数值,以按照数值的形式进行显示。
本实施例的汽车数据流获取方法包括以下步骤:接收数据流选择指令,并将所述数据流选择指令对应的数据流作为待查看数据流;当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据;在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示。本方案可将多条待查看数据流的查看指令同时发送到下位机,以供下位机和汽车obd接口交互,获取并反馈与查看指令对应的回复数据,在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示,从而避免需要查看多条数据流时,逐一循环发送显示,使数据流变化更及时,加快了数据流刷新速度。
进一步地,在本发明汽车数据流获取方法的另一实施例中,所述步骤s20当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据的步骤包括:
步骤s21,当接收到待查看数据流的查看指令时,获取与待查看数据流对应的通信参数,并将所述通信参数发送到下位机,以供下位机进行通信通道的参数设置;
步骤s22,将所述查看指令发送到下位机,以供下位机通过通信通道将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据。
进一步地,本实施例中的待查看数据流包含有通信参数,用于对通信通道的参数设置,从而通过通信通道实现待查看数据流的获取。当接收到待查看数据流的查看指令时,获取与待查看数据流对应的通信参数,并将所述通信参数发送到下位机。本实施例的通信通道包括通信发送器和通信接收器,分别用于发送和接收数据,当下位机接收到通信参数时,根据此通信参数对通信通道进行相应的参数设置,并控制通信发送器和通信接收器启动,且通信发送器和通信接收器可各自独立运行,无需相互交互等待。当与待查看数据流相关的查看指令发送到下位机时,通信接收器接收此查看指令,并通过汽车obd接口发送到汽车总线;汽车总线根据通信协议响应查看指令得到回复数据,并将此回复数据通过通信接收器返回到下位机。
进一步地,在本发明汽车数据流获取方法的另一实施例中,所述通信参数包括发送id、接收id以及obd接口引脚号,所述步骤s30在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示的步骤包括:
步骤s31,根据接收id以及obd接口引脚号,接收下位机反馈的回复数据;
步骤s32,根据与接收id对应的发送id,将回复数据与待查看数据流一一对应,并按照预设规则将回复数据转换成数值和待查看数据流对应显示。
更进一步地,因通信通道包括交互的发送通道和接收通道,故通信参数包含有发送通道的发送id和接收通道的接收id。同时为了避免数据流的混淆,不同的数据流设置有不同的id,从而同一数据流的发送id和接收id唯一,且一一对应,以通过设置发送id和接收id,实现对相应数据流的发送和接收。此外,通信参数还包括波特率和obd接口引脚号,波特率是对信号传输速率的一种度量,表征通信时的速率;obd接口设置有16个引脚,引脚定义分别为:1.厂家定义、2.saej1850总线正、3.厂家定义、4.车身地、5.信号地、6.iso15765-4定义的can高、7.iso9141-2和iso14230-4定义的k线、8.厂家定义、9.厂家定义、10.saej1850总线负、11.厂家定义、12.厂家定义、13.厂家定义、14.iso15765-4定义的can低、15.iso9141-2和iso14230-4定义的l线、16.永久正电压。obd接口的数据传送可以是采用saej1850总线,也可以采用iso15765-4定义的can线,通过设置波特率以及obd接口引脚号可设置通信的速度以及通信的方式。
因车辆上的传感器、执行器、控制元件等元器件种类繁多,同时为了减少车辆上导线数量,通常采用总线使用总线通信协议的方式进行各元器件之间的通信。所以下位机通过汽车总线获取的回复数据,可能夹杂着其他非待查看数据流的数据,此时应根据接收id以及obd接口引脚,对下位机反馈的回复数据进行反馈接收。因接收id和发送id具有一一对应性,一方面通过接收id接收回复数据,另一方面根据待查看数据流采用的总线协议或者can线协议接收与obd接口引脚对应的回复数据,以进一步对回复数据进行过滤,确保回复数据的准确性。进一步地,因汽车总线对待查看数据流的处理无先后顺序,只要检测到是接收id传输的数据,都会进行接收,从而使最先接收的数据并不一定对应最先发送的数据,所以在接收回复数据后,根据接收id与发送id的一一对应关系,将回复数据与待查看数据流一一对应。此外,因回复数据是obd接口输出的机器码字符形式的数据,若直接以此字符形式的数据作为数据流的内容,不够直观,用户在获知此字符后也很难了解其代表数据流的含义。本实施例将回复数据依据预设规则转换为数值,预设规则可以是字符转换为十进制数值之间的转换规则,具体的可根据作为回复数据的待转换字符以及作为数据流的数值之间的关系确定,以此将数据流选择指令的回复数据转换为数值,并将此数值和待查看数据流对应显示,以便用户获知数据流数值,并根据数据流数值了解汽车的运行状况。在具体实施例中,待查看数据流为发动机转速和冷却液温度,根据此待查看数据流的查看指令获取的回复数据分别为10010110000和1010000的二进制数值,按照二进制与十进制之间的转换关系将10010110000转换为1200,1010000转换为80,从而可知发动机转速为1200转、冷却液温度为80℃,将此数值和对应的待查看数据流对应显示,以便用户对此待查看数据流查看,了解汽车的运行状况。
本发明提供一种汽车数据流获取方法,请参照图2,在第一实施例中,该汽车数据流获取方法包括:
步骤s40,当接收到上位机发送的通信参数时,根据所述通信参数进行通信通道的参数设置;
本实施例的汽车数据流获取方法主要应用于和汽车车身上的obd接口连接,可直接读取obd接口数据的下位机,下位机和用于发送指令或者显示的上位机之间电性连接或者无线连接。当接收到上位机发送的通信参数时,根据通信参数设置通信通道的参数,其中,通信参数包括发送id和接收id,通信通道包括通信发送器和通信接收器,设置通信通道参数的方法包括:
步骤s41,当接收到上位机发送的通信参数时,启动通信发送器和通信接收器;
步骤s42,将通信发送器的id配置为发送id,通信接收器的id配置为与发送id对应的接收id,以在通信发送器根据发送id执行发送指令的同时,通信接收器根据接收id执行接收指令。
可理解地,当接收到上位机发送的通信参数,则表明上位机有通信需求,此时对通信通道进行参数设置以建立通信的连接通道。因下位机与车辆obd接口连接交互包括发送和接收两部分,从而对通信通道的参数设置包括发送通道和接收通道通信的参数设置。发送采用通信发送器、接收采用通信接收器,当接收到上位机发送的通信参数时,启动通信发送器和通信接收器,以做好通信准备。此外,因汽车中需要发送接收的数据流众多,若采用同样的发送或接收id,当同一时间需要发送或接收多个数据流时,因数据流id相同,从而使接收或者发送的数据流混淆。所以,为不同的数据流设置唯一的发送和接收id,且将通信发送器的id配置为发送id,通信接收器的id配置为与发送id对应的接收id。从而使通信发送器只发送配置的发送id中的指令,屏蔽未配置的发送id;通信接收器只接收配置的接收id中的指令,屏蔽未配置的接收id。在一具体实施例中,当发动机转速的发送id为fc00、接收id为fd00,冷却液温度的发送id为fm00、接收id为fn00时,将通信发送器的发送id配置为fc00和fm00,相应的通信接收器的接收id为fd00和fn00,下位机和obd接口交互时,只发送id为fc00和fm00中携带的指令,相应的也只接收fd00和fn00中携带的指令,对于其他的id均不进行发送和接收。
步骤s50,接收与通信参数对应的待查看数据流的查看指令,并将所述查看指令通过通信通道发送到汽车obd接口;
进一步地,在进行通信通道的参数设置,完成通信发送器以及通信接收器的发送id和接收id配置,建立通信连接之后,接收上位机发送的与通信参数对应的待查看数据流的查看指令。通信参数包括发送id和接收id,因某一具体数据流的发送id和接收id具有唯一性,所以某一具体的发送id中携带有其对应的唯一待查看数据流的查看指令信息,接收此与发送id对应的待查看数据流的查看指令,并将此查看指令通过通信发送器发送到汽车obd接口,通过汽车obd接口发送到汽车总线,以根据总线协议对此查看指令响应,获取对应的回复数据,并根据接收id通过通信接收器返回到下位机。
步骤s60,获取汽车obd接口基于查看指令输出的回复数据,并将所述回复数据反馈到上位机。
更进一步地,汽车obd接口根据汽车总线协议响应待查看数据流,输出回复数据,获取此回复数据,并将此回复数据反馈到上位机,从而完成数据流的获取。
为辅助理解,以一具体实施例加以说明,请参照图4,当接收到待查看数据流查看指令时,获取待查看数据流对应的发送id、接收id等通信参数,将此通信参数发送到下位机,以供下位机对通信通道进行参数设置,启动通信发送器和通信接收器;此后将待查看数据流发送到下位机,并通过通信发送器将此待查看数据流发送到汽车obd接口,以通过汽车obd接口和汽车通信获取待查看数据流对应的回复数据,将回复数据通过通信接收器上传至上位机;上位机将回复数据和待查看数据流一一对应,通过预设规则将回复数据由字符形式转换为数值,在上位机的显示装置上显示此待查看数据流以及其对应的数值,完成数据流的获取。
参照图3,图3是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明实施例汽车数据流获取系统包括交互的上位机和下位机,上位机可以是pc,也可以是智能手机、平板电脑便携计算机等终端设备,下位机可以是无线诊断接头或有线诊断接头等obd诊断接头。
如图3所示,该汽车数据流获取系统可以包括:处理器1001,例如cpu,存储器1005,通信总线1002,且处理器1001和存储器1005可以存在于上位机、也可以存在于下位机、还可以上位机和下位机都存在。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,该汽车数据流获取系统还可以包括用户接口、网络接口、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
本领域技术人员可以理解,图3中示出的汽车数据流获取系统结构并不构成对汽车数据流获取系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图3所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及汽车数据流获取程序。操作系统是管理和控制汽车数据流获取系统硬件和软件资源的程序,支持汽车数据流获取程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与汽车数据流获取系统中其它硬件和软件之间通信。
在图3所示的汽车数据流获取系统中,汽车数据流获取程序可应用于上位机,处理器1001用于执行存储器1005中存储的汽车数据流获取程序,实现以下步骤:
接收数据流选择指令,并将所述数据流选择指令对应的数据流作为待查看数据流;
汽车数据流是指电子控制单元(ecu)与传感器和执行器交流的数据参数,包括冷却液温度、发动机转速、发动机负荷、发动机每循环喷油持续时间等信息,可使用诊断仪读取,为汽车故障诊断提供依据。当汽车出现故障时,可通过读取汽车数据流来检测汽车的故障点;未出现故障时,可通过读取汽车数据流检测汽车的工作状态来防止出现故障。汽车车身上设置有obd接口,当需要读取汽车数据流时,通过诊断接头将此obd接口和诊断仪连接,诊断仪上有显示装置,用于显示汽车数据流;此外,也可以使用诸如电脑、平板等移动终端读取,诊断接头将obd接口和移动终端连接,在移动终端的显示界面显示汽车数据流。还可以使用无线诊断接头读取,无线诊断接头和obd接口连接,且通过无线的方式和移动终端通信,在移动终端上显示无线诊断接头读取的汽车数据流。当需要读取数据流时,在显示装置上选择需要查看的数据流,此选择操作即为数据流选择指令。接收此数据流选择指令,并将与此数据流选择指令对应的数据流作为待查看数据流。在一实施例中,汽车数据流以列表的形式显示在显示装置上,当需要查看冷却液温度、发动机转速和发动机负荷三项时,在列表对应的位置上点击将此三项作为需要查看的数据流,当接收到此数据流选择指令时,将与此数据流选择指令对应的数据流作为待查看数据流,即将冷却液温度、发动机转速和发动机负荷作为待查看数据流。
当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据;
本方案将移动终端或者诊断仪等用于发送指令或者显示的装置作为上位机,将诊断接头或无线诊断接头等直接和汽车车身上的obd接口连接,可直接读取obd接口数据的装置作为下位机。在根据数据流选择指令确定待查看数据流后,发送待查看数据流的查看指令,当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,下位机直接与汽车obd接口连接,将查看指令通过汽车obd接口发送到汽车总线。汽车根据其遵循的总线协议在接收查看指令的同时查找与查看指令相关的回复数据,并将回复数据返回到汽车obd接口,再经过汽车obd接口将回复数据返回到与其连接的下位机。具体地,当待查看数据流的查看指令为查看冷却液温度、发动机转速和发动机负荷的数据流时,下位机将冷却液温度、发动机转速和发动机负荷的查看指令通过汽车obd接口发送到汽车总线。因发送的时序性,汽车总线可能并没有在同一时间接收到其需要查看三个数据流,可能第一时间接收到查看冷却液温度,第二时间接收到查看发动机转速。此时汽车总线对第一时间接收的冷却液温度做出响应、进行查找并发送,而不影响第二时间接收发动机转数查看指令;此外,可能当第二时间接收到查看发动机转速指令时,冷却液温度尚未找到,从而对冷却液温度和发动机转速并行查询,当查找到发动机转速相关响应时,将此响应返回到汽车obd接口,或者先查找到冷却液温度相关响应,将此响应返回到汽车obd接口,返回数据并不受接收数据的先后顺序影响,发送和接收各自运行,无需相互交互等待。
在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示。
进一步地,当汽车obd接口将回复数据返回到下位机时,下位机向上位机进行反馈,因汽车总线对待查看数据流的处理不受先后顺序的影响,具有无序性,处理完一个即向下位机返回一个,从而使下位机向上位机反馈的数据也具有无序性。在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应,且在一一对应完成后对回复数据进行计算,将字节数据转换为数值,以按照数值的形式进行显示。
本实施例的汽车数据流获取系统:接收数据流选择指令,并将所述数据流选择指令对应的数据流作为待查看数据流;当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据;在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示。本方案可将多条待查看数据流的查看指令同时发送到下位机,以供下位机和汽车obd接口交互,获取并反馈与查看指令对应的回复数据,在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示,从而避免需要查看多条数据流时,逐一循环发送显示,使数据流变化更及时,加快了数据流刷新速度。
进一步地,当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据的步骤包括:
当接收到待查看数据流的查看指令时,获取与待查看数据流对应的通信参数,并将所述通信参数发送到下位机,以供下位机进行通信通道的参数设置;
将所述查看指令发送到下位机,以供下位机通过通信通道将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据。
进一步地,本实施例中的待查看数据流包含有通信参数,用于对通信通道的参数设置,从而通过通信通道实现待查看数据流的获取。当接收到待查看数据流的查看指令时,获取与待查看数据流对应的通信参数,并将所述通信参数发送到下位机。本实施例的通信通道包括通信发送器和通信接收器,分别用于发送和接收数据,当下位机接收到通信参数时,根据此通信参数对通信通道进行相应的参数设置,并控制通信发送器和通信接收器启动,且通信发送器和通信接收器可各自独立运行,无需相互交互等待。当与待查看数据流相关的查看指令发送到下位机时,通信接收器接收此查看指令,并通过汽车obd接口发送到汽车总线;汽车总线根据通信协议响应查看指令得到回复数据,并将此回复数据通过通信接收器返回到下位机。
进一步地,所述通信参数包括发送id、接收id以及obd接口引脚号,所述在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示的步骤包括:
根据接收id以及obd接口引脚号,接收下位机反馈的回复数据;
根据与接收id对应的发送id,将回复数据与待查看数据流一一对应,并按照预设规则将回复数据转换成数值和待查看数据流对应显示。
更进一步地,因通信通道包括交互的发送通道和接收通道,故通信参数包含有发送通道的发送id和接收通道的接收id。同时为了避免数据流的混淆,不同的数据流设置有不同的id,从而同一数据流的发送id和接收id唯一,且一一对应,以通过设置发送id和接收id,实现对相应数据流的发送和接收。此外,通信参数还包括波特率和obd接口引脚号,波特率是对信号传输速率的一种度量,表征通信时的速率;obd接口设置有16个引脚,引脚定义分别为:1.厂家定义、2.saej1850总线正、3.厂家定义、4.车身地、5.信号地、6.iso15765-4定义的can高、7.iso9141-2和iso14230-4定义的k线、8.厂家定义、9.厂家定义、10.saej1850总线负、11.厂家定义、12.厂家定义、13.厂家定义、14.iso15765-4定义的can低、15.iso9141-2和iso14230-4定义的l线、16.永久正电压。obd接口的数据传送可以是采用saej1850总线,也可以采用iso15765-4定义的can线,通过设置波特率以及obd接口引脚号可设置通信的速度以及通信的方式。
因车辆上的传感器、执行器、控制元件等元器件种类繁多,同时为了减少车辆上导线数量,通常采用总线使用总线通信协议的方式进行各元器件之间的通信。所以下位机通过汽车总线获取的回复数据,可能夹杂着其他非待查看数据流的数据,此时应根据接收id以及obd接口引脚,对下位机反馈的回复数据进行反馈接收。因接收id和发送id具有一一对应性,一方面通过接收id接收回复数据,另一方面根据待查看数据流采用的总线协议或者can线协议接收与obd接口引脚对应的回复数据,以进一步对回复数据进行过滤,确保回复数据的准确性。进一步地,因汽车总线对待查看数据流的处理无先后顺序,只要检测到是接收id传输的数据,都会进行接收,从而使最先接收的数据并不一定对应最先发送的数据,所以在接收回复数据后,根据接收id与发送id的一一对应关系,将回复数据与待查看数据流一一对应。此外,因回复数据是obd接口输出的机器码字符形式的数据,若直接以此字符形式的数据作为数据流的内容,不够直观,用户在获知此字符后也很难了解其代表数据流的含义。本实施例将回复数据依据预设规则转换为数值,预设规则可以是字符转换为十进制数值之间的转换规则,具体的可根据作为回复数据的待转换字符以及作为数据流的数值之间的关系确定,以此将数据流选择指令的回复数据转换为数值,并将此数值和待查看数据流对应显示,以便用户获知数据流数值,并根据数据流数值了解汽车的运行状况。在具体实施例中,待查看数据流为发动机转速和冷却液温度,根据此待查看数据流的查看指令获取的回复数据分别为10010110000和1010000的二进制数值,按照二进制与十进制之间的转换关系将10010110000转换为1200,1010000转换为80,从而可知发动机转速为1200转、冷却液温度为80℃,将此数值和对应的待查看数据流对应显示,以便用户对此待查看数据流查看,了解汽车的运行状况。
在图3所示的汽车数据流获取系统中,汽车数据流获取程序可应用于下位机,处理器1001用于执行存储器1005中存储的汽车数据流获取程序,实现以下步骤:
当接收到上位机发送的通信参数时,根据所述通信参数进行通信通道的参数设置;
本实施例的汽车数据流获取方法主要应用于和汽车车身上的obd接口连接,可直接读取obd接口数据的下位机,下位机和用于发送指令或者显示的上位机之间电性连接或者无线连接。当接收到上位机发送的通信参数时,根据通信参数设置通信通道的参数,其中,通信参数包括发送id和接收id,通信通道包括通信发送器和通信接收器,设置通信通道参数的方法包括:
当接收到上位机发送的通信参数时,启动通信发送器和通信接收器;
将通信发送器的id配置为发送id,通信接收器的id配置为与发送id对应的接收id,以在通信发送器根据发送id执行发送指令的同时,通信接收器根据接收id执行接收指令。
可理解地,当接收到上位机发送的通信参数,则表明上位机有通信需求,此时对通信通道进行参数设置以建立通信的连接通道。因下位机与车辆obd接口连接交互包括发送和接收两部分,从而对通信通道的参数设置包括发送通道和接收通道通信的参数设置。发送采用通信发送器、接收采用通信接收器,当接收到上位机发送的通信参数时,启动通信发送器和通信接收器,以做好通信准备。此外,因汽车中需要发送接收的数据流众多,若采用同样的发送或接收id,当同一时间需要发送或接收多个数据流时,因数据流id相同,从而使接收或者发送的数据流混淆。所以,为不同的数据流设置唯一的发送和接收id,且将通信发送器的id配置为发送id,通信接收器的id配置为与发送id对应的接收id。从而使通信发送器只发送配置的发送id中的指令,屏蔽未配置的发送id;通信接收器只接收配置的接收id中的指令,屏蔽未配置的接收id。在一具体实施例中,当发动机转速的发送id为fc00、接收id为fd00,冷却液温度的发送id为fm00、接收id为fn00时,将通信发送器的发送id配置为fc00和fm00,相应的通信接收器的接收id为fd00和fn00,下位机和obd接口交互时,只发送id为fc00和fm00中携带的指令,相应的也只接收fd00和fn00中携带的指令,对于其他的id均不进行发送和接收。
接收与通信参数对应的待查看数据流的查看指令,并将所述查看指令通过通信通道发送到汽车obd接口;
进一步地,在进行通信通道的参数设置,完成通信发送器以及通信接收器的发送id和接收id配置,建立通信连接之后,接收上位机发送的与通信参数对应的待查看数据流的查看指令。通信参数包括发送id和接收id,因某一具体数据流的发送id和接收id具有唯一性,所以某一具体的发送id中携带有其对应的唯一待查看数据流的查看指令信息,接收此与发送id对应的待查看数据流的查看指令,并将此查看指令通过通信发送器发送到汽车obd接口,通过汽车obd接口发送到汽车总线,以根据总线协议对此查看指令响应,获取对应的回复数据,并根据接收id通过通信接收器返回到下位机。
获取汽车obd接口基于查看指令输出的回复数据,并将所述回复数据反馈到上位机。
更进一步地,汽车obd接口根据汽车总线协议响应待查看数据流,输出回复数据,获取此回复数据,并将此回复数据反馈到上位机,从而完成数据流的获取。
为辅助理解,以一具体实施例加以说明,请参照图4,当接收到待查看数据流查看指令时,获取待查看数据流对应的发送id、接收id等通信参数,将此通信参数发送到下位机,以供下位机对通信通道进行参数设置,启动通信发送器和通信接收器;此后将待查看数据流发送到下位机,并通过通信发送器将此待查看数据流发送到汽车obd接口,以通过汽车obd接口和汽车通信获取待查看数据流对应的回复数据,将回复数据通过通信接收器上传至上位机;上位机将回复数据和待查看数据流一一对应,通过预设规则将回复数据由字符形式转换为数值,在上位机的显示装置上显示此待查看数据流以及其对应的数值,完成数据流的获取。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于:
接收数据流选择指令,并将所述数据流选择指令对应的数据流作为待查看数据流;
当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据;
在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示。
进一步地,所述当接收到待查看数据流的查看指令时,将所述查看指令发送到下位机,以通过下位机将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据的步骤包括:
当接收到待查看数据流的查看指令时,获取与待查看数据流对应的通信参数,并将所述通信参数发送到下位机,以供下位机进行通信通道的参数设置;
将所述查看指令发送到下位机,以供下位机通过通信通道将查看指令发送到汽车obd接口,下位机获取汽车obd接口基于查看指令输出的回复数据。
进一步地,所述通信参数包括发送id、接收id以及obd接口引脚号,所述在接收到下位机反馈的回复数据后,将回复数据与待查看数据流一一对应并显示的步骤包括:
根据接收id以及obd接口引脚号,接收下位机反馈的回复数据;
根据与接收id对应的发送id,将回复数据与待查看数据流一一对应,并按照预设规则将回复数据转换成数值和待查看数据流对应显示。
所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于:
当接收到上位机发送的通信参数时,根据所述通信参数进行通信通道的参数设置;
接收与通信参数对应的待查看数据流的查看指令,并将所述查看指令通过通信通道发送到汽车obd接口;
获取汽车obd接口基于查看指令输出的回复数据,并将所述回复数据反馈到上位机。
进一步地,所述通信参数包括发送id和接收id,所述通信通道包括通信发送器和通信接收器,所述当接收到上位机发送的通信参数时,根据所述通信参数进行通信通道的参数设置的步骤包括:
当接收到上位机发送的通信参数时,启动通信发送器和通信接收器;
将通信发送器的id配置为发送id,通信接收器的id配置为与发送id对应的接收id,以在通信发送器根据发送id执行发送指令的同时,通信接收器根据接收id执行接收指令。
本发明计算机可读存储介质具体实施方式与上述汽车数据流获取方法和系统各实施例基本相同,在此不再赘述。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。