当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]嵌入式Linux系统具有可移植性好、网络功能强、优秀的GNU编译工具、免费的开放源代码等优点。S3C2410处理器是一款采用ARM920T结构,内部资源非常丰富的32位嵌入式处理器。US

嵌入式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完成文件的传输。[!--empirenews.page--]

图4是采用Object PUSH服务来实现文件传输的流程。

 

结 语

本设计实现了ARM Linux环境下的图像采集工作,构建了ARM Linux下的蓝牙工作环境;通过蓝牙的OBEX协议和Object PUSH服务,实现了ARM Linux平台与蓝牙手机之间的文件传输。利用嵌入式系统和无线传输实现远程监控,符合数字化、网络化的发展趋势。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

美光坚持多元、平等、包容的企业文化,携手社区推行公益

关键字: 内存 存储 美光

e络盟现可向全球客户供应Alliance Memory产品

关键字: 存储 eMMC 闪存IC

2024年3月20日,2024中国闪存市场峰会(CFMS2024)在深圳宝安前海·JW万豪酒店盛大举办。本次峰会以“存储周期、激发潜能”为主题,共同探讨在供需关系依然充满挑战的大环境下,未来存储市场的变化,以及如何挖掘产...

关键字: SSD 存储 AI

2024年3月20日,深圳 —— 今日,以“存储周期·激发潜能”为主题的中国闪存市场峰会在深圳拉开帷幕。Solidigm携多元创新技术和丰富产品组合亮相,Solidigm亚太区销售副总裁倪锦峰登台发表了题为《夯实存力基础...

关键字: AI 存储 大语言模型

在下述的内容中,小编将会对硬盘的相关消息予以报道,如果硬盘是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 硬盘 存储

最新发布的平台增强功能帮助客户利用单一管理层加强数据存储环境的管控,有效简化端到端操作

关键字: 存储 数据中心 可持续发展

2024年3月15日,由东芝硬盘与中国地区代理商喜和香港有限公司联合主办主题为“生而坚韧 敢越山海”的2024东芝硬盘核心渠道商大会圆满成功。此次盛会汇聚了来自全国各地的众多核心渠道经销商,共襄盛举。东芝电子元件(上海)...

关键字: 存储 硬盘 人工智能

业内消息,韩媒称三星电子已将西安工厂的NAND闪存开工率至 70%。西安工厂是三星电子唯一处于韩国境外的存储半导体生产基地,月产能为 20 万片 300mm 晶圆,占三星整体 NAND 产量的 40%。

关键字: 三星 NAND 闪存 存储

近日,国内高端存储品牌——佰维存储正式官宣与TES英雄联盟战队达成深度合作,成为TES官方唯一指定存储品牌。佰维存储与TES战队将携手共同助力中国电竞产业蓬勃发展,为电竞行业注入更多硬核科技元素,让更多的玩家感受专业电竞...

关键字: 硬件 存储

HBM高带宽存储芯片被广泛应用于最先进的人工智能(AI)芯片,据业界消息,英伟达的质量测试对存储厂商提出挑战,因为相比传统DRAM产品,HBM的良率明显较低。

关键字: HBM 良率 存储 英伟达 测试
关闭
关闭