基于嵌入式Linux远程图像监控系统的设计

2024-05-05

基于嵌入式Linux远程图像监控系统的设计(共6篇)

篇1:基于嵌入式Linux远程图像监控系统的设计

本文由wangyong1179贡献

pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。2010年第 11期 文章编号: 1006 2475(2010)11 0031 04 计 算 机 与 现 代 化 JISUAN JI YU X IAN DA I UA H 总第 183期

基于嵌入式 L inux远程图像监控系统的设计

唐人财, 刘连浩

(中南大学信息科学与工程学院, 湖南 长沙 410083)摘要: 系统以嵌入式微处理器 S3C2440和 L inux为核心平台, 采用 U SB摄像头作为图像采集设 备, 利用 L inux 下视频设备 应用编程接口 V 4L2和 Q t/Em bedded实现图像的采集, 实时 显示和 JPEG 格式 图片保 存, 利 用 libjpeg 库来实 现视频 数据 的编解码以及通过以太网进行远程传输, 实现一种功耗低、可靠性高和低成 本的网络图像采集与传输系统设计方案。关键词: L inux 图像采集;Q t/Em bedded V 4L2;S3C2440;;中图分类号: T P391 41.文献标识码: A do: 10 3969 /.j issn.1006 2475.2010.11.009 i.D esign of R emote I age M on itoring System Based on Em bedded L inux m TANG R en ca, L IU L ian hao i(Institu te of Infor ation Science and Eng ineer ing, C entra l South U niversity Changsha 410083, China)m , Ab stract T he syste uses e : m mbedded m icroprocesso r S3C2440 and L inux as the core platfo r T he applica tion prog ramm ing in m.te rface V 4L2 and Q t /Embedded library are tw o key techno log ies to realize i age acqu isition, rea l ti e display and JPEG p icture m m sav ing by using U SB ca era T his design of i age acqu isition and trans ission is a low powe r consumption, h igh reliab ility and m.m m inexpensive syste m, wh ich ach ieves encod ing o r decod ing of i ages by lib jpeg library and remo te transm ission o f E therne t m.K ey w ords L inux;i age acquisition;Q t/Em bedded V4L 2;S3C2440 : m;0 引

友好图形操作界面, 实现现场图像在终端上的实时显 示和 JPEG图片的保存。利用 L inux 下 lib jp eg库编码 压缩图像, 通过以太网接口实时传输到视频监控中心 PC机上, 通过接收解码显示现场图像, 实现远程视频 图像监控功能。系统总体设计结构如图 1所示。

随着嵌入式技术、多媒体技 术及网络技术 的发 展, 基于嵌入式技术、视频压缩编码技术和网络传输 控制技术的综合应用, 已成为数字化网络视频采集监 控领域的核心 技术。系统是基于 ARM 9和 L inux平台的远程视频图像监控设计方案, 整个系统建立在嵌 入式结构上, 实现了高质量的视频图像采集和实时处 理功能。

系统总体设计

远程视频图像监控系统分为嵌入式视频监控终 端和监控中心 PC 机两部分。嵌入 式视频监控终端 基于嵌入式微处理器 S3C2440和 L inux 核心平台, 采 用通用 USB 摄像头捕捉现场图像, 通过 USB 接口将 数据传输到 ARM 开发板上, 由开发板上的图像采集 处理模块进行图像数据处理, 通过 LCD 触摸屏显示

图 1 系统总体设计框图 2 系统硬件设计

系统选取 m in i2440开发板作为系统设计的硬件

收稿日期: 2010 06 28 作者简介: 唐人财(1978), 男, 海南海口人, 中南大学信息科学与工程 学院硕 士研究 生, 研 究方向: 嵌入 式系统 及应用;刘连 浩(1959), 男, 湖南 澧县人, 教授, 博士, 研究方向: 单片机及嵌入式系统。32 计

2010年第 11期

平台, 监控终端硬件由主控模块和扩展模块两部分组 成。主控模块采用嵌入式微处理器 S3C2440 它是一 , 款基于 ARM 920T 核的 16/ 32位 RS I 结构的嵌入式微 C 处理器, 主频 400 z 最高可达 533 MH , MH z 片内外资源 , 丰富, 具有强大的处理能力, 从硬件上保证了系统快速 的响 应 速 度。系 统 存 储 扩 展 了 128 B 的 NAND M FLAS 64 B的 SDRAM。扩展模块包括通用 USB摄 H, M 像头、9000以太网控制器和带触摸屏的 NEC3 5英 DM.寸 TFT 真彩液晶屏。主控模块通过 USB 接口电路、LCD接口电路、以太网接口电路与扩展模块相连接构 成整个硬件系统。系统硬件结构如图 2所示。

配置内核编译选项时把 UVC 驱动编译进内核。UVC 不是摄像头的品牌或型号, 它是一种视频设备的技术 规范, 全称为 U SB V ideo C lass 这是一个为 USB 视频 , 设备提供驱动的开源项目。UVC 驱动支持 V 4L 2应 用编程接口, 系统设计中使用的 USB 摄像头为 T op Speed U SB 2 0 C a era UVC 驱动提供支持。.m , 3 3 V4L2图像采集程序的实现.V4L2 是 V id eo For L inux Two 的 简称, 是 V id eo Fo r L in ux AP I的第二版本, 是 L inux 下开发视频设备 程序的接口标准, 使用分层方法对所有视频设备的驱 动和应用编 程提 供一 套完备 的接 口规 范。基于 V4L 2标准, 视频图像采集处理流程如图 3所示。[ 3] 图 2 系统硬件结构框图 3 系统软件设计

1 系统软件平台.系统软件平台以嵌 入式 L inux 和 Q t/Em bedded 为基础, 具体构建步骤为: 在宿主机上建立交叉编译 环境, 完成引导加载程序 v ivi的编译移植, 编译移植 linux 2 6 29 内核, 包括 DM 9000 网卡、..通用 USB 摄 像头和 LCD 触摸 屏等驱动 的移植, 基于 busybox 1.13.3构建文件系统。基于系统设计的需求, 还要完 成 QTE 4 5 3图形库与 tslib 1 4触摸屏支持库以及...lib jp eg库向开发板的移植。lib jp eg 库主要用于实现 内存中图像数据的编解码, QTE 4 5 3是面向嵌入式..系统的 Q t版本, 采用了 fram ebuffer作为底层图形接 口, 采用 C ++ 封装, 具有丰富的控件资源和良好的可 移植性, 系 统中的应 用程序 以及环 境都是 基于 Q t / Em bedded来开发的。最终形成基于 ARM 的嵌入式 [ 1 2] L inux 操作系统平台 , 在系统软件平台上可进行嵌 入式应用程序的开发。限于篇幅, 系统软件平台的构 建在此只作简单介绍。3 2 嵌入式 L inux下 USB 摄像头驱动.为了使用 L in ux下 V4L2应用编程接口编写图像 采集应用程序, 在开发板上移植版本为 linux 2 6 29..的内核, 此内核版本支持 UVC 驱动 USB 摄像头, 在图 3 视频图像采集处理流程图

3 1 视频设备结构体初始化..程序中定义一个视频设备的数据结构 struct vde vice 结构体的成员变量是对视频设备和图像属性的 , 描述。

init_ vdata(struct vdevice * vdev , char * dev _na e un m , signed int w idth unsigned int he ight int fo r at);, , m 通过参数完成对视频设备结构体变量 vdev的赋 值初始化。视频设备名称 dev_na e 视频图像宽度 m , w idth 视频图像高度 heigh, 视频图像格式 for a, 以 , t m t 及申请分配两个内存缓冲区 fram ebuffer和 rgbbu ffer , 分别为采集到的一帧图像 数据缓冲区和 24位 RGB 图像数据缓冲区。3 3 2 视频设备初始化..函数 in it_vdev(struct vdev ice * vdev)根据参数

2010年第 11期

唐人财等: 基于嵌入式 L inux远程图像监控系统的 设计

vdev传递的值对视频设备进行初始化, 这是进行视频 图像采集前必须完成的工作。视频设备结构体 vdev 包含了要设置的设备信息, 初始化视频设备到适合的 图像采集工作方式。视频设备初始化具体实现如下:(1)打开摄像头设备文件。利用系统调用 函数 vdev > fd = open(vdev > dev_nam e O_RDWR)实现, 该函数的功能是打开参 , 数 vdev > dev_nam e指定的设备, 对于摄像头用设备 文件名 /dev /v ideo0 表示, vdev > fd 是设备打开后 返回的文件描述符, 在程序中可使用它来对设备文件 进行操作。(2)查询设备信息和设置采集属性。在 L inux 编程中, io ct l函数是设备驱动程序中对 设备的 I /O 进行管理的函数, 用户程序一般使用 ioctl 函数来对设备的一些特性进行控制。调用带 V ID I C _ O QUERYCAP命令参数的 io ct l函 数来取得设备文件的属性参数, 并存储于 struct v4l2_ capab ility 结构体变量 vdev > cap 中, 然后可 逐项验 证 vdev > cap的属性, 看设备是否符合采集的要求。

