S3C2440A

2024-07-29

S3C2440A(精选3篇)

S3C2440A 篇1

0 引言

传统的相机已经没有什么人在用了,现在大部分人都使用数码相机。现在的数码相机和手机照相的功能以及质量都很好。但是据统计只有不到35% 的数码相片被冲洗、打印出来,而大部分相片只保存了起来。因此数码相框是很好的一种展示相片的方式,数码相框只用一个相框的位置,却能展示出任意一张数码相片。

1 系统硬件电路设计

1.1 系统原理框图

本设计的核心处理器是三星公司的S3C2440A ,这款处理器的硬件资源丰富,不但性能好,而且能耗还低。数码相框的系统硬件结构如图1所示。

1.2 SD 卡接口电路

本设计用SD卡存放相片,从SD卡中读取图片显示到屏幕上。需要一个SD卡接口。SD卡电路如图2所示。

1.3 LCD 显示器接口电路

本数码相框使用LCD屏幕来显示图片。图片的显示,要有驱动器和控制器。控制器在外部电路上,S3C2440A中已经有一个控制器了。有了驱动器和控制器,就可以在屏幕显示图片。数码相框使用的是TFT屏幕来显示图片。

2 系统的软件设计

系统必须要有一个引导程序来引导系统运行。引导程序首先初始化内存设备,这样才能把内核映像从FLASH存储器复制到内存中运行,做好启动Linux系统的准备。进入内存中的系统的入口,然后运行系统。因为嵌入式Linux在启动的时候首先就要运行bootloader,所以在移植的时候,需要针对目标硬件,对引导程序进行修改。画出程序设计流程图如图3所示。

3 结束语

近年来,科技的迅速发展,越来越多人使用数码产品,使用数码相机的人也越来越多。而且现在手机的照相功能也越来越强,产生大量的数码相片。数码相框作为浏览数码相片一个很好的选择。而且随着科技的发展,硬件的售价越来越便宜。硬件的功耗更低,性能更高。为数码相框提供了更多的解决方案,使数码相框的更好地发展,价格更低,也更容易普及。

S3C2440A 篇2

1 系统总体方案设计

系统硬件如图1所示。S3C2440A为系统处理器,SDRAM使用两片三星公司的K4S561632构成了32位数据宽度的存储系统,并映射到S3C2440A的BANK6上。Nor Flash采用EN29LV160AB,接在S3C2440A的BANK0上用来存取引导操作系统的Bootloader。Nand Flash采用K9F2G08,其有专门的时序控制总线,不占用系统总线资源,用来存储操作系统内核、文件系统等。该播放终端通过DM9000以太网卡以有线方式或USB无线网卡以无线方式连接。UDA1341主要用来将从S3C2440A输出的数字音频信号转换为模拟音频信号输出。LCD显示模块主要是完成显示功能,具有触摸功能,方便用户观看和操作等。S3C2440A上运行一个具有所有相关驱动的Linux操作系统,将Mplayer移植到该平台上。在操作系统及网络协议的支持下,Mplayer就可以从服务器上下载音视频流,并完成解码,再由UDA1341芯片D/A转换或LCD帧缓冲显示。因嵌入式系统资源的有限性不适合Mplayer自带的图形界面运行,所以用Qt重新编写一个图形界面以方便用户操作。

2 硬件电路设计

2.1 S3C2440A最小系统

S3C2440A核心处理器采用ARM公司设计的16/32位ARM920T的RISC处理器,是一款低价格、低功耗、具有高性价比且广泛用于手持设备的微控制器[1]。它实现了MMU,AMBA BUS和Harvard高速缓冲体系结构,具有独立的16 kbyte指令Cache和16 kbyte数据Cache,集成有I2S音频编解码接口、LCD接口、SDRAM内存控制器、Nand Flash控制器、USB控制器、ADC及触摸屏接口等。工作主频一般为400 MHz,最高可达533 MHz。该设计中S3C2440A工作所需时钟源由外接12 MHz晶振提供。此外,采用2片三星公司的K4S561632,片选信号为nGCS6,2 Mbyte的Nor Flash EN29LV160AB,片选信号为nGCS0。Nand Flash不是一种总线型设备,S3C2440A提供了专用访问接口,本设计中采用256 Mbyte的K9F2G08。这样S3C2440A就和外部的时钟电路及SDRAM,Nor Flash和Nand Flash存储设备组成S3C2440A最小系统。

2.2 网络接口电路

嵌入式流媒体播放终端网络接口部分是必不可少的,该播放终端可以通过有线的以太网卡DM9000或USB WiFi无线网卡访问网络。

