基于MMS的低成本汽车安防系统设计与实现

发布者:upsilon30最新更新时间:2014-11-20 来源: 21ic关键字:MMS  汽车安防  S3C44B0  uCLinux 手机看文章 扫描二维码
随时随地手机看文章

  1.引言

  随着人民生活水平的不断提高,个人拥有汽车变得越来越普遍。但是,随之而来的车辆频繁被盗问题渐受关注。传统的汽车安防系统以全球卫星定位系统(以下简称GPS)为核心,这种技术最大的优势是可以定位被盗车辆所处的位置,可以远程控制车辆,但是无法获取图像声音信息不能了解车辆所处的环境,无法有效追捕犯罪嫌疑人。还有一些系统使用GPRS实时传输图像数据,这种方案受网络带宽的限制严重,图像质量差,对处理器运算能力要求高,系统使用费用高。

  针对上述问题,我们提出并设计了一种基于多媒体信息服务(MultimediaMessageService,以下简称MMS)——也就是人们常说的“彩信”汽车安防系统。该系统利用了中国移动的MMS业务、短消息业务,无线网络覆盖面大,使用费用低廉,操控方法简单。图1所示为基于MMS的汽车安防系统的应用框图,用户在远程通过短信控制本系统,系统通过在车辆内适当部位安装的摄像头、麦克风获得高质量的图像语音信息,制作成MMS,通过我们专门针对低成本嵌入式系统研发的MMS发送程序将MMS发送到用户的终端,从而使用户能更清晰地掌握车辆内外的状况。

基于MMS的汽车安防系统的应用框图

  2.系统结构

  我们使用了如图2所示的硬件框架,本系统以S3C44B0处理器为核心:辅以2MNORFlash存储引导程序、内核、ROM文件系统;16MNANDFlash承载YAFF文件系统,以弥补NORFlash空间不足无法容纳PPPD、系统应用程序、无法保存系统配置信息的缺陷;16MSDRAM运行代码、动态数据交换、RAM文件系统;UART0连接CWT2000GPRS模块,用于收发与用户交互的短信,发送MMS到用户指定的终端;UART1连接C328JPEG摄像头可以直接获取JPEG格式的高分辨率图像数据。

硬件框架

  本系统的软件基于uCLinux操作系统内核版本2.4.32,图3展示的是本系统的软件结构框图。图3中,内核空间的MTD、UART驱动、TCP/IP、PPP等在编译内核时必须选择支持,PPPD/Chat拨号程序用于通过GPRS模块登陆互连网。上述软件结构框图中部分模块在uCLinux分发版中包含,因此本系统需要实现JPEG采集、MMS制作、MMS发送、短信收发以及系统控制流程模块。接下来的章节将介绍各模块的实现技术。

软件结构框图

  3.软件设计

  本节将重点介绍图3中的系统控制流程、JPEG采集、MMS制作以及MMS发送模块。由于短信收发模块过于简单,且在许多资料中都有详细介绍,本文不再赘述。

  3.1系统控制流程

  系统控制流程模块负责对其它模块进行调用,对所有资源进行协调,实现系统设计的工作流程,满足良好的交互性、稳定性。

  首先,系统需要初始化,如获取用户终端(手机)号码,MMS发送过程所需的MMS网关、端口、MMS中心地址,这些信息都保存在系统配置文件中,另外还需要初始化一些相关的数据结构。初始化之后系统进入到一个超级循环当中,随时准备接收来自用户终端的命令短信息。目前,命令短信息有两个,其中最重要的是“Get”命令,用以获取MMS信息;还有一个“Set”命令用以设置用户终端号码,该命令由于流程图的尺寸问题在图4中省略了。收到“Get”命令之后,系统依次调用JPEG采集模块、MMS制作模块、GPRS拨号、MMS发送模块。这些模块的调用,除了MMS制作模块,都遵循一个基本原则,我们称之为三次尝试原则。如果某模块调用不成功,将重复三次,三次都失败,将发送错误报告短信到用户终端。比较特殊的是GPRS拨号,在3次拨号失败后将对GPRS模块进行复位,再尝试拨号。该原则符合无线通讯自身的特殊性,可以有效提高程序的效率和稳定性。另外有一点需要注意,在GPRS状态下是无法发送短信的,因此,拨号登陆成功之后需要断开GPRS连接才能发送短信。这也是为什么无论MMS发送是否成功,都必须先断开GPRS,再发送报错或成功报告短信的原因。

  3.2JPEG图像采集

  JPEG图像采集模块通过串口控制C328JPEG摄像头直接获取JPEG图像,这种选择大大降低了处理器的负担。关于该摄像头的硬件信息见参考文献[1]。该软件模块大部分为顺序过程,后面的过程都建立在前一个过程正确执行的基础上。总体上可以分为三个步骤:初始化S3C44B0串口、初始化摄像头、获取图像,详细过程如下:

  1.初始化S3C44B0串口,包括:O_RDWR|O_NOCTTY|O_NDELAY方式打开UART1也就是“/dev/ttS1”[2],设置波特率57600,8位数据位,1位停止位,无奇偶校验,读写超时设置为1秒,初始化jpeg_picture结构体:

structjpeg_picture
{
intfd;//串口的文件描述符
unsignedcharresolution;//图像分辨率代码
longjpeglength;//图像长度24位表示
unsignedchar*pjpeg;//图像存储地址
};

[page]

   1JPEG摄像头,包括:发送SYNC命令与摄像头建立连接,,发送Initial命令设置输出JPEG格式图像、分辨率640X480,发送SetPackageSize命令设置数据包的大小为512字节。

  2获取图像,包括:发送Snapshot命令捕获图像快照并压缩,发送GetPicture命令获取Snapshot类型图像,接收Data命令确认数据类型为Snapshot以及图像数据大小,并为图像分配对应空间,之后开始接收数据包,每收到一个数据包后发送带有数据包ID的ACK命令给摄像头,直到最后一个数据包ID为F0F0,数据接收过程结束。

  通讯协议采用一种如图4的应答方式,ACK代表上一个命令或操作成功,NACK则说明失败,确保了通讯稳定。C328定义的命令是统一的6个字节长度,起始为固定的0xAA,然后是命令字节,后4个字节是与命令相关的参数字节。

应答方式

  3.3MMS制作

  MMS可以包含静态图像、语音、动态图像等多种多媒体信息[34]。图5左侧为一个通用MMS结构,由MMS信息头、MMS信息体构成。MMS信息头包含如何从发送终端将数据发往接收终端的信息[5]。MMS信息体是MMS的实质内容,可以由多个部分多种类型媒体。本系统中目前仅有JPEG的图像数据,不需要支持所有格式的多媒体信息,因此可以实现针对多幅JPEG图像的简化版MMS制作模块。我们使用了最简化的MMS信息头,包括:消息类型、事务ID、版本号、From、To等,详情见表1。

MMS信息头

  MMS编码必须遵循无线会话协议(WirelessSessionProtocol,以下简称WSP)。WSP使用一种与HTTP/1.1相同的语法描述数据的组织结构,具体可参考RFC[2068]。HTTP/1.1使用ASCII字符编码来传输数据,而WSP为降低传输带宽,将HTTP/1.1中的一些著名域对应的字符串定义为一个字节,并在对这些紧凑格式编码时加上0x80,使著名域的编码大于127(扩展ASCII字符),从而将它们与普通ASCII字符区别开。因此MMS信息头的基本编码格式为:“域编码”+“内容”,详情请参考表1。编码顺序如下:消息类型、事务ID、版本号必须依次排在最前面,而MMS信息体内容类型则应该排在MMS信息头的最后。

  ①用字符串表示一个随机数。②国内格式为:长度+“+86”+“11位手机号”+“/TYPE=PLMN.”

