KDocs 研发资料库
  • 手表穿戴技术应用文档入口汇总
  • JL707N穿戴客述问题FAQ
  • 彩屏仓 硬件开发指南 与 量产作业流程规范
  • 彩屏仓 AC98N和JL701烧录升级注意事项
  • JL707 硬件开发资料
  • JL707 手表硬件设计注意事项 总结
  • 穿戴生产烧录OTA和key文件添加使用说明
  • JL707N-入门到进阶开发指导文档
  • 彩屏仓982相关
  • 彩屏仓耳机介绍
  • 杰理701_707双屏demo介绍
  • 707电子吧唧开发资料
  • GPIO相关
  • UART串口相关
  • SPI相关
  • nandflash相关
  • norflash相关
  • IIC相关
  • PWM相关
  • SD卡相关
  • 定时器TIMER
  • 文件系统接口设计说明文档
  • 音视频录像开发流程
  • rdec编码器
  • 穿戴功耗数据标准
  • 手表蓝牙开发文档
  • 701蓝牙PAN联网demo
  • BLE开发使用说明
  • 701手表2.0.0版本SDK EQ在线调试和离线调试方法 V1.1
  • JL707 手表喇叭输出声音大小评估方法 V1.0
  • JL707 手表音频EQ调试方法 V1.0
  • AC707N 手表通话写卡 软件配置方法
  • 录音功能
  • 701手表2.X.X系列SDK调试EQ配置方法及音频调试技巧V1.1
  • 701手表104版本SDK EQ在线调试和离线调试方法 V1.1
  • mic2dac示例
  • P11 SensorHub相关
  • 手表升级操作文档
  • AC707NGPU
  • DBI模块介绍
  • GPU模块介绍
  • 701N屏幕驱动配置说明
  • 701N_UI编辑工具用户手册
  • 支付宝资料
  • 支付宝硬件接入资料
  • 支付宝乘车码接入资料
  • CAT1 接入文档
  • 701N_WATCH_CAT1开发说明
  • Findmy功能
  • music模式相关
  • 707电池曲线
  • 707N内置FLASH挂载FAT文件系统251112_v1.2
  • AC707N_本地视频播放demo(AVI-MJPEG-PCM)
  • 光波导屏幕调试
  • 耳机研发和生产流程 指南
  • 707-NandFlash 代码和UI资源独立烧录方案
  • 彩屏仓时间同步补丁
  • 彩屏仓抖音点赞移植
  • 707LVGLv8双屏开发
  • 707N蓝牙互传图传demo
  • AVIPCM数据流接入AIVOICE
  • Flash分区操作demo
  • 手表发射问题
  • 701_707 双备份升级DEMO
  • 707_乘车码刷码失败问题_共性

彩屏仓耳机介绍

📎 原始文档:https://www.kdocs.cn/l/cq7dLqWwpmPn 彩屏仓耳机介绍

image 如上图所示,耳机的通信涉及到982和7012。分别负责不同的功能交互
耳机与982:完成智能充电仓基本功能,以及耳机把MAC地址发送给982
耳机与7012:完成彩屏仓本身的功能互动

  1. 软件设置:
  • 982通信相关设置 耳机与982通信设置,以及怎么发送本地MAC地址给到982
    打开智能充电仓
    image

在串口数据处理那里加多个命令完成和982交换地址的实现。
imageimage

//自定义串口指令
#define CMD_CUSTOM_DEAL             0xAA            //彩屏仓自定义命令

#define UART_PROFILE_HEAD      0xAA 
#define UART_PROFILE_ENDING    0xBB
#define UART_PROFILE_HEAD_INDEX     0
#define UART_PROFILE_CMD_INDEX      1
#define UART_PROFILE_DATA_INDEX     2

enum{
    EARPHONE_MAC_MSG=0x31,      //earphone mac event
};

void Send_Mac(u8 event,u8 *addr,u8 len)
 {
    log_info("Send_Mac\n");
    put_buf(addr,6);
    unsigned char temp[9];
    unsigned short j=0;  
    temp[0]=CMD_CUSTOM_DEAL;//数据包头
    temp[1] = event;
    memcpy(&temp[2],addr,6);
    u16 sum = 0;
    for(u8 i=0;i<(sizeof(temp)-1);i++)
    {
        sum += temp[i];
    }
    temp[sizeof(temp)-1]=(sum)&0xff;//表示一次传输完成
    put_buf(temp,sizeof(temp)),
    chargestore_api_write(temp,sizeof(temp));
 }
