单片机信息网:深圳市今科电子有限公司
网站地图 RSS订阅
高级搜索 收藏本站
会员中心 欢迎投稿
首页 | 业界动态 | 解决方案 | 技术文献 | 下载中心 | 单片机学习 | 单片机原理 | 单片机编程 | 单片机设计 | 单片机开发 | 技术专题 | 单片机论坛 |单片机博客| 联系我们
单片机新闻 | 单片机学习 | 单片机编程 | 单片机设计 | 单片机开发 | 单片机原理 | 单片机解密 | 芯片解密 | IC解密 | 单片机方案 | 51单片机 | AVR单片机 | PIC单片机
单片机程序实例大全 | 潜入式系统 | PCB设计 | 单片机资料下载 | 工具/软件下载 | 技术经验分享 | 单片机技术人生 | IC资料下载 | 数字电路 | 模拟电路 | 单片机空间
当前位置:主页>嵌入式系统>文章内容
基于Linux和S3C2410的嵌入式图象传输系统设计
来源:单片机信息网 作者: 发布时间:2007-10-29 阅读次数: 【大 中 小】【收藏本文】 【打印

基于Linux和S3C2410的嵌入式图象传输系统设计


1 引言

  如何更好的获得监控现场的图象数据一直是棘手的一个问题,传统的方法是采用CCD摄象机获取现场的视频信息,这种方法易于实现,但成本较高。随 着ARM系列处理器应用的越来越广和基于linux的嵌入式技术的迅速发展,利用linux自身带有的TCP/IP协议来实现远程监控、图象传输已成为可 能。本文提出的正是一种这样的方法,利用市场上很常见的中星微系列的USB摄象头来得到现场的图象数据,利用linux内核中的Video4Linux编 程接口函数采集图象,并把得到的图象通过Internet传输到上位机PC上,在PC上实现图象的保存和显示。

  2 硬件系统设计原理

  系统的硬件功能框图如图1所示,CPU采用的是三星公司的S3C2410。该处理器内部集成了A R M 公司A R M 9 2 0 T 处理器核的3 2 位微控制器,并带有独立的16KB的指令Cache 和16KB的数据Cache、L C D 控制器、R A M 控制器、NAND 闪存控制器、3路UART、4路DMA 、4路带PWM 的Timer、并行I/O口、8路10位ADC、触摸屏接口、I2C接口、I2S接口、2
个U S B 接口控制器、2路SPI,主频最高可达203MHZ。在此基础上,平台还进行了相应的配置和扩展,配置了4MB16位的Flash和8MB32位的 SDRAM,通过以太网控制芯片DM9000E扩展了一个网口。引出了一个UART接口,通过RS232可以和宿主机做串口通讯。并引出了一个HOST USB接口,通过在USB接口上外接一个带USB的摄象头将采集到的图象数据放入输入缓冲区中。对缓冲区的数据进行处理,最后通过网口发送到 Internet上,在PC上保存和接收。

  

S3C2410系统平台的硬件功能框图

