AS3933, 125K 接收

硬件平台: STM32F103C8T6

软件平台:keil MDK

 

 

#define LEARN_KEY   GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)    //学习按键
#define SEND_KEY    GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_4)	//发送按键
#define MODE_KEY    GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5)    //模式按键
#define RFin   			GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)    //高频433接收

 

 

串口协议:

#define  DEBUG_USART_BAUDRATE    9600

#define ONOFF_SCAN  Set_Buff[0]   //ON/OFF,Scan模式
#define PATTREN_BIT Set_Buff[1]   //Pattren 32/16bit模式  0 16bit 1 32bit
#define PATTERN1    Set_Buff[2]   //pattern的值 R6
#define PATTERN2    Set_Buff[3]   //pattern的值 R5
#define LFBIT_NxRC  Set_Buff[4]		//编码速率	
#define LFSENDMODE  Set_Buff[5]   //LF发送模式 0 载波+正文  1 载波+前导+模式+正文
#define LF_ENABLE   Set_Buff[6]   //使能低频发送    1发送  非1停止
#define LFWOKEMODE  Set_Buff[7]   //LF发射方式      0手动   1自动
#define SEND_RSSI   Set_Buff[8]   //LF发射功率强度   取值0 - 7
#define INTERVAL1   Set_Buff[9]   //发送周期
#define INTERVAL2   Set_Buff[10]  //发送周期(INTERVAL1 * 256 + INTERVAL2)/10  ms
#define DELAY1      Set_Buff[11]  //配置完成延时启动时间
#define DELAY2      Set_Buff[12]  //配置完成延时启动时间  DELAY1 * 256 + DELAY2 ms
#define DEVICE_ID1  Set_Buff[13]	//设备¸ID1
#define DEVICE_ID2  Set_Buff[14]  //设备¸ID2
#define ACTIVE_NUM  Set_Buff[15]  //激活ID的字节数 (DATA/正文)
#define ACTIVE_ID1  Set_Buff[16]  //激活ID1
#define ACTIVE_ID2  Set_Buff[17]  //激活ID2
#define ACTIVE_ID3  Set_Buff[18]  //激活ID3
#define ACTIVE_ID4  Set_Buff[19]  //激活ID4
#define ACTIVE_ID5  Set_Buff[20]  //激活ID5
#define ACTIVE_ID6  Set_Buff[21]  //激活ID6
#define ACTIVE_ID7  Set_Buff[22]  //激活ID7
#define ACTIVE_ID8  Set_Buff[23]  //激活ID8
#define ACTIVE_ID9  Set_Buff[24]  //激活ID9

 

 

心跳包: CC 00 01 01 C3 3A 01 01 4F 4B 05 89 EE 

Heartbeat_Buff[0] = 0xCC;               //心跳数据
Heartbeat_Buff[1] = DEVICE_ID1;
Heartbeat_Buff[2] = DEVICE_ID2;								
Heartbeat_Buff[3] = LF_ENABLE;
Heartbeat_Buff[4] = PATTERN1;
Heartbeat_Buff[5] = PATTERN2;
Heartbeat_Buff[6] = ACTIVE_NUM;										
Heartbeat_Buff[7]  = ACTIVE_ID1;		
Heartbeat_Buff[8]  = ACTIVE_ID2;		
Heartbeat_Buff[9]  = ACTIVE_ID3;										
Heartbeat_Buff[10] = ACTIVE_ID4;	
Heartbeat_Buff[11] = ACTIVE_ID5;		
Heartbeat_Buff[12] = ACTIVE_ID6;	
Heartbeat_Buff[13] = ACTIVE_ID7;		
Heartbeat_Buff[14] = ACTIVE_ID8;		
Heartbeat_Buff[15] = ACTIVE_ID9;	
Heartbeat_Buff[7 + ACTIVE_NUM] = 0x4F;
Heartbeat_Buff[8 + ACTIVE_NUM] = 0x4B;
crc = GetCRC16(Heartbeat_Buff, ACTIVE_NUM + 9);  //计算CRC数据值							
Heartbeat_Buff[9 + ACTIVE_NUM] = crc & 0xFF;
Heartbeat_Buff[10  + ACTIVE_NUM] = crc >> 8;
Heartbeat_Buff[11 + ACTIVE_NUM] = 0xEE;	

 

