>
首页 » 业界动态 » 基于ARM的无线图像传输系统的设计与实现

基于ARM的无线图像传输系统的设计与实现

作者:李威远 陈新 刘发彪  时间:2006-12-05 01:19  来源:电子设计信息网-www.edires.net
摘要:本文从硬件和软件两个方面论述了以32位ARM微处理器为核心构建的无线图像信息传输系统. 介绍使用ucPOS-Ⅱ嵌入式操作系统的ARM微处理器控制GPRS模块进行无线网络传输的2种方法, 并结合实际使用的无线图象监视器例子说明该系统的应用.

关键词: ARM; GPRS; 嵌入式系统; 无线网络传输; 图像传输

ARM微处理器因其强大的处理能力, 低功耗, 较高的性价比成为当今嵌入式开发应用的热点.互连网的兴起与普及, 使微控制器通过网络传输数据变得非常有意义. 对于边远的和可移动的系统, 无线的网络接入传输数据方式显得十分重要. 嵌入式应用系统与无线网络互连的结合, 是现在乃至将来嵌入式应用的必然趋势. 系统依托中国移动的GPRS网, 实现嵌入式发送端和接收端的可靠通信和无线图像数据传输. 提供2种基于ARM的GPRS无线传输方案: ①使用ARM控制GPRS模块实现在移动GPRS 网内进行点对点的无线数据传输; ②通过GPRS 模块登录GPRS无线网关GGSN 连接到Internet实现上网, 传送的数据可为任何接入Internet的具有公网IP的终端所接收.

1  总体设计
1. 1  设计目标
对无线图像传输和嵌入式应用的现状进行研究, 收集国内外软件和硬件的最新资料, 选择合适的芯片和模块, 以实现以下目标: 发送端体积小、功耗低、工作实时性好、可靠性高; 无线传送方式、传输距离远、受干扰小、功耗、不需要额外进行布线; 接收方式灵活多样, 且易于实现, 无需过多额外投入.

1. 2  系统的总体设计
系统结构如图1所示, 发送端为体积很小的嵌入式设备, 接收端可为手持机或PC机, 通过移动GPRS无线网和Internet传递图像信息.
图1  系统结构图

2  图像传输系统的硬件设计

系统的发送端硬件部分是基于三星S3C44B0X32位微处理器的嵌入式系统, 主要负责图像数据的读取,无线网络传输和一些控制任务.S3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案, 它使用ARM7TDMI核, 最高工作在66MHz , 芯片中集成了8kB Cache、外部存储器控制器、LCD控制器、4 个DMA 通道、2通道UART、1个多主机I2C总线控制器、1个I2S总线控制器, 以及5通道PWM定时器和一个内部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道12位ADC等, 资源相当丰富. 发送端基本组成如图2所示.

图2  基于ARM微处理器的发送端硬件结构

2. 1  嵌入式摄像模块
为了实现图像采集和压缩功能, 经比较后采用D192嵌入式摄像模块(Pictos公司) . 由于该模块集成了数字信号处理器和CMOS VGA图像传感器, 大大简化了硬件设计, 并提高了系统工作的可靠性. 它可以将拍摄的RGB源图像转化成MJPEG压缩格式并通过8位数据口并行输出. 帧速率、输出图像大小、格式可编程调整, 使用两个串口控制工作状态, 设定工作模式, D-192体积极小(X - 7. 7 mm , Y-7. 55 mm , Z - 5. 6 mm), 十分适用于低功耗需隐蔽的应用场合.

2. 2  G20 GPRS无线通信模块
本设计采用该模块实现图像的无线传输. GPRS理论数据传输峰值为115kb/s, 通过GPRS网进行数据传输需要使用GPRS 模块. 模块通过串口使用AT指令集与微处理器通信, 除了串口发送(TX) 、串口接收(RX)之外, 微处理器与GPRS之间还有一些硬件握手信号. 为了简化微处理器的控制, 在满足系统功能要求的情况下, 系统硬件设计时仅使用了数据载波检测(DCD)和终端准备就绪(DTR)信号.

2. 3  存储系统的扩展
线性FLASH ROM用来存储系统的引导程序和板级应用包, SDRAM用来运行RTOS和应用程序, SSFD扩展出来存储用户的系统文件和程序, EEPROM用来保存一些系统的参数, 例如发送端和接收端对应的密码, 图像控制参数, GPRS设置参数等.

2. 4  USB接口
采用USBN9603芯片(美国国家半导体公司), 用于在调试期间给调试板提供电源, 通过USB口下载程序到板上运行, 并通过该口反馈信息.

2. 5  JTAG调试端口
用来进行非插入式调试, 通过ARM芯片上的JTAG边界扫描口进行仿真, 仿真结果与真实的运行环境较为接近.

2. 6  系统的抗干扰设计
系统的抗干扰措施主要集中在如何制作抗干扰的PCB板上, 如电路板的布置, 电源和地线的处理,数字电路和模拟电路的共地处理, 高频器件的处理, 使用功能强大的布线和仿真软件等. 例如系统中包含了4个晶振, S3C44B0X的10MHz晶振, D192模块的12MHz晶振, USB接口芯片的24MHz晶振, G20GPRS模块的26MHz晶振. 所有这些信号线走线要尽可能短, 并适当加大线宽. 每个晶振外壳必须接地, 同时在数据总线和地址总线上串接220Ω的电阻, 可有效抑制高频数据线和地址线的信号反射现象.

手持接收端硬件设计与发送端相似, 增加连接了256色分辨率为320×240 的LCD显示器, 用来显示接收图像, 同时连接键盘完成一些必要的人机交互, 没有图像采集模块. 接收端还可以是任意接入Internet的具有确定公网IP地址的PC机, 这样就可以不受地域的限制, 满足不同的信息处理要求.

3  图像传输系统的软件设计
图像发送端和手持的接收端是典型的嵌入式系统. 在构架的嵌入式开发平台上, 选用ARM SDT 2.51为开发调试环境, 以μc/OS Ⅱ为嵌入式实时操作系统来开发应用程序, 利用已有的BSP, 应用程序接口使开发工作集中于实现系统功能上. 整个系统包括了ARM的引导程序, μc/OSⅡ, 嵌入式网络协议栈, 网络服务程序和各个设备的驱动程序. 由于μc/OS Ⅱ实时操作系统已经成功地移植于绝大多数的微处理器和微控制器, 使软件具有很大的通用性.

3. 1  监视端程序的总体设计
在主程序中调用D192初始化子程序, 主要内容包括: 设置输出图像格式, 输出图像像素大小, 图像采集速率及是否采用双场景输出格式等. 将这些设置写入地址为0X0D的VGA Imager控制寄存器和地址为0X44的Image Processer控制寄存器. 初始化程序还需为数据开辟并初始化缓冲区用来进行并串转换.

系统中, 系统任务层并行存在的几个任务依其优先级从高到低依次为: D192故障处理任务、网络数据收发任务、2个网络上层服务任务、网络协议处理任务、串行通信任务和2个系统任务, 各任务优先级根据系统各部分对响应时间不同来决定, 并且采用静态优先权, 即运行过程中任务优先权不变.

系统中打开5个消息队列服务和2个邮箱, 分别为:消息队列1: D192中断处理程序发送消息给网络服务任务, 消息中包含了指向当前压缩图像的指针.

消息队列2: 网络服务上层任务向网络协议处理任务发送的消息, 消息指针指向网络应用层数据.

消息队列3: 网络协议处理任务给网络驱动程序发送的消息, 消息指针指向当前要发送的IP数据报.

消息队列4: 网络驱动程序给网络协议处理任务发送的消息, 消息指针指向当前要发送的IP 数据报.

消息队列5: 网络协议处理任务向网络上层服务任务发送的消息, 消息指针指向网络应用层的数据.

邮箱1: D192的中断处理程序向操作系统主任务发送的邮件.

邮箱2: GPRS传输任务中断处理程序向GPRS的收发任务发送的邮件.

系统中3个中断服务的优先顺序从高到低为: ①D192传输中断服务, ②GPRS串行通信中断服务,

③系统时钟节拍的定时器0中断服务. 系统软件结构如图3所示.

图3  发送端软件结构图

3. 2  使用GPRS模块传输数据的程序设计
在进行GPRS传输操作之前需对模块进行设置, 主要有: ①设置通信波特率. ②设置接入网关.


设置移动终端类别. ④测试GPRS服务是否开通, 激活GPRS功能. 这些设置都在主程序的初始化代码段完成. 使用GPRS进行数据的无线传输可以通过2种移动分组路由, 路由可以分为内部PLMN数据传送路由和互联PLMN数据传送路由, 由此相应也就有2种传输方法. 使用ARM控制GPRS模块进行数据传送有2种方法.

1) 在移动GPRS网内进行点对点的数据传输, 要求收发双方都包含GPRS模块. 首先要求接收方使用命令AT +MIPCALL = 1, “CMNET”“, ”“, ”登录GPRS网内服务器, 登录成功后服务器返回该模块分配到的IP. 模块同时会打开一个端口(socket) 在网络上监听与这个端口相关的信息, 接着接收方使用AT指令拨叫接收方的SIM卡手机号并通过短信方式告知发送方所分配到的GPRS专网IP; 发送方收到短息后也登录GPRS网内服务器, 同时获得分配到的IP地址. 有了对方IP地址后, 双方就可使用传送AT指令互发数据了. 经GPRS网传送数据的过程在收发双方来看是透明的, 无需知道网络具体工作细节,在建立连接后只需往串口发送数据即可. 发送完毕后使用AT+MIPCLOSE = 1 关闭网络连接.

2) 使用GPRS模块登录GGSN网关, 通过无线上网的方式将数据传到远端的PC上. 由于使用μc/OS Ⅱ且有TCP/IP 协议栈的支持, 程序在主任务中完成网络连接后, 系统直接使用操作系统提供的API函数实现GPRS模块和GGSN之间的协商通信. 首先GPRS模块通过拨“*99 # ”连接GGSN, 接下来与GPRS网关进行通信链路协商, 协商过程遵守LCP(Link Control Protocol) 、PAP(Password Authentication Pro2tocol) 和IPCP( Internet Protocol Control Protocol)等协议. 一旦协商完成, 链路已经创建, IP地址已经分配,就可以按协商的标准进行IP报文传输了. 编程的一个难点是微处理器登录GGSN并与网关通过LCP、PAP、IPCP协议进行协商的过程. 在系统程序中只有处理请求(REQ) 、同意(ACK) 和拒绝(NAK)3种帧,其它链路问题都通过程序重新拨号来解决. 协商程序描述如下: 在拨号连接成功后, GGSN首先返回一个PAP REQ数据帧, 程序发送一个空LCP REQ帧, 以强迫进行协议协商. 随后, GGSN发送LCP设置帧, 程序拒绝所有的设置并请求验证模式. GGSN选择CHAP或PAP方式验证, 程序接受PAP方式. 然后, 进行PAP验证用户名和密码过程, 在GPRS中用户名和密码都设置为空, 如果验证成功, GGSN会返回IPCP报文分配动态IP地址, 这样就完成了GPRS模块与GGSN的协商过程. 协商完成后进入通信阶段, 同时也开始按流量计费, 这时微控制器向GGSN发送的所有包含IP报文的数据报都会被传送给Internet网中相应的IP地址, 而远端所有向微处理器IP地址发送的报文也都会经GPRS网传送到微处理器上, 从而完成微处理器的无线上网数据传输.

3. 3  数据的接收、解码及显示的程序设计
对于不同的传输方式, 接收端相应有不同的接收方式, 对于接入公网的PC来说, 使用VC6. 0集成开发环境编写接收程序, 后台主要完成端口监听, 数据包接收, IP数据报解析, 生成JPEG格式图像文件, JPEG图像的解码; 前台在每幅图像解码完成后显示图像. D192发送的MJPEG图像帧格式与普通JPEG格式不同, 不含有哈夫曼编码表、量化编码表且带有一些特殊的标志字节, 这就要求程序对不含哈夫曼编码表的情况调用相应处理函数、自建量化编码表并滤除重传标志位等. 对于手持的接收端来说, 在嵌入式操作系统(μc/OS Ⅱ RTOS)中实现接收显示的大致流程如下: 与发送端程序相似, 系统在主函数中首先完成嵌入式控制器硬件初始化, 接着完成操作系统各功能模块的初始化, 创建操作系统的3个任务: ①主任务, ②LCD 刷新任务, ③键盘扫描任务, 接着操作系统开始任务调度. 在系统主任务(MAIN- TASK)中创建系统的几个控件和子任务, 包括串行通信任务, 网络上层服务任务, TCP/IP协议处理任务, 接下来发送系统消息, 等待键盘消息, 根据消息完成: ①呼叫发送端建立网络连接; ②接收解码并显示图像; ③结束网络传输, 释放连接. 键盘扫描任务负责扫描键盘并发送按键消息, LCD显示任务负责等待刷新消息, 刷新液晶屏的显示内容.

4  结语
本系统的发送端由于把图像压缩和网络功能集成到一个体积很小的设备内, 并直接通过无线方式接入GPRS网和Internet, 省掉各种复杂的电缆连接, 安装方便.本系统用软件的方法替代了以往许多用硬件模块实现的功能, 同时实现了收发双方体积的小型化和低功耗, 在网络状况较为理想的情况下, 可以现实每秒钟传送1 帧的图像, 满足接收端对发送现场观察的需要, 同时也可胜任传送诸如现场温度、湿度、压力等信息, 应用于需要远程传送数据的系统中.

相关推荐

ARM收购Geomerics 强化行动装置游戏视觉

ARM  游戏视觉  2013-12-18

ARM:2013年Mail芯片出货量将超三亿片

ARM  芯片  2013-12-06

ARM控制智能机及平板芯片市场趋势将持续

ARM  控制智能机  2013-11-28

推动连网与行动创新 ARM聚焦物联网商机

ARM  物联网  2013-11-26

全球75%企业高管关注物联网新机遇

ARM  物联网  2013-11-08

从TI“蝗虫战略”到雷军“芯片免费”

芯片  嵌入式系统  2013-11-07
在线研讨会
焦点