DM9000是DEVICOM公司生产的一款10/100 (Mbit·s-1)快速以太网卡控制芯片,它实现了以太网媒体介质访问层(MAC)和物理层(PHY)的功能,集成有10/100 (Mbit·s-1)自适应收发器,4 kbyte双字节的静态随机存储器,支持介质无关接口和帧唤醒,完全符合IEEE 802.3u规格,支持IEEE 802.3x全双工的流控制[2]。通过设置,外部处理器可以以8位、16位、32位这3种方式之一访问DM9000内部存储器。本设计中DM9000与S3C2440A处理器的连接如图2所示。

S3C2440A的nGCS4与DM9000的AEN相连,SA4,SA5,SA6及SA7直接跟地线相连,SA8和SA9与电源连接。当AEN引脚为低电平时DM9000就被选中。SD0~SD15与S3C2440A的DATA0~DATA15相连,CMD引脚与S3C2440A的ADDR2连接。当CMD引脚为高电平时,SD0~SD15上传输的是数据,反之传输地址。nWAIT为读写等待信号,当其为低电平时说明上条指令没执行完,当前指令需等待。nOE和nWE为DM9000的读和写允许信号,都是低电平有效。LAN_INT与S3C2440A的18号中断相连,nRESET为初始化DM9000的重启信号,EEDO和WAKEUP引脚为默认的低电平,这决定其总线宽度为16位。X1和X2引脚两端外接25 MHz石英晶振外围电路组成DM9000的时钟电路。RXI+,RXI-,TXO+,TXO-为网络信号的输入和输出端。DM9000接在BANK4上,片选信号为NGCS4。

因S3C2440A集成USB控制器,硬件电路几乎不需要重新设计,只需选择一款在软件上能被支持的USB无线网卡就能实现通过无线方式访问网络。

2.3 UDA1341音频和LCD电路

UDA1341是一款飞利浦公司生产的支持I2S接口的数字音频解码芯片,它采用位元流技术进行信号处理,具备AD转换和DA转换功能,并可用PGA(可编程增益控制)和AGC(自动增益控制)对模拟信号进行处理,同时其对数字信号提供了DSP处理功能[3]。UDA1341在本设计中完成将S3C2440A送来的数字音频信号转化成模拟信号输出,UDA1341音频转换电路如图3所示。S3C2440A提供了5根I2S信号线(I2SSO,I2SSDI,I2SLRCK,I2SSCLK,CDCLK)与UDA1341相应信号线相连,UDA1341的DATAI为其数据输入端,DATAO为数据输出端,BCK为其时钟输入端,WS为字选择端,SYSCLK为时钟信号线。L3MODE,L3DATA和L3CLOCK是UDA1341的L3接口总线,用来对其功能进行控制和获取状态信息。S3C2440A没有L3总线专用接口,故采用其GPB2,GPB3和GPB4引脚用软件方式模拟实现L3总线功能从而对UDA1341中的音频处理参数和系统控制参数进行配置。从UDA1341的19引脚输入的数字音频信号经过处理后,最终从24和26引脚输出到扬声器发出声音。

本设计中采用TFT的LCD来完成系统的显示功能,S3C2440A内部具有LCD控制器,可以支持TFT等带触摸屏功能的LCD。S3C2440A提供了让LCD模块工作的帧同步信号(VFRAME)、行同步信号(VLINE)、像素时钟信号(VCLK)、AC偏置信号(VM)及数据信号(VD0~VD23)等。硬件电路设计简单,只需将相应信号对应连接即可。

3 搭建系统软件运行平台

该流媒体播放终端选择Linux操作系统,通过移植Mplayer实现流媒体的播放,为了操作方便,用Embedded Qt编写一个图形界面操作程序。因此接下来的工作包括Linux内核的移植、yaffs2文件系统的制作、Mplayer的移植、QT图形界面应用程序的编写等。

3.1 Linux内核的移植

Linux是一个开源免费操作系统,很受广大嵌入式开发者欢迎。本设计选择Linux-2.6.31内核,其已经带有比较完善的设备驱动,不需太多修改。移植Linux的步骤如下:

1) 从网络上下载Linux-2.6.31,并解压到相应目录。

2) 修改其顶层Makefile文件下的“ARCH?”和“CROSS_COMPILE?”为“ARCH=arm,CROSS_COMPILE?=arm-linu-”,并将“/arm/mach-S3C2440/mach-smdk2440.c”文件的第163行“S3c24xx_init_clocks(16934400)”修改为“s3c24xx_init_clocks(12000000)”,使输入时钟为12 MHz。

