找回密码
 立即注册
查看: 549|回复: 2

一线通数据发送程序求解

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-12 09:07:08
已绑定手机

4

主题

14

回帖

21

积分

新手上路

积分
21
发表于 2025-2-19 11:51:03 | 显示全部楼层 |阅读模式
我的电池带有一线通,但是新买的电池没有导致无法使用,用逻辑分析抓数据,得到重复发送的数据是0x03,0x01,0x80,0x93,0x63,0x35,0x0F,0x0E,0x00,0x01,0x93,0xd4,但是我用单片机模拟发送电动车不识别,有大神看看我的发送程序有问题吗。
  1. #include "STC89C5xRC.H"
  2. //#include "intrins.h"
  3. //一线通
  4. #define u8 unsigned char  //对数据类型进行声明定义
  5. u8 SIFXOR;
  6. u8  SIF[] = {0x03,0x01,0x80,0x93,0x63,0x35,0x0F,0x0E,0x00,0x01,0x93,0xd4};
  7. sbit  k4=P1^7;
  8. sbit  k3=P1^6;
  9. sbit  DQ=P3^3;
  10. void delay500us(void)   //误差 0.5ms0us
  11. {
  12.      u8 a,b;
  13.     for(b=71;b>0;b--)
  14.         for(a=2;a>0;a--);
  15. }
  16. void delay16ms(void)   //误差 5.5ms0us
  17. {
  18.     u8 a,b;
  19.      
  20.     for(b=239;b>0;b--)
  21.         for(a=10;a>0;a--);
  22. }
  23. void delay490us(void)   //误差 0us
  24. {
  25.     unsigned char a,b;
  26.     for(b=1;b>0;b--)
  27.         for(a=242;a>0;a--);
  28. }
  29. void XOR()
  30. {
  31.     SIFXOR=SIF[0]^SIF[1]^SIF[2]^SIF[3]^SIF[4]^SIF[5]^SIF[6]^SIF[7]^SIF[8]^SIF[9]^SIF[10]^SIF[11];
  32.     SIF[12]=SIFXOR;
  33. }
  34. void WByte(u8 input)
  35. {
  36.     //发送启始位
  37.     u8 i=8;
  38.     u8 b=0;
  39.     while(i--)
  40.     {
  41.         b=(bit)(input&0x80);
  42.         if ( b==1  )
  43.         {
  44.             DQ=0;
  45.             delay500us();
  46.             DQ=1;
  47.             delay500us();
  48.             delay500us();
  49. DQ=0;
  50.         }
  51.         else
  52.         {
  53.             DQ=0;
  54.             delay500us();
  55.             delay500us();
  56.             DQ=1;
  57.             delay490us();
  58. DQ=0;
  59.         }
  60.         input=input<<1;
  61. // DQ=0;
  62.     }
  63. }
  64. void OUTSIF()
  65. {
  66.     u8 i=12;
  67.     DQ=0;
  68.     delay16ms();//同步信号
  69.     DQ=1;
  70.     delay500us();
  71.     while(i--)
  72.     {
  73.         u8 DAT=0;
  74.         WByte(SIF[DAT]);     //先传低位
  75.         DAT++;
  76.     }
  77.     DQ=0;
  78. }
  79. void main(void)
  80. {
  81. //    P3M0 |= 0x08; P3M1 &= ~0x08;
  82.     XOR();
  83.     DQ=1;
  84. delay16ms();delay16ms();delay16ms();delay16ms();
  85. delay16ms();delay16ms();delay16ms();delay16ms();
  86. DQ=0;
  87. delay16ms();delay16ms();delay16ms();delay16ms();delay16ms();delay16ms();
  88. DQ=1;
  89. delay16ms();delay16ms();delay16ms();delay16ms();
  90. delay16ms();delay16ms();delay16ms();delay16ms();
  91. //VV=6;
  92.     while(1)
  93.     {
  94. //dianlaing ();
  95. //key();
  96. OUTSIF();
  97. delay16ms();delay16ms();delay16ms();delay16ms();
  98. delay16ms();delay16ms();delay16ms();delay16ms();
  99. }
  100. }
复制代码

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-12 09:07:08
已绑定手机

4

主题

14

回帖

21

积分

新手上路

积分
21
发表于 2025-2-19 11:51:45 | 显示全部楼层
一线通协议是SIF协议
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2025-05-12 13:58:58
已绑定手机

5

主题

39

回帖

824

积分

高级会员

积分
824
发表于 2025-2-19 15:03:24 | 显示全部楼层

估计是先有个握手,一闪而过了,你没捕捉到,只是抓到了握手后的通讯数据。

没有握手成功,车辆肯定不会响应的,有的电池还是加密通讯的,没有具体厂家协议只能猜了。

回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-12 23:02 , Processed in 0.110630 second(s), 61 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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