基于Linux NFS的Web數碼相框設計
O 引言
隨著(zhù)數碼相機和互聯(lián)網(wǎng)的普及,越來(lái)越多的家庭擁有自己的媒體庫。媒體庫中既包含有自己拍攝的影像文件,也有從網(wǎng)絡(luò )上下載的影像資料。然而展示影像資料的手段單一,主要通過(guò)PC來(lái)實(shí)現。因此未來(lái)構建以媒體庫為中心的家庭多媒體網(wǎng)絡(luò ),把多媒體資料在各式各樣的家庭網(wǎng)絡(luò )媒體終端上展示出來(lái),將成為一種必然的趨勢。媒體終端包括Web數碼相框、網(wǎng)絡(luò )數字電視等。
Web數碼相框的提出正是為了設計一種家庭嵌入式網(wǎng)絡(luò )媒體終端,但目前市場(chǎng)上常見(jiàn)的數碼相框的網(wǎng)絡(luò )可擴展性差,本設計方案的提出正是為了能夠彌補這方面的不足,提高網(wǎng)絡(luò )可擴展性。并在本設計方案的基礎上構建網(wǎng)絡(luò )數字電視等其他多功能終端實(shí)體。
1 技術(shù)方案
Web數碼相框要具有JPEG圖像文件顯示功能,需要進(jìn)行大量解碼處理,且實(shí)時(shí)性要求高,因此選用低功耗、高性能的32位處理器ARM?;?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/ARM">ARM920T體系結構的S3C2440嵌入式微處理器具有如下特點(diǎn):l6/32bitARM920T內核,最高工作頻率400MHz,運算能力為440MIPS,能夠勝任多媒體文件的處理任務(wù)。所以,硬件部分采用在S3C2440基礎上構建的一個(gè)具有Web功能的嵌入式系統。
軟件部分選擇最新的Linux2.6操作系統,該操作系統屬于開(kāi)源免費的,可大大降低產(chǎn)品的開(kāi)發(fā)成本。Linux2.6操作系統遵守GPL開(kāi)發(fā)原則,可找到豐富的驅動(dòng)程序源碼,該系統還支持TCP/IP協(xié)議棧,可以有效降低開(kāi)發(fā)難度,縮短開(kāi)發(fā)周期。另外Linux2.6內核相比Linux2.4內核操作系統的實(shí)時(shí)性更好,功能也更加豐富,完全滿(mǎn)足Web數碼相框的設計要求。
2 硬件設計
2.1 LCD接口設計
S3C2440芯片集成了TFT LCD的驅動(dòng)器(圖1),因此本文采用了256k色240×320的TFT真彩LCD,所以L(fǎng)CD接口的設計就相對簡(jiǎn)單(圖2)。LCD接口用一個(gè)41Pin插座,包含了常見(jiàn)LCD所用的大部分控制信號(行場(chǎng)掃描、時(shí)鐘和使能等),和完整的RGB數據信號(RGB輸出為8:8:8)。同時(shí)還有一個(gè)跳線(xiàn)的設計方便支持不同的LCD工作電壓。
2.2 網(wǎng)絡(luò )接口設計
網(wǎng)絡(luò )接口設計采用目前常見(jiàn)的DM9000芯片。該芯片是一款快速以太網(wǎng)控制處理器,合成了MlAC、PHY、MMU,自適應10/100M網(wǎng)絡(luò ),非常適合作為嵌入式系統的網(wǎng)絡(luò )接口芯片。在本設計中,S3C2440與DM9000之間采用地址線(xiàn)和數據線(xiàn)復用的方式。同時(shí)DM9000的AEN端接S3C2440的nGCS4,這樣DM9000的地址線(xiàn)IO為Ox20000000,數據IO為0x20000004。此外Linux2.6內核支持DM9000的驅動(dòng),這樣給開(kāi)發(fā)帶來(lái)很大的方便。網(wǎng)絡(luò )接口設計如圖3所示。
3 軟件設計
3.1 嵌入式操作系統
目前常見(jiàn)的嵌入式操作系統包括:WinCE、VxWorks、uC/OS-II和Linux。其中uC/OS-II操作系統雖然可以免費獲得,但功能過(guò)于簡(jiǎn)單,實(shí)用性較差,后續開(kāi)發(fā)工作量很大。而前兩種操作系統雖然功能較強,但不屬于開(kāi)源免費的操作系統,不適用于低成本的消費類(lèi)電子產(chǎn)品。
Linux內核是基于GNU通用公共許可,也就是GPL。它的源代碼完全開(kāi)放,也很容易移植到嵌入式系統中,Linux2.6的內核對ARM系列的嵌入式系統已經(jīng)有了很好的支持。同時(shí)有大量的開(kāi)源軟件包可供使用,方便了后期開(kāi)發(fā)。
3.2 網(wǎng)絡(luò )文件系統(NFS)
網(wǎng)絡(luò )文件系統(NFS)是一種將遠程主機上的分區(目錄)經(jīng)網(wǎng)絡(luò )掛載到本地系統的一種機制,通過(guò)對網(wǎng)絡(luò )文件系統的支持,用戶(hù)可以在本地系統上像操作本地分區一樣來(lái)對遠程主機的共享分區(目錄)進(jìn)行操作。對于Linux系統來(lái)說(shuō)NFS包括兩方面:一是Linux服務(wù)器端的NFS服務(wù)器支持;二是嵌入式目標系統的NFS客戶(hù)端的支持。因此,在本設計中配置了一臺Linux的PC機來(lái)提供NFS服務(wù),同時(shí)它也作為多媒體網(wǎng)絡(luò )的媒體庫。嵌入式目標系統是Web數碼相框,本設計在其嵌入式Linux系統上移植了NFS客戶(hù)端。借助NFS客戶(hù)端Web數碼相框能隨時(shí)讀取媒體庫中共享出來(lái)的多媒體文件。
3.3 NFS的簡(jiǎn)單配置
為了使Web數碼相框能夠正確地從Linux服務(wù)器上取得多媒體資料,要列NFS的服務(wù)器端和客戶(hù)端作簡(jiǎn)要的配置。
對于服務(wù)器端,為/ect/export文件添加如下內容:
?。痟ome/media 192.168.0.*(ro,sync,no_root_squash)
添加的內容表示:允許ip地址范圍在192.168.0.*的客戶(hù)端以只讀的權限來(lái)訪(fǎng)問(wèn)/home/media目錄。
然后執行如下命令,啟動(dòng)NFS服務(wù):
#service portmap start
#service nfs start
對于客戶(hù)端(Web數碼相框),在Linux Shell下,執行如下命令來(lái)進(jìn)行NFS共享目錄的掛載:
#mkdir/mnt/NFS
#mount-tnfs 192.168.0.20:/home/media/mnt/NFS-onolock
客戶(hù)端對本地/mnt/NFS目錄里的多媒體文件進(jìn)行讀取并顯示,相當于讀取了網(wǎng)絡(luò )服務(wù)器的/home/media目錄的文件,完成了網(wǎng)絡(luò )媒體庫的共享。
4 結束語(yǔ)
以上內容敘述了基于A(yíng)RM構架的嵌入式多媒體終端,同時(shí)具備了Web數碼相框的基本功能。本設計的創(chuàng )新之處在于把Linux系統強大的網(wǎng)絡(luò )功能和S3C2440高效的多媒體處理能力結合起來(lái),構建了高性能、低功耗、低成本的網(wǎng)絡(luò )多媒體終端??梢灶A見(jiàn)在不久的將來(lái),以Web數碼相框為代表的網(wǎng)絡(luò )多媒體終端會(huì )走進(jìn)千家萬(wàn)戶(hù)。
評論