采用嵌入式S3C2410芯片的电话短信模块设计
引言
随着嵌入式技术和通信技术的发展,在手机领域,智能手机已成为手机发展的主流趋势。目前在智能手机领域,从处理器选型、操作系统选择以及应用程 序开发都是研究的热点。在高校计算机相关专业的课程中也越来越多地涉及到智能手机的相关内容,越来越多的学生也都投入到智能手机的学习和开发阵营中来。因 此,为这些学生提供相关的实验设备显得很必要。本文提出基于三星S3C2410芯片为核心构建智能手机硬件实验平台,并结合无线通信模块实现智能手机电话短消息功能。为学生进行智能手机相关的实验提供了平台,通过本平台,学生可以自己动手完成智能手机设计时的各种软件开发,改变了传统的验证式的实验平台模式,有利于学生创新能力的培养。
1 智能手机软硬件实验平台设计
手机的硬件实现方式主要有3种:
(1)只用基带芯片,通常称作功能手机;
(2)基带芯片加协处理器,这类产品是在功能手机的基础上增强了多媒体处理功能;
(3)基带处理器加应用处理器。这是智能手机所采用的设计,基带处理器用于通信,应用处理器用于多媒体和其他应用。
在设计智能手机硬件平台时,需要注意以下几个方面:
(1)应用处理器应具有足够高的主频用以保证系统的运行速度,使各种应用能够运行畅通;
(2)系统应有足够的内存空间用以保存应用程序和用户数据;
(3)具备良好的人机交互界面,用户可以方便地进行操作。基带处理器性能稳定,保证用户实时通信。
1.1 硬件平台设计
硬件主要包括调试接口、存储系统、GSM/GPRS通信模块、人机交互模块。核心控制器芯片采用三星公司的S3C2410处理器,频率稳定运行 在203 MHz.作为实验平台,完成智能手机的基本功能,不要求大量数据处理,因而203 MHz的主频能够保证系统的运行速度。系统采用64 MB SDRAM和64 MB NANDFLASH作为存储系统,从而保证系统和用户的存储空间。通信上,应用处理器通过UART2连接基带处理器即GSM/GPRS通信模块,GSM /GPRS模块采用SIMCOM公司的SIM300模块,该模块具备完善的GSM/GPRS三频/四频解决方案,支持GSM通话及短消息收发和 GPRS数据传输,可以方便地通过AT命令进行控制。系统通过LCD显示图形操作界面,采用触摸屏代替传统键盘操作,界面更友好,操作更方便。同时提供扩 展接口用于学生扩展智能手机的其他功能,如利用以太网接口实现网页浏览等。整个系统的硬件框图如图1所示。
1.2 系统软件平台设计
系统软件平台的功能是为应用程序开发提供平台。系统软件以嵌入式Linux操作系统和嵌入式GUI Qtopia为基础来设计的,整个软件平台的架构如图2所示。
1.2.1 Bootloader
Bootloader是系统上电后运行的第一段代码,主要工作是完成硬件的初始化和为加载操作系统准备好条件。它的实现是依赖于硬件的,不同体 系结构开发板的Bootloader变化很大。为了更好地支持目标板的硬件设备,该系统选择在ADS1.2集成开发环境下开发自己的Bootloa- der. Bootloader的实现过程主要分为以下2个阶段:
(1)主要进行与CPU内核以及存储设备密切相关的初始化处理工作,这部分的代码通常用ARM汇编指令编写,包含在start.S文件中。通常包括一些步骤:
①硬件初始化工作。包括关闭看门狗;屏蔽所有中断;设置处理器时钟和工作频率;初始化外部寄存器;初始化堆栈指针。
②为阶段(2)准备RAM空间,并把阶段(2)的代码拷贝倒RAM,跳转倒阶段(2)的入口点。
(2)完成一般的启动流程以及提供目标板设备的驱动支持,这部分会被拷贝倒RAM中执行,这段代码通常由C语言来实现,具有较强的可读性和移植性。
通常包括一下步骤:
①通过set_gpios()函数完成通用I/0设置;
②通过mere_map_init(),mmu_init()函数完成内存映射和内存管理单元初始化;
③初始化MTD设备,使用mtd_dev_init()函数;
④拷贝NAND FLASH中的Kernel映像文件和根文件系统映像到RAM空间中;
⑤跳转到内核的第一条指令处。
至此,Bootloader的任务结束,接下来的任务由操作系统完成。
1.2.2 操作系统的剪裁、移植
操作系统负责对整个的外围设备进行管理和对各个软件任务进行调度。这对于智能手机而言是非常重要的。操作系统采用开源、免费的Linux,基于 嵌入式Linux 2.6版本进行移植,主要移植过程包括建立开发环境、下载内核源码、修改配置文件、配置内核、编译内核、编译模块几个步骤,因为移植的过程大致相同,这里 只做简单介绍:
(1)宿主机上的交叉编译工具采用arm-linux-gcc-3.4.1 ;
(2)修改commom-smdk.c文件,为NANDFLASH设置分区;
(
- 基于s3c2410的CramFS根文件系统的移植(07-13)
- AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现(11-06)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于WinCE的I2C驱动程序设计(04-24)
- WinCE下光电编码器的驱动程序设计(04-12)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)