搜索
bottom↓
回复: 18

KEELOQ(滚动码),我能用STM32或者STM8解码吗?

[复制链接]

出0入0汤圆

发表于 2017-2-15 10:34:51 | 显示全部楼层 |阅读模式
现在网上 到处都是用PIC单片机来解码?有用STM8或者STM32来解码的吗?

出0入147汤圆

发表于 2017-2-15 10:38:13 | 显示全部楼层
可以,基本上只要有定时器的单片机都行,之前还用LGT的单片机解过。

出0入0汤圆

发表于 2017-2-15 10:59:30 | 显示全部楼层
當然可以,好久以前解過,用的Atmage48a

出0入0汤圆

发表于 2017-2-15 11:07:41 | 显示全部楼层
可以的。跟选什么单片机没有关系,只跟解码算法有关。

出0入0汤圆

 楼主| 发表于 2017-2-15 11:11:55 | 显示全部楼层
chkmsfc 发表于 2017-2-15 10:59
當然可以,好久以前解過,用的Atmage48a

有解算法  那块 程序吗?

出0入0汤圆

 楼主| 发表于 2017-2-15 11:12:30 | 显示全部楼层
dreampet 发表于 2017-2-15 10:38
可以,基本上只要有定时器的单片机都行,之前还用LGT的单片机解过。

有解算法那块 程序吗?

出0入0汤圆

发表于 2017-2-15 11:13:28 | 显示全部楼层
当然可以,主要是算法

出0入0汤圆

发表于 2017-2-15 11:21:04 | 显示全部楼层
liao_qj 发表于 2017-2-15 11:11
有解算法  那块 程序吗?

主要收碼之後有一個解碼的函數有點複雜,解碼還要知道廠商密匙什麼的,不像明碼那麼簡單。好久以前折騰過沒什麼映像了,程序網上找找吧應該有的

出0入0汤圆

发表于 2017-2-21 09:04:04 | 显示全部楼层
算法属于高科技 ,没人会提供的。而且那个有专利,也不能在网上乱传播。

出0入0汤圆

发表于 2021-1-19 10:52:16 | 显示全部楼层
我有做过HCS301解码的程序、

出0入0汤圆

发表于 2021-1-19 19:48:23 来自手机 | 显示全部楼层
本帖最后由 oldban 于 2021-1-19 20:47 编辑

弄通了解码算法,想用哪款MCU解码都可以

出0入36汤圆

发表于 2021-1-20 10:02:45 | 显示全部楼层
本帖最后由 norman33 于 2021-1-20 10:05 编辑

解别人的东西,有了算法你还要:
1. 要求编码端和解码端都需要有非易失性存储空间以存储8byte密钥(用于编解码,可编程且不被发送不可泄露)
2. 3byte序列号(用于区分不同的编码端)
3. 2byte同步计数值(用于产生编码滚动效果,每完成一次数据传送后,其值自加1后更新)
4. 1byte识别码(序列号的低1byte)
5. 4byte种子码(安全模式下用来生成密钥)。
除非你自己加密自己解密自己玩。
我擦,回头一看挖坟了。

出0入0汤圆

