基于Linux NFS的Web数码相框设计
引言
随着数码相机和互联网的普及,越来越多的家庭拥有自己的媒体库。媒体库中既包含有自己拍摄的影像文件,也有从网络上下载的影像资料。然而展示影像资料的手段单一,主要通过PC来实现。因此未来构建以媒体库为中心的家庭多媒体网络,把多媒体资料在各式各样的家庭网络媒体终端上展示出来,将成为一种必然的趋势。媒体终端包括Web数码相框、网络数字电视等。
Web数码相框的提出正是为了设计一种家庭嵌入式网络媒体终端,但目前市场上常见的数码相框的网络可扩展性差,本设计方案的提出正是为了能够弥补这方面的不足,提高网络可扩展性。并在本设计方案的基础上构建网络数字电视等其他多功能终端实体。
1 技术方案
Web数码相框要具有JPEG图像文件显示功能,需要进行大量解码处理,且实时性要求高,因此选用低功耗、高性能的32位处理器ARM。基于ARM920T体系结构的S3C2440嵌入式微处理器具有如下特点:l6/32bitARM920T内核,最高工作频率400MHz,运算能力为440MIPS,能够胜任多媒体文件的处理任务。所以,硬件部分采用在S3C2440基础上构建的一个具有Web功能的嵌入式系统。
软件部分选择最新的Linux2.6操作系统,该操作系统属于开源免费的,可大大降低产品的开发成本。Linux2.6操作系统遵守GPL开发原则,可找到丰富的驱动程序源码,该系统还支持TCP/IP协议栈,可以有效降低开发难度,缩短开发周期。另外Linux2.6内核相比Linux2.4内核操作系统的实时性更好,功能也更加丰富,完全满足Web数码相框的设计要求。
2 硬件设计
2.1 LCD接口设计
S3C2440芯片集成了TFT LCD的驱动器(图1),因此本文采用了256k色240×320的TFT真彩LCD,所以LCD接口的设计就相对简单(图2)。LCD接口用一个41Pin插座,包含了常见LCD所用的大部分控制信号(行场扫描、时钟和使能等),和完整的RGB数据信号(RGB输出为8:8:8)。同时还有一个跳线的设计方便支持不同的LCD工作电压。
2.2 网络接口设计
网络接口设计采用目前常见的DM9000芯片。该芯片是一款快速以太网控制处理器,合成了MlAC、PHY、MMU,自适应10/100M网络,非常适合作为嵌入式系统的网络接口芯片。在本设计中,S3C2440与DM9000之间采用地址线和数据线复用的方式。同时DM9000的AEN端接S3C2440的nGCS4,这样DM9000的地址线IO为Ox20000000,数据IO为0x20000004。此外Linux2.6内核支持DM9000的驱动,这样给开发带来很大的方便。网络接口设计如图3所示。
3 软件设计
3.1 嵌入式操作系统
目前常见的嵌入式操作系统包括:WinCE、VxWorks、uC/OS-II和Linux。其中uC/OS-II操作系统虽然可以免费获得,但功能过于简单,实用性较差,后续开发工作量很大。而前两种操作系统虽然功能较强,但不属于开源免费的操作系统,不适用于低成本的消费类电子产品。
Linux内核是基于GNU通用公共许可,也就是GPL。它的源代码完全开放,也很容易移植到嵌入式系统中,Linux2.6的内核对ARM系列的嵌入式系统已经有了很好的支持。同时有大量的开源软件包可供使用,方便了后期开发。
3.2 网络文件系统(NFS)
网络文件系统(NFS)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。对于Linux系统来说NFS包括两方面:一是Linux服务器端的NFS服务器支持;二是嵌入式目标系统的NFS客户端的支持。因此,在本设计中配置了一台Linux的PC机来提供NFS服务,同时它也作为多媒体网络的媒体库。嵌入式目标系统是Web数码相框,本设计在其嵌入式Linux系统上移植了NFS客户端。借助NFS客户端Web数码相框能随时读取媒体库中共享出来的多媒体文件。
3.3 NFS的简单配置
为了使Web数码相框能够正确地从Linux服务器上取得多媒体资料,要列NFS的服务器端和客户端作简要的配置。
对于服务器端,为/ect/export文件添加如下内容:
/home/media 192.168.0.*(ro,sync,no_root_squash)
添加的内容表示:允许ip地址范围在192.168.0.*的客户端以只读的权限来访问/home/media目录。
然后执行如下命令,启动NFS服务:
#service portmap start
#service nfs start
对于客户端(Web数码相框),在Linux Shell下,执行如下命令来进行NFS共享目录的挂载:
#mkdir/mnt/NFS
#mount-tnfs 192.168.0.20:/home/media/mnt/NFS-onolock
客户端对本地/mnt/NFS目录里的多媒体文件进行读取并显示,相当于读取了网络服务器的/home/media目录的文件,完成了网络媒体库的共享。
4
- VXWORKS内核分析(11-11)
- 在Ubuntu上建立Arm Linux的开发环境(04-15)
- 让Windows系统也能访问Linux文件系统(04-15)
- 非常全面的LINUX NFS文档(04-23)
- 嵌入式uClinux应用程序的NFS开发(05-01)
- linux-2.6.14挂载NFS文件系统(11-22)