3) 下载yaffs2源码,通过执行其目录下的“patch-ker.sh”脚本给Linux-2.6.31打上补丁,使其支持yaffs2文件系统。

4) 添加或修改相关驱动代码后,执行“make menuconfig”命令进入图形配置界面对内核进行裁剪和配置。配置好内核后,在Linux内核根目录下执行“make zImage”命令编译,“arch/arm/boot”下将生成内核映像文件zImage。

3.2 Yaffs2文件系统制作

Yaffs2文件系统非常适合在Nand Flash上运行。制作文件系统的步骤如下:

1) 首先建立一个root_2.6.31目录,再在root_2.6.31下建立/bin,/etc,/dev,/home,/lib,/mnt,/opt,/proc,/root,/sbin,/ sys,/tmp,/usr,/var等根文件系统目录。

2) 获取busybox1.15.2源码,修改其顶层Makefile中的“CROSS_COMPILE=arm-Linux-,ARCH=arm”。再执行“make menuconfig”进入图形界面进行配置。然后执行“make”和“make install”命令编译安装。

3) 将busybox1.15.2安装后生成的文件复制到root_2.6.31相应文件夹下,并在dev目录下执行“mknod console c 5 1”和“mknod null c 1 3”命令建立两个设备节点。

4) 制作文件系统的准备工作做好后,使用mkyaffs2image工具执行“mkyaffs2image root_2.6.31”,“root_2.6.31.bin”命令生成yaffs2文件系统镜像。

3.3 Mplayer 的移植

Mplayer是一款开放源代码的音视频播放器,自带解码库,也可以通过外挂解码库以支持播放更多格式的视频文件或流媒体[4]。本设计采用MPlayer-1.0rc2版本。由于Mplayer本身就具备播放网络流媒体的功能,采用将其移植到ARM平台的方法大大减少了开发工作。

3.3.1 live555的编译

Mplayer对网络流媒体的在线播放功能离不开RTSP和MMS协议的支持,因此配置编译Mplayer之前需编译live555协议库,此过程并不复杂,过程如下:

1) 从网络获取live555协议库,修改其live目录下“config.armLinux”文件中变量“CROSS_COMPILE”为“CROSS_COMPILE?=arm-Linux-”。

2) 在live根目录下执行“./genMakefile armLinux”命令,生成Makefile文件后,执行make命令。

3) 执行“cp-r live /usr/local/lib”命令,这样Mplayer编译时就可以找到它了。

3.3.2 WMA的解码器优化

由于S3C2440A处理器上没有用于浮点运算的协处理器,不支持浮点运算。当前许多网络电台采用了WMA格式或者MP3格式,MP3的定点解码可通过移植libmad解决,这里不详述。Mplayer的FFMPEG解码库解码WMA采用了大量浮点运算,直接使用会造成无声现象,所以先进行优化。对WMA解码器进行优化的方法有浮点运算转定点运算、以空间换时间及手工汇编等。Mplayer主程序调用WMA解码程序的过程如图4所示,图中的wma_decode_superframe,wma_decode_frame 和wma_decode_block 这3个函数在解码过程中被调用频繁,耗时较多,需对其优先优化[5]。此过程相当繁琐,工作量很大,因此不详细叙述具体过程。优化后能够满足系统对WMA格式解码的要求。

3.3.3 配置编译Mplayer

Mplayer移植的准备工作做好后就可以对Mplayer配置编译了,配置如下:

./configure --disable-mencoder --enable-Linux-devfs --disable-iconv --disable-dvdnav --disable-dvdread --disable-dvdread-internal --disable-libdvdcss-internal --enable-libavcodec_a --enable-libavcodec_mpegaudio_hp --enable-mad --disable-mp3lib --disable-ivtv --enable-fbdev --enable-ossaudio --cc=arm-Linux-gcc --host-cc=gcc --target=arm-Linux --enable-static

其中“--cc=arm-Linux-gcc”用来指定交叉编译工具,“--target=arm-Linux ”用来指定运行平台,“--host-cc=gcc”用来编译需要在host上执行的中间文件,“--enable-static ”表明使用静态链接库,“--enable-live”选项让Mplayer支持流媒体协议,其他选项含义都可通过执行“./configure-help”查看。配置完后,就会在相应目录下生成Makefile文件,然后通过执行make命令,编译完后在其顶层目录就生成可执行的mplayer文件。

3.4 Qt图形操作界面应用程序编写

