基于ARM Linux的图像采集与蓝牙传输 嵌入式Linux系统具有可移植性好

上传人:飞*** 文档编号:35899766 上传时间:2018-03-22 格式:DOC 页数:5 大小:217.50KB
返回 下载 相关 举报
基于ARM Linux的图像采集与蓝牙传输 嵌入式Linux系统具有可移植性好 _第1页
第1页 / 共5页
基于ARM Linux的图像采集与蓝牙传输 嵌入式Linux系统具有可移植性好 _第2页
第2页 / 共5页
基于ARM Linux的图像采集与蓝牙传输 嵌入式Linux系统具有可移植性好 _第3页
第3页 / 共5页
基于ARM Linux的图像采集与蓝牙传输 嵌入式Linux系统具有可移植性好 _第4页
第4页 / 共5页
基于ARM Linux的图像采集与蓝牙传输 嵌入式Linux系统具有可移植性好 _第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于ARM Linux的图像采集与蓝牙传输 嵌入式Linux系统具有可移植性好 》由会员分享,可在线阅读,更多相关《基于ARM Linux的图像采集与蓝牙传输 嵌入式Linux系统具有可移植性好 (5页珍藏版)》请在金锄头文库上搜索。

1、基于基于 ARM Linux 的图像采集与蓝牙传输的图像采集与蓝牙传输嵌入式 Linux 系统具有可移植性好、网络功能强、优秀的 GNU 编译工具、免费的开放源代码等优点。S3C2410 处理器是一款采用 ARM920T 结构,内部资源非常丰富的 32位嵌入式处理器。USB 摄像头具有低廉的价格,良好的性能,加上 Linux 下有 V4L 支持对其编程,很容易集成到嵌入式系统中。蓝牙技术是目前被认可的短距离无线通信技术,广泛应用于手机、电脑以及汽车免提系统。 本文介绍基于嵌入式 Linux 的 USB 图像采集系统,并通过构建好的嵌入式 Linux 下的蓝牙环境将采集到的图片传送到蓝牙手机上,

2、实现监控功能。 1 软硬件平台概述软硬件平台概述系统硬件平台如图 1 所示。该平台软件上采用嵌入式 Linux 操作系统;硬件上采用Samsung 公司的 S3C2410 处理器,另外配置了 64 MB 的 NAND Flash 存储器和 64MB的 SDRAM,通过以太网控制芯片 CS8900 扩展一个 10M 以太网接口。引出两个 USB 主口,一个接 USB 摄像头,一个接 USB 蓝牙适配器;将通过 USB 摄像头采集到的图像数据输出到缓冲区中,保存成文件,并通过蓝牙传输到蓝牙手机上。2 摄像头驱动摄像头驱动在 Linu 在 Linux 下已经支持的摄像头驱动是采用 ov511 芯片的

3、摄像头。使用这款芯片的摄像头有网眼 20003000 等系列,而现在市面上常见的摄像头芯片大多采用中芯微的zc0301、zc0302 和 zc0303 等。Linux 内核中并没有相关的驱动支持,但可以从网上下载到相关的 spca5xx 驱动。本系统就采用市面上最常用的 zc0301p1 芯片的摄像头。由于是用于 ARM 开发板上,可以下载专用于嵌入式 Linux 的 spca5xx-LE 驱动,LE 版的驱动最大限度地减少了内存的使用,符合嵌入式的需要。将下载的驱动加入到内核中,修改 Makefile 和 Kconfig 文件,在内核中选中 USB_SPCA5XX,编译后就将摄像头的驱动加入

4、到内核映像中了。3 Video4Linux 简介简介Video4Linux(简称“V4L”)是 Linux 下用于获取视频和音频数据的 API 接口,配合适当的视频采集设备和相应的驱动程序,可以实现影像图片采集、AMFM 广播、频道切换等功能,在远程会议、可视电话、视频监控系统中都有广泛的应用。在 Linux 下,所有外设都被看成是一种特殊文件,称为“设备文件”,可以像访问普通文件一样对其进行读写。一般来说,采用 V4L 驱动的摄像头设备文件是devv4lvideo0。为了通用,可建立一个到devvideo0 的连接。V4L 支持两种方式来捕获图像:mmap(内存映射方式)和 read(直接读

5、取方式)。V4L 在 includelinuxvideodev.h 文件中定义了一些重要的数据结构,在进行图像的采集过程中,就是通过对这些数据的操作来获得最终的图像数据。4 图像采集图像采集在图像采集过程中,采用 V4L 的 read 方式直接读取设备来获取 JPEG 格式的图像数据,具体流程如图 2 所示。4.1 初始化摄像头设备初始化摄像头设备指定要操作的摄像头设备文件devvideo0,调用 open()打开该设备文件,将自定义的数据结构 vdIn 中的成员初始化,包括设备名称(vd-videodevice)、要采集图像的宽度(vd-hdrwidth)和高度(vd-hdrheight)、

6、像素位数(vd-bppIn)、帧大小(vd-framesizeIn),为帧数据分配存储空间(vd-pFramebuffer)。4.2 设定待采集图像的各种属性设定待采集图像的各种属性zc0301p1 摄像头支持 JPEG 格式的图像采集,定义 VIDEO_PALETTE_JPEG 为21,将其赋值给图像帧的调色板 palette,这是一个必须设置的重要的参数。其他参数(如图像色调、颜色、对比度等)可以先将 VIDIOCGPICT 传递给 ioctl()查看其默认值。如果发觉以上的参数不符合采集图像的规范,则可以将pict.brightness、pict.colour、pict.contrast

7、、pict.white-ness、pict.depth 等重新赋值,再将 VIDIOCSPICT 传递给 ioctl()来重新设置这些参数。4.3 进行图像采集进行图像采集在图像采集过程中,采用 read 方法直接读取设备文件来获取一帧数据保存到缓冲区中,通过 convertframe()函数将 pFramebuffer 中的数据转成完整的 JPEG 格式的数据保存到ptframe 缓存中去,再调用 fwrite()函数将 pt-frame 缓存中的 JPEG 格式数据写入到指定的文件中去,即得到一幅 JPEG 格式的图像。5 蓝牙传输蓝牙传输蓝牙协议规范遵循开放系统互连参考模型(OpenSy

8、stem InterconnectionReferenced Model,OSIRM),从低到高地定义了蓝牙协议堆栈的各个层次,如图 3 所示。在蓝牙协议体系中,OBEX 位于 RFCOMM 之上。OBEX 提供了对象的表示模型,并通过“Put”和“Get”操作传输对象。设备间的对话遵循客户和服务器间的请求响应模式。OBEX 会话开始由客户端发出连接请求,连接建立成功后服务器发送成功的连接响应,否则发送连接不成功的连接响应。在连接之后,客户端可以通过 Put 请求向服务器“推送(Push)”对象,如果对象较大,Put 请求可以使用多个 Put 请求分组,每个请求分组需返回一个 Put 响应分组

9、。本系统将采集到的图片保存到tmpcap.jpeg,现在要将图片通过蓝牙传输到蓝牙手机上。具体实现过程如下: 在内核中打上蓝牙补丁,加入蓝牙协议的支持,添加 USB 蓝牙适配器的驱动。 编译 bluez 的库和工具。从网上下载 bluez-libs、bluez-utils 和 dbus 库,用 ARM-Linux-gcc 完成交叉编译,得到了 arm 版的 bl uez 库和 bluez 的工具以及 dbus-daemon 工具。这是蓝牙适配器在 ARM Linux 的环境下正常工作所必需的。 启动 USB 蓝牙适配器。要使 USB 蓝牙适配器正常工作,需要用到步骤中编译得到的 dbus-da

10、emon 工具和一些蓝牙工具(如 hciconfig、hcid 等)。dbus 是一个消息传递系统,应用程序间可通过它来相互传递消息。dbus-daemon 是一个守护进程,是运行 hcid所必需的,hcid 用来读入 hcid.conf 文件。该文件是蓝牙设备的一个配置文件,在该配置文件中设置好蓝牙设备的类型、classid、配对码、设备是否可被搜索等其他的属性。 实现文件传输。本系统采用 OBEX 协议的客户服务器模式来传递采集到的图片文件,需要用到蓝牙的 Object PUSH 服务。首先用 sdptool 工具搜索到蓝牙手机的 MAC地址以及 Object PUSH 服务所占用的频道,然后用 rfcomm 工具将该频道绑定到虚拟串口,最后运行 obex_test 完成文件的传输。图 4 是采用 Object PUSH 服务来实现文件传输的流程。结结 语语本设计实现了 ARM Linux 环境下的图像采集工作,构建了 ARM Linux 下的蓝牙工作环境;通过蓝牙的 OBEX 协议和 Object PUSH 服务,实现了 ARM Linux 平台与蓝牙手机之间的文件传输。利用嵌入式系统和无线传输实现远程监控,符合数字化、网络化的发展趋势。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号