Microcomputer Applications V ol.27,No.10,2011
研究与设计微型电脑应用2011年第27卷第10期
35
文章编号:1007-757X(2011)10-0035-03基于Cortex-A8的仓库管理移动终端设计
赵俊旭,唐厚君,钟溢原
摘要:针对仓库管理需求,研发商品信息采集与处理的软硬件平台。与RFID 不同,提出的方案其信息处理对象是视频信号而非射频信息。系统平台以Embedded Linux 为基础,通过移植计算机视觉库OpenCV 和图形用户界面程序框架Qt 对图像处理和UI 的开发提供支持。设计了多线程程序架构以满足多任务和软实时的要求。
关键字:Cortex-A8,嵌入式视觉,嵌入式Linux ,多线程通信
中图分类号:TP311文献标志码:A
0引言随着现代物流的日益发展,仓库管理水平在价格控制方面的作用愈发关键。在如何实现高效管理的问题上,人们做过很多有意义的探索,物联网概念的出现更使人们对透明高效的物流时代充满憧憬。目前,在物联网中广泛使用了RFID 技术,而本文从另外一个角度,探索了嵌入式视觉技术在物联网中实施的可行性。基于视频信息,研发了小型仓库管理平台,规避了电子标签成本过高的问题。此系统用普通条形码代替电子标签,通过图像处理技术完成标签的识别,实现仓库监控、仓库信息更新
、商品查询等操作,通过对算法的完善,还可进一步实现包装破损查询功能。具有高效、可靠、成本低、可拓展性强等特点。既可成为RFID 技术的补充,亦有自己独特的优势,对推进物流信息化的发展有一定参考作用[1]。1硬件平台设计1.1系统整体设计系统由移动终端设备和控制板两部分组成,整体结构示意图如图1
所示:
图1硬件平台示意图
控制板基于减小设备的体积增强其移动性的思路设计,将与移动性功能实现无关的接口从设备上独立出来,需要时
以FPC 线相连。在系统研发阶段,编程板提供编程调试和
系统初始化接口,产品化后为用户提供系统升级,数据库更
新等功能。移动终端是图像采集与处理平台的主体,实现视
频采集处理和人机交流。视频采集模块使用红外摄像头,以
保证即使在光线较暗的环境下也能有效采集编码信息。人机
交互界面采用触控式操作,为用户提供友好方便的操作界
面,实现系统功能设定、商品信息录入与查询和处理结果输
出等功能。
1.2终端主板设计
主控芯片采用基于ARMv7架构的Cortex-A8处理器,
主频达600MHz 。相比于基于ARMv6架构的相同频率
ARM11其性能增益多至3倍,能够更好的完成图像处理和
接口控制任务。存储器使用美光MT29C 系列MCP ,集成
NAND FLASH 和LPDRAM 于一块芯片上,能有效减小主
板面积,降低设备体积。主板上采用了TI 的TPS 系列电源
管理芯片为低压芯片提供标准供电电压,降低系统能耗。视
频编解码芯片使用TVP5146,尽管其体积是TVP5150的3
倍左右,但可以为系统提供更为可靠的数字视频信号。触摸
屏控制器采用低压供电芯片TSC2046。
1.3控制板设计
控制板通过终端主板供电,集成了串口RS-232(如图2)
和miniSD 卡槽(如图3),用于实现系统调试、更新和网络
扩展等。串口控制器采用MAX3232。如图2、图3
所示:图2UAR T 原理图
———————————
作者简介:赵俊旭(1986-),男,上海交通大学电气工程学院,硕士,研究方向:嵌入式应用,上海,200240
唐厚君(1957-),男,上海交通大学电气工程学院,教授,研究方向:智能控制和工业自动化,上海,200240
钟溢原(1986-),男,上海交通大学电气工程学院,硕士,研究方向:电力电子与电力传动,上海,200240
Micr ocomputer Applica tions V ol.27,No.10,2011研究与设计微型电脑应用2011年第27卷第10期
36图3SD 原理图2软件平台设计为使平台具有较好的适应性,降低再开发的复杂性,移植了在嵌入式设备中广泛使用的Embedded Linux 操作系统。如图4
所示:
图4Embedded Linux 系统示意图具有操作系统的软件系统示意图。Linux 平台上丰富的软件资源和成熟的开发经验可以使项目开发进度有更好的可预测性,有效降低研发风险。
2.1Linux 系统移植
Linux 系统移植主要有三个方面工作,编译引导程序,
编译内核,制作文件系统。引导程序使用U-boot ,全称
Universal Boot Loader ,是遵循GPL 条款的开放源码项目;
Linux 内核版本为2.6.32,将内核源码打好补丁,根据硬件
情况做适当的配置,生成镜像;文件系统里设置运行环境,
添加需要的函数库,制作镜像文件。最后将制作好的镜像按
顺序烧录即完成系统移植。
2.2视频采集与显示编程接口
1)音视频编程接口V4L
视频采集使用Linux 为音视频流操作提供的统一编程
接口Video4Linux 。V4L 有两个版本,V4L 和V4L2,后者
从Linux 2.5.x 开始被集成到内核里,修复了V4L 的部分bug 。
对应的头文件分别是内核目录里的linux/videodev.h 和
linux/videodev2.h 。
2)帧缓冲驱动Framebuffer
实时视频显示是通过使用Linux 内核提供的驱动程序
接口Framebuffer 实现的。由于Linux 工作在保护模式下,
所以用户态进程无法直接实现屏写操作。Linux 的
Framebuffer 机制模仿显卡的功能,将硬件结构抽象掉,从
而实现通过Framebuffer 直接写屏。
2.3应用库介绍与移植
1)计算机视觉库OpenCV
OpenCV 是一个基于BSD 许可证授权的跨平台的计算
机视觉库,被广泛用于图像处理、计算机视觉等领域。实现
了图像处理和计算机视觉方面的很多通用算法。本系统采用
OpenCV2.0版本[2]。下载OpenCV 源码包,配置configure 参数,完成编译。
将生成的库文件拷入嵌入式系统/lib 目录下。
2)触控操作函数接口tslib
Tslib 是一个开源的程序,能够为触摸屏输入的采样信
号提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动
的适配层,为上层的应用提供了一个统一的接口。本系统采
用tslib1.4版本。下载源码,配置合适的参数,编译安装到
指定路径,tslib_path 。将编译完成的库文件拷入嵌入式系统
中,需保证路径与tslib_path 一致。最后设定触摸屏为输入
设备并添加与触控相关的环境变量。
3)图形用户界面程序框架QtE
Qt 是诺基亚开发的一个跨平台的C++图形用户界面
应用程序框架,完全面向对象,很容易扩展,并且允许真正
地组件编程,具有优良的跨平台特性、面向对象、丰富的
API 、大量的开发文档等优点。本系统采用Qt4.5.3版本[3]。
QtE 编译时需添加tslib 的路径,以保证Qt 支持触控操
作。将编译好的Qt 库文件添加到嵌入式系统/lib 下。3应用层系统设计
3.1多线程程序框架设计
共有四个线程,主控线程,Qt/GUI 线程,图像采集处
理线程,音频线程。四个线程的工作流程,如图5
所示:图5多线程流程图主控线程完成设备与线程的初始化后,负责线程间的信息传递,任务控制和实时视频显示;Qt 线程负责人机交流,向主线程传递启动信息,配置信息等;图像采集处理线程以5帧/s 的速度采入实时图像,供图像处理程序处理,处理结果写入管道供主控线程读取;音频线程负责播报
主控线控传递的结果。3.2主控线程的实现及线程间通信
Microcomputer Applications V ol.27,No.10,2011研究与设计微型电脑应用2011年第27卷第10期
3主线程要处理按键输入,视频信号,Qt 线程配置文件
输入和图像处理线程结果返回。由于在Linux 下设备被抽象
成文件形式,因而对其操作属于文件操作。Qt 线程和图像
处理线程两者与主线程的消息传递采用管道形式,也属于文
件操作。从而既保证了多线程之间通信的可靠性,同时也实
现了程序的一致性。主线程与音频线程的关系是单向消息传
递,使用互斥量即可满足要求。
主线程使用select 原语实现多路I/O 输入的转接。调用
FD_SET 函数接口设置变量fd_set 的图像采集位、按键响应
位、处理结果输出位;调用select 函数在max_fd+1的范围
内选择准备好的读集描述符;最后调用FD_ISSET 测试该位
是否被设置。从而实现对不同输入的及时响应[4]。描述线程
间关系的示意图。如图6
所示:图6线程控制与通信示意图3.3图像采集与显示视频采集主要有以下几个步骤:打开设备、读取设备信
息、进行视频采集、视频信息处理、关闭设备。视频设备对
应的文件是/dev 目录下的video0。
摄像头的制式分为NTSC 和PAL 两种,我国国内使用
的PAL 制式,其特点是每秒25帧,扫描线为625,奇场在
前,偶场在后,标准分辨率为720*576。由摄像头采集的视
频信号为YUYV 格式,即以4:2:2方式打包。其中Y 为亮
度信号,U 、V 为度信号。每点的亮度和度信息用16
位二进制数表示。由于此应用中不需要使用度信息,故屏
蔽前8位数据,降低数据复杂度。采集的视频数据存入内存
里供视频显示和图像处理使用。
Linux 下Framebuffer 设备对应于/etc 下的fb0文件。首
先打开fb0,通过ioctl 命令获取可以获得显示设备的一些固
定信息(比如显示内存大小)、与显示模式相关的可变信息
(比如分辨率、象素结构、每扫描线的字节宽度),以及伪
彩模式下的调板信息等。通过mmap 系统调用完成
Framebuffer 设备到进程地址空间的映射。将采集的视频信
息写入此地址空间即完成视频图像在LCD 上的显示。
linux终端下载软件3.4系统上电启动与触摸屏校正
系统上电后首先启动引导程序,然后加载内核,完成硬
件初始化后启动init 进程,init 进程读取/etc/init.d 目录下的
rcS 文件,运行rcS 脚本完成环境变量配置并启动应用程序
[5]。如图7
所示:
图7上电启动流程图
系统第一次开机时触摸屏处于未校正状态,无法实现正
确的触控操作,需先进行校正。完成校正的触摸屏坐标信息
被保存在/etc 目录下的pointercal 文件里,因而在脚本里首
先判断是否存在pointercal 文件,若不存在则视为未进行校
正,此时,需运行校正程序。校正完成后重启即可正确加载
触摸屏坐标信息。
4结束语
本文研发了基于Embeded Linux 操作系统的图像采集
与处理平台,充分运用了Linux 平台丰富的开发资源,并为
进一步的功能拓展提供了良好的硬件支持和软件基础。仓库
管理的信息化是提高管理效率,降低物流成本的有效途径,
也是这个行业发展的必然趋势。本文设计的平台为实现仓库
管理信息化提供了新的思路。
系统实物图,从左往右依次为触摸屏,终端主板和编
程板,如图8
所示:图8实物图参考文献:[1]王莹.物联网为嵌入式系统带来机遇,电子产品世界[C],2010.[2]/.[3]qt.nokia/title-cn/.[4]W.Richard Stevens,Stephen A.Rago 著.尤晋元,张亚英,戚正伟译.UNIX 环境高级编程(第2版)[M],人民邮电出版社,2006.[5]Mark G.Sobell 著.杨明军王凤芹译,Linux 命令、编辑器与Shell 编程[M].清华大学出版社,2009.(收稿日期:2011.06.08)
7
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论