Qt/Emdedded 是Trolltech公司开发的面向嵌入式系统的Qt版本,其移植方便,简单易学,所以本设计采用它编写一个方便用户操作的图形界面应用程序。Mplayer有一种工作模式叫slave模式,在此模式下,它能够接受用户的输入命令行,具体能够支持的命令行通过执行mplayer-input cmdlist可得到。用户界面中有通过QPushButton类实例实现的打开文件、播放、暂停、停止等控件,这些控件被放在MainWindow这个类中。通过公有继承QWidget的方法编写一个用于显示播放界面的Player类,Player中有一个QProcess类成员,在Player类的构造函数中用它的成员函数start( )就可执行Mplayer程序,相关代码如“mplayerProcess->start(tr("/usr/bin/mplayer"), args);”。其中mplayerProcess为QProcess的实例化,args为传递给mplayer的参数。传递给Mplayer的控制命令可通过QProcess的write( )函数进行。如实现Mplayer停止运行的代码如“mplayerProcess->write(“quit”);”。实现其他控制功能类似。

类MainWindow和类Player之间及它们的成员之间是独立的,不能相互通信,解决这一问题的是Qt的信号和槽机制,编程中具体实现这一功能的是connect( )函数,这一函数将各类的信号与信号或信号与槽关联使得各类相互配合实现复杂的功能。如实现点击播放功能的代码如“connect(playButton, SIGNAL(clicked()), this, SLOT(slotPlay()));”。当点击播放按钮时就会发射clicked( )信号,此后实现播放功能的slotPlay( )函数就会立即执行,实现网络流媒体的播放。设计好图形操作界面后,就可以方便地操作Mplayer了。

4 小结

本文通过移植Mplayer的方法在S3C2440A平台上实现流媒体播放终端,并用QT为其编写了一个图形操作界面,可以通过有线或无线两种方式访问网络。测试表明,在网络畅通的地方,可以非常清晰地收听网络广播和较流畅地收看网络电视。实现的这款嵌入式流媒体播放终端具有体积小、功耗低及成本低的优点,能让人们享受流媒体带来的学习和生活上的方便及乐趣,有着良好的市场应用前景。

参考文献

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

[2]韩超,王可人.基于DM9000的嵌入式系统的网络接口设计与实现[J].工业控制计算机,2007,27(20):17-18.

[3]胡力刚,许伟明,焦阳.基于S3C2410A和UDA1341TS的嵌入式音频系统设计[J].计算机测量与控制,2009,17(12):2511-2512.

[4]周金和,焦瑞莉,王勇.嵌入式IPv6网络视频终端[J].电视技术,2006,30(12):35-38.

S3C2440A 篇3

本文设计的基于嵌入式的视频监控系统是将ARM控制技术、嵌入式技术、网络传输技术和视频服务器等技术结合起来用以保证监控图像的实时准确, 用以解决查询不便等问题, 从根本上解决了传统视频监控系统所存在的问题。

1 系统方案论述

本文阐述基于TX2440A硬件电路板的嵌入式网络视频监控系统的设计。本文通过TX2440A硬件电路板和嵌入式Linux操作系统和根文件系统的制作, 搭建一个易搭建, 易配置, 通用性好的网络视频服务器mjpg-streamer。该系统通过USB摄像头采集视频数据, 然后使用相应算法对视频数据进行压缩处理, 再经由网络传输传送到视频服务器客户端, 使用户通过IP网络和具有Java插件的浏览器实现远程监控的目的及视频图像的录制。

2 系统设计

本系统是由硬件和软件这两部分组成的。硬件部分主要由无线网卡、摄像头和TX2440A硬件电路板等组成。软件部分主要是由视频服务器和嵌入式Linux操作系统等组成的。视频监控系统结构框架图如图1所示。

2.1 系统硬件设计

硬件电路的设计采用的是核心板带底板的设计方法。核心板电路主要是由微处理器S3C2440A和存储器电路等组成。底板电路主要由复位电路、LCD接口电路和USB摄像头接口电路等组成。S3C2440A是16/32位ARM9系列微处理器, 工作频率最高可达533 MHz, 由于其性能优越、性价比高等优点, 在很多设备中都采用了此控制芯片。

TX2440A硬件电路板上带有USB接口, 只需要将USB摄像头插入即可将摄像头跟硬件电路板相连接。

Wi Fi无线网卡采用的型号是TL-W N823N, 接口类型是USB接口, 内置天线, 频率可以达到2.4 GHz以上。TL-W N823N采用业内专业的11N无线芯片方案, 300 Mbps是其最高无线传输速率, TL-WN823N采用MIMO多收多发天线技术和CCA空闲信道检测技术, 可以有效提高无线信号的稳定性和穿透力, 增强其覆盖范围。室外最远覆盖范围在较优的环境下可以达到300 m, 而室内覆盖范围最远可以达到100 m。

