历史上的今天
返回首页

历史上的今天

今天是:2025年05月14日(星期三)

正在发生

2021年05月14日 | 基于VxWorks实现自动发送彩信嵌入式设计

2021-05-14 来源:eefocus

随着嵌入式应用的发展和16/32位RISC处理器技术的成熟,以及支持各种高端处理器的嵌入式操作系统的涌现和完善,嵌入式无线设备可以利用CDMA网络实现许多新的应用。自动发送彩信的嵌入式系统就是这种新应用之一,在特定的条件下,系统自动发送彩信到指定的移动通信终端;该应用系统是由用户根据要求设定触发条件的自动发送彩信系统,当满足触发条件时,设备会自动控制捕获、压缩图像部件拍摄外部图像,经过模数转换、数字压缩等处理后,经处理器做MMS(Multimedia Message Service,多媒体短信服务)协议封装,封装后的数据经由手机模块发送到移动交换网络,最终转发到移动通信终端用户。


系统整体设计● 系统主处理器


系统选用Samsung公司的16/32位基于ARM7TDMI的微处理器,其最高主频可以达到130MIPS,同时支持16位的Thumb指令集,使用Thumb指令集可以以16位的系统开销得到32位的系统性能。 ● 系统原理框图


系统从逻辑上分成三部分:图像捕获和图像压缩模块用于捕获和压缩图像;MMS协议处理和主控制器模块处理图像数据和任务控制;手机模块可发送彩信和接收短消息。系统原理如图1所示。



图1 系统原理框图


● 系统工作原理步骤


(1)系统上电启动后,手机模块读取UIM信息发送无线信号寻找CDMA网络,进行用户号码账户和身份验证后连接到网络;然后系统发起任务读取手机模块中的信息,确定是否有网络连接,若有网络连接则系统发起任务,等待满足触发自动发送彩信的条件。


(2)设备软件可以接受SMS(Short Message Service,短信服务)信息,并对之进行解析,根据解析的结果进行动作。当接收到用户的触发后,系统发起任务控制串口UART对图像捕获、压缩模块进行命令控制和拍照;拍照后发起任务对串口进行读取,接收图像捕获、压缩模块回传的图像数据。


(3)当接收到回传的图像数据后系统发起任务对图像数据进行MMS封装,封装格式完全符合MMS CLIENT端协议。


(4)系统发起任务使用WAP协议与WAP信息网关建立连接,建立连接后由系统把封装的图像数据通过标准串口UART传送给手机模块,最后系统发起任务使用AT指令控制手机模块把彩色图片发送到移动交换网络,最终转发到设定的目标移动通信终端用户,从而完成了自动发送彩信的功能。


● 系统硬件设计系统硬件设计技术要点包括以下部分。 (1)图像压缩处理模块完成对数字图像信息的压缩,部分电路如图2所示。SDRAM用来缓存图像数据,FLASH用来存储压缩处理器执行程序映像。此外,图像压缩处理器模块提供一个UART接口,以便将压缩的图像文件传输到主控处理器模块。



图2 图像压缩处理电路



图3 系统串口连接电路


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


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


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();}DEBUG_PRINT(("Now end read config information... "));#ifndef CDMA_MODULEwhile(wavecomLibInit() == ERROR);for (i=0; i<2; i++){if (startPPP() == OK)break;pppDelete(0);taskDelay(30);wavecomLibInit();}if (i>= 2){DEBUG_PRINT(("startPPP ERROR! "));return ERROR;}if (wapInit()!= OK){DEBUG_PRINT(("wapInit ERROR! "));return ERROR;}#elsecdmaLibInit();#endifsysRecvLibInit();taskSpawn("tCamera", 80, 0, 50 * 1024, cameraTask, pSysInfo->pCamQueue, pSysInfo->pPhotoQueue,2,3,4,5,6,7,8,9);photoSendLibInit();taskDelay(2);irLibInit();if (sysInitInfo->motionDetction)camQSend(SYS_MOTION_PIC, NULL, 0x0200 + sysInitInfo->camPixel);commCallBackFun = commStrHandle;pSysInfo->initialized = TRUE;return OK;}


主要实现的功能有:初始化系统参数,初始化捕获、图像压缩处理器模块,初始化手机modem,建立PPP连接,发送连接包,断开PPP连接并返回;建立检查modem信息接收任务,建立系统主循环任务,在主循环任务中处理modem信息接收任务和中断处理程序中发送到信息队列中的内容。


这种实现自动发送彩信的系统可用于无线监控和实现智能家居安全,系统收发机制使用CDMA网络传输信息,目标移动通信终端用户不论在何地都可以接收由系统发送的彩信,从而能够实现远程监控等功能,为用户提供更多的安全和便利。


推荐阅读

史海拾趣

Atmel (Microchip)公司的发展小趣事

