You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
409 lines
11 KiB
409 lines
11 KiB
4 years ago
|
//////////////////////////////////////////////////////////////////////////
|
||
|
/// COPYRIGHT NOTICE
|
||
|
/// Copyright (c) 2018, ���ؿƼ�
|
||
|
/// All rights reserved.
|
||
|
///
|
||
|
/// @file tpc_fsk.c
|
||
|
/// @brief transaction protocol control of fsk
|
||
|
///
|
||
|
///�����ļ�ʵ�ֵĹ��ܵ�������
|
||
|
///
|
||
|
/// @version 1.1 CCsens technology
|
||
|
/// @author CC
|
||
|
/// @date 20150102
|
||
|
///
|
||
|
///
|
||
|
/// @version 1.2 CCsens technology
|
||
|
/// @author CC
|
||
|
/// @date 20180308
|
||
|
/// @info ����
|
||
|
|
||
|
//
|
||
|
//////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
/*****************************************************************************
|
||
|
@version 1.2
|
||
|
update by cc @201501101001
|
||
|
���Զമ�� �� ��һ���� ������ ÿ�������Ƕ����Ļ��Ƿֿ����н��� �����Ǹ��ӵĻ�������Ӧ�ü�����
|
||
|
����Ҫƽ��������.
|
||
|
|
||
|
clib/uartlib.c:
|
||
|
���õĺ��� ��Ӳ����
|
||
|
���ո���Э���Ĵ�������
|
||
|
���ô���ģʽ(���ڵ�����ͨѶ������������)�����ĺ���,
|
||
|
һЩ����ģʽ������(lcd�ȹ���������)��Ҳ��ʹ��
|
||
|
void Lc_print(void (*L0pf_send_uc)(char ww), char *dat,...)
|
||
|
-----------------------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
-----------------------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
--------------------------------------------------------------------------------------------
|
||
|
msp/uartx.c �ײ����� ��cpu����
|
||
|
L0_UART0_Init
|
||
|
UART0_IRQHandler
|
||
|
L0_Usend_uc----------s_at0
|
||
|
-----------------------------------------------------------------------------------------
|
||
|
********************************************************************************/
|
||
|
|
||
|
|
||
|
|
||
|
#ifndef __TPC_UART_H_
|
||
|
#define __TPC_UART_H_
|
||
|
|
||
|
#include "../clib/Type.h"
|
||
|
#include "../bsp/bsp_config.h"
|
||
|
|
||
|
|
||
|
// 20170609
|
||
|
|
||
|
///-----------------------------------------------------
|
||
|
|
||
|
|
||
|
|
||
|
//L0_type_byte(ts_cmd_pro0)[]
|
||
|
//#define D_CMD_Filter1 0xA5
|
||
|
//#define D_CMD_Filter2 0x5A
|
||
|
#define D_CMD_Filter1 0x0a
|
||
|
#define D_CMD_Filter2 0x0d
|
||
|
|
||
|
#define D_CMD_Filter1_ff 0xFF
|
||
|
#define D_CMD_Filter2_fe 0xFE
|
||
|
|
||
|
|
||
|
|
||
|
///Э������: ʮ������Э��1->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
/// ���͵�����Ϊ��fx��ͷ��ʮ�����ƵĶ�Э�飬�ͳ�Э������������֡ͷ����Ϊ1���ֽ��⣬���ݵij���Ҳ�DZȽϾ��ְ�λ�����ģ��ʺϵͲ�����rf433֮���Ĵ���
|
||
|
///����5�� �ʺ��ڴ�������ʱ�ϴ�
|
||
|
/// R1
|
||
|
///� 7 6 5 4 3 2 1 0
|
||
|
///���� ����������AS1 (0---15) ����������AS2 (0---15)
|
||
|
|
||
|
/// R2
|
||
|
///� 7 6 5 4 3 2 1 0
|
||
|
///���� ��ѹPress (0---15) open mic
|
||
|
|
||
|
/// R3
|
||
|
///� 7 6 5 4 3 2 1 0
|
||
|
///���� Temp (0---15) Gsensor(0---15)
|
||
|
|
||
|
typedef struct
|
||
|
{//8byte
|
||
|
/////////
|
||
|
vU8 as2:4;
|
||
|
vU8 as1:4;
|
||
|
/////////
|
||
|
vU8 mic:3;
|
||
|
vU8 open:1;
|
||
|
vU8 press:4;
|
||
|
////////////////
|
||
|
vU8 Gsensor:4;
|
||
|
vU8 temp:4;
|
||
|
///////////
|
||
|
}TS_P_pc_dat;
|
||
|
|
||
|
typedef struct
|
||
|
{//8byte
|
||
|
/////////
|
||
|
U8 cameraBoardPower; //��ǰ�е�4�����ɼ���ͼ������
|
||
|
vU16 paperNum:10; //10bitֽ������ ��ʾ��������1024 ʵ��170��
|
||
|
vU16 cameraIndex:4; //����ͷ����
|
||
|
vU16 cameraWorking:1; //�Ƿ���������
|
||
|
vU16 LowPower:1; // =1 lowPower ������Ҫ����,����δ���ӵ���
|
||
|
}TS_P_paper;
|
||
|
|
||
|
//NUM: 0 1 2 3 4
|
||
|
// Fx R1 R2 R3 ocr
|
||
|
// F+�ӻ� R1 R2 R3 У��
|
||
|
typedef struct _s_P_rf_
|
||
|
{//8byte
|
||
|
vU8 slave:4;
|
||
|
vU8 filter1:4;
|
||
|
////////////////
|
||
|
TS_P_paper r123;
|
||
|
vU8 ocr;
|
||
|
}TS_P_rf;
|
||
|
|
||
|
typedef struct _s_P_rf433_
|
||
|
{//8byte
|
||
|
vU8 ha;
|
||
|
// vU8 hb;
|
||
|
|
||
|
vU8 slave:4;
|
||
|
vU8 filter1:4;
|
||
|
////////////////
|
||
|
TS_P_paper r123;
|
||
|
vU8 ocr;
|
||
|
/// vU8 hc;
|
||
|
}TS_P_rf433;
|
||
|
|
||
|
//NUM: 0 1 2 3 4
|
||
|
// Fx R1 R2 R3 ocr
|
||
|
// F+�ӻ� R1 R2 R3 У��
|
||
|
|
||
|
typedef struct
|
||
|
{//8byte
|
||
|
vU8 slave:4;
|
||
|
vU8 filter1:4;
|
||
|
////////////////
|
||
|
vU8 G1;
|
||
|
////////////////
|
||
|
vU8 G2;
|
||
|
////////////////
|
||
|
vU8 Tmp:4;
|
||
|
vU8 Press:4;
|
||
|
////////////////
|
||
|
vU8 ocr;
|
||
|
}TS_P_as;
|
||
|
|
||
|
typedef struct
|
||
|
{//8byte
|
||
|
vU8 slave:4;
|
||
|
vU8 filter1:4;
|
||
|
////////////////
|
||
|
vU8 cmd;
|
||
|
////////////////
|
||
|
vU8 R2;
|
||
|
////////////////
|
||
|
vU8 R3;
|
||
|
////////////////
|
||
|
vU8 ocr;
|
||
|
}TS_P_debug;
|
||
|
|
||
|
|
||
|
#define D_HETU_FX_fi 0xa0 ///2018.7.7
|
||
|
#define D_HETU_FX_H4 0xf0 ///2018.7.7
|
||
|
|
||
|
#define D_HETU_FX_buf_max 4 //max ����ָʵ�ʵ�����,num����cnt��ָ��ʱ��
|
||
|
/// Hex RTU Protocol 0xFx
|
||
|
typedef struct
|
||
|
{//8byte
|
||
|
vU8 reg;
|
||
|
vU8 n;
|
||
|
vU8 head; //���ձ�־ͷ��־
|
||
|
vU8 ok; //����Э��ok��־
|
||
|
vU8 num;
|
||
|
// vU8 cmd;
|
||
|
vU8 ocr;
|
||
|
// vU8 *sp;
|
||
|
U8 buf[D_HETU_FX_buf_max+1];
|
||
|
}TS_Handle_PH1;
|
||
|
|
||
|
|
||
|
extern void L1_s2b_PH1 (TS_Handle_PH1 *p);// reentrant;
|
||
|
|
||
|
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
|
||
|
///Э������: ʮ������Э��2->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
/// ���͵�����Ϊ��ff fe��ͷ��ʮ�����Ƶij�Э�飬������������
|
||
|
///FF FE 52 03 98 77 88 99 ��ַΪ0x52�Ĵӻ�, ��PC������3������0x77,0x88,0x99
|
||
|
|
||
|
///FF FE 06 03 e5 77 88 99 ����(0x06)Я����3������0x77,0x88,0x99��У��Ϊ0x98(=0x06+0x03+0x77+0x88+0x99�������ݵĺ�)
|
||
|
///��:У��λ=0x12+0x34+0x56=0x9c;ȡ��λ�ֽڵõ�OCR=0x9c
|
||
|
|
||
|
typedef struct
|
||
|
{//8byte
|
||
|
vU8 filter1;
|
||
|
vU8 filter2;
|
||
|
vU8 addr; //���ͷ��ĵ�ַ������
|
||
|
vU8 num; //���յ������ݵļ����� �������ݽ��ն��仯ע�����ݳ��ȵķ�Χ
|
||
|
vU8 ocr;
|
||
|
vU8 buf[4];//--->_s_P_pc_dat_
|
||
|
}TS_P_pc;
|
||
|
|
||
|
// FF FE 10 02 0C 51 03
|
||
|
// cashe[1] cashe[0] ���� ���� У�� ����1 �ӻ� ����2 ����
|
||
|
// filter2 filter1
|
||
|
struct _s_PH2_FFFE_
|
||
|
{//8byte
|
||
|
vU8 cashe[2];
|
||
|
vU8 reg;
|
||
|
vU8 max; //���յ�����Ŀ������ֵ
|
||
|
vU8 head_0;
|
||
|
vU8 head_1;
|
||
|
// vU8 sub_num; //���յ�����Ŀע�����ݳ��ȵķ�Χ
|
||
|
vU8 head; //���ձ�־ͷ��־
|
||
|
vU8 ok; //����Э��ok��־
|
||
|
vU8 num;
|
||
|
vU8 *sp;
|
||
|
TS_P_pc s_FF;
|
||
|
// U8 pro[16]; ///��������
|
||
|
};
|
||
|
|
||
|
extern void L1_s2b_PH2(struct _s_PH2_FFFE_ *p);// reentrant;
|
||
|
|
||
|
|
||
|
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
///Э������: ʮ������Э��3->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
/// ���͵�����Ϊ��ff fe��ͷ��ʮ�����Ƶij�Э�飬�ڰ�������modbusЭ��
|
||
|
///FF FE 08 52 16 11 22 33 44 F5 9F ������һ��modbusЭ����(8������52 16 11 22 33 44 F5 9F )
|
||
|
/// Э����������˼Ϊ��ַΪ0x52�Ĵӻ�, ������16 ����Ϊ11 22 33 44,У���� F5 9F
|
||
|
/// У�����ķ�ΧΪ
|
||
|
#define TS_PH3_FILTER0 0xFF
|
||
|
#define TS_PH3_FILTER1 0xFE
|
||
|
|
||
|
#define D_s_PH3_ccmodbus_max (16 + 8)
|
||
|
typedef struct
|
||
|
{
|
||
|
U8 filter0;
|
||
|
U8 filter1;
|
||
|
U8 num;
|
||
|
U8 src; //Դ�豸ID
|
||
|
U8 dst; //Ŀ���豸ID
|
||
|
U8 oper;
|
||
|
U8 buf[D_s_PH3_ccmodbus_max - 8];
|
||
|
U8 crc[2];
|
||
|
}TS_PH3_ccmodbus;
|
||
|
|
||
|
typedef struct
|
||
|
{//8byte
|
||
|
U8 cashe[2];
|
||
|
U8 reg;
|
||
|
U8 max; //���յ�����Ŀ������ֵ
|
||
|
U8 head_0;
|
||
|
U8 head_1;
|
||
|
// vU8 sub_num; //���յ�����Ŀע�����ݳ��ȵķ�Χ
|
||
|
vU8 head; //���ձ�־ͷ��־
|
||
|
vU8 ok; //����Э��ok��־
|
||
|
vU8 num;
|
||
|
vU8 *sp;
|
||
|
U8 _buf[D_s_PH3_ccmodbus_max]; ///��������
|
||
|
U8 buf[D_s_PH3_ccmodbus_max];
|
||
|
}TS_Handle_PH3;
|
||
|
|
||
|
extern void L1_s2b_PH3_init(TS_Handle_PH3 *p);
|
||
|
extern void L1_s2b_PH3(TS_Handle_PH3 *p);// reentrant;
|
||
|
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
|
||
|
///Э������: �ַ���Э��1->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
/// ���͵�����Ϊ�Իس�����(��0x0a 0x0d)Ϊ��β���ַ��ͳ�Э�飬���������Ƚ���ȷ�������ַ��Ͷ�Ӧ�����ݣ��ʺ�debug������Ҫ�ߣ�������
|
||
|
/// �����ij���
|
||
|
|
||
|
///-----------------------------------------------------------------------------------------
|
||
|
#define D_s_SSTR_0D0A_len 16 //str����Э����Ҫ���ȴ�һЩ������bug�ĵط�������Ϊ����64bytes������
|
||
|
struct _s_PC1_0D0A_
|
||
|
{//8byte
|
||
|
vU8 reg;
|
||
|
// vU8 sub_num; //���յ�����Ŀע�����ݳ��ȵķ�Χ
|
||
|
vU8 head; //���ձ�־ͷ��־
|
||
|
|
||
|
vU8 cashe[2];
|
||
|
//vU8 filter1;
|
||
|
//vU8 filter2;
|
||
|
vU8 num; //���յ������ݵļ����� �������ݽ��ն��仯ע�����ݳ��ȵķ�Χ
|
||
|
|
||
|
vU8 ok; //����Э��ok��־
|
||
|
vU8 max; //���յ�����Ŀ������ֵ
|
||
|
vU8 buf[D_s_SSTR_0D0A_len+1];//buffer �ĵ�һλ�� ����
|
||
|
// U8 pro[16]; ///��������
|
||
|
};
|
||
|
extern void L1_s2b_PC1(struct _s_PC1_0D0A_ *p);// reentrant;
|
||
|
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
///modebusЭ��ͨѶʹ��>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
#ifdef doc_98098908
|
||
|
///Modbus��������RTUģʽͨ�ţ�����Ϣ�е�ÿ��8Bit�ֽڰ���ԭֵ���ͣ�������������63H��RTU��ֱ�ӷ���01100011��
|
||
|
////���ַ�ʽ����Ҫ�ŵ��ǣ�����֡����֮��û�м�������ͬ�������´������ݵ��ܶ�Ҫ��ASCII�ߣ������ٶȸ��� [1] ��
|
||
|
////ASCIIģʽʹ�õ��ַ�����RTUģʽ����������ASCII���ݵ������ʹ�����Ϊ����һЩ�����⣬��RTUģʽʱ�����ַ���������������������ʽ���ͣ�
|
||
|
///��ASCIIģʽ���ַ�֮���ɲ�������1s�ļ���������Ӧ�ٶȽ����Ļ���
|
||
|
///01 16 1000 1234 ABCD
|
||
|
///���δ�������˼ �� �� ��ַ 01 �� ������ д�� 1000 1234 �� ������ô����
|
||
|
////��ַ�� ����ָ ��վ�ĵ�ַ������һ����Ƶ����������һ���DZ���������ַ��������ͨѶ��ַ
|
||
|
///������ ������Ҫ�������飬ͨѶ��Ŀ�� ���Ƕ�д���ݣ����� MODBUS ��������Ȼ�ܶ࣬����ֻ�����������dz��õģ����Ƕ���д��
|
||
|
///���Ĺ�������03 д�Ĺ�������16��ע�⣬�����Ķ�д����һ����д16��λ��Ҳ����һ��WORD.
|
||
|
///Address Function Data Check
|
||
|
///8-Bits 8-Bits N x 8-Bits 16-Bits
|
||
|
/// ���ܣ�Function����
|
||
|
/// ���������������˱�Ѱַ�����ն�ִ�к��ֹ��ܡ��±��г��˸�ϵ���DZ��õ��Ĺ����룬�Լ����ǵ��������ܡ�
|
||
|
/// ���� ���� ��Ϊ
|
||
|
/// 03 �����ݼĴ��� ����һ���������Ĵ����ĵ�ǰ������ֵ
|
||
|
/// 16 Ԥ�ö��Ĵ��� �趨������ֵ��һϵ�ж��Ĵ�����(����ACRXXXE����)
|
||
|
|
||
|
|
||
|
///��ɢ���������������������Ƕ�ͬһ�����źŵIJ�ͬ˵����
|
||
|
///0��ʾ�Ͽ���1��ʾ��ͨ����PLC�����ƿ����豸�У�����һ�ֲ����͵ı���?
|
||
|
///����Զ///��PLC�е�Y/Q�������������͵��ź�
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
///cc�Ľ�����modebusЭ�飬������һ��֡ͷ
|
||
|
/// ff fe num add function dat check
|
||
|
#endif
|
||
|
|
||
|
|
||
|
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
///Э��ͨѶʹ��>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
#define D_s_protocol_len 32
|
||
|
struct _s_protocol_
|
||
|
{//8byte
|
||
|
vU8 rbr;
|
||
|
vU8 reg;
|
||
|
vU8 cashe[3];
|
||
|
vU8 filter1;
|
||
|
vU8 filter2;
|
||
|
vU8 (*pfun_get)(void);
|
||
|
vU8 num; //���յ�����Ŀע�����ݳ��ȵķ�Χ
|
||
|
vU8 sub_num; //���յ�����Ŀע�����ݳ��ȵķ�Χ
|
||
|
vU8 head; //���ձ�־ͷ��־
|
||
|
vU8 ok; //����Э��ok��־
|
||
|
vU8 data_ok; //����Э��ok��־
|
||
|
vU8 ucXor;
|
||
|
vU8 array[D_s_protocol_len];//buffer �ĵ�һλ�� ����
|
||
|
vU8 buf[D_s_protocol_len];//buffer �ĵ�һλ�� ����
|
||
|
vU8 buf2[12];//buffer �ĵ�һλ�� ����
|
||
|
};
|
||
|
|
||
|
extern void L1_uart_2buf(struct _s_protocol_ *p);
|
||
|
|
||
|
|
||
|
|
||
|
//485
|
||
|
///Э������: ʮ������Э��2 ����ַ�ж��� �ڶ����ǵ�ַ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
#define D_HETU_FXA 0xaa
|
||
|
|
||
|
#define D_HETU_FXA_buf_max 8 //max ����ָʵ�ʵ�����,num����cnt��ָ��ʱ��
|
||
|
/// Hex RTU Protocol 0xFx
|
||
|
typedef struct
|
||
|
{//8byte
|
||
|
vU8 reg;
|
||
|
vU8 n;
|
||
|
vU8 head; //���ձ�־ͷ��־
|
||
|
vU8 ok; //����Э��ok��־
|
||
|
vU8 num;
|
||
|
vU8 add; ///���ݵ�ַ
|
||
|
vU8 ocr;
|
||
|
// vU8 *sp;
|
||
|
U8 buf[D_HETU_FXA_buf_max + 1];
|
||
|
}TS_Handle_PH1A;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
vU8 filter;
|
||
|
vU8 src;
|
||
|
vU8 dst;
|
||
|
vU8 dat[4];
|
||
|
vU8 ocr;
|
||
|
}TS_PH1A_DAT;
|
||
|
|
||
|
extern void L1_s2b_PH1A (TS_Handle_PH1A *p);
|
||
|
|
||
|
|
||
|
#endif /* end __TPC_UART_H_ */
|
||
|
/*****************************************************************************
|
||
|
** End Of File
|
||
|
******************************************************************************/
|
||
|
|
||
|
|