u8* printf_mac(void)
{
    printf("%s:\n",__func__);
    put_buf(bt_cfg.mac_addr,6);
    put_buf(bt_cfg.tws_local_addr,6);
    put_buf(bt_mac_addr_for_testbox,6);
    return bt_cfg.mac_addr;
}
     case CMD_CUSTOM_DEAL:
            log_info_hexdump(buf, len);
            u16 sum = 0;
            for(u8 i=0;i<len-1;i++){
                sum += buf[i];
            }
            u8 check = sum&0xFF;
            printf("check:%d buf[len-1]:%d  %d\n",check,buf[len-1],buf[UART_PROFILE_CMD_INDEX]);
            if(buf[len-1] != check)
            {
                printf("err check\n");
                return ;
            }
            switch (buf[UART_PROFILE_CMD_INDEX]){
                case 0x10:
                        extern u8* printf_mac(void);
                        Send_Mac(EARPHONE_MAC_MSG,printf_mac(),6);
                        printf("充电仓发送mac地址过来\n");
                    break;
                default:
                    break;
            }
            break;
  • 与7012 BLE通信相关设置 耳机做BLE从机与7012 BLE从机建立通信,去建立BLE服务去收发数据。我们要关注的就是收发数据的接口。把对应的接口加进去。
    imageimageimageimageimageimage

添加sbox_user_app.c sbox_user_app.h lib_esbox.a文件

  • 耳机应用功能相关 耳机应用功能部分,主要分为两部分:一个是耳机这边的状态信息的同步 ,一部分是响应彩屏仓7012的BLE功能指令。
    耳机状态信息同步的话,需要在对应的位置添加。例如音量的同步,需要在音量改变时去主动同步音量;
功能描述
同步状态同步与手机蓝牙连接状态,音乐状态,音量等级同步,anc、eq模式状态同步,通话状态
控制音乐状态控制手机音乐的播放暂停上下曲,音量加减
anc,eq模式切换控制耳机的anc,eq模式实时切换
查找耳机可以让耳机最大音量播放查找提示音,靠声音查找耳机位置
控制通话

添加手机连接状态:
image 添加连接仓BLE连接状态:
image 添加MIC mute标志位:
image 添加同步耳机状态:
image

添加耳机电量同步:
image

添加通话状态同步:
image

  1. 彩屏仓耳机SDK或对应DEMO(示例SDK的版本不一定是最新,最新版本需要自己更新/重新对比移植) 主要文件:
sbox_user_app.c主要包含了大部分彩屏仓的应用代码,状态同步和功能实现接口
sbox_user_app.h包含所用到的常量和涉及的头文件
lib_esbox.a底层库
相关文件所有需要在耳机对应流程里面添加的彩屏仓相关功能状态接口的文件,例如:电量更新需要在app_power_manager.c里面去获取,音量同步需要在手机音量同步文件vol_sync.c里面去同步下音量给仓。

彩屏仓的功能目前已经在可视化各个耳机芯片上同步更新到最新的版本了,优先使用可视化最新的SDK里面的彩屏仓功能

同时仓那边也按以下文档修改适配:
701 仓那边要做以下修改

各系列补丁:

彩屏仓时间同步补丁.otl

697N_SDK:

AC697_earphone_release_v2.4.1_colorscreen_v1.1s.7z

698N_SDK:

AC698N_earphone_172_colorscreen_v1.0.zip
AC698N_earphone_172_colorscreen_v1.1_20240903_移植添加时间同步+歌词同步+拍照+抖音点赞.zip

700N_平台SDK

700_patch08.7z
701 仓那边要做以下修改

700N_普通SDK

注意:若在D4上跑需裁剪功能,另需修改ANC固定地址为0x7e000
JL700N_earphone_release_V1.3.8_colorscreen_V201.7z

701N_平台SDK

701_patch06_ear_box.7z
(上述sdk不建议用了,用701可视化最新的3.3.0SDK)
注意:701 仓那边要做以下修改
问题修改:

701N_普通sdk:

