技术领域
[0001] 本发明是关于编码芯片滚动码领域,特别是关于一种检查编码芯片内部滚动码重复的方法及装置。
相关背景技术
[0002] 在当今各类电子设备中,编码芯片是一种必不可少的器件。编码芯片由于技术成熟,成本较低,常作为各种中小型电子产品的控制电路。在大规模使用编码芯片时,经常需要在芯片内部写入滚动码以区分同一产品的不同实体。典型的应用场景就是电动车的遥控器、车库卷帘门遥控,其内部主要使用的就是单片机控制电路。在批量生产电动车时需要单独匹配电动车和遥控器,以防止单个遥控器同时解锁多辆电动车、开启多扇遥控门。因此在编码芯片生产测试阶段,滚动码的重码检查就尤为重要。
[0003] 公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
具体实施方式
[0024] 下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
[0025] 除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
[0026] 以下结合附图,详细说明本发明各实施例提供的技术方案。
[0027] 实施例1如图1所示,介绍本发明的一个实施例中检查编码芯片内部滚动码重复的方法,该方法包括如下步骤。
[0028] 在步骤S101中,获取编码芯片的滚动码。
[0029] 滚动码是泛指那些同一个按键每次按下都会发出不同码的遥控编码方案。通常单片机芯片的滚动码最大为32位,所以需要检测的滚动码范围也就可以确定为1~4294967296,在解决较大数据查重的情况下,需要使用时空转换的方式。因为计算机操作内存和测试系统读取芯片滚动码速度非常快,时间很短,所以只需要分配足够的内存空间即可。
[0030] 分配总内存空间是与单个空间的容量成正比的,显然在目前的32/64位计算机操作系统下要分配4294967296个内存空间,是不能够完全存放在栈空间的,只能存放在堆空间。而计算机系统的单个内存空间最小为bit。所以在本实施例中所需要的映射内存空间为512MB,容量是完全满足的。
[0031] 具体的,首先检测滚动码是否在预设检测范围内;若是,获取预设容量的映射内存空间;以及将映射内存空间进行初始化,即测试系统完成初始化后,将指定的512MB内存空间初始化为0。测试系统所有测试项目结束后开始读取滚动码。
[0032] std::vector MapMem(1024 * 1024 * 512, 0x00)。
[0033] 在步骤S102中,根据滚动码寻址到对应的映射内存空间。
[0034] 根据滚动码计算对应的偏移地址;以及根据偏移地址和滚动码计算编码芯片对应的映射内存空间地址位,以寻址到对应的映射内存空间。
[0035] int nOffSetAddr = (ToAddr ‑ 1) % 8;unsigned int nAddr = ((ToAddr ‑ 1 ‑ nOffSetAddr) / 8);
在步骤S103中,根据映射内存空间判断滚动码是否重复。
[0036] if ((MapMem[nAddr] >> nOffSetAddr) & 0x01)在滚动码对应的地址位存在对应的映射内存空间时,即在该滚动码对应的映射内存空间是1,表明该滚动码已经被标记过,该编码芯片的滚动码为重复出现,因此,将滚动码对应的编码芯片设置为不良品。
[0037] 在滚动码对应的地址位不存在对应的映射内存空间时,即在该滚动码对应的映射内存空间不是1,则表明该滚动码未被标记,将该对应的内存映射地址位写1。
[0038] {MapMem[nAddr] |= (0x01 << nOffSetAddr);实施例2
如图2所示,介绍本发明的一个实施例中检查编码芯片内部滚动码重复的方法,该方法包括如下步骤。
[0039] 在步骤S201中,获取编码芯片的滚动码。
[0040] 滚动码是泛指那些同一个按键每次按下都会发出不同码的遥控编码方案。通常单片机芯片的滚动码最大为32位,所以需要检测的滚动码范围也就可以确定为1~4294967296,在解决较大数据查重的情况下,需要使用时空转换的方式。因为计算机操作内存和测试系统读取芯片滚动码速度非常快,时间很短,所以只需要分配足够的内存空间即可。
[0041] 分配总内存空间是与单个空间的容量成正比的,显然在目前的32/64位计算机操作系统下要分配4294967296个内存空间,是不能够完全存放在栈空间的,只能存放在堆空间。而计算机系统的单个内存空间最小为bit。所以在本实施例中所需要的映射内存空间为512MB,容量是完全满足的。
[0042] 具体的,首先检测滚动码是否在预设检测范围内;若是,获取预设容量的映射内存空间;以及将映射内存空间进行初始化,即测试系统完成初始化后,将指定的512MB内存空间初始化为0。测试系统所有测试项目结束后开始读取滚动码。
[0043] std::vector MapMem(1024 * 1024 * 512, 0x00)。
[0044] 在步骤S202中,在未获取到滚动码时,将滚动码对应的编码芯片设置为不良品。
[0045] 具体代码如下,ToAddr为滚动码,在未获取到滚动码时,ToAddr == 0,此时对应的编码芯片是故障的,将该编码芯片设置为不良品。
[0046] if (ToAddr == 0){return true;}
如图3所示,介绍根据本发明具体实施方式的检查编码芯片内部滚动码重复的装置。
[0047] 在本发明的实施方式中,检查编码芯片内部滚动码重复的装置包括获取模块301、寻址模块302和判断模块303。
[0048] 获取模块301,用于获取编码芯片的滚动码。
[0049] 寻址模块302,用于根据滚动码寻址到对应的映射内存空间。
[0050] 判断模块303,用于根据映射内存空间判断滚动码是否已标记。
[0051] 获取模块301还用于:检测滚动码是否在预设检测范围内;若是,获取预设容量的映射内存空间;以及将映射内存空间进行初始化。
[0052] 寻址模块302还用于:根据滚动码计算对应的偏移地址;以及根据偏移地址和滚动码计算编码芯片对应的映射内存空间地址位,以寻址到对应的映射内存空间。
[0053] 判断模块303还用于:在滚动码重复时,将滚动码对应的编码芯片设置为不良品;或,在滚动码不重复时,将映射内存空间设置为预设值,用于标记滚动码。
[0054] 判断模块303还用于:在未获取到滚动码时,将滚动码对应的编码芯片设置为不良品。
[0055] 图4示出了根据本说明书的实施例的用于检查编码芯片内部滚动码重复的计算设备40的硬件结构图。如图4所示,计算设备40可以包括至少一个处理器401、存储器402(例如非易失性存储器)、内存403和通信接口404,并且至少一个处理器401、存储器402、内存403和通信接口404经由总线405连接在一起。至少一个处理器401执行在存储器402中存储或编码的至少一个计算机可读指令。
[0056] 应该理解,在存储器402中存储的计算机可执行指令当执行时使得至少一个处理器401进行本说明书的各个实施例中以上结合图1‑4描述的各种操作和功能。
[0057] 在本说明书的实施例中,计算设备40可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
[0058] 根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1‑4描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
[0059] 根据本发明实施方式的检查编码芯片内部滚动码重复的方法及装置,其能够通过增加滚动码映射的内存空间,实现快速检查滚动码重复的算法,使得无需额外设备,就能保证同一批次编码芯片的滚动码没有重复,同时不影响其他测试项目。
[0060] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0061] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0062] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0063] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0064] 前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。