图 1  S3C2410系统平台的硬件功能框图

  3 软件系统设计

  本文的软件系统设计采用C/S(客户机/服务器)模式,以S3C2410平台作为服务器,以PC作为客户端。服务器的主要任务是把得到的图象数 据发送到Internet上去,客户端的任务主要是从Internet上接收得到的数据,并把数据以保存成文件。下面分别讨论两者的具体实现。

  3.1 服务器端软件系统设计

  3.1.1 建立宿主机开发环境

  本文以PC为宿主机,并带有RedHat9.0系统,开发环境就建立在这个平台上,其主要包括:交叉编译器的的选择和安装、NFS和TFTP服务器的配置等。

  对于嵌入式系统的开发,由于没有足够的资源在目标板上运行开发工具和调试工具,所以通常采用交叉编译调试的方式。开发时使用宿主机上的交叉编 译、汇编及连接工具形成可执行的二进制代码。然后把可执行文件下载到目标机上运行。本文采用的交叉编译器为arm-linux-gcc,具体安装不再赘 述。为了方便调试和下载烧写,可让宿主机支持NFS和TFTP服务器。需要特别说明的是为了支持TFTP服务器需要在安装RedHat9.0时须选择完全 安装,如果没有选择完全安装,需要将第三张光盘里面的tftp-server-0.32-4.i386.rpm和tftp-0.32- 4.i386.rpm安装到宿主机下。

  3.1.2 摄象头驱动程序的实现

  系统采用的是最普通的USB摄像头,主芯片为中星微ZC0301P。这种摄象头的一个特点是可以实现硬件JPEG编码。其驱动程序的编写重点包 括下面的内容:提供基本的I/O 操作接口函数open、read、write、close的实现、对中断的处理实现、内存映射功能以及对I/O 通道的控制接口函数ioctl的实现等,并把它们定义在struct file_operations中。这样当应用程序对设备文件进行诸如open、close、read、write等系统调用操作时,Linux内核将通 过file_operations结构访问驱动程序提供的函数。

  当然,现在网上已经有了这种摄象头的通用驱动,可以从相关网站 下载usb-2.4.31.patch.gz,然后将这个补丁打到内核对应的位置即可。但是对有些内核版本的linux系统,在打补丁时,会产生 Config.in.rej和Makefile.rej。这时只需要将这两个文件中修改失败的部分手动添加到对应的Config.in和Makefile 中去就可以了。

3.1.3 linux内核配置

  对于已经做过基本移植的linux在配置内核的时有以下几个方面是值得注意的:

  1)        因为要用到内核中的Video4Linux编程接口函数,所以在配置内核时首先必须选中Video for Linux并且最好是直接编译进内核而不用编译成模块的形式再加载;

       2)        要选中USB Support、OHCI、UHCI。并在USB Support下的USB Multimedia devices  中选中对应的摄象头,对本系统来说,选择USB SPCA5XX Sunplus Vimicro Sonix Cameras,并把它配置成Module。

  3)        配置完内核后做make dep, make zImage, make module。则在对应的spca5xx目录下会生成spc5xx..o,可以把spc5xx..o通过NFS mount到目标板上或者加到主文件系统ramdisk中的某个目录下。然后在目标板上做 insmod spca5xx.o就会找到摄象头。

  3.1.4 服务器端应用程序的编写

  完成驱动程序和内核配置后就开始应用程序的编写了,程序首先用交叉编译器在宿主机上进行编译连接,生成的的可执行文件通过NFS mount到目标板上进行调试。调试成功后再
固化到文件系统ramdisk中去。其实现主要有下面几个步骤:

  1)        初始化设备基本信息

  2)        打开设备文件,读取设备基本信息和信号源基本信息,并设置video_mmap并为定义的帧结构分配缓冲区并初始化线程互斥量

  3)        创建图象获取的线程。该线程函数实现以内存影射的方式读取设备中的数据,锁定线程互斥量,接着对帧结构的各个元素赋值。并解锁互斥量。使该过程做一个死循环。

  4)        创建一个基于连接的socket,并绑定到一个端口上,开始在该端口上侦听。

  5)        当有连接到来时,创建一个图象发送的线程。该线程函数实现:如果确定读取了客户端的数据,则把缓冲区内的一帧数据发送到网络上。让这个过程也为死循环。

  6)        控制两个线程的同步

  7)        如果程序退出,则关闭套接字,释放分配的资源。

  可以看出,程序的内容主要有三个部分:图象采集部分,图象的网络发送部分和程序的多线程控制部分。下面分别介绍一下这三个部分主要涉及的内容。

  在图象采集部分,定义了一个数据结构,它的主要成员变量有:

  l         Video_capability 包含基本的设备信息(设备名称、支持的最大最小分辨率、信号源信息)

  l         video_channel         关于各个信号源的属性

  l         video_mbuf         利用mmap进行映射的帧的信息

  l         video_buffer         最底层对buffer的描述

  l         video_mmap         用于mmap

  l         pthread_mutex_t      线程互斥量

