APP下载

一种嵌入式无线联网系统的研究与实现

2016-01-26王冬星马英瑞

大庆师范学院学报 2015年6期

王冬星,马英瑞,李 梓,李 娟,王 冲

(大庆师范学院 计算机科学与信息技术学院,黑龙江 大庆 163712)



一种嵌入式无线联网系统的研究与实现

王冬星,马英瑞,李梓,李娟,王冲

(大庆师范学院 计算机科学与信息技术学院,黑龙江 大庆 163712)

摘要:近年来Wifi无线通信技术和互联网电视发展非常迅速,许多家庭希望既能通过机顶盒组成Wifi网络,方便移动设备上网,又能通过它看电视。基于此,研究与实现了一个基于机顶盒的无线联网系统。首先对机顶盒嵌入式开发技术做了一些介绍,然后对机顶盒的uboot、内核和文件系统重新设计、定制,使其支持Wifi等功能,最后对系统进行了测试与总结,为相关工作提供借鉴。

关键词:无线联网;uboot移植;内核移植

随着电视技术的进步和互联网环境的日趋成熟,互联网电视掀起一股热潮。时至今日,中国电视机生产厂家已经逐步将“上网功能”作为电视机的配置标准,并大力研发各种各样的互联网周边终端产品,其中电视盒、电视棒便是最受消费者追捧的。据统计,2013年我国具有联网功能的电视机的销售量为2397万台,占电视机销售总量的51.1%。预计2015年平板电视中将有近八成的电视机具有联网功能。根据2010年出台的“三网融合”(电视网、互联网和电信网)总体方案要求[1-2],2013年至2015年,总结推广试点经验,全面实现三网融合。

近年来,Wifi无线通信技术发展迅速,相比有线接入技术,Wifi则具有传输数据快、距离远等优势。目前,很多公共场所都提供免费wifi服务,只要随身携带支持Wifi功能的电子产品,即可方便地接入互联网。机顶盒通过Wifi无线联网将是必然趋势。

1相关技术介绍

1.1机顶盒框架结构介绍

机顶盒作为家庭消费终端,主要提供点播、直播、录播等功能。无线网络的机顶盒是基于802.11n无线网络进行数字电视信号传输,它需要硬件接口和系统的支持,使其能与硬件设备进行数据交换。同时,软件方面需要安装一个功能较强的嵌入式多任务实时操作系统,在完成驱动硬件的基本功能之上,提供多种服务功能,机顶盒的框架结构图如图1所示。

上层应用程序(音视频解码,系统集成等)嵌入式linux操作系统(系统调度,硬件驱动)系统调用接口和硬件驱动库硬件平台(网络接口,音视频输出接口和各种硬件接口)

图1机顶盒框架结构图

1.2嵌入式Linux系统技术分析[3]

嵌入式Linux系统是一个基于嵌入式Linux操作系统之上编写的一个系统,在移动电话、个人数字助理、航空航天等领域中被广泛应用。而嵌入式Linux操作系统又具有以下优势,第一,源代码开放,方便下载、改写与扩充;第二,Linux内核小、效率高,最简单的系统内核的大小只有134KB左右。此外,Linux是免费的,在市场上有良好的竞争力。

由于Linux是跨平台的系统,它支持多种CPU和硬件平台,具有良好的稳定性和可裁剪性,方便开发和使用;同时,Linux内核对网络也有很好的支持,如对最常用的TCP/IP协议的支持,使得其在嵌入式网络中被广泛应用。

嵌入式linux系统一般由三部分构成bootloader、kernel(含驱动)和rootfs。其工作次序为:系统上电后运行bootloader,bootloader为内核准备参数并加载运行内核,内核执行文件系统中的脚本和应用程序。

2系统移植的设计与实现

2.1系统移植流程设计

嵌入式无线网络系统的移植过程如图2,Uboot裁剪、kernel裁剪和rootfs制作如下所述。

2.2Uboot设计与实现

Uboot设计与实现主要有5个步骤:

1)下载开源代码uboot.tar.gz并解压,为下一步Uboot的重新设计做准备。

2)配置Uboot,因为不同的系统需要不同的内核和Uboot,本文是对机顶盒系统所使用Uboot进行裁剪、配置,主要操作包括进入uboot原码根目录,在include/configs/添加hi3560v100.h,并在该文件设置系统需要的参数信息,如宏命令设置,其内容如图3。