JL701n_earphone_release_v1.6.1_colorscreen_v1.2_patch0507(2024/5/7)
JL701n_earphone_release_v1.6.1_colorscreen_v1.2_patch0507.zip
Describe:

  1. 修复主从切换不同步手机型号问题
  2. 修复对耳信息同步在app core任务中执行
  3. 修复先连接发射器再连接手机时间不同步问题
  4. 修复耳机连手机播歌首次配对出声音慢问题

JL701n_earphone_release_v1.6.1_colorscreen_v1.2(2024/3/20)
JL701n_earphone_release_v1.6.1_colorscreen_v1.2.zip
Describe:
5. 修复codeblock编译下载问题 image

708N_平台SDK

708_300patch004_ear_box

710N_平台SDK

710_patch0403
注意:仓那边要做以下修改

~~旧版本:~~​

697_SDK:
AC697_earphone_release_v2.4.1_colorscreen_v1.0(2024/3/13)
AC697_earphone_release_v2.4.1_colorscreen_v1.0.7z

JL701n_earphone_release_v1.6.1_colorscreen_v1.1(2024/3/14)
JL701n_earphone_release_v1.6.1_colorscreen_v1.1.zip
~~Describe:~~​
1、修复codeblock不能编译问题

JL701n_earphone_release_v1.6.1_colorscreen_v1.0(2024/3/13)
JL701n_earphone_release_v1.6.1_colorscreen_v1.0.zip
~~Describe:~~​

  1. add sbox协议实现与701彩屏仓的数据交互

  2. add 抖音控制功能

  3. add 时间同步功能

  4. add 歌词显示功能

  5. 抖音控制介绍

3.1功能介绍

需要打开 TCFG_USER_EDR_ENABLE和USER_SUPPORT_PROFILE_HID
image 可以实现上滑、下滑、左滑、右滑、点赞。
image 对于ios手机
因为iPhone手机不同系统版本和型号触摸点位置不一样,可以通过调整坐标记录到vm区,下次连接的时候先移动到记录位置。
image

3.2移植介绍

  • 1、添加edr_hid文件夹 image

  • 2、全局搜索TCFG_USER_EDR_ENABLE移植相关宏包含的代码 image

  1. 本地播放介绍 需要开启USER_LOCAL_PALY_ENABLE
    image 相关文件:
    image 移植的时候参考USER_LOCAL_PALY_ENABLE包裹的代码
    image

移植文件流程

把下列的.c .h文件全部移植到新建的jl_earbox文件夹。
image

打开BLE的宏 与第三方协议的支持(不选任意的协议),在app_config.h文件里面添加 JL_SBOX_EN定义,并在对应的位置加上 JL_SBOX_EN
imageimage

同时可视化工具上面打开智能充电仓,TWS配对方式改为充电仓配对,打开ID3_v2、ID3_v1音乐信息、
TCFG_BT_SUPPORT_MAP
imageimage

vol_sync.c 里面加上在手机下发音量等级时同步音量等级
image

app_testbox.c 里面嵌入私有的单线串口通信接口
user_app_chargestore_data_deal
image 再按照抖音点赞移植文档把bt_profile_config.c配置修改 和 hid的初始化的流程移植进去
彩屏仓抖音点赞移植.otl

协议移植包:jl_earbox.7z(库文件是710版本,其他版本咨询JL工程师)

文件文件描述
sbox_protocol.c包含了彩屏仓协议BLE相关的初始化配置,以及服务读写回调函数等重要接口的实现
sbox_user_app.c包含了彩屏仓协议数据通信相关的初始化配置,以及协议里面状态的同步和响应仓设置的功能响应接口的实现
sbox_core_config.c包含了彩屏仓协议数据协议的配置,发数接口,数据缓存保护机制,以及一些功能的定义
sbox_uart_app.c包含了彩屏仓协议单线串口通信流程用于交换地址等操作
sbox_eq_switch.c自定义EQ增益设置,以及EQ模式切换流程
sbox_key_setting.c自定义按键功能设置流程
sbox_connect_emitter.c彩屏仓耳机连接仓发射器流程文件
edr_hid_user.cEDR_HID相关流程文件
user_video_ctr.cEDR_HID控制抖音,音量加减,手机拍照等功能实现
lib_esbox.a彩屏仓协议数据的加密流程文件

修改SDK 的makefile文件,添加对应的.C文件 以及 对应的头文件索引路径和库文件
imageimageimage

移植实例说明

1. BLE核心通信部分