截取图象方法有两种:直接读取设备文件和内存影射的方法,本文采用后面一种。采用这种方法后,普通文件被映射到内存地址空间,进程可以象访问普通文件一样访问内存,这样做的一个好处是可以提高效率。做视频截取的两个主要函数是:

  n         ioctl(vd->fd, VIDIOCMCAPTURE, &(vd->mmap))   若调用成功,开始一副图象的截取。是否截取完毕留给VIDIOCSYNC来判断。

  n         ioctl(vd->fd, VIDIOCSYNC, &frame)              若调用成功,表明一帧截取已完成。可以开始做下一次截取

  对于网络发送部分,主要是linux下的socket编程,调用的主要函数有:创建套接字函数socket、端口绑定函数bind、监听
函 数listen、等到连接函数accept、数据接收函数read、数据发送函数write等。这些函数的具体定义和用法具体可以查阅相关资料 。需要说明的是为了能够正确发送一帧数据,要把定义的帧的结构体设置为单字节对齐,具体方法是在结构体的定义后面加上_attribute_ ((packed))。

  多线程编程部分用到的主要函数有:互斥量初始化函数pthread_mutex_init、互斥量锁定函数 pthread_mutex_lock、互斥量解锁函数pthread_mutex_unlock、互斥量注销函数pthread_ mutex _destroy、线程创建函数pthread _ create、线程同步函数pthread_join。此外,程序中为了能更好的实现两个进程的同步,还需要用到信号量机制的一些内容。受篇幅所限,这些 函数的具体定义和用法请参考相关资料 。

  3.2 客户机端软件系统设计

  客户端是建立在一台PC机上,用Visual C++ 6.0设计一个基于MFC的界面作为接收端。在接收端主要完成从网络缓冲区内读取数据,并保存成文件的形式,文件以接收到数据的时间为名。图2为图象采集 时间间隔为1秒时程序执行的结果。图象大小为320 象素。需要说明的是:服务器端发送的数据采用了单字节对齐,对应的在客户端接收的时候也要采用单字节对齐。在WINDOWS下实现内存单字节对齐的方法是 在定义的帧结构体前面加上#pragma pack (1),并在其定义之后加上#pragma pack ()。

共2页: 上一页 1 [2] 下一页

上一篇:基于嵌入式系统的隔离硬件设计   下一篇:嵌入式系统设计的核心技术

标签:Linux S3C2410 嵌入式 图象 传输系统设计 点此搜索本站更多相关信息...搜索更多相关内容..

您可能还感兴趣的内容: 深圳今科电子单片机解密、IC解密服务 今科电子单解机、IC解密业务是怎样的流程?

此页的访问者还关注了下面这些相关资讯


·基于嵌入式系统的隔离硬件设计
·嵌入式系统设计的核心技术
·便携式设备发展的新思路
·基于ET系列的嵌入式多媒体导游系统的设计
·基于MPC860T的嵌入式通信服务器的设计与实现
·基于ADV202的嵌入式视频压缩系统软硬件设计
·基于ARM的嵌入式多参数监护仪设计与实现
·高效率嵌入式程序开发
·uClinux下中断驱动的I/O方式
·在嵌入FPGA的IP核8051上实现TCP/IP的设计
·一种新的嵌入式TCP/IP协议栈的研究与实现
·嵌入式移动通信技术的研究与发展
·嵌入式闪存使“智能”汽车接口应用得以实现
·基于嵌入式Web的电子交警系统
·SI/C负极在实际应用中的失效原因分析
·基于FPGA的32 Kbit/s CVSD语音编解码器的实现
·FPGA在语音存储与回放系统中的应用
·基于PNX1500的嵌入多媒体平台
·详细定义嵌入式操作系统概念
·用现场可编程门阵列实现的频率计
·嵌入式系统数字图像采集接口电路设计
·微软嵌入式系统平台Windows Embedded CE 6.0 R2 11月1
·红旗嵌入式系统EOSnux占彩票终端半壁江山
·嵌入式系统中USB主机控制器的设计
·嵌入式交通管理系统在智能交通中的应用
·嵌入式实时操作系统设计探讨
·Java能否主演嵌入式应用开发?
·聚焦嵌入式操作系统
·嵌入式软件求索之路
·嵌入式防火墙:给每道门配一把锁
·用USB启动Windows XP Embedded
·基于ADV202的嵌入式视频压缩系统软硬件设计
·使用图形化的开发环境——LabView开发嵌入式系统
·嵌入式软件求索之路
·DSP25年–让梦想照进现实
·嵌入式Linux系统中I2C总线设备的驱动设计
·如何选择合适的嵌入式软件开发平台
·微软嵌入式操作系统的分析和比对
·用UML建模开发嵌入式软件
·高安全等级嵌入式应用的设计考虑


