FastBond2阶段2-基于CC2541的便携式心电贴
基于CC2541的便携式心电贴,具有小体积,低功耗,蓝牙通信等特点
标签
FastBond2阶段2
CC2541
便携式心电贴
星辰i
更新2023-11-13
617

项目介绍

心电图是评估心脏健康的重要指标之一。传统的心电图机往往难以在心脏疾病早期发现异常,因此需要进行长期的心电监测来确保心脏的健康状况。然而,传统心电图机存在一些限制,如电池容量和电子器件体积等问题,这导致了长期心电监测技术的发展受到了一定的制约。

为了克服这些限制,低功耗、便携式心电图仪成为了长期心电监测的关键技术。低功耗的设计可以延长设备的使用寿命,减少对电池的频繁更换,提高便携性和可靠性。便携式的设计使得用户可以随时随地进行心电监测,无需受到时间和空间的限制。

本次我设计了一款基于CC2541的便携式心电贴,具有小体积,低功耗,蓝牙通信等特点。

 

市场应用介绍

本设计适合家用,提供一定的参考心电图。


项目设计思路

以小巧,便携,易于使用为主要思路,核心芯片选择CC2541,经典的蓝牙芯片,资料很多。

 

项目方案框图和原理图解释

FoMgg2eo6SOVMNZxS9YrHEQm6KLp

FrrvNIi1u0MDRANSFABooBY2j-0B

核心是cc2541,用于数据采集与ble上传。

TP4056为充电芯片,用于给设备进行充电。

U3为心电芯片,用于模拟信号采集与转换。

 

设计中用到规定厂商的元器件介绍

1.CC2541

  •  射频
    • 2.4-GHz 符合低能耗规范和私有的 RF 片载系统
    • 支持 250-kbps,500-kbps,1-Mbps,2-Mbps 的数据速率
    • 出色的链路预算,不使用外部前段而支持长距离应用
    • 高达 0 dBm 的可编程输出功率
    • 出色的接收器灵敏度 (1 Mbps 时为 –94 dBm),可选择性,和阻挡性能
    • 适合于针对符合世界范围内的无线电频率调节系统: ETSI EN 300 328 和 EN 300 440 2 类 (欧洲),FCC CFR47 15 部分(美国),和 ARIB STD-T66 (日本)
  • 布局
    • 极少的外部组件
    • 提供参考设计
    • 6-mm × 6-mm 方形扁平无引脚 (QFN)-40 封装
    • 与 CC2540 引脚兼容 (当不使用 USB 或者 I2C 时)
  • 低功率
    • 工作模式 RX 低至: 17.9 mA
    • 工作模式 TX (0 dBm): 18.2 mA
    • 功率模式 1 (4-µs 唤醒): 270 µA
    • 功率模式 2 (睡眠定时器打开): 1 µA
    • 功率模式 3 (外部中断): 0.5 µA
    • 宽泛的电源电压范围 (2 V–3.6 V)
  • 工作模式下 TPS62730 兼容低功率
    • RX 低至: 14.7 mA (3-V 电源)
    • TX (0 dBm):14.3 mA(3V 电源)
  • 微控制器
    • 具有代码预取功能的高性能和低功率 8051 微控制器内核
    • 系统内可编程闪存,128 或者 256 KB
    • 在所有功率模式下具有保持功能的 8-KB RAM
    • 支持硬件调试
    • 扩展基带自动化,包括自动确认和地址解码
    • 所有功率模式中对所有相关寄存器的保持
  • 外设
    • 功能强大的 5 通道直接内存访问 (DMA)
    • 通用定时器 (1 个 16 位,2 个 8 位)
    • 红外 (IR) 生成电路
    • 具有捕捉功能的 32-kHz 睡眠定时器
    • 精确数字接收到的数字信号强度指示器 (RSSI) 支持
    • 电池监视器和温度传感器
    • 含 8 通道和可配置分辨率的 12 位模数转换器 (ADC)
    • 高级加密标准 (AES) 安全协处理器
    • 2 个功能强大的支持几个串行协议的通用异步接收发器 (UART)
    • 23 个通用 I/O 引脚
      (21 × 4 mA,2 × 20 mA)
    • I2C 接口
    • 2 个具有 LED 驱动功能的 I/O 引脚
    • 安全装置定时器
    • 集成的高性能比较器
  • 开发工具
    • CC2541 评估模块工具包 (CC2541EMK)
    • CC2541 小型开发工具包 (CC2541DK-MINI)
    • SmartRF™ 软件
    • 提供 IAR 嵌入式 Workbench™

 

PCB绘制打板介绍及遇到的问题和解决方法


关键代码及说明

核心代码

