车载定位设备的防拆卸方法、防拆卸装置和汽车与流程

文档序号:15061666发布日期:2018-07-31 21:58阅读:302来源:国知局

本发明涉及汽车防盗领域,特别是车载定位设备的防拆卸方法,防拆卸装置和汽车。



背景技术:

现有的车载定位设备的防拆卸方法是基于定时心跳检测的。具体的原理如下所示:

车载定位设备和发动机ecu通过can总线实现数据交互。所谓的心跳就是车载定位设备定时向发动机ecu发送简单规定的消息,证明自己当前一直在线并且存在。当车载定位设备被拆卸后,发动机ecu收不到心跳信息,就不启动发动机使车辆无法启动。

现有技术具有如下缺点:

1,数据交互频繁,占用can总线资源。

心跳包都是周期性的发送,导致can总线的数据会出现竞争,不利于其他can总线设备的数据通信。

2,易被专业的信号采集回放设备破解。

由于是周期固定性的信息发送,会在can总线周期性的反应一定的规律。通过专业的采集设备对信号进行存储,通过模拟回放心跳包,欺骗ecu达到拆除车载定位设备目的。



技术实现要素:

为了解决上述的技术问题,本发明提出了一种车载定位设备的防拆卸方法,包括下述步骤:

步骤1,在发动机启动时,由发动机ecu生成随机数据;

步骤2,所述随机数据在发动机ecu中利用规则生成秘钥1;

步骤3,所述随机数据通过can发送给车载定位设备;

步骤4,所述车载定位设备利用步骤2中同样的规则生成秘钥2;

步骤5,所述秘钥2被车载定位设备通过can发送给发动机ecu;

步骤6,在发动机ecu进行秘钥1和秘钥2的对比;

步骤7,当秘钥1和秘钥2相同则启动发动机,否则发动机不启动。

最好,所述规则为crc校验生成多项式。

优选地,当出现多次秘钥1与秘钥2不同时,车辆报警或者无法启动。

最好,所述车载定位设备可以为移动终端。

优选地,所述随机数据为64位,对应的秘钥1和秘钥2为24位。

最好,所述启动为钥匙孔插入车钥匙时。

本发明还涉及一种设有根据上述的车载定位设备的防拆卸方法的防拆卸装置,包括发动机ecu,can和车载定位设备。

本发明还涉及一种汽车,包括上述的防拆卸装置。

优选地,所述汽车为卡车、小轿车或者任何其他车辆。

最好,还包括摄像装置,当出现多次启动失败时,将录像发送给车主。

通过本发明的技术方案,整个应答认证流程只有在车辆启动时完成一次crc认证,比起传统的心跳检测包,不占用总线通信资源。

can总线的波特率一般是250kps-1mbps,一次认证的时间最慢不超过10ms。驾驶员感觉不到认证过程的存在,用户体验好

其中crc即循环冗余校验码(cyclicredundancycheck):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(crc)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

循环冗余校验码(crc)的基本原理是:在k位信息码后再拼接r位的校验码,整个编码长度为n位,因此,这种编码也叫(n,k)码。对于一个给定的(n,k)码,可以证明存在一个最高次幂为n-k=r的多项式g(x)。根据g(x)可以生成k位信息的校验码,而g(x)叫做这个crc码的生成多项式。校验码的具体生成过程为:假设要发送的信息用多项式c(x)表示,将c(x)左移r位(可表示成c(x)*2r),这样c(x)的右边就会空出r位,这就是校验码的位置。用c(x)*2r除以生成多项式g(x)得到的余数就是校验码。

任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。

多项式和二进制数有直接对应关系:x的最高幂次对应二进制数的最高位,以下各位对应多项式的各幂次,有此幂次项对应1,无此幂次项对应0。可以看出:x的最高幂次为r,转换成对应的二进制数有r+1位。

多项式包括生成多项式g(x)和信息多项式c(x)。

如生成多项式为g(x)=x4+x3+x+1,可转换为二进制数码11011。

而发送信息位101111,可转换为数据多项式c(x)=x5+x3+x2+x+1。

crc校验生成多项式是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。

在发送方,利用生成多项式对信息多项式做模2除生成校验码。在接收方利用生成多项式对收到的编码多项式做模2除检测和确定错误位置。

应满足以下条件:

a、生成多项式的最高位和最低位必须为1。