版权声明:
( 更多版权详述 | 隐私政策 )

1、凡本网注明“来源:单片机信息网”或“单片机论坛”的文字、图片和音视频作品,版权均属深圳市今科电子有限公司所有,任何媒体、网站或个人未经本网书面授权不得转载、链接、转贴或以其他方式使用;已经本网书面授权的,在使用时必须注明“来源:单片机信息网”或“单片机论坛””。
2、本网未注明“来源:单片机信息网”或“单片机论坛”的作品均为转载稿,本网转载稿件只为传递更多信息,并不意味着认同其观点或真实性。如其他媒体、网站或个人转载使用,必须保留本网注明的“稿件来源”,并自负法律责任。
3、对于单片机信息网通过单片机论坛发布的作品,本网受著作权人委托禁止任何媒体、网站或个人在未经书面授权的情况下转载使用。
4、为维护自身权益、尊重作者版权,单片机信息网特委托深圳市律师协会为本网站法律顾问。对于违反本声明的,单片机信息网律师将依法追究其责任;对于刊载作品涉及版权等问题的,请作者在两周内与网站管理或张朝阳律师联系。
责任编辑:今科电子
双击复制本文网址,发送给您QQ/MSN上的朋友:
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
§最新评论
今科热门解密系列
·PIC芯片DSP系列单片机解密PIC芯
·Freescale单片机解密飞思卡尔芯
·飞思卡尔(Freescale)单片机解密/
·pic18f系列单片机解密
·三星(Samsung)系列单片机极速解
·飞林Feeling芯片系列MCU单片机/I
·MICROCHIP微芯(PIC)系列单片机/M
·单片机破解的常用方法及应对策略
·IC卡预付费电度表的安全及防范技
·单片机解密 单片机解密方法 单片
·PHILIPS系列单片机解密
·独家STC单片机解密
·我对红外遥控信号的解码思路
·51系列单片机解密(数分钟搞定)
·芯片解密业务流程介绍
·单片机解密后提供什么文件?
·单片机解密后为何要提供厂家的专
·芯片是如何被解密的?
·SST系列MCU单片机/IC/芯片解密
·INTEL系列单片机/IC/芯片解密
·ISSI系列MCU单片机IC破解芯片解
·ZILOG系列MCU单片机IC破解芯片解
·MOTOROLA系列MCU单片机IC破解芯
·LG(HYUNDAI系列MCU单片机/IC破
·MCPLD/EPLD系列MCU单片机IC破解
·新茂系列MCU单片机IC破解芯片解
·PHILIPS系列MCU单片机IC破解芯片
·MXIC系列MCU单片机IC破解芯片解
·(ATMEL)51系列MCU单片机IC破解芯
·华邦芯片系列MCU单片机/IC/芯片
·(MICROCHIP)微芯(PIC)系列MCU单
·CYPRESS系列MCU单片机IC破解芯芯
·Sinowealih系列MCU单片机IC破解
·Tenx系列MCU单片机IC破解芯片解
·松翰(SONIX)系列MCU单片机IC破解
·义隆(EMC)系列MCU单片机IC破解
·合泰(HOLTEK)系列MCU单片机IC破
·麦肯(MDT)系列mcu单片机IC破解芯
·今科单片机解密服务
·单片机程序开发
热点技术文章文献
·嵌入式系统的技术特点及前景展望
·加密存储芯片AT88SC1616的原理和
·编写适合自己需要的printf()函数
·基于ARM的嵌入式网络收音机的设
·嵌入式Linux系统中I2C总线设备的
·嵌入式Linux的GDB调试环境建立
·用USB启动Windows XP Embedded
·基于ARM7的指纹考勤机设计
·HC(S)08单片机的高效C语言编程
·嵌入式实时Linux的技术研究
·基于FPGA的32 Kbit/s CVSD语音编
·X86嵌入式处理器开发
·基于WinCE的ARM视频监控系统
·如何制作嵌入式Linux文件系统
·模拟器开发以及嵌入式系统内核调
·基于DM642的嵌入式网络视频服务
·嵌入式系统的发展趋势:网络互联
·嵌入式数据库Berkeley DB 环境使
·嵌入式系统中USB主机控制器的设
·基于mClinux的嵌入式USB接口设计
·Keil C动态内存管理机制分析及改
·54M无线网络适配器在嵌入式系统
·使用虚拟机嵌入式Linux开发前的
·基于AVR单片机的嵌入式“瘦服务
·用MSP430实现的嵌入式因特网终端
·Java能否主演嵌入式应用开发?
·基于TinyXml的嵌入式Linux
·嵌入式芯片同质化的对策
·32位ARM嵌入式处理器的调试技术
·利用图形化平台开发多核嵌入式系
今科推荐产品
·51系列单片机解密(数分钟搞定)
·今科单片机解密服务
·单片机程序开发
·小家电(厨卫电器)系列产品
·灯饰控制系列产品
·四键遥控器系列产品
·红外遥控器系列产品
相关技术文献资讯
·基于嵌入式系统的隔离硬件设计
·嵌入式系统设计的核心技术
·便携式设备发展的新思路
·基于ET系列的嵌入式多媒体导游系
·基于MPC860T的嵌入式通信服务器
·基于ADV202的嵌入式视频压缩系统
·基于ARM的嵌入式多参数监护仪设
·高效率嵌入式程序开发
·uClinux下中断驱动的I/O方式
·在嵌入FPGA的IP核8051上实现TCP/
·一种新的嵌入式TCP/IP协议栈的研
·嵌入式移动通信技术的研究与发展
·嵌入式闪存使“智能”汽车接口应
·基于嵌入式Web的电子交警系统
·SI/C负极在实际应用中的失效原因
·基于FPGA的32 Kbit/s CVSD语音编
·FPGA在语音存储与回放系统中的应
·基于PNX1500的嵌入多媒体平台
·详细定义嵌入式操作系统概念
·用现场可编程门阵列实现的频率计
·嵌入式系统数字图像采集接口电路
·微软嵌入式系统平台Windows Embe
·红旗嵌入式系统EOSnux占彩票终端
·嵌入式系统中USB主机控制器的设
·嵌入式交通管理系统在智能交通中
论坛最新讨论资讯
芯片解密常见问题
· 什么是单片机?
· 单片机要如何加密?
· 单片机芯片是如何被解密的?
· 单片机解密后提供什么文件?
· 芯片解密为何用专用格式文档?
· 芯片解密是怎样的业务流程?
首页 - 隐私政策 - 版权申明 - 网站地图 - 产品中心 - IC解密中心 - 企业文化 - 代理加盟 - 公司简介 - 人才招聘 - 常见问题 - 我要投稿 - 联系我们 - 返回顶部
[单片机信息网] .© 2006-2009 版权所有,严禁非法复制与建立镜像.运营商:[今科电子] 公司地址:中国.深圳/上海 E-Mail:renbangent#126.com sales#techmcu.com(换#为@)
深圳公司 电话热线:+86 0755-82964200 82964201 82964700 传真:0755-82964432 支持手机:13684994966 业务QQ: 501995683 联系人:王小姐 张小姐(工程师) 罗先生(高工)
上海公司 电话热线:+86 021-63062380 15001885509   传真:+86 021-63062380-6   技术支持:15001885509 业务QQ:xxxxxxxx   联系人:郑小姐(业务) 陆工(工程师)
Optimized for 1024x768 to Firefox,Opera and MS-IE6 or higher,Template designed by: Berlin Lee.Web Support[FuAn Network] ICP Record No.:07053756 Webmaster