ioctl(vdev > fd V ID I _QU ERYCAP, & vdev > cap);, OC m em 间建立映射, 调用带 V I I C _QBUF 命令参数的 DO ioct l函数将所申请的设备缓存加入等待输入缓存队 列, 内存映射初始化完成。3 3 3 采集图像数据..函数 capture(struct vdevice * vdev)完成一帧视 频图像数据采集, 采集到的视频图像数据存放到设备 缓存 vdev > bu f中, 通过映射的程序内存空间可处理 视频图像, 函数调用成功返回视频设备采集的图像数 据大小。在设备缓存加入等待输入队列后, 调用带 VIDI C_ O STREAMON命令参数的 ioctl函数使能视频设备。

type= V 4L2_BU F _TYPE_V IDEO _CA PTURE;ioctl(vdev > fd V ID I _STREAM ON, & type);, OC 图像数据缓存采用 F IFO 的方式, 缓存队列将已 采集到视频图像数据的设备缓存出队列, 此时与之映 射的内存空间就存储了采集到的视频图像数据, 处理 完毕重新使设备缓存加入队列。这个过程需要调用 两次 io ctl函数。

ioctl(vdev > fd V ID I _DQBUF, & vdev > buf);, OC ioctl(vdev > fd V ID I _QBUF, & vdev > buf);, OC 接着设置视频图像采集格式, 可根据需求修改摄 像头缓冲区中图像参数如分辨率、格式等。具体方法 为先给 struct v4 l2 _for at结构体变量 vdev > f t分量 m m 赋新值, 再调用 带 V ID I C _S _FMT 命令参数 的 ioctl O 函数完成采集属性的设置。ioctl(vdev > fd V ID I _S_FM T, & vdev > fm t);, OC 调用带 VIDIOC_DQBUF 命令参数的 ioct l函数使 设备缓存出队列, 利用系统函数 m em cpy 将所采集的 一帧视频图像数据拷贝的所分配的内存空间 vdev > fram ebuffer以 方 便 后 续 图 像 处 理。然 后 调 用 带 V IDI C _ O QBUF 命令参数的 io ctl函数把设备缓存重新 加入输入缓存队列, 至此完成一帧视频图像数据采集。系统采用的摄像头初始化为 YUV422图像格式, 图像要在 LCD 上显示, 必须进行图像数据格式转换 处理, 将 YUV422格式转换为 RGB24格式。

yuv2 rgb24(vdev > fra ebuffer vdev > rgbbuffer vdev > m , , w idth vdev > he ight);,(3)实现内存映射。V4L2捕获的数据是存放在内核空间的, 用户不 能直接访问该 段内存, 必须通 过某些手段来 转换地 址。系统采用 mm ap内存映射方式, 把设备内存映射 到用户程序内存空间, 直接处理设备内存, 加速了 I/ O 访问。主要函数调用如下: ioctl(vdev > fd V ID I _REQBUF S & vdev > rbuf);, OC , ioctl(vdev > fd V ID I _QU ERYBUF, & vdev > buf);, OC vdev > m e [ i] = mm ap(0, vdev > bu.length, PROT _ m f READ, M AP _SHARED, vdev > fd vdev > bu.f m.offset);, ioctl(vdev > fd V ID I _QBUF, & vdev > buf);, OC 函数 yuv2rgb24 将 vdev > fram ebuffer指定 内存 中的 YUV 422图像格式转换为 RGB24格式, 并存放 到 vdev > rgbbuffer指定内存中, 函数实现在 此不作 详细阐述。3 4 图像数据的 JPEG 编解码.网络传输前对原始图像数据进行压缩处理, 利用 IJG(Independent JPEG G roup)提供的 lib jp eg 库进行 [ 4 6] 图像编解码。在开源的 libjpeg 库中, 函数必须从 文件或其他 设备流中读取数据, 再将压缩数 据存成 JPEG 文件, 增加了不必要的文件 I/O 操作, 不利于网 络实时传输图像。为解决 该问题, 改写 了 lib jp eg 库 内 jdatasrc c和 jd atads.c两个源代码文件, 设计自定.t 义的结构体 struct m y_dest_ gr和 struct m y_src_ g r m m , 增加自定义图像数据缓存地址变量、已处理图像数据

具体实现: 首先, 对 struct v4 l2 _ requestbuffers结 构体变 量 vdev > rbuf 分 量 赋 值, 调 用 带 V I I C _ DO REQBUFS命令参数的 io ctl函 数分配自定义 数量的 设备缓存;然后, 在循环程序结构中对申请分配的设 备缓存 进行映射, 调用带 V IDIOC _QUERYBUF 命令 参数的 ioct l函数获得设备缓存偏移量和缓存大小并 存于 struct v4l2_buffer结构体变量 vdev > bu f中, 调 用 mm ap在设备 缓存 和程序 内存 空间 变量 vdev > 34 计

2010年第 11期

的偏移量变量和图像大小变量, 并改写 lib jp eg库相关 操作函数, 封装相关的数据结构和成员函数为自定义 的图像编解码类 MY JPEG。实现输入数据和输出数据 的重定向到内存, 利用开源的 libjpeg 库在内存中实现 图像的压缩和解压缩。参照 lib jpeg 库中编解码过程, 实现了类 MYJPEG中压缩与解压缩成员函数。

w r ite e(unsigned cha r * m m char* m quality);/ /图像数据压缩处理 readm e(uns igned char indata int pSize unsigned char m * , , * outdata);/ /图像 数据解压缩处理 outdata int * pS ize unsigned , , indata unsigned int mw idth, unsigned int mhe ight int , , 压缩函数中参数可以灵活对压缩图像分辨率大 小和质量属性进行设置, 参数 pS ize 返回压缩后图像 的大小。而解压缩图像时, 压缩图像的大小则通过参 数 pSize传入。3 5 网络传输视频图像数据.UDP是非连接的、不可靠的、传递数据报的传输 协议, 提供了一种高效无连接的服务。由于 UDP 不 提供数据的可靠性保证, 使其具有较少的传输时延, 很适合实时性高而不要求数据绝对可靠的场合。视 频图像数据实时性强, 数据量大, 所以系统设计采用 此协议传输数据。通过 L inux 下的 socket套 接字编 [ 7] [ 8 11] 程 , 实现视频图像的网络传输。利用 C语言中 的多线程编程, 将网络通信置于一个工作线程, 避免 了 GU I应用程序因网络阻塞等待操作而使图形用户 界面冻结无法响应的问题。系统设计时结合使用互 [ 12] 斥锁和条件变量对各个工作线程进行同步。嵌入式视频监控终端上采集显示程序作为主线 程, 同时创建一个视频图像发送工作 线程 deal_send(), 用来处理与视频监控中心 PC间的网络通信。具 体过程描述如 下: 调用 socket()函数创建一个 UDP 数据报类型的套接字, 接着调用 bind()函数, 给套接 字绑定一个端口。视频图像发送工作线程调用 recv from()函数在指定的端口上阻塞等待客户端发送来 的 UDP数据报, 接收到服务请求, 处理该服务请求并 通过 sendto()函数将处理结果返回给 PC 端。在监控中心 PC 端创建解码显示视频图像工作 线程, 并创 建一个视 频图像接 收工 作线程 deal _re ce ive(), 用来处理与视频监控终端的网络通 信。具 体过程描述如 下: 调用 socket()函数创建一个 UDP 数据报类型的套接字, 接着调用 bind()函数, 给套接 字绑定一个端口。调用 sendto()函数向监控终端发 送服务请求报文, 调用 recv from()函数等待并接收服 务应答报文。继续定时发送服务请求直至通信终止。具体网络传输的通信过程如图 4所示。

图 4 网络传输通信流程 4 视频图像实时显示

系统是一个实时视频图像采集与传输系统, 采集 的现场视频图像在嵌入式视频监控终端和监控中心 PC上实时显示与保存。只要以较快速度显示变化的 图片就可以实时显示现场情况, 系统中利用定时器每 40m s采集一帧视频图像。该远程图像监控系统界面 是通过 QT 来实现的, 在强大的 QT 图形库的支持下, [ 13 14 ] 可快速开发出友好的图形用户界面。利用几个 相关 Q t图形类 Q I age QP ixm ap和 QL abe,l 实现视频 m、图像的显示和 JPEG格式图片保存。5 结束语

系统设计方案 是一种基于嵌入式 L inux 的图像 采集和传输系统, 本文详细介绍了 V4L 2应用编程接 口进行 USB 摄像头视频图像采集, 基于 QTE 图形库 实时显示视频图像, 利用开源的 lib jp eg 库实现图像 的 JPEG 编解码, 通过网络实时传输进行远程监控。整个系统数字化、网络化程度高, 实时性好、稳定可靠 且图像质量较好。经实验测试, 系统很好地实现对现 场视频图像的监控。在该系统的基础上, 可进一步进 行二次扩展开发, 以便应用在工业现场控制、远程指 挥监控系统、可视电话等诸多领域。