图2 系统移植流程图

3)生成配置文件(make hi3560e_config)

Makefile文件中有多个目标执行选项,make hi3560e_config是makefile文件的一个目标选项的执行。使用该命令一般会在include目录下生成机顶盒开发板的配置文件,该文件为系统后续工作过程提供开发板具体的配置信息,如开发板类型、使用的动态库、相应的头文件等信息。

4)make

用该命令生成u-boot.bin二进制文件,将u-boot.bin二进制文件烧写到开发板,开发板一上电,即可被自动执行。

2.3内核裁剪与设计

内核裁剪与设计主要有4个步骤:

1)下载linux内核linux2.6.14.tar.gz,在该内核基础上进行机顶盒系统的裁剪和设计。

2)解压内核,命令如下:

#tar xvf linux2.6.14.tar.gz

3)内核配置

#make menuconfig;

该命令是进入内核配置的图形界面,配置对802.11n协议栈的支持和对无线的支持,如图4。

图4 内核配置界面

4)编译内核生成内核映像uImage,其命令如下:

#make uImage

2.4文件系统制作

文件系统的制作过程如下:

1)准备软件busybox,在交叉编译工具目录/opt/中,将交叉工具路径添加到/etc/profile文件中。

2)在Linux系统下进行编程,建立目标板空根目录文件夹及根目录下的文件夹,内容如下:

w@sunniwell:~$ mkdir myroots //根目录文件夹

w@sunniwell:~$ cd myroots //进入myroots文件夹

w@sunniwell:~/myroots$

w@sunniwell:~/myroots$ mkdir bin sbin usr lib dev mnt opt root etc home proc tmp var

//创建根目录下的基本目录

w@sunniwell:~/myroots$ mkdir etc/init.d //在etc目录下创建初始化目录init.d

3)进入etc/init.d目录下,建立脚本文件rcS,设计内容如下:

#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin: //配置环境变量PATH

runlevel=S

prevlevel=N

umask 022 //设置文件权限掩码

export PATH runlevel prevlevel

# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.

trap ":" INT QUIT TSTP

w@sunniwell:~/myroots$ cd lib

进入lib目录,添加相应的库文件。

4)移植Busybox

解压busybox的压缩文件,进入busybox源码根目录,配置busybox。

w@sunniwell:~$ make menuconfig //执行之后,将出现如图5所示的界面。

图5 busybox配置界面

由于每个版本的配置选项组织有所不同,编程时注意以下选项即可:

①Support for devfs //支持devfs文件系统

②Build BusyBox as a static binary ( no shared libs ) //将busybox编译成静态链接

③Do you want to build busybox with a Cross Compile?

(/usr/local/arm/3.3.2/bin/arm-linux-) Cross Compile prefix //指定交叉编译器

④init //初始化

⑤Support reading an inittab file //支持init读取/etc/inittab 配置文件

⑥(X) ash选中ash //建立的rcS脚本才能执行

⑦ash

⑧cp cat ls mkdir mv //可执行命令工具的选择

完成配置后,保存退出,对其进行编译:

w@sunniwell:~/busybox$makeTARGET_ARCH=armCROSS=arm-linux-PREFIX=/friendly-arm/myroots/ all install

将相应的可执行文件和已编译的Wifi驱动模块复制到根文件系统的相应目录下。

5)生成yaffs文件系统包

w@sunniwell:~$ mkyaffsimage myroots myroots.img

6)将根文件系统烧写到开发板。

3测试

3.1烧写

将制作好的bootloader,kernel,rootfs文件按顺序分别烧写到开发板上,进行系统测试,以验证具有无线联网功能的机顶盒完全好使。

连接开发板和计算机,用ubuntu的minicom、tftp服务下载bootloader、kernel、rootfs,重启系统,测试网络,具体编程与操作如下:

1)设置基本的uboot环境变量

# setenv serverip 172.16.6.60//主机ip设置

# setenv ipaddr 172.16.6.61 //目标板ip设置

# saveenv //保存环境变量

2)uboot 烧写,编程命令如下:

#nand erase 0 100000 //擦除nand的指定区域

#tftp c2000000 u-boot.bin //下载uboot.bin到内存c2000000地址

