微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于S3 C2440和Linux的无线拨号上网终端

基于S3 C2440和Linux的无线拨号上网终端

时间:09-22 来源:3721RD 点击:

目前嵌入式技术已经广泛应用于各个领域,设计采用S3C2440处理器和Linux系统实现的无线拨号上网终端在各个领域有着广泛的应用空间。例如在视频监控方面,结合无线网络技术,使监控的方式更加多元化,使监控的面积和距离都得到了大幅提高,摆脱了物理通道的约束,可以说是未来监控系统的发展方向。终端采用ARM9嵌入式处理器,主频最高可达400 MHz,而且其内部集成了LCD控制器、内存控制器、Flash接口电路以及双通道的USB总线,处理器也支持Linux操作系统,而Linux操作系统也拥有现代操作系统所具备的内容:抢先式多任务处理、内存保护、虚拟内存并支持TCP/IP的众多协议。因此,将它们用于无线拨号上网终端中时,可以利用ARM9低功耗,高性能的特点和Linux良好的网络支持功能完成拨号上网和进一步的具体应用。

1 终端硬件平台

硬件部分采用核心板加底板的结构,核心板是以S3C2440作为处理器,并配有64 MB的SDRAM,256 MB/1 CB的Nand Flash和2 MB的Nor Flash;底板上添加了串口、USB接口、100 Mbit·s-1以太网RJ-45接口和SD卡等基本外围电路。另外,单独开发了3G模块的电路板,目的是把3G模块的miniPCI接口通过硬件转化为USB接口,这样不仅方便3G模块与核心板的连接,而且也方便了对3C模块在Linux系统下驱动的处理,3G模块采用华为EM770W。

2 软件平台

2.1 PC机软件平台

系统软件平台以Linux操作系统为基础,在PC机上安装虚拟机,然后在VMware Workstation上安装Redhat Enterprise 5,内核采用Lin ux-2.6.32.2,然后在Red hat5的Linux上建立ARM-Linux-gcc的交叉编译环境,ftp以及samba服务器等。

2.2 终端的系统移植

系统移植包括:配置Linux内核,向内核中添加3G模块的驱动和PPP协议的支持,并重新编译和下载。

在内核配置之前,首先要进入内核目录,执行make distclean命令将以前相关的临时文件、配置文件、中间文件和路径文件等清除。再开始配置内核:第一步,cp config_mini2440_w35.config;第二步,make menu config进入基于文本模式的菜单型选项,添加USB转串口的驱动和PPPD协议支持的选项;第三步,对内核进行编译,执行命令make zImage,编译成功后在/arch/arm/boot目录下将生成zImage烧写文件;第四步,制作目标板的文件系统映像,在mini2440的目录下执行命令mkyaffszimage-128M rootfs-qtopia-qt4 rootfs-qtopia-qt 4.img,这样在当前目录下就生成了相应的文件系统映像;第五步,烧写文件,连接好串口和USB电缆,打开超级终端和DNW软件,硬件上电并选择为NOR Flash启动,进入BIOS功能菜单。首先选择功能号[f]开始对Nand Flash进行分区;然后选择功能号[v]开始下载supervivi,下载完毕,BIOS会自动烧写supervivi到NAND Flash分区中,并返回主菜单;安装Linux内核,在BIOS主菜单中选择功能号[k],开始下载Linux内核zlmage;安装根文件系统,在BIOS主菜单选择功能号[y],开始下载ysffs根文件系统映像文件rootfs-qtopia-qt4.img,此过程大概需要2 min,下载的文件越大,烧写的时间就会越长;下载完毕后,拔下USB连接线,在BIOS主菜单选择功能号[b],启动系统,进一步进行屏幕校正和相关设置。

3 拨号程序分析

3.1 PPPD拨号程序的简要分析

PPPD是一个用户空间的后台服务进程(Daemon),负责与3C模块进行通信会话来进行必要的初始化设置,然后开始按照协议要求的步骤进行拨号。初始化设置是由PPPD自带的辅助工具CHAT完成,这个程序利用AT指令和3G模块进行通信,主要是交互一些拨号的参数设置、进行拨号的用户名和密码、是否采用数据加密等连网参数。

拨号流程和主要函数如下:

(1)主程序pppd_start(),这个函数首先是做初始化工作,对几个所使用的协议进行初始化,这里所用到的分别是lcp_protent,chap_ protent,ipcp_protent。

(2)完成初始化后,正式开始进行协议的协商,PPPD协议协商流程,如图1所示。

(3)接下来开始发起lcp通信,start_link->lcp_lowerup(),这个函数首先和内核的PPP协议进行协商,主要是MTU等链路参数,协商后设置LCPDE-LAYED_UP标志,把lcp_delayed_up函数设置给一个定时器,这个定时器会根据DELAYED_UP标志周期执行前赋给lcp_delayed_up,在这里函数将主动发起lcp协议请求,之后等待对方回应。start_link函数结束返回到pppd_start()主函数继续执行。

(4)主函数pppd_start会进入一个无限循环,这个循环主要执行函数handle_events()和get_input()。handle_events主要处理接收到的信号,get_input负责处理接收

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top