新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 探讨VxWorks实现自动发送彩信嵌入式设计

探讨VxWorks实现自动发送彩信嵌入式设计

作者:时间:2012-11-05来源:网络收藏

  (2)系统串口连接电路的部分电路如图3所示。ARM7处理器提供标准的UART接口连接手机模块,另外提供一个串行接口,与图像压缩处理器模块串行接口相连。

系统软件设计

● 操作系统和开发环境

  是目前世界上用户数量最大的实时操作系统,具有丰富的应用软件支持、良好的技术服务、可伸缩性(提供了超过1800个应用编程接口供用户自行选择使用)、可裁减性(指用户可以根据自己的应用需求对进行配置,产生具有各种不同功能的操作系统映像)和可靠的系统稳定性。本系统主要采用其实时性、多任务、基于优先级的抢占式调度、同优先级轮转调度和任务间的通信与同步机制、任务与中断之间的通信机制。

  VxWorks的开发环境是WindRiver(风河)公司提供的Tornado。Tornado采用主机-目标机开发方式,主机系统采用运行Windows2000/NT的工作站或PC,VxWorks则运行在ARM等目标处理器上。Tornado采用的主机-目标机连接方式为以太网、串行线等,主机与目标机之间的通信是通过运行各自处理器上的代理进程来完成的,使主机上的开发工具和目标机的操作系统可以完全脱离相互连接的方式。Tornado提供了友好的可视化开发界面、交叉编译环境、源码级调试工具、目标机命令解释器和目标机状态监视器等多种应用工具,为应用软件开发提供了一个高效而可靠的平台。

● 软件设计原理

  软件设计采用事件驱动机制;中断事件激活ISR,ISR将事件排队,并通过信号量的v 操作通知处理任务。处理任务进行p 操作,在没有事件需要 处理时就会阻塞,如果得到信号量则根据事件队列的内容进行相应处理;事件处理任务为一永久循环。

软件设计流程如图4所示。

软件设计流程图

图4 软件流程图

● 软件关键设计的具体实现

  (1)当系统启动时等待一段时间,若超时则正常加载内核进行引导,若从串口UART接收到配置参数请求信息,则通过串口UART发送配置文件到PC端;PC端对配置参数进行处理后,再将参数通过串口发送到设备,设备再将参数以文件的形式进行存储。

  (2)初始化手机模块。先利用手机模块的硬复位线将手机进行硬复位,一直等到手机能响应AT指令,再将手机的信息通知功能打开,初始化短信处理到文本模式,激活CDMA,一直等待,手机信号要足够强。

3)当接收到满足触发条件的短信息后,发起中断处理任务,将UIM卡中的短消息读出到缓冲,将短消息删除,对缓冲中短消息的有效性进行判断,若为有效短消息则进行相应的处理,再将根据短消息配置后的参数保存。

  (4)系统根据触发参数发起任务进行拍照、封装,调用建立PPP连接的函数,先用AT指令ATD#777接通CDMA,然后初始化PPP连接,当PPP连接完成后设置好相应的IP参数。

  (5)然后初始化WAP相关参数,建立WAP连接,调用彩信发送函数将图片发送到目的移动通信终端用户,断开PPP连接。

  关键源代码如下。

  STATUS mmsmain(viod)

  {

  int ioFd, i;

  pSysInfo = (sysInfo_t *) calloc(1, sizeof(sysInfo_t));

  pSysInfo->TIckRate = SYS_TICK_RATE;

  pSysInfo->pQueue = msgQCreate( SYS_MSG_COUNT, sizeof(sysMsg_t), MSG_Q_FIFO );

  pSysInfo->pCamQueue = msgQCreate( SYS_MSG_COUNT, sizeof(sysMsg_t), MSG_Q_FIFO );

  pSysInfo->pPhotoQueue = msgQCreate(SYS_MSG_COUNT, sizeof(sysMsg_t), MSG_Q_FIFO);

  pSysInfo->pModemQueue = msgQCreate(SYS_MSG_COUNT, sizeof(sysMsg_t), MSG_Q_FIFO);

  DEBUG_PRINT(("Now begin read cONfig information... "));

  if (readFlash() == ERROR)

  {

  initDefaultInfo();

  readFlash();

  }



评论


相关推荐

技术专区

关闭