MMS信息体

  紧跟在MMS信息头之后的就是MMS信息体,图5中所示这部分有:成员数量、成员(图像、文本、声音等)。成员数量是一个变长整形数。MMS信息体的成员由:成员信息头、成员数据构成。我们的系统中仅有JPEG图像,所以成员信息头可以编码为:0x01,YYYY(JPEG图像大小,变长整数),0x9E。最后将JPEG图像附在成员信息头之后即可完成MMS制作。注意,由于图像的存储空间为动态分配,之后要将所占内存释放。

  3.4MMS发送

  最后,系统使用了项目组针对嵌入式系统开发的MMS发送简化过程来发送彩信。该简化过程分为三个步骤:建立连接、发送数据、断开连接[6],如图6所示为发送数据简化过程的时序图。建立连接和断开连接的时序图与此类似,不在这里给出。在该简化过程的实现中,使用了一种直接构造PDU进行发送的实现方法。协议数据单元(ProtocolDataUnit,以下简称PDU)为MMS发送时各层所要增加的数据头,而这些数据头很多部分都固定。因此,通过直接发送PDU的方法,可以避免构造完整无线应用协议栈(WAP),摆脱对多线程的依赖,以及无关操作所需的存储消耗,实现单线程、高效、高速、稳定的MMS发送。

发送数据简化过程的时序图

  MMS发送的网络协议栈关系的简化过程仅仅需要嵌入式系统提供UDP支持,能连接到GPRS网络,即可发送MMS到终端。

  4.结论与展望

  本系统目前已经通过了长沙、深圳、北京、上海等地的测试。项目充分利用了GPRS网络覆盖广泛,通讯质量稳定的特点,提出了一个简单方便的、稳定的、易于扩展的基于MMS的安防系统框架,为提取犯罪嫌疑人的犯罪证据提供了一种新手段。该框架有较广泛的应用范围,可以为相关行业提供参考。

  本文作者创新点:结合了短消息操作简单、彩信直观的特点,在低成本ARM7平台实现了基于彩信的安防系统;在系统中使用一种直接PDU构造方法实现了一个简化版的彩信发送过程,该过程实现简单,适合嵌入式系统。

关键字:MMS  汽车安防  S3C44B0  uCLinux 引用地址:基于MMS的低成本汽车安防系统设计与实现

上一篇:基于ARM处理器的远程参数测量的设计
下一篇:基于ARM处理器的数据记录分析仪的设计

推荐阅读最新更新时间:2024-03-16 13:46

