MIPS核的嵌入式Linux系統的家庭網(wǎng)關(guān)
描述了一種無(wú)內部互鎖的信息平推流式的32位嵌入式微處理器下,嵌入式Linux操作系統環(huán)境的家庭網(wǎng)關(guān)的體系結構。通過(guò)這種構架的實(shí)現和二次開(kāi)發(fā)相應的驅動(dòng)程序、應用程序和管理接口并結合無(wú)線(xiàn)通信技術(shù)實(shí)現家庭網(wǎng)關(guān),使家庭網(wǎng)關(guān)具備支持非對稱(chēng)數字用戶(hù)環(huán)路、無(wú)源光網(wǎng)絡(luò )、以太網(wǎng)數據通過(guò)同軸電纜傳輸等接入方式的上行接口,并提供網(wǎng)絡(luò )電話(huà)、互聯(lián)網(wǎng)協(xié)議電視、個(gè)人計算機、通用串行總線(xiàn)接口、通用異步接收/發(fā)送裝置等下行接口和無(wú)線(xiàn)相容性認證的無(wú)線(xiàn)信號。家庭網(wǎng)關(guān)可以通過(guò)萬(wàn)維網(wǎng)瀏覽器、基于簡(jiǎn)單網(wǎng)絡(luò )管理協(xié)議的管理方式和命令行界面等多種方式靈活的進(jìn)行信息交互、配置、更新及遠程控制管理。
本文引用地址:http://dyxdggzs.com/article/201809/388364.htm隨著(zhù)以高速、融合、精品為特征的大寬帶時(shí)代的全面到來(lái),高寬帶傳輸、全方位融合、多業(yè)務(wù)綜合將是家庭網(wǎng)絡(luò )及業(yè)務(wù)應用的發(fā)展趨勢。預計未來(lái)的10年中,國內家庭網(wǎng)關(guān)的市場(chǎng)容量將在200億元以上。盡管?chē)鴥纫延猩贁滴墨I[5]描述了以無(wú)內部互鎖的信息平推流式的微處理(Microprocessorwithoutinter-lockedpipedstages,縮寫(xiě)為MIPS)核的32位嵌入式微處理器作為硬件平臺,開(kāi)發(fā)家庭網(wǎng)關(guān),并取得了較好的研究成就,但距離工業(yè)應用還有一定時(shí)差。結合無(wú)線(xiàn)通信技術(shù),通過(guò)移植嵌入式Linux操作系統,在此基礎上開(kāi)發(fā)相應的驅動(dòng)程序、應用程序和管理接口來(lái)實(shí)現家庭網(wǎng)關(guān)。家庭網(wǎng)關(guān)具備上行接口,支持非對稱(chēng)數字用戶(hù)環(huán)路(AsymmetricDigitalSubscriberLine,縮寫(xiě)為ADSL)、無(wú)源光網(wǎng)絡(luò )(PassiveOpticalNetwork,縮寫(xiě)為PON,)、以太網(wǎng)數據通過(guò)同軸電纜傳輸(EthernetoverCoax,縮寫(xiě)為EOC)等接入方式,提供網(wǎng)絡(luò )電話(huà)(VoiceoverInternetProtocol,縮寫(xiě)為VOIP)、互聯(lián)網(wǎng)協(xié)議電視(InternetProtocolTelevision,縮寫(xiě)為IPTV)、個(gè)人計算機(PersonalComputer,縮寫(xiě)為PC)、通用串行總線(xiàn)接口(UniversalSerialBUS,縮寫(xiě)為USB)、通用異步接收/發(fā)送裝置(UniversalAsynchronousReceiver/Transmitter,縮寫(xiě)為UART)等下行接口,通過(guò)高速外圍元件接口(PeripheralComponentInterfaceExpress,縮寫(xiě)為PCIE)與無(wú)線(xiàn)相容性認證(WirelessFidelity,縮寫(xiě)為WiFi)模塊相連提供WiFi無(wú)線(xiàn)信號。家庭網(wǎng)關(guān)能夠靈活添加應用程序、接口模塊,遠程管理家庭網(wǎng)絡(luò )的智能終端設備實(shí)現業(yè)務(wù)的分發(fā)和配置管理控制。
1 硬件系統
1.1系統結構
家庭網(wǎng)關(guān)的硬件系統結構如圖1所示,以32位的嵌入式MIPS微處理器芯片為核心,由外存儲器閃存(FLASH)、雙倍速率同步動(dòng)態(tài)隨機存儲器(DoubleDateRate,縮寫(xiě)為DDR,)、WiFi模塊、VOIP模塊、網(wǎng)絡(luò )交換模塊、USB存儲模塊、發(fā)光二極管(LightE-mittingDiode,縮寫(xiě)為L(cháng)ED)模塊、串口模塊、電源模塊等構成。
1.2系統功能與實(shí)現
家庭網(wǎng)關(guān)可以采用多種控制方式靈活方便地與用戶(hù)進(jìn)行交流[6]。外存儲器暫存數據,再傳遞到微控制單元(MicroControlU-nit,縮寫(xiě)為MCU)中。閃存通過(guò)串行外設接口(SerialPeripheralInterface,縮寫(xiě)為SPI)總線(xiàn)與MCU 相連,DDR通過(guò)介質(zhì)無(wú)關(guān)接口(MediumIndependentInterface,縮寫(xiě)為MII)與MCU 相連。WiFi模塊通過(guò)PCIE接口與MCU 相連,提供2.4GHz的無(wú)線(xiàn)信號。VOIP模塊通過(guò)MII接口與MCU 相連,其下端口聯(lián)接普通電話(huà)機,可以通過(guò)電話(huà)機查詢(xún)、設置家庭網(wǎng)關(guān)中VOIP口的網(wǎng)絡(luò )狀態(tài)。網(wǎng)絡(luò )交換模塊包括上聯(lián)接口和下聯(lián)接口。微處理器內部集成了一個(gè)交換引擎,提供五個(gè)符合802.3協(xié)議的10/100Mbps快速以太網(wǎng)MAC/PHY接口,可作為系統的上聯(lián)端口和下聯(lián)端口。上聯(lián)端口為下行提供數據信號,下聯(lián)端口可以連接IPTV、PC等設備,并能夠自由組網(wǎng)配置成VLAN。USB 存儲模塊用于存儲家庭網(wǎng)關(guān)的配置信息。
LED模塊顯示系統狀態(tài),由MCU 的通用輸入/輸出(GeneralPurposeInputOutput,縮寫(xiě)為GPIO)口控制,LED的不同狀態(tài)表示系統的不同狀態(tài)。串口模塊結合超級終端實(shí)現實(shí)時(shí)打印家庭網(wǎng)關(guān)的運行狀態(tài)信息,并可以設置家庭網(wǎng)關(guān)的配置信息,如環(huán)境變量、內存信息、相關(guān)版本信息等,也可以更新嵌入式家庭網(wǎng)關(guān)的文件系統、鏡像文件等。電源模塊為整個(gè)系統提供電源。