2.2 系统软件设计

系统软件设计主要包括USB摄像头驱动的编译和加载、V4L2信号的采集设计和视频服务器搭建。

2.2.1 USB摄像头驱动

本系统采用的USB摄像头是ZC0301P摄像头, 由于在Linux 2.6.31内核中含有对此类摄像头的驱动, 直接在Linux相应的目录下配置内核, 就可以将ZC0301P摄像头的驱动程序加载进来, 这样的话Linux操作系统就可以支持ZC0301P摄像头了。

2.2.2 V4L信号采集设计

Linux中跟视频设备相关联的内核驱动是V4L2, 它提供了API函数集和很多的接口函数, 比如open, write等, 利用这些函数可以编写ZC0301P摄像头的图像采集应用程序。

V4L2可以采用直接读取法read () 和m map () 内存映射方式两种方法截取视频图像, 比较这两种方法的优缺点, 发现后一种方法的优点较突出, 因此在程序编写中使用mmap () 这种方式来对视频图像进行截取。

2.2.3 视频服务器搭建

本系统采用的视频服务软件是支持V4L2的mjpgs t r e a m e r。从网上下载其源代码和基础连接库源代码jpegsrc.v6b, SDL-1.2.13。

首先安装libjpeg库, 在其源码目录下进行配置, 然后修改对应的文件, 再对其进行编译和安装, 这样就会将库文件libjpeg.so和cjpeg安装在相应的目录下。

其次对简单直流媒体层 (Simple Direct Media Layer, SDL) 安装包进行安装, 在其源码目录下进行相应的配置操作、紧跟着再对其编译, 最后再进行安装, 就可以将文件SDL和库文件lib SDL.so等安装在相应的SDL库目录下。

然后编译和移植视频服务软件包, 在这个软件包的源码目录下编译mjpg-streamer, 会得到可执行程序mjpgstreamer和input_uvc.so, output_http.so这两个模块, 将生成的可执行程序和这两个模块分别拷贝到根文件系统的/usr/sbin目录和根文件系统的/lib目录下。通过再对文件uvcstreamer进行编译, 会生成相对应的可执行程序, 将其拷贝到根文件系统的/usr/sbin目录下。

最后对根文件系统进行制作, 根文件系统的/lib目录下有SDL和jpeg库, 这两个库是从交叉编译器的lib目录下复制过去的。然后对根文件系统进行制作, 将其制作成相对应的镜像文件, 然后将其下载到硬件电路开发板中。

到此已将视频服务器搭建成功, 在硬件电路开发板的Secure CRT控制软件中输入命令:#mjpg_streamer-i“/lib/input_uvc.so”-o“/lib/ouptput_http.so–w192.168.1.22:8080”, 其中192.168.1.22是硬件电路开发板的IP地址, 8080是服务器端口号。把已经制作好的网页文件放到文件系统的/var/webcam下, 在硬件电路板的串口终端中输入命令:

这样就可以使用Web登录服务器。

2.2.4 客户端的实现

打开电脑上的浏览器, 输入网址http://192.168.1.22:8080, 那么就可以将已经制作好的网页打开了。

如果要在一般的浏览器Internet Explorer上查看Java视频流的话, 需要安装JRE。也可以使用火狐浏览器Fire Fox直接观看视频流。

3 结语

本系统采用ARM控制芯片S3C2440A、嵌入式操作系统和无线网卡等搭建了视频服务器, 将ARM控制技术、嵌入式技术、网络传输技术和视频服务器等技术结合起来实现了嵌入式远程视频监控, 该系统具有网络化、实时性强、价格低和易于管理等优点, 具有广泛的应用前景。

摘要:文章将嵌入式技术与网络技术融合到视频监控系统, 设计了基于ARM的嵌入式视频监控系统。本系统利用基于ARM控制芯片S3C2440A的硬件电路板、嵌入式操作系统和无线网卡等搭建了嵌入式Web服务器MJPG-streamer, 用户可通过登录浏览器实现远程视频监控。测试表明该系统运行稳定, 图像实时准确。

关键词:S3C2440A,视频监控,Linux

参考文献

[1]汪光华.智能安防:视频监控全面解析与实例分析[M].北京:机械工业出版社, 2012.

[2]华春梦, 刘冲.基于S3C2440嵌入式平台的USB摄像头视频监控[J].电脑开发与应用, 2015.

[3]李佳林, 刘永春.基于S3C2440网络视频采集系统的设计与实现[J].电脑知识与技术, 2014.

【S3C2440A】推荐阅读:

上一篇:桂林文化论文下一篇:河南笑脸食品有限公司

本站热搜

    相关推荐