心跳包: CC 00 01 01 C3 3A 01 01 4F 4B 05 89 EE 

0xCC:心跳数据设备ID1
DEVICE_ID1
设备ID2
DEVICE_ID2
使能低频发送
1:发送
非 1:停止
LF_ENABLE
Pattren的值 R6Pattren的值 R5激活的ID字节数
ACTIVE_NUM
激活ID1
ACTIVE_ID1
0x4F0x4BCRC低8位CRC高8位0xEE
Heartbeat_Buff[0]Heartbeat_Buff[1]Heartbeat_Buff[2]Heartbeat_Buff[3]Heartbeat_Buff[4]Heartbeat_Buff[5]Heartbeat_Buff[6]Heartbeat_Buff[7]Heartbeat_Buff[16]Heartbeat_Buff[17]Heartbeat_Buff[18]Heartbeat_Buff[19]Heartbeat_Buff[20]
CC000101C33A01014F4B0589EE

 

设置成功数据帧: 13字节

Uart1Write(buf, ACTIVE_NUM + 12);

CC 00 01 01 C3 3A 01 01 4F 4B 05 89 EE

 

 

T读取帧:

DD 00 01 3A 20 EE 

R读取帧,回复设置成功数据帧:

AA 00 01 C3 3A 0C 01 01 01 07 02 00 05 00 00 01 01 01 FD 87 EE 

 

执行:

AA 00 01 C3 3A 0C 01 01 01 07 02 00 05 00 00 01 01 01 FD 87 EE 
 

0xAA: 设置帧
0xDD: 读取帧
0xCC:心跳数据
ON/OFF,Scan模式Pattren 32/16bit模式
0-16bit   1-32bit
Pattren的值 R6Pattren的值 R5编码速率LF发送模式
0-载波+正文
1-载波+前导+模式+正文
使能低频发送
1:发送
非 1:停止
LF发射方式
0: 手动
1:自动
LF发射功率强度
取值0-7
发送周期发送周期
(INTERVAL1 * 256 + INTERVAL2)/10  ms
配置完成延时启动配置完成延时启动设备ID1设备ID2激活的ID字节数激活ID1CRC_HCRC_L0xEE
 ONOFF_SCANPATTREN_BITPATTERN1PATTERN2LFBIT_NxRCLFSENDMODELF_ENABLELFWOKEMODESEND_RSSIINTERVAL1INTERVAL2DELAY1DELAY2DEVICE_ID1DEVICE_ID2ACTIVE_NUMACTIVE_ID1   
AA0001C33A0C0101010402000500000101010D93EE

 

高频数据:DD 04 DF F3 70 01 B1 CC EE

 

LF_Mode = 0;        //自动模式

if(LF_Mode) Mode_LED_ON;       //手动模式,LED亮
else                Mode_LED_OFF;   //自动模式,LED灭

 

 

 

 

低频125K 接收数据:

1F 1B 1F

 

 

LF_ENABLE,ACTIVE_NUM 及SEND_RSSI 在 AT24C02中定死,为初次设定固定值。

if((LF_ENABLE <= 1)&&(ACTIVE_NUM <= 9)&&(SEND_RSSI <= 7))

如果符合上述调节,判定为数据合格。

 

判定合格后,设置 数据合格标志位:Set_flag =1.

若数据不合格,设置 数据合格标志位:Set_flag =0.

 

 

Delay_Tim,

 

 

void Uart1RxMonitor(uint8_t ms)  //串口接收监控函数, 在定时器中,每1ms进入一次。

cmdArrived = 1;  //串口一帧数据接收完毕后标志位

 

在cmdArrived = 1 后会将 Delay_Tim赋值, 让125K低频发送 延时 Delay_Tim。  Delay_Tim  = 0初值为0.

Delay_Tim  = (DELAY1 >> 4)* 1000 + (DELAY1 & 0x0F) * 100 + (DELAY2 >> 4) * 10 + (DELAY2 & 0x0F); //低频延迟发送时间

DELAY1=05;

DELAY2=00;