2 軟件系統
家庭網(wǎng)關(guān)的軟件系統結構如圖2所示,主要分為3個(gè)層次:Linux內核包括進(jìn)程管理、文件管理、內存管理、中斷和中斷處理、系統初始化等;硬件驅動(dòng)層包括WiFi、VOIP模塊、串口、以太網(wǎng)、LED 等的驅動(dòng);應用程序層通過(guò)內核的調用,實(shí)現相應的應用服務(wù),如串口通信程序、Web方式訪(fǎng)問(wèn)等。
硬件驅動(dòng)層主要是提供操作系統和應用程序所需的驅動(dòng)[7]。該層主要由板級初始化程序、與系統軟件相關(guān)的驅動(dòng)、與應用軟件相關(guān)的驅動(dòng)等3種類(lèi)型的程序組成。板級初始化程序即引導加載程BootLoader,用來(lái)完成整個(gè)系統的加載啟動(dòng)任務(wù)。在該系統中選擇U-Boot作為引導加載程序。系統上電后,U-Boot程序初始化系統的硬件環(huán)境,如:嵌入式微處理器、中斷控制器、存儲器、直接內存存取(DirectMemoryAccess,縮寫(xiě)為DMA)和定時(shí)器的初始化。將系統的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為后續調用操作系統做好準備。與系統軟件相關(guān)的驅動(dòng)是操作系統和中間件等系統軟件必備的驅動(dòng)程序,具體開(kāi)發(fā)按照系統軟件的不同需求進(jìn)行。操作系統內核所需的硬件支持一般都已集成到嵌入式微處理器里了,因此開(kāi)發(fā)人員只需在操作系統廠(chǎng)商提供的內核驅動(dòng)的基礎上編寫(xiě)相關(guān)驅動(dòng)程序如:以太網(wǎng)驅動(dòng)、串口驅動(dòng)、外存驅動(dòng)等驅動(dòng)程序。與應用軟件相關(guān)的驅動(dòng)不一定需要與操作系統連接,這些驅動(dòng)的設計和開(kāi)發(fā)由實(shí)際應用決定。

