新闻中心

EEPW首页>嵌入式系统>设计应用> 以ARM为核心的嵌入式体感遥控器的设计方案

以ARM为核心的嵌入式体感遥控器的设计方案

作者: 时间:2013-10-08 来源:网络 收藏

  2.2 电源模块电路

  本遥控器采用8.4 V锂电池供电,采用TL750M05C稳压芯片提供5 V电压,选用REG1117-3.3稳压芯片为系统提供3.3 V电压。STM32F1 03C8T6电源分为模拟电源与数字电源,为了保证其正常工作,将两路电源进行隔离设计,在模拟地与数字地之间通过0Ω电阻实现单点共地。为监测锂电池电源电压,将电池电压经电阻分压及阻容滤波电路滤波后作为采样输入。

  2.3 无线通信模块及显示模块电路

  无线通信模块采用2.4 GHz频段射频芯片nRF24L01作为无线数据收发芯片,工作于2.4~2.5GHz ISM频段,输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6 dBm的功率发射时,工作电流只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。nRF24L01采用SPI总线方式与控制芯片进行通信。

  12864液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16×1 6点阵)、128个字符(8×16点阵)及64×256点阵显示RAM(GDRAM),具有并行数据传送方式和串行数据传送方式,其中串行数据传输方式只用到CS、SID、SCK 3个通信引脚,较并行数据传送方式节省单片机的I/O引脚,本文采用串行传输方式进行设计。

  3 软件系统设计

的软件系统设计基于实时嵌入式操作系统mu;C/OS-II,借助于mu ;C/OS-II内核的多任务管理和优秀的实时性能,大大简化了软件系统设计,并且可以保证系统响应的实时性。

  3.1 任务分配与实现

  在任务规划的过程中,采用分层次和模块化的思想将整个系统任务进行划分。首先,我们必须对系统整体的控制任务有清楚地了解,具体任务划分如表1所列。


  表1中除OSTaskStat和OSTaskIdle任务为系统自带,其他8个任务均为用户创建。其中:App_TaskStart为起始任务,系统运行后第一个建立的任务,其作用是为初始化系统时钟和底层设备创建所有事件和其他任务;App_TaskAD任务监视电池电压的变化,当电压低于设定值Low Battery时,将启动蜂鸣器报警;App_TaskAHRS任务通过DMA不断接收iNEMO惯性导航模块数据,然后交由USART1接收缓冲区,实时获得手部姿态信息;App_TaskCmd根据手部姿态信息转化为机器人运动指令,然后按照制定的通信协议通过nRF24L01无线模块将指令数据包发送出去;App_TaskData任务在每发送一次指令数据包后,通过nRF24L01无线模块接收机器人本体回传的运动状态信息包;App_TaskLCD任务实现运动指令、机器人运动状态、电池电量、实时时钟在12864液晶显示模块上的显示;App_TaskLED_B任务通过LED指示遥控器上的主控芯片与iNEMO惯性导航模块、遥控器与机器人是否通信正常,当电池电量过低时,通过蜂鸣器进行报警;App_TaskClock任务得到DS1302的实时时钟,通过消息邮箱App_LCDClockMbox发送给App_TaskLCD任务予以实时显示。

  3.2 任务间通信设计

  任务和中断服务子程序可以通过事件控制块与其他任务进行通信,常用的通信方式有信号量、邮箱和消息队列,同时,通过事件标志实现任务与事件之间的同步。本操作系统共创建了8个消息邮箱和1个事件标志:

  OS_EVENT *App_AHRSMbox

  OS_EVENT *App_CommandMbox

  OS_EVENT *App_DataMbox

  OS_EVENT *App_ADMbox

  OS_EVENT *App_LCDCmdMbox

  OS_EVENT *App_LCDDataMbox

  OS_EVENT *App_LCDADMbox

  OS_EVENT *App_LCDClockMbox

  OS_FLAG_GRP *App_GreenLEDFlag

  其中,App_GreenLEDFlag包括3个标志位:

  #define Flg_GreenLED 0x0001

  #define Flg-BlueLED 0x0002

  #define Flg_Buzzer 0x0004

红外遥控器相关文章:红外遥控器原理


评论


相关推荐

技术专区

关闭