DELAY1,DELAY2,在初始配置中配置好,保存于AT24C02中,属于固定值。

 

LF_Send_flag  :  手动发送标志位。

 

if((LF_Mode)||(LFWOKEMODE == 0)) LF_Send_flag = 1;     //LF_Send_flag仅在此处置1,默认值为0.

LF_Mode = 0;                           / / LF发射模式     0: 自动    1:手动

LFWOKEMODE                       / / LF发射方式    0: 手动    1:自动

 

 

上位机软件配置:

 

点击执行发送:  上位机软件----> MCU (配置参数)

发送:AA 00 01 C3 3A 0C 01 01 01 07 02 00 05 00 00 01 01 01 FD 87 EE 

(上述数据为截图所示配置数据,默认配置),MCU接收到后配置上述参数,然后参数保存至FLASH。

 

点击读取,则读取flash内保存的参数:上位机软件----> MCU  (读取MCU配置参数)

发送:DD 00 01 3A 20 EE

MCU会回复数据:AA 00 01 C3 3A 0C 01 01 01 07 02 00 05 00 00 01 01 01 FD 87 EE

 


发射端 7.4v供电时

配置LF发送强度为7 :AA 00 01 C3 3A 0C 01 01 01 07 02 00 05 00 00 01 01 01 FD 87 EE 

(回复:BB 00 01 01 C3 3A 01 01 4F 4B F4 3A EE)

感应距离最大2.5mm  ,  在2.4m,2.5m左右可以感应到数据。在2.8mm距离感应不到数据。

 

 

配置LF发送强度为6 :AA 00 01 C3 3A 0C 01 01 01 06 02 00 05 00 00 01 01 01 6D 8A EE   

(回复:BB 00 01 01 C3 3A 01 01 4F 4B F4 3A EE)

感应距离最大2.4m可以感应到数据。超过1.5m距离感应不到数据。

 

配置LF发送强度为5 :AA 00 01 C3 3A 0C 01 01 01 05 02 00 05 00 00 01 01 01 9D 9E EE  

(回复:BB 00 01 01 C3 3A 01 01 4F 4B F4 3A EE)

感应距离最大2.3m可以感应到数据。超过1.5m距离感应不到数据。

 

配置LF发送强度为4 :AA 00 01 C3 3A 0C 01 01 01 04 02 00 05 00 00 01 01 01 0D 93 EE 

(回复:BB 00 01 01 C3 3A 01 01 4F 4B F4 3A EE) 

感应距离最大2.1 m可以感应到数据。超过1.5m距离感应不到数据。

 

配置LF发送强度为3 :AA 00 01 C3 3A 0C 01 01 01 03 02 00 05 00 00 01 01 01 3D B5 EE  

(回复:BB 00 01 01 C3 3A 01 01 4F 4B F4 3A EE )

感应距离最大1.9m可以感应到数据。超过1.5m距离感应不到数据。

 

配置LF发送强度为2 :AA 00 01 C3 3A 0C 01 01 01 02 02 00 05 00 00 01 01 01 AD B8 EE   

(回复:BB 00 01 01 C3 3A 01 01 4F 4B F4 3A EE)

感应距离最大1.8m可以感应到数据。超过1.5m距离感应不到数据。

 

配置LF发送强度为1 :AA 00 01 C3 3A 0C 01 01 01 01 02 00 05 00 00 01 01 01 5D AC EE  

(回复:BB 00 01 01 C3 3A 01 01 4F 4B F4 3A EE)

感应距离最大1.4m可以感应到数据。超过1.5m距离感应不到数据。

 

配置LF发送强度为0 :AA 00 01 C3 3A 0C 01 01 01 00 02 00 05 00 00 01 01 01 CD A1 EE 

(回复:BB 00 01 01 C3 3A 01 01 4F 4B F4 3A EE)

感应距离最大0.9m可以感应到数据。超过1.5m距离感应不到数据。

 

 

8.43V供电时: 最大感应距离

强度7-------------- 2.8m

强度6-------------- 2.7m

强度5-------------- 2.3m

强度4-------------- 2.2m

强度3--------------2 m

强度2-------------- 1.9m

强度1-------------- 1.5m

强度0-------------- 1m

 

以上距离为目测估值。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值