当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于S3 C2440和Linux的无线拨号上网终端

摘要 以S3C2440和Linux为平台,设计实现了基于3C模式的无线拨号上网终端,并阐述了其硬件组成、软件开发平台的建立、拨号程序的分析,以及驱动检测的方法,最后进行了拨号上网的测试。实际测试结果表明,系统运行稳定、性能可靠,具有一定的应用空间。
关键词 S3C2440;Linux;拨号上网终端

    目前嵌入式技术已经广泛应用于各个领域,设计采用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],启动系统,进一步进行屏幕校正和相关设置。
[!--empirenews.page--]
3 拨号程序分析
3.1 PPPD拨号程序的简要分析
    PPPD是一个用户空间的后台服务进程(Daemon),负责与3C模块进行通信会话来进行必要的初始化设置,然后开始按照协议要求的步骤进行拨号。初始化设置是由PPPD自带的辅助工具CHAT完成,这个程序利用AT指令和3G模块进行通信,主要是交互一些拨号的参数设置、进行拨号的用户名和密码、是否采用数据加密等连网参数。
    拨号流程和主要函数如下:
    (1)主程序pppd_start(),这个函数首先是做初始化工作,对几个所使用的协议进行初始化,这里所用到的分别是lcp_protent,chap_ protent,ipcp_protent。
    (2)完成初始化后,正式开始进行协议的协商,PPPD协议协商流程,如图1所示。

[!--empirenews.page--]
    (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负责处理接收到的数据包。
3.2 配置拨号脚本
    (1)需要配置的拨号脚本文件有3个,分别是:wcdma,chat—wcdma—connect和chat—wcdma—disconnect。把它们存放在/etc/PPP /peers目录下。注意要在wcdma中添加persist命令,保证3G网络在一段时间断开后能自动再连接。
    (2)设置开机自动拨号上网,在系统的开机启动脚本中添加shell命令:/etc/PPP/rmlock,判断并删除无效的串口的lock文件,保证成功拨号。/usr/bin/pppd call wcdma,使其自动拨号。/usr/bin/sleep 15,保证15 s的拨号时间。
[!--empirenews.page--]
4 测试
4.1 驱动检测
    将电路板的启动模式设置为Nand Flash启动,则Linux系统会在通电后自动运行。系统启动后,会在/dev目录下生成PPP设备节点,可用ls/dev/PPP-1命令查看是否存在。在电路板的USB HOST口连接3C模块的电路板,若超级终端上有如图2所示的信息输出,则可知3G模块的驱动已经正确添加到内核中了。


4.2 拨号测试
    在超级终端命令行下,输入命令:pppd call wcdma&,结果如图3所示,说明拨号成功。


    然后记录出现的两个DNS地址,找到/etc目录下的resolv.conf文件,将分配得到的两个DNS服务器地址:202.102.224.68和202.  102.227.68添加到文件中,这样就可以进行域名解析了。Ping外网测试,ping119.75.217.56检查是否能够正常访问网络。结果如图4所示,说明网络连接正常。

5 结束语
    设计和实现了基于S3C2440和Linux的无线拨号上网终端,对其中3G拨号上网所用到技术进行了探讨和分析。利用ARM高速的实时数据处理能力和Linux的网络支持功能,保证了终端设备工作的稳定性和实时性,具有一定的实际意义。有待注意之处:(1)硬件3G模块的电路板有必要集成到底板上,这样可以简化系统设计,降低成本。(2)Linux系统内核要根据具体的实际应用情况进行裁剪,这样不仅节省了存储资源,而且还提高了系统的处理速度。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