2016年,Atmel被美国芯片制造商Microchip以35.6亿美元收购。这一收购事件标志着Atmel发展史上的一个重要转折点。在被收购后,Atmel成为了Microchip的一部分,继续发挥其在微控制器领域的优势,同时也获得了Microchip在技术支持、市场渠道等方面的强大支持。这使得Atmel能够更快地推出新产品、拓展新市场,进一步巩固其市场地位。

CUI公司的发展小趣事

随着环保意识的逐渐提升,电子行业开始寻求更加环保的CUI材料和生产工艺。一些公司投入大量研发资金,成功开发出低挥发性有机化合物(VOC)含量的CUI涂料,不仅降低了生产过程中的环境污染,还提高了产品的环保性能。

普芯达电子(Chipswinner)公司的发展小趣事

随着公司规模的不断扩大和产品质量的不断提升,普芯达电子开始积极拓展市场,寻求更广阔的发展空间。公司通过与国内外知名企业和机构建立合作关系,共同开展技术研发和市场推广等活动,进一步提高了公司的知名度和影响力。同时,普芯达电子还积极参与国际展览和交流活动,与全球同行交流学习,不断提升自身的技术水平和市场竞争力。

FUJI公司的发展小趣事

普芯达电子自创立之初,就立志成为国产高品质、高性价比的IC产品供应商。在成立初期,公司面临着资金紧张、技术积累不足以及市场竞争激烈等多重挑战。然而,凭借着创始人对集成电路行业的深厚理解和坚定信念,普芯达电子逐步克服了这些困难,通过引进优秀人才、加大研发投入以及不断优化产品质量,逐渐在市场上崭露头角。

BELDEN公司的发展小趣事

BELDEN公司的故事始于1902年,当Joseph C. Belden在美国芝加哥创立这家公司时,他怀揣着对电线电缆制造的深厚热情与独特见解。初创时期,公司致力于研发和生产高品质的电线电缆产品,很快便在市场中赢得了良好的声誉。经过多次试验,公司成功发明了“Beldenamel”绝缘材料,这种柔韧的珐琅绝缘材料为公司的成功奠定了坚实的基础。随着产品的不断优化和市场的逐步拓展,BELDEN逐渐在电子行业中崭露头角。

Goodwork Semiconductor ( GW )公司的发展小趣事
检查稳压器是否具备必要的保护功能(如过压保护、过流保护等),以提高电路的可靠性和安全性。

问答坊 | AI 解惑

户用电热式热能量表的合作与开发

户用电热式热能量表的合作与开发 一、合作内容 针对我国户用热能量表市场提出的一种全新的户用电热式热能量表,以电热方式,对热能量以公平公正的方式进行交换,摆脱了供热与用热双方对以往使用的户用机械旋翼式热能量表所出现的困扰 ,即计量 ...…

查看全部问答>

小工程公司发展困惑与实际操作问题讨论(三)

三、公司架构 1、总经办: 对公司经营状况负责;公司人事任命;岗位设计与职责说明;管理系统的监督执行与改善提案;公司资金运作;经营方针提案与确定;人员绩效管理; 2、财务部: 公司资金记录管理;公司资产记录管理;工程项目资金支持;公 ...…

查看全部问答>

vhdl中用altera_mf库的问题

LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.all;ENTITY sin_tab IS        PORT        (                address    ...…

查看全部问答>

【SynPlify技术问题】在Synplify中如何才能将门电路组合在一起?

用Technology中的Gates view看电路图是,都是AND2 OR2 INV 的门,怎样才能把这些门综合起来,变成复杂的门,如AND3,AND4B2 等(不是RTL下)。谢谢各位…

查看全部问答>

workbench3.0的使用

刚开始接触vxworks6.6,对于workbench一窍不通,哪位大大有wind river workbench3.0的中文资料啊,英文的user\'s guide 实在是看得晕啊…… 万分感谢!!!…

查看全部问答>

TCPMP 0.72RC1 for CE6.0的错误-请kieven2008前来接分

请kieven2008前来接分,多谢你的帮助 否则我可能也要在这个问题了花几周时间,也有可能解决不了这个问题。…

查看全部问答>

cygwin下挂接问题

执行环境是cgywin系统 创建文件映像: dd if=/dev/zero of=images/initrd.img bs=1k count=8192 建立文件系统并安装: /usr/sbin/mke2fs -F -v -m0 images/initrd.img mount e:/usr/local/armlinux/images/initrd.img /usr/local/armlinux/tmp ...…

查看全部问答>

s3c2440或s3c2410芯片怎么辨别全新的还是旧的

s3c2440或s3c2410芯片怎么辨别全新的还是旧的(重新植过锡球的) …

查看全部问答>

程序查询方式是什么?

程序查询方式是什么? 看了几遍,不是很明白。恳请指教 …

查看全部问答>

ARm群:9548609 欢迎大家一起交流!!

ARm群:9548609 欢迎大家一起交流!!…

查看全部问答>