GATT服务定义:
因为耳机可视化SDK默认用的服务特征AE01,AE02都已经被RCSP所使用,所以可视化平台所用的服务特征需要重新创建。这是可视化平台和普通平台的差异,如果要用同一个仓的话,需要把仓服务特征也修改。

可视化平台普通平台
服务uuidAE00AE30
服务特征uuid(write_no_response)AE98AE01
服务特征uuid(notify)AE99AE02

广播间隔和连接参数:
image

私有协议收发接口:

int att_write_without_rsp_handler(uint8_t *buffer, uint16_t buffer_size);//耳机协议收数接口

int custom_send_data_to_box(u8 *data, u16 len);//耳机协议发数接口

私有协议的加密解密处理:
涉及到私有协议的加密解密的处理的文件是,lib_earbox.a或者是对应的需要编译成库的.c,.h文件(sbox_core_code.c,aes.c,aes.h)。加密解密主要是为了和我们自己的仓做绑定,不让其他方案能兼容我们的耳机或者仓

//aes解密处理处理接口
bool sbox_ble_aes128_ecb_decrypt(uint8_t *key, uint8_t *input, uint16_t input_len, uint8_t *output)
//aes加密处理处理接口
bool sbox_ble_aes128_ecb_encrypt(uint8_t *key, uint8_t *input, uint16_t input_len, uint8_t *output)
//彩屏仓私有协议数据处理handle
int att_write_without_rsp_handler(uint8_t *buffer, uint16_t buffer_size)
//按照私有协议格式BLE发数的接口
void custom_app_send_ble_data(u8 *data, u16 len)

BLE接收数据的缓存:
对应的接口都放在sbox_core_config.c里面了,实质流程就是BLE收到私有协议栈的数据后缓存进CBUF里面,再遍历处理指令数据,处理完后清空CBUF里面的指令数据。
imageimage

仓和耳机配对连接流程:
image 耳机通过充电脚的单线通信发送地址给到982,982再转给仓。仓收到耳机地址后本地记忆保存,并在每次开机或者开盖的时候会主动搜索该地址的BLE进行连接。

2. 耳机状态同步部分

需要同步给仓的应用状态有以下这些:

播歌状态通话来电状态音量等级EQ模式ANC状态手机时间歌词同步自定义按键耳机电量

(请根据实际情况去增删功能的同步代码)

所有信息的同步:
经典蓝牙的连接完成、连接断开以及BLE连接,都会同步下所有的状态信息。
imageimage

播歌状态同步:
播歌状态在手机下发AVRCP状态后会同步播歌状态
image

通话状态同步:
来电去电通话状态变化时会同步通话状态
image

音量等级同步:
在手机同步或者耳机/仓 设置音量都会同步下播歌的音量等级
imageimageimage

EQ模式、anc模式、自定义按键同步:
同步所有信息的时候以及设置功能的时候会去同步EQ模式、anc模式、自定义按键状态信息给到仓。

时间信息同步:
获取手机时间的功能需要打开蓝牙MAP协议
imageimage (注意别的地方不能又发USER_CTRL_MAP_READ_TIME了)

歌词同步:
需要more_avctp_cmd_support 、TCFG_DEC_ID3_V2_ENABLE、TCFG_DEC_ID3_V1_ENABLE置1,同时在bredr_handle_register()里面注册回调函数bt_music_info_handle_register(user_get_bt_music_info); 这些都设置OK后,耳机会在获取到歌词信息的时候把信息同步到仓(耳机能不能获取到歌词信息取决与手机播放器是否支持)
image

耳机电量同步:
耳机电量在tws同步或者电量变化的时候会主动同步给到仓
image

3. 耳机功能设置部分:

需要响应仓的设置有以下这些:

音量设置歌曲播放控制EQ设置ANC设置查找耳机自定义按钮设置通话控制连接发射器设置控制手机拍照控制抖音点赞

(其他自定义的功能可以自己添加)

所有的功能设置都是仓通过BLE指令发送过来,耳机这边在sys_smartstore_event_handle()里面去解析指令。而功能的响应接口都封装进struct s_box_app_cb 结构体里面去实现了。
imageimage

本文档包含以下子页面

  • 701 仓那边要做以下修改
  • 彩屏仓时间同步补丁
  • 彩屏仓抖音点赞移植
Prev
彩屏仓982相关
Next
杰理701_707双屏demo介绍