b、当被传送信息(crc码)任何一位发生错误时,被生成多项式做除后应该使余数不为0。

c、不同位发生错误时,应该使余数不同。

d、对余数继续做除,应使余数循环。

crc校验校验码位数

crc校验码位数=生成多项式位数-1。注意有些生成多项式的简记式中将生成多项式的最高位1省略了。

crc校验生成步骤

1、将x的最高次幂为r的生成多项式g(x)转换成对应的r+1位二进制数。

2、将信息码左移r位,相当于对应的信息多项式c(x)*2r。

3、用生成多项式(二进制数)对信息码做除,得到r位的余数(注意:这里的二进制做除法得到的余数其实是模2除法得到的余数,并不等于其对应十进制数做除法得到的余数。)。

4、将余数拼到信息码左移后空出的位置,得到完整的crc码。

另外,如下概念很重要:位运算

位运算时把数字用二进制表示之后,对每一位上0或者1的运算。理解位运算的第一步是理解二进制。二进制是指数字的每一位都是0或者1.比如十进制的2转化为二进制之后就是10。

其实二进制的运算并不是很难掌握,因为位运算总共只有5种运算:与、或、异或、左移、右移。如下表:

与(&)0&0=01&0=00&1=01&1=1

或(|)0|0=01|0=10|1=11|1=1

异或(^)0^0=01^0=10^1=11^1=0

左移运算:左移运算符m<<n表示吧m左移n位。左移n位的时候,最左边的n位将被丢弃,同时在最右边补上n个0.比如:

00001010<<2=00101000

10001010<<3=01010000

右移运算:右移运算符m>>n表示把m右移n位。右移n位的时候,最右边的n位将被丢弃。但右移时处理最左边位的情形要稍微复杂一点。这里要特别注意,如果数字是一个无符号数值,则用0填补最左边的n位。如果数字是一个有符号数值,则用数字的符号位填补最左边的n位。也就是说如果数字原先是一个正数,则右移之后再最左边补n个0;如果数字原先是负数,则右移之后在最左边补n个1.下面是堆两个8位有符号数作右移的例子00001010>>2=00000010

10001010>>3=11110001关于移位的运算有这样的等价关系:把整数右移一位和把整数除以2在数学上是等价的。

a<<=1;//a左移一位等效于a=a*2;

a<<=2;//a左移2位等效于a=a*2的2次方(4);计算机内部只识别1、0,十进制需变成二进制才能使用移位运算符<<,>>。

复制代码

intj=8;

p=j<<1;

cout<<p<<endl;

在这里,8左移一位就是8*2的结果16。

例如:假设使用的生成多项式是g(x)=x3+x+1。4位的原始报文为1010,求编码后的报文。

解:

1、将生成多项式g(x)=x3+x+1转换成对应的二进制除数1011。

2、此题生成多项式有4位(r+1)(注意:4位的生成多项式计算所得的校验码为3位,r为校验码位数),要把原始报文c(x)左移3(r)位变成1010000

3、用生成多项式对应的二进制数对左移3位后的原始报文进行模2除(高位对齐),相当于按位异或:

1010000

1011

------------------

0001000

0001011

------------------

0000011

得到的余位011,所以最终编码为:1010011

若设码字长度为n,信息字段为k位,校验字段为r位(n=k+r),则对于crc码集中的任一码字,存在且仅存在一个r次多项式g(x),使得

v(x)=a(x)

g(x)=xrm(x)+r(x);

其中:m(x)为k次原始的信息多项式,r(x)为r-1次校验多项式(即crc校验和),

g(x)称为生成多项式:

g(x)=g0+g1x1+g2x2+...+g(r-1)x(r-1)+grxr

发送方通过指定的g(x)产生crc码字,接收方则通过该g(x)来验证收到的crc码字。

借助于模2除法则,其余数为校验字段。

例如:信息字段代码为:1011001;对应m(x)=x6+x4+x3+1

假设生成多项式为:g(x)=x4+x3+1;则对应g(x)的代码为:11001

x4m(x)=x10+x8+x7+x4对应的代码记为:10110010000;

采用模2除法则:得余数为:1010(即校验字段为:1010)

发送方:发出的传输字段为:10110011010

信息字段校验字段

接收方:使用相同的生成码进行校验:接收到的字段/生成码(二进制除法)

如果能够除尽,则正确,

