CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
i2c_protocol_module.h
浏览该文件的文档.
1 
10 #ifndef _I2C_PROTOCOL_MODULE_
11 #define _I2C_PROTOCOL_MODULE_
12 
13 #ifdef __cplusplus
14 extern "C"
15 {
16 #endif
17 
18 /*-----------------------------------------------------------------------------
19  include
20 -----------------------------------------------------------------------------*/
21 #include <stdint.h>
22 #include <stdbool.h>
23 #include <string.h>
24 #include "command_info.h"
25 #include "ci130x_iic.h"
26 
27 /*-----------------------------------------------------------------------------
28  define
29 -----------------------------------------------------------------------------*/
30 #define IIC_PROTOCOL_CMD_ID 1 /* 1:默认开启命令词ID的IIC协议 */
31 #define IIC_PROTOCOL_SEC_ID 0 /* 0:默认关闭语义ID的IIC协议 */
32 
33 #define IIC_PROTOCOL_DEBUG 0 /* 默认关闭打印 */
34 
35 #define IIC_WAKEUP_WORD_CMDID 0x01 /* 唤醒词命令词ID :1个字节*/
36 #define IIC_WAKEUP_WORD_SECID 0x01e05501 /* 唤醒词语义ID :4个字节*/
37 
38 #if IIC_PROTOCOL_CMD_ID
39 #define IIC_SEND_CMDID_LEN 3 /* slave发给master的命令词id数据个数*/
40 #define I2C_RECV_STATUS_CMDID 0x02 /* 接收命令词ID*/
41 #define IIC_RECV_CMDID_LEN 4 /* master发给slave的命令词id播报数据个数*/
42 #endif
43 
44 #if IIC_PROTOCOL_SEC_ID
45 #define IIC_SEND_SECID_LEN 6 /* slave发给master的语义id数据个数*/
46 #define I2C_RECV_STATUS_SECID 0x03 /* 接收语义ID*/
47 #define IIC_RECV_SECID_LEN 7 /* master发给slave的语义id播报数据个数*/
48 #endif
49 
50 #define I2C_RECV_STATUS_REG 0x01 /* 接收寄存器地址*/
51 #define I2C_RECV_STATUS_CHECK_SUM 0x04 /* 接收校验和*/
52 #define I2C_RECV_STATUS_END 0x05 /* 接收数据尾*/
53 
54 /*-----------------------------------------------------------------------------
55  extern
56 -----------------------------------------------------------------------------*/
57 
58 /*-----------------------------------------------------------------------------
59  struct / enum / union
60 -----------------------------------------------------------------------------*/
61 #if IIC_PROTOCOL_CMD_ID
62 typedef enum
63 {
64  I2C_REG_CMDID = 0x02, /* 请求得到命令词ID的寄存器地址 */
65  I2C_REG_PLAY_CMDID = 0x03, /* 用命令词ID播放Audio的寄存器地址 */
67 
68 /* 命令词id消息 */
69 #pragma pack(1)
70 typedef struct
71 {
72  uint8_t reg; /*寄存器地址*/
73  uint8_t cmd_id; /*命令词ID:8位*/
74  uint8_t check_sum; /*校验和:reg累加cmd_id*/
75  uint8_t end; /*数据尾:0x5a*/
77 #pragma pack()
78 #endif /*#if IIC_PROTOCOL_CMD_ID*/
79 
80 #if IIC_PROTOCOL_SEC_ID
81 typedef enum
82 {
83  I2C_REG_SECID = 0x04, /* 请求得到语义ID的寄存器地址 */
84  I2C_REG_PLAY_SECID = 0x05, /* 用语义ID播放Audio的寄存器地址 */
85 }i2c_secid_reg_t;
86 
87 /* 语义id消息 */
88 #pragma pack(1)
89 typedef struct
90 {
91  uint8_t reg; /*寄存器地址*/
92  uint8_t sec_id[4]; /*语义ID:32位*/
93  uint8_t check_sum; /*校验和:reg累加语义ID各个字节*/
94  uint8_t end; /*数据尾:0x5a*/
95 }i2c_secid_msg_t;
96 #pragma pack()
97 #endif /*#if IIC_PROTOCOL_SEC_ID*/
98 
99 #pragma pack(1)
100 typedef struct
101 {
102  union
103  {
104  #if IIC_PROTOCOL_CMD_ID
105  i2c_cmdid_msg_t cmdid_msg;
106  #endif
107 
108  #if IIC_PROTOCOL_SEC_ID
109  i2c_secid_msg_t secid_msg;
110  #endif
111  };
113 #pragma pack()
114 
115 /*-----------------------------------------------------------------------------
116  function declare
117 -----------------------------------------------------------------------------*/
118 void i2c_communicate_init(void);
119 void i2c_sleep_deal();
120 void i2c_product_send_msg(cmd_handle_t cmd_handle);
122 uint32_t i2c_send_data(volatile uint8_t *reg, uint8_t *data);
123 uint32_t i2c_recv_secid_packet(uint8_t data);
124 uint32_t i2c_recv_cmdid_packet(uint8_t data);
125 
126 
127 #ifdef __cplusplus
128 }
129 #endif
130 
131 
132 #endif
uint8_t cmd_id
Definition: i2c_protocol_module.h:73
Definition: i2c_protocol_module.h:64
Definition: i2c_protocol_module.h:65
Definition: i2c_protocol_module.h:100
此模块用于查询和读取命令词信息(来源于命令词信息excel表格).
uint32_t i2c_send_data(volatile uint8_t *reg, uint8_t *data)
uint32_t i2c_recv_secid_packet(uint8_t data)
void i2c_product_send_msg(cmd_handle_t cmd_handle)
void i2c_communicate_init(void)
i2c_cmdid_reg_t
Definition: i2c_protocol_module.h:62
void * cmd_handle_t
定义命令词信息结构的句柄类型。
Definition: command_info_v2.h:54
uint8_t end
Definition: i2c_protocol_module.h:75
void i2c_sleep_deal()
Definition: i2c_protocol_module.h:70
uint32_t userapp_deal_i2c_msg(sys_msg_i2c_data_t *msg)
uint32_t i2c_recv_cmdid_packet(uint8_t data)
uint8_t reg
Definition: i2c_protocol_module.h:72
CI110X芯片IIC模块的驱动程序头文件
uint8_t check_sum
Definition: i2c_protocol_module.h:74