#nand write c2000000 0 100000//将uboot.bin从内存下载到nand中

3)内核烧写,内核和文件系统的烧写都使用的是uboot提供的命令,具体编程命令如下:

# nand erase 100000 a00000 //nand 擦除

# tftp c2000000 uImage//下载内核uImage到内存

# nand write c2000000 100000 a00000 //将uImage从内存烧写到nand指定地址

4)文件系统烧写,具体编程命令如下:

# nand erase b00000 b00000//擦除nand指定位置

# tftp c2000000 sbox_app_8300_hi3560e_1040090.img //下载文件系统到内存

# nand write c2000000 b00000 b00000//将文件系统烧写到nand指定位置

5)启动参数设置

# setenv bootcmd nand read c2000000 100000 a00000; bootm c2000000

//设置启动命令bootcmd,该命令将内核下载到内存c2000000并执行

# setenv bootargs root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200

//设置内核参数bootargs,其指定了根文件系统的分区、初始化脚本及终端和波特率

# savenv

3.2网络测试

启动机顶盒,进入系统后,插入WiFi驱动模块,ping网络以测试网络模块是否正常工作,经测试工作正常。具体测试过程如下所示。

1)插入网络模块,命令如下:

#insmod 8192cu.ko

2)查看网卡标识,命令如下:

# iwconfig

3)查看网卡信息,命令如下(此次网卡标识为rausb0):

# ifconfig rausb0 up

# ifconfig

4)设置ESSID。所谓ESSID,Service Set Identifier,用来区分不同的网络,也称作服务区别号,简单的说SSID就是一个局域网的名称。具体命令如下:

# iwconfig rausb0 essid test-gtb

# iwconfig

如果设置成功可以看到,rausb0,ESSID,"test"。如果设置的网络不对,比如没有"test",则该位置为空。关于ESSID参见百度百科[4]。

5)ping 网络,网络提示ping通,链接已经建立,即无线网络已经成功。其命令如下:

# ping 192.168.1.1

经过测试,本文所设计的WIFI驱动正常运行,最终实现了机顶盒通过Wifi的联网功能,达到了预期的设计目标。在测试过程中,发现还可以进行嵌入式功能扩充,为下一步研究奠定了基础。

4结语

本文首先介绍了机顶盒与Wifi无线通信的发展现状,然后研究与设计了一个基于机顶盒对无线联网系统,通过开发环境的搭建、WIFI驱动的设计、系统的移植,最终实现了机顶盒的WIFI联网。经过测试,系统基本完成了预期功能,但还有改进空间,如代码进行详细优化,功能完善与扩充,这为下一步研究奠定了良好基础,并为相关工作提供了借鉴。

[参考文献]

[1] 姜凤红.三网融合下互联网电视面临的机遇与挑战[J]. 西部广播电视,2014,24:53-54.

[2] 吴纯勇."三网融合"与"互联网+":经济增长的新引擎[J]. 通信世界,2015(1):38.

[3] 宋成儒.基于Linux嵌入式的视频监控系统设计与应用[D].昆明:昆明理工大学硕士学位论文,2013.

[4] 郑玉洲.无线网络安全的机制与技术措施[J]. 信息系统工程,2011(6):59-60.

Research and implementation of

an embedded wireless network system

WANG Dong-xing, MA Ying-rui, LI Zi, LI Juan,WANG Chong

(College of Computer Science and Information Technology, Daqing Normal University, Daqing 163712, China)

Abstract:This paper studies and realizes a wireless network system based on a set-top box. First, some embedded development technologies about the set-top box are introduced. And then, this paper redesigns and customizes the set-top box's uboot, kernel and file system to make the system support Wifi, etc. Finally, the system is tested and summarized which will provide reference for the related work.

Key words:Wireless networking; Uboot transplantation; Kernel transplantation

中图分类号:TP391

文献标识码:A

文章编号:2095-0063(2015)06-0001-05

收稿日期:2015-3-16

基金项目:大庆市指导性科技计划项目:物联网中容错断控制策略的研究与应用(szdfy-2015-61)。

作者简介:王冬星(1977-),女,黑龙江大庆人,副教授,从事计算机应用和软硬件协调设计研究。

DOI10.13356/j.cnki.jdnu.2095-0063.2015.06.001