给出余数(1010)的计算步骤:

除法没有数学上的含义,而是采用计算机的模二除法,即除数和被除数做异或运算。进行异或运算时除数和被除数最高位对齐,按位异或。

10110010000

^11001

--------------------------

01111010000

1111010000

^11001

-------------------------

0011110000

11110000

^11001

--------------------------

00111000

111000

^11001

-------------------

001010

则四位crc校验码就为:1010。

利用crc进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(crc码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和crc码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。

在代数编码理论中,将一个码组表示为一个多项式,码组中各码元当作多项式的系数。例如1100101表示为1·x6+1·x5+0·x4+0·x3+1·x2+0·x+1,即x6+x5+x2+1。

设编码前的原始信息多项式为p(x),p(x)的最高幂次加1等于k;生成多项式为g(x),g(x)的最高幂次等于r;crc多项式为r(x);编码后的带crc的信息多项式为t(x)。

发送方编码方法:将p(x)乘以xr(即对应的二进制码序列左移r位),再除以g(x),所得余式即为r(x)。用公式表示为t(x)=xrp(x)+r(x)

接收方解码方法:将t(x)除以g(x),得到一个数,如果这个余数为0,则说明传输中无错误发生,否则说明传输有误。

举例来说,设信息编码为1100,生成多项式为1011,即p(x)=x3+x2,g(x)=x3+x+1,计算crc的过程为

xrp(x)=x3(x3+x2)=x6+x5g(x)=x3+x+1即r(x)=x。注意到g(x)最高幂次r=3,得出crc为010。

术语ecu从名字上讲是英语名称的前三个字母缩写(electricalcontrolunit),中文的意思就是电子控制单元。又称“行车电脑”、“车载电脑”等。同样的部件,不同厂家的名称不尽一致。如:日本电装公司叫ecu,德国博士公司称为edu,威孚公司也称edu,还有叫做enginecontrolunit--发动机控制单元等。从用途上讲则是汽车专用微机控制器,也叫汽车专用单片机。它和普通的单片机一样,由微处理器(cpu)、存储器(rom、、ram)、输入/输出接口(i/o)、模数转换器(a/d)以及整形、驱动等大规模集成电路组成。可以看出来这已经是一部完整的计算机了。ecu的工作原理简单地说,就是根据与发动机相连的传感器的反馈来控制燃油混合(空气燃油比)和火花定时(点火提前及持续时间)。燃油混合和点火定时的控制相当复杂。ecu需要从多个传感器获取数据以实现系统的最佳控制。ecu需要了解地速、发动机转速、曲轴位置、空气质量(氧气含量)、发动机温度、发动机负荷(如空调(a/c)打开时)、油门位置、油门的变化率、变速齿轮、废气排放,等等。前面我们已经讲到,ecu是一种用于解决具体问题的计算机。计算机通常无法直接与模拟世界进行交互。因而需要使用一个信号调理/数据采集接口,以将来自传感器的模拟信号转换为计算机可以理解的数字信号。而为了控制燃油系统和点火系统,必须将数字信号转换为模拟信号。由于发动机的工作是高速变化的,而且要求计算精度高,处理速度快,因此,ecu的性能应当随发动机技术的发展而发展,微处理器的内存越来越大,信息处理能力越来越强。

ecu的电压工作范围一般在6.5-16v(内部关键处有稳压装置)、工作电流在0.015-0.1a、工作温度在零下40-80度。能承受1000hz以下的振动,因此ecu损坏的概率非常小,在ecu中cpu是核心部分,它具有运算与控制的功能,发动机在运行时,它采集各传感器的信号,进行运算,并将运算的结果转变为控制信号,控制被控对象的工作。它还实行对存储器(rom、、ram)、输入/输出接口(i/o)和其它外部电路的控制;存储器rom中存放的程序是经过精确计算和大量实验取的数据为基础,这个固有程序在发动机工作时,不断地与采集来的各传感器的信号进行比较和计算。把比较和计算的结果控制发动机的点火、空燃比、怠速、废气再循环等多项参数的控制。它还有故障自诊断和保护功能,当系统产生故障时,它还能在ram中自动记录故障代码并采用保护措施从上述的固有程序中读取替代程序来维持发动机的运转,使汽车能开到修理厂。

正常情况下,ram也会不停地记录你行驶中的数据,成为ecu的学习程序,为适应你的驾驶习惯提供最佳的控制状态,这个程序也叫自适应程序。但由于是存储于ram中,就象错误码一样,一但去掉电瓶而失去供电,所有的数据就会丢失。

目前在一些中高级轿车上,不但在发动机上应用ecu,在其它许多地方都可发现ecu的踪影。例如防抱死制动系统、4轮驱动系统、电控自动变速器、主动悬架系统、安全气囊系统、多向可调电控座椅等都配置有各自的ecu。随着轿车电子化自动化的提高,ecu将会日益增多,线路会日益复杂。为了简化电路和降低成本,汽车上多个ecu之间的信息传递就要采用一种称为多路复用通信网络技术,将整车的ecu形成一个网络系统,也就是can数据总线。

术语can是controllerareanetwork的缩写(以下称为can),是iso国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个lan,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的can通信协议。此后,can通过iso11898及iso11519进行了标准化,在欧洲已是汽车网络的标准协议。

can的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

具体实施例

车辆发动机ecu和定位设备有共同的crc校验生成多项式,保证生成检验结果的一致性。车辆启动时发动机ecu首先根据随机生成64位数据,并且根据的本地的生成多项式计算出24位的key1,最后把64位的数据请求包,通过can总线传输到车载定位设备。车载设备的can收发器收到发动机ecu的64位数据请求包后,通过本地的生成多项式生成24位校验码key2,并能过can总线发送给发动机ecu。发动机ecu接收到24位的key2后,与本地计算的key1做比较。如果key1等于key2,则车辆启动,车载设备一切正常;如果收不到key2指令回执,则车辆无法启动,车载设备被拆除;如果多次收到错误的key2,则遭遇非法破解。认证通过后发动机ecu进行常规的车辆启动流程,否则车辆熄火无法使用,需要专业人员处理。整个应答认证流程只有在车辆启动时完成一次crc认证,比起传统的心跳检测包,不占用总线通信资源。can总线的波特率一般是250kps-1mbps,一次认证的时间最慢不超过10ms。驾驶员感觉不到认证过程的存在,用户体验好。

所述规则可以为预先确定的好的函数。

本发明的一个实施例为该规则使用了crc校验生成多项式:crc-24q,

g(x)可表示为:

g(x)=(1+x)p(x)(6-2)

其中

p(x)=x23+x17+x13+x12+x11+x9+x8+x7+x5+x3+1

长度为64的信息序列mi(i=1-64)可以表示为以下多项式:

m(x)=m64+m64-1x+m64-2x2+...+m1x64-1(6-3)

多项式m(x)x24除以生成多项式g(x),得到余式如下:

r(x)=p24+p23x1+p22x2+...+p1x23

p1,p2….p24依次输出构成crc校验序列。

该crc生成多项式非常成熟而且速度快,充分实现了少占用有限的can资源的目的。

本发明的实施例为一种车载定位设备的防拆卸方法,包括下述步骤:步骤1,在发动机启动时,由发动机ecu生成随机数据;步骤2,所述随机数据在发动机ecu中利用crc校验生成多项式生成秘钥1;步骤3,所述随机数据通过can发送给车载定位设备;步骤4,所述车载定位设备利用步骤2中同样的crc校验生成多项式生成秘钥2;步骤5,所述秘钥2被车载定位设备通过can发送给发动机ecu;步骤6,在发动机ecu进行秘钥1和秘钥2的对比;步骤7,当秘钥1和秘钥2相同则启动发动机,否则发动机不启动。所述规则为crc校验生成多项式,当出现多次秘钥1与秘钥2不同时,车辆报警或者无法启动。所述车载定位设备可以为移动终端,所述随机数据为64位,对应的秘钥1和秘钥2为24位,所述启动为钥匙孔插入车钥匙时。

本发明利用上述方法可形成设有上述的车载定位设备的防拆卸方法的防拆卸装置,包括发动机ecu,can和车载定位设备。

本发明进而涉及一种汽车,包括根据权利要求7所述的防拆卸装置。所述汽车为卡车、小轿车或者任何其他车辆,还可以包括摄像装置,当出现多次启动失败时,将录像发送给车主。

上述各实施例仅是本发明的优选实施方式,在本技术领域内,凡是基于本发明技术方案上的变化和改进,不应排除在本发明的保护范围之外。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1