stm32f429的u-boot、uclinux内核烧写说明
最近比较忙,针对前面的留言说有怎么download u-boot、uclinux到stm32,我翻了翻以前记录下的笔记,特意贴上来,其实有些步骤我都已经忘记了。。。 一、搭建嵌入式linux开发环境 1. 准备一台Linux系统(Fedora,CentOS,Ubuntu等)的电脑,将BSP压缩包(linux-cortexm-2.0.0.tar.gz)拷贝到一个目录; 2. 解压BSP包: tar -xzvf linux-cortexm-2.0.0.tar.gz 3. 解压arm工具链: cd linux-cortexm-2.0.0/tools tar xvfj arm-2010q1-189-arm-uc
[单片机]
stm32f429的u-boot、<font color='red'>uclinux</font>内核烧写说明
基于ARM的嵌入式设备中uCLinux系统开发
1 引言 信息家电和手持设备大大加速了嵌入式系统的发展,而ARM体系32位高性能、低功耗处理器和嵌入式操作系统Linux无疑成为佼佼者。因为Linux源代码开放、免费,任何将其定制于PDA、掌上机或者便携式设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发,所以Linux在嵌入式开发领域得到稳步发展。uCLinux 即是目前嵌入式linux 中最流行的一种,它是针对微控制领域而设计的Linux系统,其最大特征就是没有MMU(内存管理单元模块),适合嵌入式系统小型化应用。   uCLinux支持多任务,支持多种文件系统,提供了对网络的强大支持,具有完整的TCP/IP协议栈,以及标准丰富的API。由于它的很多
[嵌入式]
基于IIS总线的嵌入式音频系统设计
嵌入式音频系统广泛应用于GPS自动导航、PDA、3G手机等嵌入式领域,但目前国内在这方面的研究较少。 音频系统设计包括软件设计和硬件设计两方面,在硬件上使用了基于IIS总线的音频系统体系结构。IIS(Inter-IC Sound bus)又称I2S,是菲利浦公司提出的串行数字音频总线协议。目前很多音频芯片和MCU都提供了对IIS的支持。 在软件上,作为一个功能复杂的嵌入式系统,需要有嵌入式操作系统支撑。Linux是一个源代码开放的类UNIX系统,由于其具有内核可裁剪性,且提供对包括ARM、PPC在内的多种嵌入式处理器的支持,所以广泛应用于嵌入式高端产品中。虽然Linux提供了众多API来降低驱动程序制作的复杂度,但是由于音
[单片机]
基于IIS总线的嵌入式音频系统设计
基于uClinux的GPSOne/GPS双定位信息接收
摘要 阐述uClinux串口编程的基本方法;简要介绍操作系统的几种I/O模型,特别对基于select的I/O复用模型在监听多个设备时的适用性进行较详细的分析;比较多个串口下使用轮询方法和使用select机制处理的差别;结合GPSOne与GPS双定位导航系统的实例,给出双串口定位信息接收的软件实现方法。 关键词 GPSGPSOneselectI/O复用串口   GPS是当前在导航系统中应用最广泛的定位技术之一,但GPS也有其自身的不足。例如,当GPS终端在建筑密集的地方或在高架桥底下等恶劣的地理位置时,定位信号比较容易丢失,往往难以获取有效的定位信息。由美国高通公司开发的GPSOne定位模块,提供的定位信号是基于网络与蜂窝的定位技术
[嵌入式]
S3C44B0的初始化程序的理解
S3C44B0的初始化程序就是初始化各个关键的寄存器,建立中断向量,然后转移到主函数去执行程序。不过S3C44B0不支持地址映射,所以程序不COPY到RAM种执行。S3C44B0初始化对我们广大初学者来说,比较难理解的是中断的处理和一些少见的操作符号,S3C44B0的中断子程序地址存放在初始化程序最后就是   HandleADC # 4   HandleRTC # 4   HandleUTXD1 # 4   HandleUTXD0 # 4   HandleSIO # 4   HandleIIC # 4   HandleURXD1 # 4   HandleURXD0 # 4   这一段,它的其实地址是ISR_STA
[工业控制]
移植librt库到uclinux
最近一个ARM7+uClinux项目需用到定时器,但定时精度要求不是很高。所以想到了LibRT库。Librt库实现的POSIX 100b.3标准的定时器和消息队列接口,在Linux 2.6内核中已普遍支持,部分后期2.4内核版本也已补丁形式提供了librt库。 uClinux 2.4.x 并未提供现成的Librt库,虽然uClibc0.9.7提供了Librt库,但由于2.4内核的不支持,也无法直接使用。网上查阅了很多资料也没有找到针对uclinux的POSIX timer补丁。考虑到uClinux源于Linux,利用Linux 的posix timer patch给uclinux打上,使uclinux 2.4内核也支持posi
[单片机]
基于S3C44B0的嵌入式系统在电子警察中设计与应用
引 言   随着城市交通的迅速发展,机动车流量急剧增加,使得交通管理面临着新的挑战,由于某些驾驶员交通法律意识淡薄,为达目的闯红灯行驶,特别是在无交警值守的区域,问题更为严重。电子警察系统,就是将在交通路口抓拍到的违章照片传回控制中心,进行分析处理和保存,并作为违章证据处罚违规的司机。电子警察系统在实现警务工作网络化、现代化、智能化进程中有着重要作用。电子警察一般由三大部分组成,一是照片拍摄部分;在红灯信号期间,控制器控制数码相机拍摄违章车辆照片,并存储到相机存储卡上。二是照片传输部分;将数码相机存储卡中的相片传送回监控中心。三是照片处理部分;在控制中心,工作人员将照片进行统计处理。照片传输部分常用的方法有人工取图、基于PC的工控机
[单片机]
基于<font color='red'>S3C44B0</font>的嵌入式系统在电子警察中设计与应用
为何选用SAMSUNG S3C44B0进行开发
-ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将ARM7指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。该产品的典型用途是数字蜂窝电话和硬盘驱动器。 --Thumb:以16位系统的成本,提供32位RISC性能,特别注意的是它所需的内存容量非常小 嵌入式ICE调试  由于集成了类似于ICE的CPU内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。 为何选用SAMSUNGS3C44B0进行开发? 目前,ARM7芯片在国内开发的潮流是三星公司的S3C44B0和S3C4510。这两款芯片各有侧重:前者着力于PDA
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved