基于ARM Linux的图像采集与蓝牙传输

发布者:快乐的舞蹈最新更新时间:2007-09-03 来源: 单片机及嵌入式系统应用关键字:摄像  缓冲  存储  控制 手机看文章 扫描二维码
随时随地手机看文章

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

本文介绍基于嵌入式Linux的USB图像采集系统,并通过构建好的嵌入式Linux下的蓝牙环境将采集到的图片传送到蓝牙手机上,实现监控功能。

1 软硬件平台概述

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

2 摄像头驱动

在Linux下已经支持的摄像头驱动是采用ov511芯片的摄像头。使用这款芯片的摄像头有网眼2000/3000等系列,而现在市面上常见的摄像头芯片大多采用中芯微的zc0301、zc0302和zc0303等。Linux内核中并没有相关的驱动支持,但可以从网上下载到相关的spca5xx驱动。

本系统就采用市面上最常用的zc0301p1芯片的摄像头。由于是用于ARM开发板上,可以下载专用于嵌入式Linux的spca5xx-LE驱动,LE版的驱动最大限度地减少了内存的使用,符合嵌入式的需要。将下载的驱动加入到内核中,修改Makefile和Kconfig文件,在内核中选中USB_SPCA5XX,编译后就将摄像头的驱动加入到内核映像中了。

3 Video4Linux简介

Video4Linux(简称“V4L”)是Linux下用于获取视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现影像/图片采集、AM/FM广播、频道切换等功能,在远程会议、可视电话、视频监控系统中都有广泛的应用。

在Linux下,所有外设都被看成是一种特殊文件,称为“设备文件”,可以像访问普通文件一样对其进行读写。一般来说,采用V4L驱动的摄像头设备文件是/dev/v4l/video0。为了通用,可建立一个到/dev/video0的连接。

V4L支持两种方式来捕获图像:mmap(内存映射方式)和read(直接读取方式)。

V4L在include/linux/videodev.h文件中定义了一些重要的数据结构,在进行图像的采集过程中,就是通过对这些数据的操作来获得最终的图像数据。

4 图像采集

在图像采集过程中,采用V4L的read方式直接读取设备来获取JPEG格式的图像数据,具体流程如图2所示。

4.1 初始化摄像头设备

指定要操作的摄像头设备文件/dev/video0,调用open()打开该设备文件,将自定义的数据结构vdIn中的成员初始化,包括设备名称(vd->videodevice)、要采集图像的宽度(vd->hdrwidth)和高度(vd->hdrheight)、像素位数(vd->bppIn)、帧大小(vd->framesizeIn),为帧数据分配存储空间(vd->pFramebuffer)。

4.2 设定待采集图像的各种属性

zc0301p1摄像头支持JPEG格式的图像采集,定义VIDEO_PALETTE_JPEG为21,将其赋值给图像帧的调色板palette,这是一个必须设置的重要的参数。其他参数(如图像色调、颜色、对比度等)可以先将VIDIOCGPICT传递给ioctl()查看其默认值。


如果发觉以上的参数不符合采集图像的规范,则可以将pict.brightness、pict.colour、pict.contrast、pict.white-ness、pict.depth等重新赋值,再将VIDIOCSPICT传递给ioctl()来重新设置这些参数。

4.3 进行图像采集

在图像采集过程中,采用read方法直接读取设备文件来获取一帧数据保存到缓冲区中,通过convertframe()函数将pFramebuffer中的数据转成完整的JPEG格式的数据保存到ptframe缓存中去,再调用fwrite()函数将pt-frame缓存中的JPEG格式数据写入到指定的文件中去,即得到一幅JPEG格式的图像。

5 蓝牙传输

蓝牙协议规范遵循开放系统互连参考模型(OpenSystem Interconnection/Referenced Model,OSI/RM),从低到高地定义了蓝牙协议堆栈的各个层次,如图3所示。

在蓝牙协议体系中,OBEX位于RFCOMM之上。OBEX提供了对象的表示模型,并通过“Put”和“Get”操作传输对象。设备间的对话遵循客户和服务器间的请求—响应模式。OBEX会话开始由客户端发出连接请求,连接建立成功后服务器发送成功的连接响应,否则发送连接不成功的连接响应。在连接之后,客户端可以通过Put请求向服务器“推送(Push)”对象,如果对象较大,Put请求可以使用多个Put请求分组,每个请求分组需返回一个Put响应分组。本系统将采集到的图片保存到/tmp/cap.jpeg,现在要将图片通过蓝牙传输到蓝牙手机上。具体实现过程如下:

① 在内核中打上蓝牙补丁,加入蓝牙协议的支持,添加USB蓝牙适配器的驱动。

② 编译bluez的库和工具。从网上下载bluez-libs、bluez-utils和dbus库,用arm-linux-gcc完成交叉编译,得到了arm版的bluez库和bluez的工具以及dbus-daemon工具。这是蓝牙适配器在ARM Linux的环境下正常工作所必需的。

③ 启动USB蓝牙适配器。要使USB蓝牙适配器正常工作,需要用到步骤②中编译得到的dbus-daemon工具和一些蓝牙工具(如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平台与蓝牙手机之间的文件传输。利用嵌入式系统和无线传输实现远程监控,符合数字化、网络化的发展趋势。

关键字:摄像  缓冲  存储  控制 引用地址:基于ARM Linux的图像采集与蓝牙传输

上一篇:基于PNX1500的嵌入多媒体平台
下一篇:香熏美容蒸汽浴房的智能化设计

推荐阅读最新更新时间:2024-05-02 20:37

软硬件相结合 智行者期待多域控制
“无论是外来企业还是新兴造车公司包括科创公司,都在不停地改变着整个汽车产业链的架构。它是开环或者金字塔式的,从OEM一直往下也是金字塔式的结构,现在都在寻求改变或是转型,不管是整车厂正在进行一些服务的尝试,还是出行服务商在整个汽车产业的话语权和地位越来越重。”智行者科技联合创始人霍舒豪先生,在慕尼黑上海电子展的第三届“汽车技术日(Automotive Day)高峰论坛上,就《推动全球自动驾驶技术落地技术及先行应用场景》为主题,发表了演讲。 自动驾驶的技术版图 霍舒豪先生说到:“整个汽车产业正在发生变化,包括消费者或是服务需求,还要围绕他去开发一些针对性的产品,都是目前的现状。虽然整个汽车行业是百年的产业,但是今天
[汽车电子]
软硬件相结合 智行者期待多域<font color='red'>控制</font>器
牛津半导体推出USB/Firewire双SATA存储控制
牛津半导体公司(Oxford Semiconductor)近日发布了具有加密功能的可配置USB/Firewire双SATA存储控制器OXUF924DSE。该产品能够帮助外部存储制造商向用户提供稳定性极高的数据保密存储。该款控制器通过整合硬件实现来加密,因此能够使数据吞吐速度保持在80Mbytes/秒这样较高的水平上。 OXUF924DSE控制器可连通双SATA磁盘和USB2.0接口以及Firewire400和Firewire800端口,而且可向高级加密标准(Advanced Encryption Standard)提供实时的128位加密。由于能够支持安全令牌(secure token)、软件密码和生物识别(指纹技术)传感器等加密
[新品]
普通门铃加装摄像头就能当智能门铃?
  iDoorCam在集资网站Indiegogo上可谓是顺风顺水,仅仅发布一天就已经筹得了预期的资金。而距离集资结束尚有一周多的时间,看来它已经赢得了足够多投资者的信心。   iDoorCam可不是你想象中的那种简单普通的门铃,而是被设计成未来智能家居的一部分。在这个小小门铃的内部,置入了动作感应器、安全摄像头,当然 还有必不可少的门铃。而这款门铃最令人称道的地方是,即使不在家,你依然可以监控你的房子。而作为这款未来门铃的联合创始人,Andrew Thomas 和Desiree Mejia近日接受采访阐述了他们对于门铃设计的一些想法与初衷。 小体积大发展 这款智能门铃你喜欢吗?   在被问及iDoorCam如何与市
[安防电子]
iPhone新机将问世供应链期待2GB存储器成主流
   下半年将问世的苹果新一款iPhone系列智能型手机,传出新机种内建DRAM容量将倍增,有机会从原本的1GB存储器升级至2GB存储器芯片,供应链已传出苹果为了新机问世,积极向存储器厂采购存储器芯片的风声,这也是相关存储器业者下半年最大利多。   对于苹果新一款iPhone是维持在1GB存储器容量,或是升级至2GB存储器,市场传言一直不少,另有一说是5.5吋的智能型手机会将内建存储器芯片升级至2GB芯片。   存储器业者认为,市面上多款智能型手机都已将内建的DRAM芯片容量提升至2GB水准,以应付更佳的萤幕解析度、更高效能等软硬件运作,只有苹果的iPhone 5都仍是内建1GB容量的存储器芯片,诉求以1GB芯片容量就可负担iOS运
[手机便携]
SRS3D立体声音响控制器M62437FP及其应用
    摘要: M6237FP是带SRS环绕和SRS聚焦的3D立体声音响控制器IC。可为汽车电子音响系统进行高质量的3维立体声音响控制。本文介绍了M62437FP的性能参数和工作原理。同时给出了它的几种应用电路。     关键词: SRS 3D立体声 音响控制器 M62437FP M62437FP是一种高品质声音还原系统(SPS)3D立体声音响控制器单片IC,它主要是为汽车音响系统而设计的,也适用于其它一些音响系统。 1 芯片简介 M62437FP采用42脚42P2R封装,芯片上集成了SRS环绕和SRS聚焦(FOCUS)系统。它的内部结构、引脚排列及外部电路如图1所示。 M62437F
[半导体设计/制造]
浅谈现场总线控制系统在水处理系统中的应用
1 引言     现场总线是指安装在制造或过程区域的现场装置与控制室内的自动装置之间的数字式、串行、多点通信的数据总线。简单说,现场总线就是以数字通信替代了传统4-20mA模拟信号及普通开关量信号的传输。   现场总线的技术基础是一种全数字化、双向、多站的通信系统,是应用于各种计算机控制领域的工业总线,因现场总线潜在着巨大的商机,世界范围内的各大公司投入相当大的人力、物力、财力来进行开发研究。当今现场总线技术一直是国际上各大公司激烈竞争的领域,由于现场总线技术的不断创新,过程控制系统由第四代的DCS发展至今的FCS(Fieldbus Control System)系统,已被称为第五代过程控制系统。而FCS和DCS的真正区别
[嵌入式]
用单片机玩PID控制—从理想PID控制至先进PID控制_9
3.2.2工程PID控制2 一种工程实用调节器算法如下: Gc(s)=Kc*(1+1/(Ti*s)+Td*s/(Td*s/Kd+1)) 这种算法见诸西门子智能调节器中,应该说也是一种常用的PID算法,算法是在微分环节上加了一个低通滤波作用,这种不完全微分作用的数值计算方法,可以用3.2.1节介绍的方法求取,这里不再重复,算法的控制效果如图1所示,从图中可以看出控制输出瞬间不动很小,在过程值混有白噪声的情况下,控制效果如图2所示,从图中可以看出,控制输出瞬间波动比pv值有滤波的情况下略大一点。
[单片机]
用单片机玩PID<font color='red'>控制</font>—从理想PID<font color='red'>控制</font>至先进PID<font color='red'>控制</font>_9
异步电机矢量控制算法基础(下)
5.6 )SVPWM实现过程 从上节的分析可知,哪几个电压空间矢量和其作用的时间是SVPWM的两个根本的问题。要实现SVPWM,仿真搭建时需要注意和解决的几个问题。 (1)、电压空间矢量所在扇区的判断; (2)、基本矢量作用时间的计算; (3)、基本矢量的作用顺序及扇区切换点时间确定。 只要解决以上3个问题,就能实现SVPWM。 下面我们用一个小例子来理解PWM信号。图2是一个直流电路,它有一个电阻,一个开关,一个灯泡,和一个驱动灯泡的10V直流电压源。我们如何能得到2.5V电压驱动下的灯泡亮度呢? 5.6.1 )SVPWM理论讲解 该状态对应的电机绕组连接图如下:
[嵌入式]
异步电机矢量<font color='red'>控制</font>算法基础(下)
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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