参考文献: [ 1] [ 2] [ 3] 赵敏, 杨恢先, 汤安平.基于 S3C2440的嵌入式 L inux 系统 移植的研究与实现 [ J].电子器件, 2008 31(6): 1947 1950 ,.郑灵翔.嵌入式 L inux 系统设计 [M ].北京: 北京 航空航 天大学出 版社, 2008.M ichae lH Schi ek V ideo for L inux Tw o AP I Specifica tion m.[ EB /OL ].http: / /v4l2spec bytesex org /v4l2spec / v4 l2...pd, 2008 03 04.f(下转第 38页)38 计

化 2010年第 11期

目标图像中变成 A!B!因为向前移动了, 所以物体显 , 得比原来要大些。放大的过程应 该是: 逐步 放大左 图, 并适当地截取放大图中跟原来一样大小的一块矩 形区域, 作为一张新的过渡图。至于放大的倍数, 作 [ 8] 如下考虑 : 假设 A!的长度是 AB的 L 倍, 两幅图像之间插入 B!n张过渡图, 则每一张过渡图之间的放大的倍数是(L 1)/(n+ 1)。

速度, 内存优化后系统占用资源更少, 由于不用频繁 申请内存和 释放内存, 减少 了漏洞和错误发 生的几 率;采用缩放的方法改进了行进间的浏览效果, 提高 了虚拟漫游的沉浸感, 具有一定的实用意义。

参考文献: [ 1] 石云飞, 王永平, 李龙 济, 等.基于 模板匹配 的柱面全景 图拼接优化算法 [ J].工程图学学报, 2005(1): 96 99.[ 2] [ 3] [ 4] 华顺刚, 曾令宜, 欧宗瑛.一种快速的柱面全景拼接算法 [ J].数据采集与处理, 2006, 21(4): 435 436.潘华伟, 邹北骥.一种圆 柱形全 景图生 成新算法 及其实 现 [ J].计算机工程与科学, 2003, 25(6): 13 16.吴宪祥, 郭宝龙, 王娟.基于相位相关的柱面全景图像自 动拼接算法 [ J].光学学报, 2009, 29(7): 1824 1829.[ 5] 钟力, 张茂 军, 孙立 峰, 等.360度柱 面全 景图 像生 成算 法及其实现 [ J].小型 微型 计算 机系 统, 1999 20(12): , 899 900.[ 6] [ 7] [ 8] [ 9] 赵 辉, 陈 辉, 于 泓.一 种 改 进 的 全 景 图 自 动拼 接 算 法 [ J].中国图象图形学报, 2007, 12(2): 336 342.阮 秋 琦.数 字 图 像 处 理 [ M ].北 京: 电 子 工 业 出 版 社, 2001.董 士 海.虚 拟 现 实 的 未 来应 用 [ N ].中 国 计 算 机 报, 2001 02 21.崔汉国, 曹茂春, 欧阳清.柱面全景图像拼合算法研究数 字图像处理 [ J].计算机工程, 2004, 30(6): 158 159.[ 10] 赵万金, 龚声蓉, 刘全, 等.一种用于 图像拼 接的 图像序 列自 动 排 序 算 法 [ J].中 国 图 象 图 形 学 报, 2007, 12(10): 1861 1864.[ 11] 张茂春.虚拟现实系统 [M ].北京: 科学出版社, 2001.[ 12] 明德烈, 柳健, 田金文.二维平面内的增强现实虚实配准 问题研究 [ J].红外与激光工程, 2001, 30(6): 410 413.[ 13] 蔡勇, 刘学惠, 吴恩华.基于图像绘制的虚拟现实系统环 境 [ J].软件学报, 1997.8(10): 721 728.[ 14] 喻罡.基于图像的虚 拟场景 构造 和漫 游系统 研究 [ D ].西安: 西安理工大学, 2002.图 6 放大前后的线段

在放大后的图像中央截取一块跟原图像大小相 同的区域, 然而由于拍摄的过程中, 一系列的过渡场 景不可能严格地在一条直线上, 也就是说相邻的中间 图像的中心位置并不重合。如果不加任何处理, 在过 渡的时候实际效果并不平滑, 在到达下一张中间图像 的时候仍然会有跳跃的感觉。解决的方法是, 预先计 算 AB的中点在经过放大和截取后, 在最终目标图中 的位置 p(x y), 对比 A!B!的中点 p!(x!y!), 得出 ,!, ? x = x!-x ? y = y!-y 每次 放大后截 取时, 补偿 , , ? x /(n+ 1)和 ? y /(n+ 1), 使图像中心逐步向目标 图像的中心靠拢。

结束语

本文首先研究了鱼眼图像的拼接算法, 在提出基 于亮度差的鱼眼图像重叠区域的确定方法和采用线性 补偿光强的方法进行图像的融合处理的基础上, 实现 了利用两幅鱼眼图像生成空战环境球面虚拟空间, 然 后探讨了基于球面虚拟图的多视点漫游问题。分析 可知: 利用反投影模板技术有效地提高全景图浏览的

(上接第 34页)[ 4] 汪庆年, 孙丽兵, 李桂 勇.一种基于 ARM 的视 频监控 系 统的设计 [ J].微计算机信息, 2009 25(11): 158 160., [ 5] [ 6] [ 7] [ 8] [ 9] 汪庆年, 张广栋.嵌入 式网络 视频 监控系 统的 设计与 实 现 [ J].电力电子, 2008(5): 47 49.赵文敏, 余文芳, 邢建国.一种嵌入式网 络视频监控 系统 的设计 [ J].计算机应用与软件, 2009 26(8): 67 68 81., , 郭 东升, 田秀 华.L inux 环境 下基 于 Socke t的网 络通 信 [ J].软件导刊, 2009, 18(1): 116 118.杨晖, 胡永健, 林志泉.基于 L inux和 S3C2410嵌入式图像传 输系统设计 [ J].微计算机信息, 2007 23(8): 20 24., 孟超, 张曦煌.基于嵌 入式系 统的 图像采 集与 传输设 计 [ J].计算机工程与设计, 2008 29(17): 4414 4416 ,.[ 10] 童 永 清.L inuxC 编 程 实 战 [ M ].北 京: 人 民 邮 电 出 版 社, 2008.[ 11] 王远洋, 周渊平, 郭 焕丽.L inux 下基 于 Socket多线 程并 发通信的实现 [ J].微计算机信息, 2009, 25(15): 70 72.[ 12] 杨水 清, 张 剑, 施云飞, 等.ARM 嵌 入式 L inux系 统开发 技术详解 [M ].北京: 电子工业出版社, 2008.[ 13] 蔡志明, 卢传富, 李立夏.精通 Q t4 编程 [ M ].北京: 电子 工业出版社, 2008.[ 14] 陈 鲲, 陈 云 秋, 刘 信 新.基 于 Q t/Embedded 的 嵌 入 式 L inux应用程序的 设计 [ J].计算机与 数字工程, 2009, 37(1): 156 161.1

篇2:基于嵌入式Linux远程图像监控系统的设计

摘 要:将网络技术和嵌入式技术相结合的远程视频监控系统是视频采集技术的发展趋势,文中提出了一种基于对等网络模型的嵌入式远程视频监控系统的设计方案。该方案将嵌入式系统和Web开发技术相结合,再利用USB摄像头作为视频监控系统的终端进行图像采集,并使用网络TCP协议将其远程发送给服务器终端。相较于传统的Client/Server网络模型,本系统实现采用对等网络模型,即确定发送命令的控制程序既可以是客户端,又可以是服务端。文中选择嵌入式开发平台ARM系列A8处理器进行研究和设计,并采用PC机下的Linux系统作为主机开发环境。

关键词:嵌入式;视频监控;网络远程控制;对等网络

中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2016)05-00-03

0 引 言

网络远程控制(Network Remote Control,NRC)是利用计算机网络对远程计算机进行操作的一种控制方式。计算机技术和网络技术目前都在高速发展,现在监控系统已经发展到网络视频监控系统[1]。网络视频监控具有数字视频监控和网络传输技术的优点,其具有不受地理位置约束、扩展方便简单、信息处理较容易等特点,可以使远程的管理和维护变成现实,只要是网络覆盖的地方,就能实现网络监控[2]。嵌入式系统向网络发展已成必然趋势,目前嵌入式系统对网络协议如TCP/IP协议和HTTP协议的支持也越来越广泛。系统硬件设备选择与配置

系统硬件设备选择凌阳嵌入式A8教学实验系统进行设计与实现。该实验箱基于ARM CortexTM-A8内核的处理器S5PV210,该芯片又名“蜂鸟”(Hummingbird),是三星公司推出的一款适用于智能手机和平板电脑等多媒体设备的应用处理器[3]。本系统使用了人机交互模块的USB接口、多媒体模块摄像头接口及通信模块以太网接口。

1.1 USB摄像头

摄像头属于视频类设备。在目前的Linux核心中,视频部分的标准是Video for Linux(简称V4L)。这个标准其实定义了一套接口,内核、驱动、应用程序以这个接口为标准进行交流。目前的V4L涵盖了视、音频流捕捉及处理等内容,USB摄像头也属于它支持的范畴。