发表于 2021-1-20 12:23:02 | 显示全部楼层
norman33 发表于 2021-1-20 10:02
解别人的东西,有了算法你还要:
1. 要求编码端和解码端都需要有非易失性存储空间以存储8byte密钥(用于编解 ...

老哥看来对这方面比较了解,请教一下:
我看别的一个产品,遥控器用的EV1527,他的说明书里说使用了 KEELOQ,这可能是怎么实现的?

出0入84汤圆

发表于 2021-1-20 12:30:29 | 显示全部楼层
startwar0418 发表于 2021-1-20 12:23
老哥看来对这方面比较了解,请教一下:
我看别的一个产品,遥控器用的EV1527,他的说明书里说使用了 KEEL ...

随便说说的呗,你还别当真了

出0入36汤圆

发表于 2021-1-20 12:33:23 | 显示全部楼层
startwar0418 发表于 2021-1-20 12:23
老哥看来对这方面比较了解,请教一下:
我看别的一个产品,遥控器用的EV1527,他的说明书里说使用了 KEEL ...

EV1572自带编码模块的,只要自己处理解码就行了,我记得是,所以完全可以实现

出0入0汤圆

发表于 2021-1-20 23:47:31 来自手机 | 显示全部楼层
norman33 发表于 2021-1-20 10:02
解别人的东西,有了算法你还要:
1. 要求编码端和解码端都需要有非易失性存储空间以存储8byte密钥(用于编解 ...

不知道兄弟是否从事过KEELOQ滚动码?这个是微芯的专利,编码算法保密,解码几乎公开的。这就是非线性非对称算法牛的地方。告诉你公式你依然无法知道如何编码。16年前我做过这个的解码,有汇编的也有c语言的,很遗憾已经年久丢失了代码,当时用于汽车中控锁

出0入8汤圆

发表于 2021-1-21 16:33:43 | 显示全部楼层
纯C语言,不嵌入汇编,是stm8上的代码

//********************************解码位判断*********************************//
#define BIT_TEST(x, y)  (((x)&(1<<(y)))!= 0)


void Keeloq_Decrypt(void)                           //函数解码
{
    unsigned char i,j,key;
    signed char  p;
   
    uint32_t temp[4]; //
    uint32_t Sum=0;
    uint8_t Aux_temp;
   
    p = 1;
    for (j=66; j>0; j--)
    {
        key = KEY_D[p--];
        if (p < 0)
              p += 8;
        for (i=8; i>0; i--)
        {
            if ( BIT_TEST( Buffer[3],6))
            {
                if (!BIT_TEST( Buffer[3],1))
                    aux = 0x3a;              // 10
                else
                    aux = 0x5c;              // 11
            }
            else
            {
                if (!BIT_TEST( Buffer[3],1))
                    aux = 0x74;              // 00
                else
                    aux = 0x2e;              // 01
            }
            if (BIT_TEST( Buffer[2],3))  
              
              aux=((aux&0x0f)<<4)|(aux>>4);

            
            
            if (BIT_TEST( Buffer[1],0))     aux <<= 2;
            if (BIT_TEST( Buffer[0],0))     aux <<= 1;
            aux ^= Buffer[1] ^ Buffer[3] ^ key;  
            
            

            
            temp[0]=Buffer[0];
            temp[1]=Buffer[1];
            temp[2]=Buffer[2];
            temp[3]=Buffer[3];
            Aux_temp=aux;
            
            temp[1]=temp[1]<<8;
            temp[2]=temp[2]<<16;
            temp[3]=temp[3]<<24;

            
            Sum=temp[0]+temp[1]+temp[2]+temp[3];
            Sum=(Sum<<1)&0xfffffffe;
            Aux_temp=Aux_temp&0x80;
            Aux_temp=Aux_temp>>7;
            Sum=Sum+Aux_temp;
            
            Buffer[0]=(uint8_t) (Sum&0x000000ff);
            Buffer[1]=(uint8_t) ((Sum&0x0000ff00)>>8);
            Buffer[2]=(uint8_t) ((Sum&0x00ff0000)>>16);
            Buffer[3]=(uint8_t) ((Sum&0xff000000)>>24);
            
            key <<= 1;
        }
    }
}

出0入0汤圆

发表于 2021-1-21 19:05:37 | 显示全部楼层
本帖最后由 oldban 于 2021-1-22 12:13 编辑
appleboy 发表于 2021-1-20 23:47
不知道兄弟是否从事过KEELOQ滚动码?这个是微芯的专利,编码算法保密,解码几乎公开的。这就是非线性非对 ...


从解码算法可以反推出编码算法,我以前弄过

出0入0汤圆

发表于 2021-1-22 14:32:18 | 显示全部楼层
楼上几位老大帮忙看看这是什么芯片,没有直接查到

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-18 19:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表