BLE蓝牙遥控器设计方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
io_irq_enable(BIT16|BIT17|BIT18|BIT19|IFR, &gpio_int_callback); __enable_irq();
while(1) { if(work_mode == RCU_MODE_IR_RECEIVING)//瞬态的自加模式,会自动降到下一 模式 { __disable_irq(); pulse_time++; __enable_irq(); } else if(work_mode == RCU_MODE_IR_RECEIVE_WAITING)//红外学习模式
基于 SYD8801 的蓝牙遥控器设计方案
版权声明:本文为博主原创文章,未经博主允许不得转载。
BLE 芯片兴起已经有好几年了,从最初的 TICC254x 的火热到后期之秀 Dialog 在小米手环的绽放, 产品形态也从最初的防丢器应用延时到可穿戴产品,智能家居和消费类产品等各个方面。
采用 BLE 技术的蓝牙遥控器,也是最近兴起的产品,有很大的市场空间。相比普通的红外遥控器,蓝 牙遥控有很明显的优点:1.360°无死角遥控,遥控距离更远 2.通过与智能电视或者机顶盒配对,可以实现 独立无干扰的控制 3.可扩展性强,可以集成简单的语音控制和体感游戏控制 4.增加很低的成本,即可兼具 红外遥控器功能和红外学习功能。
3. 软件架构描述 int main(void) { __disable_irq(); ble_init(); //clk init gpio_init(); dbg_init();dbg_printf("RCU Power On!\r\n"); #ifdef CONFIG_LED led_config(LEDALL); led_flash(); #endif RCU_set_work_mode(RCU_MCMP == 1) { IR_receive_CMP = 0; RCU_receive_decode(); enable_IR_receive(1); } KeyEvent_Handle(); } else //蓝牙模式、红外发射模式 { ble_sched_execute(); KeyEvent_Handle(); SystemSleep(); } } } 在 BLE 初始化中调用: evt.evt_mask=(GAP_EVT_CONNECTION_SLEEP|GAP_EVT_CONNECTION_INTE RVAL); evt.p_callback=&ble_evt_callback; SetEvtCallback(&evt); 给底层协议栈注册 ble_evt_callback(),当发生蓝牙事件的时候,会调用: static void ble_evt_callback(struct gap_ble_evt *p_evt) { if(p_evt->evt_code == GAP_EVT_ADV_END)
{ //广播结束 } else if(p_evt->evt_code == GAP_EVT_ATT_READ) { //读特征 } else if(p_evt->evt_code == GAP_EVT_ATT_HANDLE_CONFIGURE) { //配置服务 } else if(p_evt->evt_code == GAP_EVT_ENC_KEY) { //配对 } else if(p_evt->evt_code == GAP_EVT_CONNECTED) { //连接 } else if(p_evt->evt_code == GAP_EVT_DISCONNECTED) { //断开 } } 通过调用该函数,处理相应的蓝牙事件。 矩阵扫描通过中断触发 gpio_int_callback();
按键事件处理函数 KeyEvent_Handle(); 通过主函数可以看到,遥控器一共有 3 种主要的运行模式:蓝牙模式、红外发送模 式、红外接收(学习)模式。 红外学习也采用中断方式解码红外接收头数据,目前红外主要采用 NEC 模式的红外 协议。红外接收解码基本上准确无误。
4. 蓝牙服务描述 The Remote control reference application implements the following services: --GAP --GATT --DIS --HID over GATT --Battery 其中 HID 服务可支持 keyborad,mouse,system control,consumer key 等 HID 报告。
本文描述了基于 SYD8801 的蓝牙遥控器设计方案,供开发人员参考。
1. 首先看看 SYD8801 的系统框图和改芯片的主要性能参数,对芯片有大致的了解:
2. 原理图设计 由于 SYD8801 片上集成了 Balun ,无需阻抗匹配网络,无需外挂晶振负载电
容,最大限度地节省 BOM 成本。外部也只需要矩阵键盘和简单的元器件,极具成 本优势。
5. 功耗测试情况 目前已经在 iphone4s,iphone5s,iphone6,华为 P9,创维电视盒子上运行 OK。
6. 软件开发环境采用 MDK,目前蓝牙遥控器的代码空间使用情况 功能:蓝牙遥控、红外遥控、红外学习 Program Size: Code=18962 RO-data=546 RW-data=212 ZI-data=7804
相关文档
最新文档