本系统所采用的嵌入式Linux操作系统如果需要使用USB摄像头则必须在内核配置时添加Video4Linux驱动和对USB摄像头驱动模块的支持。本系统的设计与实现采用静态加载以上驱动。首先进入Linux源代码所在的目录,在终端输入make menuconfig命令,在基于Ncurses内核配置图形界面进行内核选项的配置。选中多媒体设备选项“Multimedia device->”,进入多媒体设备配置界面,选中“Video For Linux”,加载Video4Linux模块,就可以使内核实现对Video4Linux驱动的支持,为视频采集设备提供编程接口。在内核配置主界面,选中USB支持选项“USB support―>”,选中“USB Multimedia device”选项下的“USB OV511 Camera support”,使内核中加入OV511接口芯片的USB数字摄像头的驱动支持。OV511 USB 摄像头驱动配置界面如图1所示。

图1 OV511 USB 摄像头驱动配置界面

1.2 开启帧缓冲设备

帧缓冲(Frame Buffer,FB)是Linux为显示设备提供的一个接口,是把显存抽象后的一种设备,它允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。由于FB设备驱动为受限驱动,因此必须进行设备开启。本系统开发环境采用发行版Linux操作系统Ubuntu10.10,Ubuntu下启用FB设备的一般步骤如下所示:

安装v86d和hwinfo两个包查看显卡是否支持,并设置本机支持模式。

修改启动文件/etc/default/grub,如图2所示。

图2 修改启动文件图

修改modules文件/etc/initramfs-tools/modules,如图3所示。

图3 修改modules文件

更新以上两个文件并重启系统,即可查看到FB设备,具体如图4所示。

图4 查看FB设备系统软件设计

本系统软件由摄像头驱动模块、图像采集模块、网络传输模块和网络服务器模块组成[4]。摄像头驱动模块使得摄像头为应用程序编写提供系统编程接口。功能主要包括摄像头设备信息的获取与设置、设备的打开和关闭、信号通道选择、窗口初始化等。图像采集模块的作用是使用编程接口获取摄像头采集来的图像信息并进行暂时存储。服务器通过网络传输模块与远程监控PC机端进行信息交流。

2.1 V4L图像信息采集流程

V4L图像信息采集流程分为如下几步:

(1)打开摄像头设备

int vd->fd = open(“/dev/video0”,O_RDWR);

(2)读video_capability 中的信息,成功后可读取vd->capability各分量ioctl(vd->fd,VIDIOCGCAP,&(vd->capability));

(3)读video_picture中的信息,成功后可读取图像的属性ioctl(vd->fd,VIDIOCGPICT,&(vd->picture));

(4)初始化channel

int i;