int main(void)
{
  /* Initialize hardware */
   HAL_BOARD_INIT();

  // Initialize board I/O
  InitBoard( OB_COLD );

  /* Initialze the HAL driver */
  HalDriverInit();

  /* Initialize NV system */
  osal_snv_init();
  
  /* Initialize LL */

  /* Initialize the operating system */
  osal_init_system();

  /* Enable interrupts */
  HAL_ENABLE_INTERRUPTS();

  // Final board initialization
  InitBoard( OB_READY );

  #if defined ( POWER_SAVING )
    osal_pwrmgr_device( PWRMGR_BATTERY );
  #endif
    
  /* Start OSAL */
  osal_start_system(); // No Return from here

  return 0;
}

 

接口部分代码

void sbpSerialAppCallback(uint8 port, uint8 event)
{
  uint8  pktBuffer[SBP_UART_RX_BUF_SIZE];
  // unused input parameter; PC-Lint error 715.
  (void)event;
  HalLcdWriteString("Data form my UART:", HAL_LCD_LINE_4 );
  //���ؿɶ����ֽ�
  if ( (numBytes = Hal_UART_RxBufLen(port)) > 0 ){
  	//��ȡȫ����Ч�����ݣ��������һ��һ����ȡ���Խ����ض�������
	(void)HalUARTRead (port, pktBuffer, numBytes);
	HalLcdWriteString(pktBuffer, HAL_LCD_LINE_5 );
	sbpGattWriteString(pktBuffer,numBytes);
  }
}
void sbpSerialAppWrite(uint8 *pBuffer, uint16 length)
{
	HalUARTWrite (SBP_UART_PORT, pBuffer, length);
}

 

BLE初始化

void SimpleBLECentral_Init( uint8 task_id )
{
  simpleBLETaskId = task_id;
  SerialApp_Init(task_id);
  // Setup Central Profile
  {
    uint8 scanRes = DEFAULT_MAX_SCAN_RES;
    GAPCentralRole_SetParameter ( GAPCENTRALROLE_MAX_SCAN_RES, sizeof( uint8 ), &scanRes );
  }
  
  // Setup GAP
  GAP_SetParamValue( TGAP_GEN_DISC_SCAN, DEFAULT_SCAN_DURATION );
  GAP_SetParamValue( TGAP_LIM_DISC_SCAN, DEFAULT_SCAN_DURATION );
  GGS_SetParameter( GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN, (uint8 *) simpleBLEDeviceName );

  // Setup the GAP Bond Manager
  {
    uint32 passkey = DEFAULT_PASSCODE;
    uint8 pairMode = DEFAULT_PAIRING_MODE;
    uint8 mitm = DEFAULT_MITM_MODE;
    uint8 ioCap = DEFAULT_IO_CAPABILITIES;
    uint8 bonding = DEFAULT_BONDING_MODE;
    GAPBondMgr_SetParameter( GAPBOND_DEFAULT_PASSCODE, sizeof( uint32 ), &passkey );
    GAPBondMgr_SetParameter( GAPBOND_PAIRING_MODE, sizeof( uint8 ), &pairMode );
    GAPBondMgr_SetParameter( GAPBOND_MITM_PROTECTION, sizeof( uint8 ), &mitm );
    GAPBondMgr_SetParameter( GAPBOND_IO_CAPABILITIES, sizeof( uint8 ), &ioCap );
    GAPBondMgr_SetParameter( GAPBOND_BONDING_ENABLED, sizeof( uint8 ), &bonding );
  }  

  // Initialize GATT Client
  VOID GATT_InitClient();

  // Register to receive incoming ATT Indications/Notifications
  GATT_RegisterForInd( simpleBLETaskId );

  // Initialize GATT attributes
  GGS_AddService( GATT_ALL_SERVICES );         // GAP
  GATTServApp_AddService( GATT_ALL_SERVICES ); // GATT attributes

  // Register for all key events - This app will handle all key events
  RegisterForKeys( simpleBLETaskId );
  
  // makes sure LEDs are off
  HalLedSet( (HAL_LED_1 | HAL_LED_2), HAL_LED_MODE_OFF );
  
  // Setup a delayed profile startup
  osal_set_event( simpleBLETaskId, START_DEVICE_EVT );
}

 

功能展示及说明

板卡展示

Fq-HbP1D1OMHheneCTST2Rg8Q3KB

心电图

FmKK5t_clnUpZ3eGYCAPj9WuGbM2

对本大赛的心得体会(包括意见或建议),及整个设计过程中遇到的难点和解决方法

借着本次大赛,可以把平时有些想法但却一直懒得动手的东西做出来,确实在过程中学到了很多东西,也体会了不少快乐。希望以后能有更多类似活动。

 

软硬件
电路图
附件下载
PCB.zip
源码.rar
团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号