Linux操作系統移植主要包括BootLoader的編寫(xiě)和移植、Linux內核移植與配置以及Linux文件系統移植與配置[8]。
2.1U-Boot移植
該家庭網(wǎng)關(guān)系統的BootLoader采用U-Boot。在U-Boot/Board目錄下添加家庭網(wǎng)關(guān)開(kāi)發(fā)板的配置文件,修改U-Boot目錄下的Makefile文件,包括設置編譯環(huán)境和建立編譯配置項。確認默認的交叉編譯器與本機的交叉編譯器是否一致,若不一致則需要對編譯環(huán)境進(jìn)行重新設置,宿主機的交叉編譯器為gcc。建立編譯配置項,在Makefile文件中添加編譯語(yǔ)句,如:
gw_config:unconfig
@ >include/config.h
@echo#defineCONFIG_mipgw1include/config.h
@./mkconfig-agw mipsmipsgw mipgw mipgw
在U-boot/Board/gw目錄下添加Makefile文件,建立文件之間的依賴(lài)關(guān)系。如:
OBJS=$(BOARD).oflash.o../common/mipgw_pci.o ../common/mipgw_flash.o ../common/
mipgw_s26_phy.o
通過(guò)引用變量來(lái)指定目標文件,以便于適用于該模塊的不同版本的開(kāi)發(fā),也是該系統的一個(gè)特點(diǎn)。在U-Boot/CPU/MIPS的目錄下添加存放內存控制器的配置文件。
在U-Boot/Board路徑里添加初始化MCU 的USB配置、GPIO 口的配置、寄存器、數據段的文件和初始化WiFi模塊主芯片GPIO 口的文件。
2.2Linux內核移植
操作系統層包括嵌入式內核、TCP/IP(TCP-TransferControlProtocol,傳輸控制協(xié)議,IP-Internet Protocol,網(wǎng)際協(xié)議)網(wǎng)絡(luò )系統、文件系統、圖形用戶(hù)接口(GraphicalUserInterface,縮寫(xiě)為GUI)系統和電源管理等部分。其中嵌入式內核是必備的基礎部分,其他部分可根據嵌入式系統的不同需要進(jìn)行取舍[9]。在家庭網(wǎng)關(guān)系統中,嵌入式操作系統環(huán)境為L(cháng)inux操作系統,嵌入式內核為MIPS內核,文件系統為jffs2。
在系統軟件包的根目錄下創(chuàng )建Linux目錄,在其目錄下添加Kernels文件夾,存放Linux內核源碼。修改內核源碼文件夾下的Makefile文件,使其編譯環(huán)境與宿主機的編譯環(huán)境一致,具體代碼如下所示:
SUBARCH := mips
ARCH ? = $(SUBARCH)
CROSS_COMPILE ? =
UTS_MACHINE := $(ARCH)
CONFIG_SHELL := $(shellif[-x$$BASH];thenecho$$BASH;
elseif[-x/bin/bash];thenecho/bin/bash;
elseechosh;fi;fi)
HOSTCC= gcc
HOSTCXX= g++
HOSTCFLAGS=-Wall-Wstrict-prototypes-O2-fomit-frame-pointer
HOSTCXXFLAGS=-O2
2.3文件系統移植
嵌入式文件系統包括Ramdisk、Jffs2、Yaffs、Cramfs、Romfs和Ramfs/Tmpfs[10]。該系統的文件系統選擇Jffs2。在文件系統的文件夾Rootfs里添加rcS文件,指定需要掛載的文件系統、掛載點(diǎn)、配置初始化進(jìn)程及解壓后存放的位置,通過(guò)環(huán)境變量來(lái)傳遞接口。rcS文件的具體內容如下所示:
#! /bin/sh
mount-a
mount-oremount+w/
mount-tramfs-nnone/tmp
exportPATH=$PATH:/etc/ath
insmod/lib/modules/2.6.15/net/ag7240_mod.ko
exportETH0=eth0
exportETH1=eth1
ifconfig$ETH0up
ifconfig$ETH1up
2.4內存管理
操作系統中的內存管理單元負責管理整個(gè)系統的物理地址空間和虛擬地址空間,它是這個(gè)系統得以存在和運行的基礎[11]。該家庭網(wǎng)關(guān)系統中,數據均存放在4M 的閃存里,當系統啟動(dòng)后再將數據通過(guò)DDR 映射到MCU 的RAM 中,從地址0x81000000開(kāi)始。數據在閃存中存放的地址空間如圖3所示。