for(i = 0; i capability.channels; i++){

篇3:基于嵌入式Linux远程图像监控系统的设计

一副图像所包含的信息量是巨大的,人类进入信息化时代之后,对图像的需求也逐步加大。图像监控作为其中一个典型的范例,在工业控制、社会安检等领域发挥着重要作用。自802.11b标准出台以来,无线网络取得了长足的进步,无线传输的效率、速度和可靠性大大增强使得基于无线网络的图像监控成为可能。并且随着技术的逐步发展,现在已经出现了传输速率为54 Mb/s、108 Mb/s、300 Mb/s甚至是600 Mb/s的无线传输技术,在满足高速的同时,无线传输的安全性也令人欣慰,WEP,WPA等无线加密机制足以确保无线传输的数据不被随意窃取、破坏。鉴于以上优点,无线图像监控开始在直升机航拍、军用机器人等国防领域展现出其独特的魅力。本文考虑的就是基于军用机器人上的无线图像监控系统设计,军用机器人是一种用于军事行动,集自动控制、电子信息、人工智能以及机械运动于一身的机械装置。图像监控是机器人普遍具有的功能,通过无线传输可使机器人摆脱传输线的制约,使其具有更高的灵活性。

同时,ARM系列芯片功能日益强劲,产品价格低廉,基于ARM的嵌入式系统解决方案已经成为实现特定功能SOC的首选。本文将在ARM微处理器的基础上开发一套应用于军用机器人上的无线图像传输系统。

1 系统总体设计

图1是系统的设计框图,按照功能划分,系统可分为嵌入式ARM模块、USB接口和Wi-Fi无线模块三个部分。嵌入式ARM模块是整个系统的平台,负责程序的运行、接口以及信息的传输控制。USB接口部分主要实现与Wi-Fi无线模块的通信。Wi-Fi模块是图像无线传输的具体执行器件,负责将ARM模块传输过来的数据通过无线链路传输到上位机。

如图所示,其中嵌入式ARM开发板与Wi-Fi模块组成了军用机器人上图像监控的无线传输部分。系统硬件部分简单有效,完全可以将整个系统集成在一块很小的电路板上,作为一个嵌入式SOC应用于机器人上,这可以减小机器人的体积,从而增强机器人的生存、隐蔽能力。

2 系统硬件实现

2.1 嵌入式ARM模块

ARM主控芯片采用三星公司的S3C6410[1],该芯片是三星公司推出的一款16/32位基于ARMv6架构的ARM1176JZF-S类型的RISC微处理器,芯片的最高运行频率为667MHz,含有丰富的外设接口。本系统采用两片Samsung K4X51163PC DDRAM芯片,容量为128M Byte,作为系统内存,以CSn0为片选信号,采用16位数据总线输出、16位地址总线片内寻址。FLASH存储器选用Samsung公司K9F2G08U0M型号NAND FLASH,容量为256M Byte,以CSn2和CSn3引脚作为片选信号,采用16位数据总线输出、16位地址总线片内寻址。用于系统程序存储。图2是6410与存储器的连接示意图。

2.2 USB接口

S3C6410通过USB总线与Wi-Fi无线网卡连接,本系统采用芯片的USB HOST接口[2]与Wi-Fi无线网卡进行通信,S3C6410的USB HOST接口是基于USB1.1标准,最高传输速率为11Mbps。实际操作中需要将USB HOST插槽焊接到S3C6410芯片的相关引脚上,为了保证接口的电气特性还需焊接适当的电阻、电容元器件。图3是具体的硬件连接图。

2.3 Wi-Fi无线传输模块

Wi-Fi无线传输技术[3]是目前非常流行的一种无线传输方式,本系统Wi-Fi模块选用TP-link公司生产的TL-WN321G+USB无线网卡,该无线网卡内部所用芯片为Ralink公司的RT73系列芯片,工作于2.4 GHz频段。TL-WN321G+是一款性能优越的无线网卡,在100-200 m范围内,能较好的适应各种复杂环境完成数据传输。TL-WN321G+即能进行Ad-Hoc组网,也能连接到指定的AP,而且这款芯片已经很好地被Linux-2.6内核兼容,工作于Linux操作系统下无需自己开发驱动。硬件连接上,只需将无线网卡插入开发板的USB HOST接口中即可。

3 系统软件设计

本系统设计要实现的功能是将嵌入式ARM开发板中存储的图像通过无线网络传输到上位机中。系统软件设计部分需要完成的任务主要有:(1)开发板上Linux操作系统的移植;(2)无线网络的组建;(3)无线图像传输应用程序的编写。

3.1 Linux操作系统的移植

随着Linux操作系统内核[4]的不断完善,现阶段发布的Linux内核已经能够很完美地驾驭ARM架构的微处理器,Linux内核的开源性和微小性则是更好地契合了嵌入式系统低成本、小存储器的特点。因此,Linux操作系统目前已经成为嵌入式解决方案首选的操作系统。

本系统采用Linux-2.6.28内核来搭建Linux操作系统,Linux-2.6.28内核加入了对Wireless USB的支持,包含了RT73系列芯片的驱动,而且在实际中也被证明了能很好的适应S3C6410芯片。构建完整的操作系统需要移植Bootloader(内核引导程序)、内核以及文件系统3个部分。

在移植Bootloader、内核和文件系统之前还有一个必须的工作就是交叉编译工具的制作。一般而言,交叉编译工具的制作方法有3种:(1)直接法,也即在宿主机上下载目标机架构编译系统的组成部分,然后直接进行综合,一步一步地形成编译工具,这种方法原始、直接,对于创建者来说能够帮助其很好地理解交叉编译的机制与原理,但这种方法费时费力且很容易出错,不适合初学者。(2)使用CROSSTOOL工具,CROSSTOOL是一款专门用于构建嵌入式Linux交叉编译工具的软件,我们只需下载编译工具的组成部分,CROSSTOOL软件可以帮我们自动生成交叉编译工具。(3)直接下载现成的稳定的交叉编译工具。其中后两种方法简单、高效比较适合初学者和工程应用。本系统采用第三种方法,直接从网上下载arm-Linux-交叉编译工具。

有了交叉编译工具之后就可以进行Linux操作系统的移植[5]了,按照顺序先移植Bootloader,这里我们选用U-boot 1.6作为Bootloader,由于Bootloader会直接操作具体的硬件资源,因此需要对U-boot的源代码作出相应的改动以适应具体的硬件环境。配置好了之后就可以进行编译,生成的可执行程序最后烧写到系统FLASH中。下一步便是配置、编译内核,由于本系统需要用到USB无线网卡,内核的配置特别需要注意对USB总线协议的支持和对无线网络的支持,要将相关的代码编译进内核。最后将编译生成的内核印象文件烧写到FLASH的Kernel分区。根文件系统的创建是建立在Busybox的基础之上的,需要在其原有的/bin,/sbin,/usr,/Linuxrc等目录和文件的基础上完成/etc,/dev等目录的制作,并加入Glibc库等内容,这样就构建了一个最基本的根文件系统,然后使用Mkyaffs2image工作将构建好的根文件系统目录制作成yaffs2映像文件,最后将此映像文件烧写到FLASH的根文件系统分区。

至此,Linux操作系统的移植就完成了[6],第一次上电后进入U-boot中,配置好U-boot的bootargs、bootcmd等启动参数后Linux操作系统就能在嵌入式开发板上运行起来。

3.2 无线网络的组建

Wi-Fi的全称是Wireless Fidelity,无线保真技术。与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是2.4 GHz附近的频段,该频段目前尚属没用许可的无线频段。该技术由于有着自身的优点,因此受到厂商的青睐。802.11b有时也被错误地标为Wi-Fi,实际上Wi-Fi是无线局域网联盟(WLANA)的一个商标,该商标仅保障使用该商标的商品互相之间可以合作,与标准本身实际上没有关系。Wi-Fi技术的突出优势有:(1)传输范围广,空旷地带可达300 m,封闭环境中也能在76-122 m的范围内有效的传输数据;(2)传输速率快,最高传输速率可达11 Mb/s;(3)厂商进入的门槛低,只需在人群集中的地方设置热点,即可通过热点连接互联网。

本系统设计使用TL-WN321G+无线网卡作为无线传输的硬件设备,该款无线网卡的生产厂家是Wi-Fi商业联盟认证的厂家。Linux2.6.28内核中已经加入了RT73系列无线网卡的驱动程序,而且在内核的配置中也将此驱动和相关的文件编译到内核中,因此将该无线网卡插入到嵌入式开发板中,系统是可以自动识别并驱动该无线网卡的。但是该无线网卡可工作于多种无线网络模式,在使用中必须对其进行具体的配置。本系统采用Ad-Hoc组网模式,具体的配置过程如下:(假设该无线网卡在Linux系统中的接口名为wlan0)

iwconfig wlan0 mode Ad-Hoc//配置无线网卡的工作模式为Ad-Hoc

iwconfig wlan0 essid“imgtrans”//配置网络名

iwconfig wlan0 key off//关闭无线网卡的加密模式

ifconfig wlan0 192.168.0.232//配置无线网卡的ip地址

ifconfig wlan0 up//启动无线网卡

Ad-Hoc无线网络中计算机互连要求需要互联的两块无线网卡必须设置成相同的网络名(essid)以及同网段的ip地址。因此,必须将上位机的无线网卡也设置成Ad-Hoc模式,网络名为imgtrans,ip为192.168.0.231。这样两块无线网卡配置好之后就可以通过无线网络连接,组成无线局域网,如果互相ping对方的ip地址,是可以ping得通的。这样机器人就和上位机建立了无线连接。

3.3 无线图像传输应用程序的编写

系统设计的最终目的是图像的无线传输,无线网络搭建好之后,就是利用无线网络进行数据传输。本系统采用TCP/IP协议传输数据,具体在网络层使用IP协议,传输层采用TCP协议,TCP协议是一种面向连接的包传输协议,它能保证数据包有效、可靠的传输。Linux下,应用层需要调用Berkeley套接字机制进行网络编程。套接字是对网络中不同主机上应用进程之间进行双向通信的端点的抽象,一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议栈交换数据的机制。

3.3.1 图像传输协议设计

本系统设计传输图像文件,对图像文件的传输必须注意图像文件具体的数据结构,服务器在发送时要按照文件的格式顺序发送,客户端接受文件数据时也要按照数据的接收顺序依次写入文件,这样才能保证客户端接收到的数据写入文件不会破坏其原有的数据结构。另外,图像文件数据量一般都较大,如果在socket编程中一次性传输容易造成接收端的阻塞,必须把图像数据分割成一定大小的单元多次传输,传输的过程中还必须考虑两端数据的同步问题,为了解决这些问题,如图5所示,本系统设计了以下传输协议规范两边数据的传输。

如图所示,客户端和服务器端建立连接后,客户端向服务器端发送‘r’信号表明自己已经准备好接受数据,服务器端接受到客户端传输的‘r’信号之后开始传输图像的大小,也即图像文件占据的字节数。客户端接收到图像的大小之后,将起存储起来,然后发送‘d’信号表明可以开始传输图像数据了。服务器端接收到‘d’信号之后就开始分块传输图像数据,客户端接收到图像大小个字节的数据之后,向服务器端发送‘o’信号表明图像数据已经接收完成,服务器端接受到‘o’信号之后,知道客户端已成功接收到数据,向客户端发送‘q’信号退出传输,并关闭套接字。客户端接收到‘q’信号后,关闭套接字完成图像数据的传输。

该协议通过增加相应的状态信息信号,可以给双边提供同步点,保证客户端能知道服务器端所发的数据是什么、服务器端也能清楚地了解客户端的具体状况。

3.3.2 具体程序流程

套接字是一种Service/Client模式的通信机制,首先服务器端和客户端都必须建立相同类型的套接字,然后客户端通过套接字向服务器端请求连接,服务端响应该请求从而建立连接。本系统是从嵌入式开发板向上位机传输图像,所以军用机器人作为通信的服务器端,上位机作为客户端。

整个传输程序可分为两部分:(1)建立连接;(2)传输图像。两部分流程图如图5和图6所示。建立连接主要是调用socket编程机制中的标准函数进行网络互联,主要流程和相应的函数调用详见图5。图像传输部分是指调用socket接口进行图像数据的传输,本系统是直接传输图像文件,所以首先得读取图像文件,具体是先在内存中开辟一个1M的存储空间,将图像文件读取到该内存区域,然后将该内存区域分块发送到socket发送缓冲区进行数据传输。接收端同样是先在内存中开辟一块内存区域,将接收到的数据在该内存区域中进行组合,最后写到图像文件中,从而完成图像文件的传输,主要流程详见图6。客户端程序流程图如图7所示。

4 结束语

本文从硬件和软件两个方面分别论述了基于嵌入式Linux的图像监控系统无线图像传输部分的设计与实现。在实际验证中,分别使用了BMP格式和JPEG格式的图像文件进行图像传输,通过对比机器人端和上位机端图像文件,发现图像信息没有丢失的情况发生,上位机端能稳定的完成图像文件的重建。但也有不足之处,那就是图像传输过程中如果发生信号中断等不确定因素时,接收到的图像格式完全混乱无法显示。本系统作为军用机器人图像监控的无线传输部分,能够实现图像的实时、高速、有效的传输。然而它还在其他方面也具有现实意义,在实际应用中可作为图像采集后的传输模块,Wi-Fi传输模块可以保证我们在存在ap的地方将设备接入互联网,甚至是GSM网络,能够将最新采集的图像通过网络传输到互联网上的其他机器上,实现图像的远距离传输,从这个意义上来说,本系统可以作为图像数据源的无线接入部分。

摘要:本文从软件和硬件两方面分别论述以32位ARM微处理器为核心的无线图像传输系统的设计与实现。系统搭建以S3C6410芯片为核心的嵌入式开发板作为硬件平台,移植Linux操作系统,通过交叉编译方法开发无线图像传输应用程序。系统的无线传输部分采用Wi-Fi技术,即可实现一定范围内的无线局域网传输,也能通过热点连接上互联网。

关键词:嵌入式系统,S3C6410,Wi-Fi,Linux,图像传输

参考文献

[1]USER’S MANUAL_S3C6410x[M].Samsung Electronics Co.2008

[2]李冬.无线传感器网络USB主机接口的设计[J].合肥工业大学学报:自然科学版,2010,33(2):235-237

[3]李扬.Wi-Fi技术原理及应用研究[J].计算机与网络,2010,6:240-241

[4]刘国秀.基于ARM的嵌入式Linux内核的裁剪与移植[J].电子元器件应用,2009,11(11):66-68

[5]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.240-360

[6]董玲.基于ARM的嵌入式Linux应用程序开发研究[J].电子测试,2008,5(5):17-20

篇4:基于嵌入式Linux远程图像监控系统的设计

当前,嵌入式的技术应用越来越广发,从航天科技到民用产品,嵌入式产品的身影无处不在,而这些嵌入式产品的核心——处理器决定了产品的市场和性能。在32位嵌入式处理器市场中,ARM处理器占有很大份额。ARM不仅是一个公司、一种技术也是一种经营理念,即由ARM公司提供核心技术,只出售芯片中的IP授权,采取了别具一格的“Chipless模式”(无芯片的芯片企业),不参与生产,而是由合作厂商去生产具体的芯片和产品。

现在由于存储空间等原因,在嵌入式芯片上编程有较大的困难,选取合适的平台就显得很重要。由于Linux是开放源码的操作系统,吸引着全世界的程序员参与到发展和完善的工作中来,所以Linux保持了稳定而且卓越的性能。由于源代码可以修改、移植,Linux在嵌入式领域中的应用也越来越广。选用Linux作为平台,可以根据具体需要自由裁减源码,打造适合目标平台的环境,编写最有效率的应用程序。

可以预见,ARM与Linux在未来已经越来越壮大,在嵌入式产品市场上会占有越来越大的份额。在这种形式下,学习和研究ARM非常有必要,所以在这里介绍一下关于基于Linux系统的ARM9嵌入式系统设计的基础理论。

首先进行一下ARM开发环境的简介:

根据功能的不同,ARM应用软件的开发工具可分为编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等。因此,一套含有编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统及函数库的集成开发环境一般来说是必不可少的。至于嵌入式实时操作系统、评估板等其他开发工具则可以根据应用软件规模和开发计划选用。使用集成开发环境开发基于ARM的应用软件时,其中涉及的编辑、编译、汇编、链接等工作可全部在PC机上完成,调试工作则需要配合其他的模块或产品完成。目前进行ARM嵌入式系统开发常见的开发工具主要有Real View MDK、IAR EWARM、ADS1.2、WinARM等。

RealView MDK开发工具是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealView MDK集成了业内最领先的技术,支持所有基于ARM的设备,能够自动配置启动代码,集成了flash烧写模块,还具有强大的仿真模拟、性能分析等功能。

IAR Embedded Workbench for ARM是IAR System公司为ARM微处理器开发的一个集成开发环境。比较其他的ARM开发环境,IAR EWARM具有入门容易、使用方便和代码紧凑等特点。IAR EWARM中包含一个全软件的模拟程序,用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。由于ADS集成开发环境已经不再更新,因此无法支持新推出的微控制器芯片,而IAR EWARM在持续的更新环境中,因此IAR EWARM将成为越来越多的人进行嵌入式系统开发的首选开发环境。

基于ARM芯片的应用系统,多数为复杂的片上系统。在该复杂系统中,多数硬件模块都是可配置的,配置工作需要由软件预先完成。因此在用户的应用程序运行之前,需要专门的一段代码来完成系统基本的初始化工作。由于此类代码直接面对处理器内核和硬件控制器进行编程,所以一般使用汇编语言实现,这里我们称之为硬件启动程序。

在应用系统的程序设计中,如果所有的编程工作都由汇编语言来完成,其工作量巨大,并且不容易移植。由于ARM处理器的运算速度高,存储器的存取速度和存储量也很高,因此大部分编程工作可以使用c语言来实现。由此可见,c语言在ARM编程中具有非常重要的地位。

其次介绍一下ARM9嵌入式系统开发的过程:

第一,嵌入式软件开发的特点。学习嵌入式开发的过程,首先要了解嵌入式开发的特点。嵌入式系统与通用计算机在以下几个方面的差别比较明显:

一是人机交互界面,这是最大的区别,因为嵌入式系统很可能就不存在键盘,显示器等在计算机中常见的实现人机交互的设备,它所完成的事情也只能是不同的传感器的变化情况,并且按照事先规定好的过程仪式完成相应的处理任务;二是功能是有限的,嵌入式系统只能反复执行设计时已经定制好的并且在开发完成后不再变化的功能任务;三是时间的关键性和稳定性,大部分的嵌入式系统因为功能要求实时响应并且受到工作环境的影响很大,需要选择合理的硬件和保护措施,保证系统的稳定性可以正常运行。

除此之外,还要了解嵌入式软件开发具有的自身特点:

一是需要交叉的开发环境;二是引入设计方法;三是固化的程序;四是开发的难度很大。

第二,嵌入式软件开发的流程。嵌入式软件的开发因为它的开发难度大等自身特点,需要将硬件、软件、人力资源等集中起来,并进行适当的组合以实现目标应用对功能和性能的要求,而且实时性和功能一样重要。这就使嵌入式开发关注的方面更广,精准度更高。嵌入式软件开发的每个阶段都体现着嵌入式开发的特点。

一是需求分析阶段;二是设计阶段;三是生成代码阶段;四是固化阶段。

第三,嵌入式系统的调试。在进行嵌入式软件开发过程中,可以选择不同的调试方式,但应根据实际的开发需求和实际的条件进行选择,有以下几种主要的调试方式。

一是源程序模拟器方式;二是监控器方式;三是仿真器方式。

嵌入式系统的调试方法被分成不同的层次,就调试方法而言,分为硬件调试和软件调试两种。在使用硬件调试的时候,可以获得比软件调试功能更强大的调试性能,但是有的时候会价格昂贵,需要合适的开发工具。软件调试可以分为操作系统的内核调试和应用程序的调试,前者的操作比较困难,因为操作系统内核不方便增加一个调试器程序,而后者相对比较简单。

在这里我们只是对ARM9嵌入式系统做一个基础理论的讲解。嵌入式技术正在飞速发展,并期待着各种行业的深入渗透。我国具有雄厚的制造业基础,与传统的制造业结合,嵌入式系统有着巨大的市场空间。同时,基于嵌入式的应用可技术创新,将推动新产品、新产业的诞生。在新的高科技浪潮来临之际,我国正全力迎接机遇和挑战,嵌入式领域方兴未艾,Linux也越来越成熟,我们需要掌握更新的知识,实现自我价值,为祖国贡献力量!

参考文献:

[1]马忠梅,马广云,徐颖慧,等. ARM嵌入式处理器结构与应用基础(2版)[M].北京:北京航空航天大学出版社,2007.

[2]马忠梅,李善平,等. ARM&Linux嵌入式系统教程(3版)[M].北京:北京航空航天大学出版社,2014.

作者简介:刘阳(1993—),男,辽宁盘锦人,沈阳理工大学学生。

龙潜(1995—),男,江苏连云港人,沈阳理工大学学生。

篇5:基于嵌入式Linux远程图像监控系统的设计

工业嵌入式系统(INES:Industrial Embedded Systems)是由欧盟(EU:European Union)设立的用来促进使用开放源码软件的项目。INES自建立以来,已经有大量使用嵌入式Linux的应用和报告出现在实际应用中。这些应用和报告使我们看到了使用嵌入式Linux实现工业项目的希望。同时,也使我们看到了嵌入式Linux在一些意想不到地方的使用。

下面是三个具体的应用实例。

智能化的监视和控制远程点―BIRD2

网络通信功能已经成为嵌入式设备的发展必然。由于因特网的普及和飞速发展,使用基于TCP/IP的通信机制显得更具实用性。

BIRD2用户试验的目标是:使用基于嵌入式TCP/IP通信机制、在GSM(目前最大的数字蜂窝通信系统)基站将开放源码操作系统用做远程监控系统的可行性。监控数据可以通过TCP/IP兼容的传输通道,用各种通信方式如PSTN、ISDN、Ethernet或者通过GSM移动电话网络等多种途径进行传输。

BIRD2采用ULTRA进行研究、开发、设计、生产,其目标是开发出用于电子、通信以及石油工业的高技术解决方案,旨在成为使用边缘技术的端到端的供应链管理以及其他移动解决方案,从而为其顾客和合作伙伴提供最高性能的远程监视和远程控制产品。

ULTRA工业部分为监视机控制系统,引入技术是Modular Linux Data Acquision System。

经济效益

BIRD2项目约18个月偿还期,使用新技术节约了70%的成本,顾客购买价格降低了30%,每3年销售成倍增长。

产品的新特性

产品新特性或新功能有:使用TCP/IP作为标准协议、通过拨号连接或网络服务、提供商进行远程访问、用使用Linux操作系统的嵌入式计算机代替桌面计算机和具有远程诊断及升级的能力。

技术上的选择

经过几年的成长,Linux逐渐发展并得到广泛认可。对嵌入式PC的应用,目前Linux具有诸多优势:

◆ 具有正常运行于较小内存的能力;

◆ 一个多任务的实时操作系统必须包括对授权的保护和控制方法;

◆ Linux是Free的;

◆ 许多主要的公司,都有广泛Linux工具支持(部分免费),包括C、C++编译器以及Java环境。通过在ULTRA技术上采用Internet网络通讯以及开放源码操作系统,BIRD2将有很大的改进。

技术实现

由于系统必须将分部在全国各地的基站加以连接,惟一切实可行的连接选择是使用TCP/IP。TCP/IP允许将存在的各种不同的操作系统在网络层实现透明连接,同时还允许远程诊断和目标SW的升级。对Internet相关的SW的广泛使用使得选择这种解决方案成为必然。

网络化的称重系统

Bilatron是一个建立于1984年的有着13个员工的公司,位于意大利中心。此公司的主要业务是设计、生产、销售工业应用的称重系统。

在Bilatron公司的定制工业称重系统中,使用了uClinux以及一个具有标准网络功能的控制器,以便为顾客提供新的售后服务,这些技术的使用也减少了系统的实现时间。

Bilatron公司的.产品包括:用于火车车厢、客车、坦克的称重系统;为残疾人提供的个人用品、医疗以及运动器械;为动态称重提供的特殊称重设备。

由于新的基于uClinux的具有标准网络设施的控制器的使用,Bilatron公司为用户提供了新的售后服务。该控制器还使得定制具有广泛复杂度的工业称重系统的实现时间有所减少。

Bilatron还参与安装和维护称重系统产品、校准并为其产品颁发合格证。

Bilatron公司的专用称重设备(动力的、批量的、快速运行的称重仪、重量校准仪、crane-scales)占公司产量的60%;标准称重系统(称车辆及其载重、平台、油箱、青贮塔用的台称)占公司产量的35%;个人用品(残疾人、医疗及运动器械)占公司产量的5%。

经济效益

在过去的三年里,Bilatron公司的售后服务的经济效益持续增长。计划新设备WISE将进一步提高公司的销售额。这是因为设备在刻度校准监控上具有的远程控制能力。

三年内的期望投资回报率为204%,能够提供远程的售后刻度校准服务减少定制称重系统的实现时间,新设计面世时间加快。

产品的新特性

增强的控制器的主要新特性如下:

◆ 标准的网络接口。

◆ 使用嵌入式动态Web服务器,实现了远程配置和监控。

◆ 缩短了定制工业称重系统的安装时间。

◆ 远程的售后刻度校准服务。

◆ 使用能够快速载入、评估的简单的类C语言的脚本引擎处理产生的原始数据。这样一来,不需要在整个工作链上

工作、不需要涉及运行于系统上的主要应用就可以更改决定重量的启发式算法。

◆ 图形化的液晶显示管理。

技术上的选择

他们选择使用TCP/IP通信机制原因是:

◆ 他们可从其意大利基地将其业务拓展到世界范围内,并提供维护服务。

◆ 为顾客提供广泛的售后服务。其中最重要的是远程监控称重系统的刻度校准情况的能力。

◆ 使用标准接口和协议,使其称重设备能够与工业控制系统集成。

◆ 使公司能够在较短的时间内设计和递送定制的分布式称重系统。

◆ 选择采用嵌入式开放源码的操作系统(源自Linux)是因为可在短时期内集成TCP/IP通讯机制(Linux的网络连接功能是自带的);可减少产品的面世时间及风险;可减少组件成本。这是由于Linux在没有MML的低成本控制器免费的可用性和集成性较少在组件中集成新设备的设计开销和较少新的SW应用开发的设计开销。

技术实现

在Consorzio Roma Ricerche的技术支持下,该增强设备的开发仅仅用了10个月时间。

该增强设备负责处理并将数据转换为重量值。改进的控制器(基于一个ARM7 Netsilicon NET+50 处理器及uC Linux操作系统)实现了一个脚本引擎用于处理产生的原始数据。组件还包括下面的外围部分:一个图形化的液晶显示屏;一套用于与用户交互的按钮;用于测试瞬时重量的高效的A/D转换器;用于估计测量物速度的计数器;一个提供最终测量的类似版本的D/A。设计时使用的开放源码SW为操作系统uClinux 2.4.1;本地脚本编辑器是LUA;HTTP服务器为THTTPD。

图1 Bilatron公司设计的网络化的称重系统

图2 增强的控制器的重要组件

自动生物监测和控制使用OSS

自动生物监测和控制(Automatic Biological Monitoring and Control)为OSS(Open Source Software)的使用开发了新的市场。

Biotrace有限公司在其新一代的CFL(Continuous Flow Luminometer)上应用开放源码软件(OSS),从而实现了对冷却水塔的生物活动的远程监视和远程控制。目前,如果生物活动过高,技术人员必须亲临每一个水塔,然后取样、检测,然后向水中引入biocide。改进的、使用远程监视和远程控制的系统减少了操作成本。

Biotrace有限公司目前正致力于开发、设计、生产用于食品制备、保健产品、工业及军用市场的卫生监控系统的化学产品和设备。公司的产品包括化学产品及其相关包装用品、取液体化验的试纸及其相关的一次性用具、用于检测发生化学或微生物反应的荧光或颜色变化的测量仪器。

经济效益

Biotrace有限公司在其“不间断流监控系统”中引进了基于嵌入式Internet技术的OSS,为可能的用户减少了水塔监控的操作成本。该项系统就为公司开发了超过45000个水塔的市场,为销售额的增长打下了基础。

使用OSS,大约用了预计开发时间的80%完成原型开发。这使得Biotrace公司的项目开发成本得以降低。操作系统代码的重用、操作系统社区提供的代码行支持、高质量的软件代码也使得其开发成本得以降低。

产品新特性:

◆ 基于OSS的嵌入式Internet技术的引进。

◆ 实现了对样本测试结果的远程访问。

◆ 实现了取样的远程控制。

◆ 增强了取样及净化过程的控制。

◆ 较少了消耗。

Biotrace公司的工程师将有规律地对自测路线和错误信息进行收集,这定会改进系统的服务和维护服务。

图3“不间断流监控系统”应入OSS技术减少了水塔监控的操作成本

图4 Biotrace公司在其产品上引进了一块嵌入式x86板

技术实现

Bio

trace公司之前的Continuous Flow Luminometer(CFL)设备在提供反馈和控制功能时,需要使用者在一个集成的控制面板上进行手工操作。对此,Biotrace公司在其产品上引进了一块嵌入式x86板,使得独立操作和基于Internet的报告和控制不再需要亲临现场。组件中引入GPS接收器能够精确地记录取样时间和取样位置,这使得公司能够从不同的地点收集信息而不存在任何的不必要的配置问题。

在产品的PC和嵌入式平台上,Biotrace公司使用了普通版本的Linux版本。这获得了巨大的效益,并使得可以将比PC版本更新的软件下载到嵌入式控制器上。这让来自于嵌入式软件提供者以及开放源码社区的支持都唾手可得,再加上可用于关键部分的开放源码代码的高质量,使得公司的产品开发时间从计划的202天缩短为166天(这意味着节约了20%的开发成本)。

篇6:基于嵌入式Linux远程图像监控系统的设计

摘要: 针对目前大量嵌入式网络设备应用于工业控制的监控领域,监控网络的性能、带宽、成本成为目前工业控制领域普遍关心的问题。而影响这一性能的是核心控制服务器的管理及设计结构优劣,为此本文提出了一个适于通用嵌入式设备的网络远程监控系统服务器结构,分析了该服务器需要提供了功能需求,其中重点研究了该网络监控系统的通信协议、嵌入式技术和现场总线技术等。

关键词: 嵌入式;监控;服务器;网络设备;工业控制前言

随着控制、计算机、通信、网络等技术的发展,信息交换沟通的领域迅速扩大,覆盖了从企业的现场设备到控制、管理的各个层次,从工段、车间、工厂、企业乃至世界各地的市场。所以,如何更好的实现企业内现场控制、过程监控、经营管理、市场管理等各层次的汇通和数据共享,即实现“管理监控一体化”,是各个企业迫切需要解决的问题。工业控制网络和 Internet的无缝连接能够促进企业的网络化发展,顺应工业监控系统的发展潮流,具有强大的社会推动力和生命力。

嵌入式系统与网络技术的结合是顺应着低成本、高性能、网络化的时代潮流,是嵌入式系统迅速发展的方向,开创着嵌入式技术的美好未来。嵌入式系统与网络技术结嵌入式网络设备服务器联网系统的研究与实现,就是开发基于TCP/IP协议栈的Internet互联的嵌入式系统,即嵌入式Internet设备。它可以实现远程监控、管理、诊断和维护现场设备,实现各种智能设备,例如家用电器、工业控制装置或仪器、安全监控系统、汽车电子等与Internet网络的互联。

如果在工业控制网络体系结构的纵向上,可以实现工业控制网络和Internet网络的无缝连接,那么整个工控网络就好像只有一种通信协议,可以满足控制系统各个层次的要求,实现生产、管理和控制一体化。如果在工业网络体系结构的横向上,可以使多种工业控制网络统一协议标准,那么企业生产底层具有各种总线类型接口的现场仪表和设备就可以通讯,实现设备无差别化。嵌入式设备服务器组成结构

嵌入式网络设备服务器广泛应用于工业控制领域,实现对工业现场设备和仪器仪表的监控。针对各种工业现场的不同应用需求,嵌入式网络设备服务器在设计时按用途分为两大类,一类适用于对系统成本敏感,数据量少,对通讯指标要求低的场合,价格低廉、货源充足的8/16位嵌入式控制器是首选,即低端嵌入式服务器系统;另一类适用于数据量大,对通讯的实时性和可靠性要求高的场合,性价比高的16/32位的嵌入式微处理器是最佳选择,即中高端嵌入式服务器系统。因此,在设计前期需要考虑系统的应用环境,选择合适的方案最大程度的满足工业现场各方面的需求。

在嵌入式网络设备服务器联网系统的软件设计上,完成服务器和网络接口功能的是嵌入式HTTP协议、EGI接口函数、嵌入式TCP/IP协议栈、异构协议转换程序、网络芯片驱动程序、CAN协议驱动程序和RS485协议驱动程序。只要实现了低端嵌入式服务器接口的软件,在其基础上做适当的修改,就可以成功移植到中高端嵌入式服务器接口。

基于51单片机的嵌入式网络设备服务器应用于工业监控系统,连接现场总线和以太网,使得以太网中的管理层工作人员可以远程监控现场总线设备。考虑到单片机系统的资源局限性,基于51单片机的嵌入式系统就仅仅作为网络设备,完成网络设备服务器和网络接口功能,监控具有自诊断功能的智能型现场设备。智能型设备的自诊断功能能够处理设备运行中的突发问题,需要监控的信息主要是运行信息、报警信息和参数设置信息,传输数据量小,基于51单片机的嵌入式网络设备服务器能够满足其传输指标要求。考虑到现场总线协议的多样性,无法顾及,仅以CAN总线为例,设计嵌入式网络设备服务器系统的现场总线模块。

根据功能需要,本系统设计包括以下模块:嵌入式微控制器(Micro Control Unit简称MCU)的主控模块、工业现场总线CAN模块和RS485模块、与以太网连接的网络控制模块、系统调试用的串口RS232模块、键盘输入模块和LCD显示模块以及电源模块。整个系统的实现框架如图一所示。

图 一:嵌入式网络设备服务器系统的硬件结构图

嵌入式网络设备服务器系统需要实现网络功能,为了适应网络的传输速度以及有足够的时间解析数据包,仅仅依靠RTL8019AS内部的RAM是远远不够的,所以单片机外扩了一个32K的RAM存储器。外扩的存储器缓存以太网帧。嵌入式网络设备服务器不仅要实现与以太网、CAN、RS4851232的通讯,还要提供人机交互接口LCD和键盘。因此,微控制器W77E58B需要访问多个外部设备,又不能占用太多的引脚。译码器74HC 138为W77E58B访问外部设备提供方便,只需W77E58B通过三个引脚A15,A14和A13就可以分别片选外扩RAM存储器HM62256B,网络接口芯片RTL8019AS, CAN总线控制器SJA1000, LCD显示芯片的ACM12232-E1和ACM12232-E2。

X5325芯片为单片机系统提供复位信号、32K的存储空间和看门狗机制。X5325中的EEPROM是掉电不丢失信息的数据存储器,所以用户通过人机交互接口键盘输入的信息可以存储在X5325中。当系统再次上电,W77E58B会从X5325的EEPROM中读取用户的设置信息在LCD上显示。因此,嵌入式网络设备服务器的最小系统由微控制器芯片W77E58B、静态RAM存储器芯片HM62256B、地址锁存器74HC373、译码器74HC138、晶振电路和复位芯片X5325组成。系统设计中,W77E58B的参考时钟由11.0592 MHz的晶体振荡器产生。工业现场总线CAN和RS485的接口部分需要使用光电隔离措施。使用光耦6N137组成的光电隔离电路,隔离CAN的收发控制模块PCA82C250和RS485的电平转换模块MAX485的电源。

完整的以太网接口除了以太网控制芯片外,还需要RJ45插座连接网络传输的物理介质双绞线。除此之外还需要隔离变压器进行信号隔离以及两个指示灯指示以太网的工作状态。一个指示灯指示以太网是否连通,另一个指示灯指示嵌入式系统是否接收或发送以太网帧。3 嵌入式UDP/IP协议栈的实现

UDP/IP协议栈是一个复杂的综合体,在实际运用中,并不需要实现其全部协议。根据系统需要对网络协议进行裁剪,设计并实现UDP/IP协议簇的一个子集,即嵌入式UDP/IP协议栈只实现ARP。IP和UDP协议,如此便避免了单片机的系统速度和内存的瓶颈。这样,嵌入式UDP/IP协议具有向下兼容性和易移植性,不仅满足嵌入式微处理器的高质量通讯任务的基本需求,必要时可方便增加部分协议处理,又可以满足单片机的联网需要。嵌入式UDP/IP协议栈符合经济型嵌入式工业设备联网的设计要求。

系统采用以太网的接入方式,因此必须实现IEEE802.3标准,主要由RTL8019AS完成。为了保证系统能够在以太网内通信,还需要实现ARP协议。ARP协议的本质就是完成网络地址到物理地址的映射,从而保证网络的正确传输。整个ARP处理过程由ARP请求和ARP应答两个函数实现。根据ARP报头格式定义ARP报头结构体ARPHeader如下所示。其中,当Operation=1时表示ARP请求数据包;当Operation =2时表示ARP应答数据包。实现协议栈的主要函数分发送部分和接收部分,发送函数有:①void fun_NetSendEther(void):封装以太网帧。将上层协议的数据包封装在以太网帧的数据部分,从EthernetHeader结构体中读取信息,填充以太网帧的帧头并发送以太网帧。②void fun_NetSendIP(void):封装IP数据包。将上层协议的数据包封装在IP数据包的数据部分,从IpHeader结构体、数组Deslp和数组NodeIp中读取信息,调用fun_NetCheckSum函数计算校验和,填充IP数据包的报头部分,判断上层协议是TCP协议(协议标识06)还是UDP(协议标识17)协议,并将不同的协议标识添加到IP数据包报头,发送IP数据包。③void fun_NetSendUDP(void):封装UDP数据包。将上层协议的数据包封装在UDP数据包的数据部分,从UdpHeader结构体、数组DesIp和数组Nodelp中读取信息,调用fun NetCheckSum函数计算校验和,填充UDP数据包的报头部分,并发送UDP数据包。

接收的函数主要有:①void fun_NetRecEther(void):该函数从接收的数据包中提取发送方的MAC地址,以便发送回复信息时,填充数据包的接收方MAC地址。查看网络层协议,判断是IP协议还是ARP协议,并针对各种协议调用相应的处理函数。②void fun_NetRecARPReq(void):将相应的信息存储在ARP结构体中,以便回复时填充ARP数据包的报头部分。分析ARP的请求数据包,若是发送给本IP的ARP请求,则将发送ARP应答数据包,告知本IP地址对应的MAC地址。③void funwe NetRecIP(void): IP协议的处理程序。首先检验校验和,若校验和正确,就将IP信息存储在IP结构体中,以便回复时填充IP数据包的报头,否则丢弃整个数据包。查看下层协议是UDP还是TCP协议,调用相应的函数处理程序。④void fun_etRecUDP(void):首先检验校验和,若校验和正确,就将UDP信息存储在UDP结构体中,以便回复时填充UDP数据包的报头,否则丢弃整个数据包。

图 二:数据收发流程

数据的整个收发流程如图二所示。嵌入式网络设备服务器系统接收到以太网数据帧,就调用嵌入式UDP/IP协议栈的接收函数接收,并按照协议栈的层次关系分析数据包。需要注意的是系统自动丢弃ARP应答数据包。4 现场总线技术实现

现场总线上连续传输的N个CAN协议帧。每帧10个字节,其中控制字段占2个字节,包括标准CAN协议帧的仲裁场和控制场,信息字段占8个字节,包括标准CAN协议帧的数据场。其中,信息字段由8个字节组成,发送CAN数据帧时,信息字段由单片机W77E58B通过写SJA1000的发送缓冲器的TXDATAO-TXDATA8设定。信息字段的数据信息内容也由通讯双方自定义。为适应实际应用的需要,数据信息分成了功能码和数据信息两个部分。功能码有两个作用,一是区分设备类型,另一个是区分信息类别。工业现场中有多种类型的设备都集成了CAN总线接口,都需要进行CAN总线通讯,所以在设计CAN协议帧时就需要提供可以区分不同设备的标识,利用一个字节(8bits)的3 bit可以区分8种不同的设备。设备在通讯过程中需要交互各种类型的信息,例如动态遥测数据,报警遥测数据和设置参数等,就必须有标识能够区分,使得通讯方分析CAN协议帧时知道是何种类型信息的数据,那么余下的5 bit就用于信息类别的区分。5bit能够区分32种信息类别。接收到CAN协议帧,W77E58B读SJA 1000的接收缓冲器的RDIDO, RDIDI和RDDATAO-RDDATA8,分析接收的数据信息。工作人员在监控软件的查询或设置子菜单中填写从机的寄存器信息发送到嵌入式网络设备服务器联网系统上,嵌入式系统分析此信息,根据从机的寄存器信息表,填充Modbus请求数据帧,发送到对应的从机设备。当从机设备返回Modbus应答数据帧后,分析数据帧,提取寄存器的数据信息,将信息回复给工作人员。实际上,监控软件中工作人员发送的查询信息,例如A相电流,从机接收的是该信息所对应的内部寄存器地址。两者之间的对应转换,由嵌入式网络设备服务器联网系统根据从机设备的寄存器信息表完成。5 创新点总结

上一篇:税务系统全面从严治党下一篇:湖南农村信用社排名