0x81000000開(kāi)始。數據在閃存中存放的地址空間如圖3所示。
3 管理接口
3.1Web接口
Web功能是家庭網(wǎng)關(guān)系統提供給用戶(hù)的面向對象的操作接口。用戶(hù)通過(guò)WEB瀏覽器訪(fǎng)問(wèn),可以對家庭網(wǎng)關(guān)的各功能模塊進(jìn)行設置,即對連接在家庭網(wǎng)關(guān)上的設備的管理控制。如:對以太網(wǎng)口進(jìn)行VLAN 配置,自由組織虛擬網(wǎng)絡(luò );對VOIP口的網(wǎng)絡(luò )狀態(tài)進(jìn)行配置,自行設置IP、VOIP業(yè)務(wù)等信息;對WiFi模塊進(jìn)行設置,選擇虛擬信道、設置無(wú)線(xiàn)網(wǎng)絡(luò )的參數等。家庭網(wǎng)關(guān)的軟件系統通過(guò)常見(jiàn)的應用程序接口模塊CGI,連接CGI接口和處理HTML靜態(tài)文本文件實(shí)現Web功能。
Web服務(wù)器選擇Httpd服務(wù)器,通過(guò)移植Httpd源碼并融合在Busybox里實(shí)現。在cgiMain()函數中描述了Httpd服務(wù)器建立服務(wù)、接收請求、處理請求、日志文件及斷開(kāi)連接的過(guò)程。在Httpd.c文件中添加函數來(lái)設置Web服務(wù)器的配置,使Web服務(wù)器啟動(dòng)時(shí)就能根據當前環(huán)境完成Web服務(wù)器的配置。指定的HTML頁(yè)面文件放到/usr/www 目錄下,cgi外部擴展程序放到/usr/www/cgi-bin目錄下,把鏈接融合在cgiMain里。通過(guò)在cgiMain()函數里調用環(huán)境變量建立服務(wù)器與CGI程序之間的信息交互,從而實(shí)現各個(gè)網(wǎng)頁(yè)文件之間的鏈接。
如果家庭網(wǎng)關(guān)的IP地址為192.168.100.12,把家庭網(wǎng)關(guān)與PC機連接在同一個(gè)網(wǎng)絡(luò )里,在Web瀏覽器地址欄輸入192.168.100.12即可顯示家庭網(wǎng)關(guān)的配置頁(yè)面??梢詫?shí)現各個(gè)頁(yè)面之間的動(dòng)態(tài)連接,修改家庭網(wǎng)關(guān)的配置參數。
3.2CLI接口
加載簡(jiǎn)單遠程登錄服務(wù)器Telnetd,通過(guò)命令行界面(CommandLineInterface,縮寫(xiě)為CLI)方式,使Telnetclient就可以登錄到家庭網(wǎng)關(guān)系統,結合CLI提供的各種命令接口,實(shí)現對家庭網(wǎng)關(guān)的配置、測試和升級等操作。在家庭網(wǎng)關(guān)的軟件系統中,Telnetd工作時(shí)連接一個(gè)偽終端設備,然后創(chuàng )建一個(gè)登陸進(jìn)程,在偽終端側有標準的輸入、輸出、錯誤。Telnet操縱的偽終端主方執行telnet協(xié)議并傳遞遠程客戶(hù)端和登錄過(guò)程中的字符。
在命令行窗口輸入“telnet192.168.100.12背魷鐘沒(méi)名、密碼提示窗口。輸入正確的用戶(hù)名和密碼,即可訪(fǎng)問(wèn)家庭網(wǎng)關(guān),查看系統的文件。打開(kāi)TFTP服務(wù)器,通過(guò)命令tftp可以更新頁(yè)面文件等。
3.3UART接口
初始化MCU 內置的UART接口,設置串口屬性如:波特率為115200、8位數據位、無(wú)奇偶校驗、1位停止位、無(wú)流控。通過(guò)超級終端人機交互界面可以和家庭網(wǎng)關(guān)進(jìn)行信息交互,實(shí)時(shí)監控家庭網(wǎng)關(guān)系統的運行狀態(tài)、修改控制各類(lèi)配置信息、更新U-boot、Linux內核、文件系統、映像文件等。
打開(kāi)超級終端、TFTP服務(wù)器,設置串口屬性,啟動(dòng)家庭網(wǎng)關(guān)后,即可打印輸出家庭網(wǎng)關(guān)的運行狀態(tài)。進(jìn)入更新文件狀態(tài),設置環(huán)境變量,如輸入:
tftp0x80060000u-boot.bin//將u-boot.bin文件放在緩存區
erase0x9f000000+0x40000//擦除存放U-Boot文件區域的內容
cp.b$fileaddr0x9f000000$filesize//把緩存區的文件復制到存放U-Boot文件的區域
即可更新U-Boot文件。按此命令格式,輸入對應的文件名和地址,文件系統、映像文件也同樣可更新。
4 結語(yǔ)
該文描述了一個(gè)以MIPS微處理器為核心、以嵌入Linux操作系統為開(kāi)發(fā)環(huán)境的家庭網(wǎng)關(guān)。該家庭網(wǎng)關(guān)通過(guò)移植U-Boot、Linux內核、文件系統定制軟件系統,添加Web、CLI、UATR 等接口功能,實(shí)現通過(guò)Web、CLI和SNMP等多種方式靈活的與家庭網(wǎng)關(guān)進(jìn)行信息交互、配置、更新。經(jīng)測試[13]該家庭網(wǎng)關(guān)系統實(shí)現了多業(yè)務(wù)功能,上聯(lián)接口支持多種接入方式能夠為網(wǎng)絡(luò )交換模塊提供數據信號,下聯(lián)接口能提供VOIP功能、2.4GHz的無(wú)線(xiàn)信號,以太網(wǎng)口之間能自由配置VLAN。
試驗測試的結果表明,該家庭網(wǎng)關(guān)適合高寬帶傳輸、全方位融合、多業(yè)務(wù)綜合的家庭網(wǎng)絡(luò )及業(yè)務(wù)應用的發(fā)展需求。
評論