1、. . . 课程设计说明书基于ARM的GPRS模块的设计目 录摘要11绪论11.1 嵌入式系统11.1.1 嵌入式系统概述11.1.2 嵌入式处理器11.2 ARM处理器21.3 GPRS无线通讯21.3.1 GPRS定义21.3.2 GPRS的技术特点22 系统选型与设计32.1 硬件选型32.2 模块总体框图33 系统硬件设计33.1 ARM硬件结构与电路概述33.1.1 SANSUNG S3C2410概述33.1.2 ST2410硬件资源分配43.1.3 ST2410接口资源63.1.4 ST2410 的串口通讯73.2 M22通讯电路板的设计103.2.1 BENQ电源部分设计113.
2、2.2 BENQ M22 与 SIM 卡的接口113.2.3 BENQ M22 在语音通讯设计方面的问题113.2.4 BENQ M22 通讯板的串口124 系统软件设计134.1引导加载程序的设计144.1.1 BOOTLOADER 的基本概念144.1.2 ST2410 的 BOOTLOADER 功能说明164.2 串口通讯程序的设计174.3 BENQ M22 模块部的软件特性175 模块软件运行流程图176 模块设计总结1920 / 23基于ARM与嵌入式Linux的GPRS模块摘要随着科技的高速发展,嵌入式系统已经进入 32 位时代。在当前数字信息技术和网络技术的高速发展的后 PC
3、时代,嵌入式系统已经广泛地应用于各类产业。随着国外嵌入式产品地进一步开发和推广,嵌入式技术和人类生活的联系越发紧密。本文介绍了在 SAMSUNG ARM9和嵌入式 Linux 平台上的,基于 BenQ M22 模块的 GPRS 无线通讯模块的软硬件设计。主要容包括: M22 通讯电路板的 PCB 设计;ARM9 中 Bootloader 编程与 FLASH 烧写;M22 和 ARM9 的外围与部硬件电路的设计;串口通讯的编程;AT 指令的收发等等。该系统能够实现语音通讯、短信服务、来电查询、来电显示等功能关键词:嵌入式;ARM;Linux;GPRS1绪论1.1 嵌入式系统1.1.1 嵌入式系统
4、概述嵌入式系统(Embedded System),是一种嵌入机械或电气系统部、具有专一功能和实时计算性能的计算机系统。嵌入式系统常被用于高效控制许多常见设备,被嵌入的系统通常是包含数字硬件和机械部件的完整设备,例如汽车的防锁死刹车系统。相反,通用计算机如个人电脑则设计灵活,可以智能处理各式各样的运算情况,以满足广大终端用户不同的需要。现代嵌入式系统通常是基于微控制器(如含集成存和/或外设接口的中央处理单元)的,但在较复杂的系统中普通微处理器(使用外部存储芯片和外设接口电路)也很常见。通用型处理器、专门进行某类计算的处理器、为手持应用订制设计的处理器等,都可能应用到嵌入式系统。常见的专用处理器有
5、数字信号处理器。1.1.2 嵌入式处理器嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。可以分为:嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器等。嵌入式处理器是嵌入式系统的核心,是控制、辅助系统运行的硬件单元。围极其广阔,从最初的位处理器,目前仍在大规模应用的位单片机,到最新的受到广泛青睐的32位,64位嵌入式CPU。1.2 ARM处理器ARM处理器是一种32位嵌入式RISC处理器。ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对微处理器的通称,还可以认为是一种技术的名字。ARM处理器是一个32位元精简指令集(RISC)处理器
6、架构,其广泛地使用在许多嵌入式系统设计。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%40%以上的存储空间,同时具备32位代码的所有优点。大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。1.3 GPRS无线通讯1.3.1 GPRS定义通用分组无线服务(英语:General Packet Radio Service,缩写:GPRS)是GSM移动用户可以使用的一种移动数据业务/技术。它经常被描述成“2.5G”,意指这项技术介于第二代(2G)与第三代(3G)移动通讯技术之间。它是利用GSM网络中未使用的TDM
7、A信道,提供中速的数据传输服务。起初有人想通过扩展GPRS来覆盖其他标准,只是这些网络都正在转而使用GSM标准,这样GSM就成了GPRS唯一能够使用的网络。GPRS在Release 97之后被集成进GSM标准,起先它是由ETSI标准化,但是现在已经移交3GPP负责。1.3.2 GPRS的技术特点数据实现分组发送和接收,按流量计费;56115Kbps的传输速度.GPRS的应用,迟些还会配合Bluetooth(蓝牙技术)的发展。到时,数码相机加了bluetooth,就可以马上通过手机,把像片传送到遥远的地方,也不过一刻钟的时间。相对于GSM的9.6kbps的访问速度而言,GPRS拥有171.2kb
8、ps的访问速度;在连接建立时间方面,GSM需要10-30秒,而GPRS只需要极短的时间就可以访问到相关请求;而对于费用而言,GSM是按连接时间计费的,而GPRS只需要按数据流量计费;GPRS对于网络资源的利用率而相对远远高于GSM。2 系统选型与设计2.1 硬件选型由于ARM系列处理器中 ARM9 对于 Linux 操作系统的支持性明显强于 ARM7。 因此, 本模块采用的核心微处理器是属于ARM9系列微处理器的SAMSUNG S3C2410出于成本和功能的考虑,本模块中选用的GPRS/GSM选用的BenQ的M22无线模块。主要仪器设备如下:SAMSUNG ST2410 ARM9 开发板SHA
9、RP TFT_LCD 液晶屏BenQ M22 GPRS 模块SIM 卡GSM 900/1800 MHz 吸盘天线BenQ M22 电路板2.2 模块总体框图3 系统硬件设计3.1 ARM硬件结构与电路概述3.1.1 SANSUNG S3C2410概述S3C2410A 采用了 ARM920T 核, 0.18um 工艺的 CMOS 标准宏单元和存储单元。它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。同样它还采用了一种叫做 Advanced Microcontroller Bus Architecture(AMBA) 新型总线结构。S3C2410 的显著特性是它的 CPU 核心
10、, 是一个由 Advanced RISC Machines(ARM) 设计的 16/32 位 ARM920T RISC 处理器。ARM920T 核由ARM9TDMI、存储管理单元(MMU)和高速缓存三部分组成。其中,MMU 可以管理虚拟存。ARM920T 实现了 MMU,AMBA BUS 和 Harvard 高速缓冲体系结构。这一结构具有独立的 16KB 指令 Cache 和 16KB 数据 Cache,每个都是由 8 字长的行构成。ARM920T 有两个部协处理器:CP14 和 CP15。CP14 用于调试控制,CP15 用于存储系统控制以与测试控制。S3C2410 的部结构图如图 3.1
11、所示图 3.1 S3C2410 部结构图3.1.2 ST2410硬件资源分配S3C2410 将系统的存储空间分成 8 组(Bank),每组的大小是 128MB,共 1GB。 Bank0 到 Bank5 的开始地址是固定的,用于 ROM 或 SRAM。Bank6 和 Bank7 用于 ROM、 SRAM 或 SDRAM,这两个组可编程且大小一样。Bank7 的开始地址是 Bank6 的结束地址,灵活可变。所有存块的访问周期都是可编程的。S3C2410 采用 nGCS7:08 个通用片选信号选择这些组。因此,S3C2410 支持两种启动模式:从 NAND FLASH 启动和从外部 nGCS0 片选
12、的 NOR FLASH 启动。所以在这两种启动模式下, 各片选的存储空间分配是不同的, 这两种启动模式的存储分配如图 3.3 所示:图3.3 存储空间分配图a)图是 nGCS0 片选的 Nor Flash 启动模式下的存储分配图;b)图是 NAND FLASH 启动模式下的存储分配图;说明:SFR Area 为特殊寄存器地址空间。在进行器件地址说明之前,有一个点需要注意,nGCS0 片选的空间在不同的。启动模式下,映射的器件是不一样的。由下表可以知道:在 NAND FLASH 启动模式下,部的 4K Bytes BootSRAM 被映射到 nGCS0片选的空间。在 Nor Flash 启动模式
13、(非 NAND FLASH 启动模式)下,与 nGCS0 相连的外部存储器 Nor Flash 就被映射到 nGCS0 片选的空间。地址围说明片选信号0x4800_00000x6000_0000SFR(特殊寄存器)地址空间0x4000_00000x4000_0FFFNAND FLASH 启动模式下,该空间没有被使用非 NAND FLASH 启动模式下,该空间为 BootSRam0x3000_00000x3400_0000SDRAM 空间nGCS60x1900_0300CS8900 的 IO 基址nGCS30x0000_00000x0020_0000NAND FLASH 启动模式下,nGCS0B
14、ootRam 的有效地址:0x0000_00000x0000_0FFF非 NAND FLASH 启动模式下,Nor Flash 的有效地址空间为:0x0000_00000x0020_0000表3.1 硬件地址分配表3.1.3 ST2410接口资源跳线名称说明JP1(核心板)决定 S3C2410 的启动模式插上短路块从 Nand Flash 中启动,默认不插上短路块从 Nor Flash 中启动表 3.2 跳线分配表按键名称说明S1(Reset)(核心板)复位按键,小按键K1K4 按键4 键盘表 3.3 核心板按键说明接口名称说明T1(RJ45)以太网接口(RJ45, 带隔离器的)UART1(J
15、8), UART3(J7)串行口 1,2U10红外线 IrDASD_CARD(J1)SD 卡接口J17USB HOST 接口USB_DEVICE(J15)USB DEVICE 接口J2音频输出接口J27CCFL 背光电源输出接口J6板子的电源接口JP2一些扩展口JP1(LCD INTERFACE)LCD 和触摸屏接口表 3.4 底板接口说明3.1.4 ST2410 的串口通讯由于在本系统中 ARM 与 PC 机和 M22 模块都是通过串口进行通讯。在此,我详细介绍一下 S3C2410 的串口资源。串行通信是微计算机之间一种常见的近距离通信手段,因使用方便,编程简单而广泛使用,几乎所有的微控制器
16、,PC 都提供串行通信接口。(1)串行通讯传输格式图 3.4 串口的帧数据传输格式开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0”作为起始位,然后出现在通信线上的是字符的二进制编码数据。每个字符的数据位长可以约定为5 位、6 位、7 位或8 位,一般采用ASCII 编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。最后是表示停止位的“1”信号,这个停止位可以约定持续1 位、1.5 位或2位的时间宽度。至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始
17、传送才又发出起始位。每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为110,150,300,600,1200,2400,4800,9600 等。(2) 电气特性RS-232 标准采用的接口是9 芯或25 芯的D 型插头,常用的一般是9 针插头(DB-9),表3.5是DB9 引脚说明:引脚名称全称说明FGFrame Ground连到与其的接地线TXDTransmitted Data数据输出线RXDReceived Data数据输入线RTSRequest to Send要求发送数据CTSClear to Send回应对方发送的RTS的发送许可,告诉对方可以发送DSRDat
18、a Set Ready告知本机在待命状态DTRData Terminal Ready告知数据终端处于待命状态CDCarrier Detect载波检出,用以确认是否收到Modem的载波SGSignal Ground信号线的接地线(严格的说是信号线的零标准线)表3.5 DB9引脚说明图 3.5 DB9 引脚实物图要完成基本的通信功能,实际上只需要RXD,TXD,GND 即可,但是由于BenQ的M22通讯模块需要握手信号(RTS和CTS),所以在本系统中至少要接5根线。同时又由于RS-232-C 标准所定义的高,低电平信号与S3C210X 系统的LVTTL 电路定义的高,低电平信号完全不同,LVTT
19、L的标准逻辑“1”对应2V3.3V 电平,标准逻辑“0”对应0V0.4V 电平,而RS-232-C 标准采用负逻辑方式,标准逻辑“1”对应-5V-15V 电平,标准逻辑“0”对应+5V+15V。显然,两者间要进行通信,必须经过电平的转换,转换芯片采用的MAX232。电路原理图见图3.6:图 3.6 串口连接电路图其中 J8 串口负责与 BenQ M22 通讯,J7 串口负责与 PC 机通讯。(3)S3C2410的UART操作S3C2410的UART(通用异步串行口)单元提供三个独立的异步串行I/O 端口,每个都可以在中断和DMA 两种模式下进行。它们支持最高波特率115.2Kbps。每个UAR
20、T 通道包含2个16 位FIFO 分别提供给接收和发送。S3C2410X 的UART可以进行以下参数的设置:可编程的波特率,红外收/发模式,1 或2个停止位,5 位,6 位,7 位或8 位数据宽度和奇偶位校验。1)发送数据数据发送帧的格式是可编程的,它包含一个开始位,5 到8 个数据位,一个可选的奇偶位和一个或两个停止位,这些可以通过线性控制器UCONn)来设置。发送器也能够产生发送中止条件。中止条件迫使串口输出保持在逻辑0 状态,这种状态保持一个传输帧的时间长度。通常在一帧传输数据完整地传输完之后,在通过这个全0 状态将中止信号发送给对方。中止信号发送之后,传送数据连续放到 FIFO 中(在
21、不使用FIFO 模式下,将被放到输出保持寄存器)。2)接收数据与数据发送一样,数据接收的帧也是可以编程的,它包含一个开始位,5到8个数据,一个可选的奇偶位和一位或两位停止位,它们都是通过线性控制器(ULCONn)来设置的。接收器能够检测溢出错误,奇偶校验错误,帧错误和中止状况,每种情况下都将会将一个错误标志置位。3)波特率的设置每个UART 的波特率发生器为传输提供了串行移位时钟。波特率产生器的时钟源可以C、从S3C2410X 的部系统时钟或UCLK 中来选择。波特率由时钟源(PCLK 或UCLK) 16 分频和UART 波特率除数寄存器(UBRDIVn)指定的16 位除数决定。UBRDIVn
22、 的值可以按照下式确定:UBRDIVn = (int)(PCLK/(bps*16)-1例如,如果波特率为115200bps 且PCLK 或UCLK 为40MHz, 则UBRDIVn 为:UBRDIVn =(int)(40000000)(115200*16)-1= (int)(21.7)-1= 21-1 = 203.2 M22通讯电路板的设计BenQ M22 通讯电路板主要是由 M22 无线模块的外围接口电路组成(参见附录1)。该电路板主要包括以下几个部分:(1)电源与整流部分(2)串口通讯接口(3)SIM 卡电路(4)差分语音电路(5)LED 信号灯显示电路(6)蜂鸣器接口(7)按键输入(8)
23、天线接口其管脚(44 脚)分配如表 3.6 所示管脚名管脚数目描述UART/RS2326RS232 接口UART22软件调试BU1蜂鸣器输出GPIO6通用 I/O 管脚Power On1上电运行LED Driver1LED 驱动SIM4SIM 卡接口VBATRF3RF 的电源输入VBATBB1BB 的电源输入Audio7语音接口Keypad Interrupt1键盘中断接口BGND10地NC1无连接表 3.6 BenQ M22 管脚分配表3.2.1 BenQ电源部分设计我们知道无线模块的耗电具有不稳定的特点。在待机状态,在和基站的握手状态,在通话状态,在拨号状态,在信号强弱不同的地方这些因素都
24、会直接的影响无线模块的耗电流,所以无线模块的电源设计非常重要。因此我的电源设计方案采用LM7805和LM2576的联合设计。直流电源(12V)输入LM7805,然后输出DC5V,与此同时通过LM2576产生DC4V电压供给M22。由于LM2576具有可靠的工作性能、较高的工作效率和较强的输出电流驱动能力,从而为M22的稳定、可靠工作提供了强有力的保证。图 3.9 M22 电路板电源部分电路原理图3.2.2 BenQ M22 与 SIM 卡的接口由于 BenQ M22 必须通过中国电信的 GSM/GPRS 网络才能够工作, 所以必须要用到 SIM 卡。安装时只要以右上角的缺口为准即可。图 3.1
25、0 SIM 卡接口电路原理图3.2.3 BenQ M22 在语音通讯设计方面的问题在语音通讯方面,M22 提供了两个语音通道: 一个我们叫做差分通道,也就是说无论是MICPHONE信号的输入,还是SPEAKER信号的输出都是采用差分的形式。也就是我们平时所说的“双端输入双端输出”。在管脚的定义上MICIP,MICIN就分别是MICPHONE的正输入端和负输入端。EARP,EARN就分别是SPEAKER的正输出端和负输出端。另一路语音通道是单端方式。具体管脚定义为AUXI和AUXOP。 其中AUXI为MICPHONE的正输入端,MICPHONE的负输入端应该对地。AUXOP为SPERKER的正输
26、出端,SPERKER的另一端应该对地。当然从外部线路的转换来说在这一路语音通道的使用中,MICPHONE也可以接成差分的形式,但是需要一个转换电路。SPERKER也可以接成差分输入的形式,也需要一个差分转单端的线路。以上说了关于单端语音通道的一些问题。下面我们叙述一下差分语音通道的一些问题。图3.11是差分端的MICPHONE 输入参考图图 3.11 差分方式的 MICPHONE 电路原理图图3.12是SPEAKER 的线路图图 3.12 差分方式的 SPEAKER 电路原理图需要说明的是,由于单端输入单端输出的语音通道特别容易受到辐射干扰,从而对语音的质量产生了很大的影响,所以在本系统中只采
27、用了差分语音通道。3.2.4 BenQ M22 通讯板的串口前面已经提到了由于 RS-232 电平的问题,M22 不能直接和 PC 机通讯,但是可以直接和 ARM 或单片机通讯,不需要任何电平转换芯片。那为什么这里却又需要一个电平转换芯片(SP3238)呢?主要是由于 ST2410 上的串口已经通过了 MAX232,转换成了 RS-232-C 电平。为了能够与其通讯,必须也要将由 M22 出来的串口信号转换成 RS-232-C 电平。在此,我们采用的是另一种电平转换芯片 SP3238。因为此芯片可以一次转换 9 个信号线,与 MAX232 相比更方便。图 3.20 M22 与 ARM 进行串口
28、通讯原理图图 3.21 SP3238 与 M22 接口的电路原理图4 系统软件设计该GPRS通讯程序是在ARM ADS 1.2(ARM Developer Suite。是ARM 公司推出的新一代ARM 集成开发工具。)集成开发环境中编译通过后,然后产生可以直接烧写在FLASH 中的.bin 格式的二进制可执行文件,最后进行下载运行的。4.1引导加载程序的设计引导加载程序(Bootloader)是嵌入式系统的重要组成部分。4.1.1 Bootloader 的基本概念一个嵌入式 Linux 系统从软件的角度看,通常可以分为四个层次:(1)引导加载程序:包括固化在固件(firmware)中的 boo
29、t 代码(可选),和 Boot Loader 两大部分。(2)Linux 核:特定于嵌入式板子的定制核以与核的启动参数。(3)文件系统: 包括根文件系统和建立于 Flash 存设备之上文件系统。(4)用户应用程序。特定于用户的应用程序,有时在用户应用程序和核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式 GUI 有:MicroWindows和 MiniGUI 等。引导加载程序是系统加电后运行的第一段代码。我们熟悉的 PC 中的引导程序一般由 BIOS 和位于 MBR 的 OS bootloader(例如 LILO 或者 GRUB)一起组成。然而在嵌入式系统常没有像 BIOS 那样的固件
30、程序(有的嵌入式 CPU 有),因此整个系统的加载启动任务就完全由 bootloader 来完成。在嵌入式 Linux 中,引导加载程序即等效为 bootloader。简单地说,bootloader 就是在操作系统核运行前运行地一段小程序。通过这段小程序,我们可以初始化必要的硬件设备,创建核需要的一些信息并将这些信息通过相关机制传递给核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统核,真正起到引导和加载核的作用。bootloader 是依赖于硬件而实现的,特别是在嵌入式系统中。每种不同的 CPU 体系结构都有不同的 Boot Loader。有些 Boot Loader 也支持多种
31、体系结构的 CPU,比如 U-Boot 就同时支持 ARM 体系结构和 MIPS 体系结构。除了依赖于 CPU 的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基于一样的 CPU构建,运行在其中一块电路板上的 bootloader,未必能够运行在另一块电路开发板上。尽管如此,我们仍然可以对 Bootloader 归纳出一些通用的概念来,以指导用户特定的 Bootloader 设计与实现:(1)Boot Loader 的安装媒介系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如
32、,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。而基于 CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行 Boot Loader 程序。(2)用来控制 Boot Loader 的设备或机制主机和目标机之间一般通过串口建立连接,Boot Loader 软件在执行时通常会通过串口来进行 I/O,比如:输出打印信息到串口,从串口读取用户控制字符等。(3)Bootloader 的启动方式Bootloader 的启动过程可
33、以是单阶段的,也可以是多阶段的。通常多阶段的 bootloader 能提供更为复杂的功能,以与更好的可移植性。从固态存储设备上启动的 bootloader 大多数是二阶段的启动过程,也即启动过程可以分为 stage1 和 stage2 两部分。Boot Loader 的 stage1 通常包括以下步骤:1)硬件设备初始化。2)为加载 Boot Loader 的 stage2 准备 RAM 空间。3)拷贝 Boot Loader 的 stage2 到 RAM 空间中。4)设置好堆栈。5)跳转到 stage2 的 C 入口点。Boot Loader 的 stage2 通常包括以下步骤1)初始化本阶
34、段要使用到的硬件设备。2)检测系统存映射(memory map)。3)将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。4)为核设置启动参数。5)调用核。(4)Bootloader 的操作模式大多数 bootloader 都包含两种不同的操作模式:“启动加载”模式和“下载”模式,这种区别对于开发人员才有意义。但从最终用户的角度看,bootloader的作用永远就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。启动加载模式:这种模式也称为“自主”模式,即 bootloader 从目标机上的某个固体存储设备上将操作系统加载到 RAM 中运行,整个过
35、程没有用户的介入。这种模式是 bootloader 的正常工作模式,因此当以嵌入式产品发布的时候,bootloader 必须工作在这种模式下。下载模式:在这种模式下,目标机上的 bootloader 将通过串口或者网络连接或者其它通信手段从主机下载文件,比如:下载核镜像和根文件系统镜像等。从主机下载的文件通常首先被 bootloader 保存到目标机的 RAM 中,然后被 bootloader 写到目标机上的 FLASH 类固态存储设备中。 Bootloader 的这种模式通常在第一次安装核与根文件系统时使用;此外,以后的系统更新也会使用 bootloader 的这种工作模式。工作于这种模式下
36、的 bootloader 通常都会向它的中断用户提供一个简单的命令行接口。(5)Bootloader 的功能扩展Bootloader 最主要的功能是引导加载核镜像。但是随着嵌入式系统的发展,bootloader 已经逐渐在基本功能的基础上,进行了扩展,bootloader 可以更多地增加对具体系统的板级支持,即增加一些硬件模块功能上的使用支持,以方便开发人员进行开发和调试。从这个层面上看,功能扩展后的 bootloader 可以虚拟地看成是一个微小的系统级的代码包。4.1.2 ST2410 的 Bootloader 功能说明以上介绍了一般嵌入式系统中的 Bootloader 的特点。 如前所述
37、,对于不同的目标板和外围硬件电路,Bootloader 的设计是不一样的。本系统的 Bootloader 除了具有一般的功能外,还具有以下扩展功能:(1) USB 口文件下载(2) 串口文件下载(3) NOR 和 NAND FLASH 的烧写(4) 运行存储在 FLASH 中的程序(5)针对Linux设置启动参数(6)设置Wince或Linux的自启动(7)运行BenQ M22 GPRS通讯系统ST2410 的 Bootloader 的流程图,如图 4.1 所示图4.1 Bootloader流程图构如前所述,此核心板一共由三大存储设备 Nor Flash(2M) Nand Flash(64M)
38、 SDRAM(64M)。前两个 Flash 设备就犹如 PC 机的两块硬盘,(由于 Nand Flash 无论在价格与性能上都优于 Nor Flash,因此现在一般都采用 Nand Flash。)而 SDRAM 就犹如 PC 机的存设备。4.2 串口通讯程序的设计如前所述,本系统有三大模块:PC 机:主要负责人机交互。在 PC 机上运行 DNW(一种串口调试软件),从而可以显示和接受来自 ARM 的数据。ARM 微处理器:核心处理器。将已经编写成功的 GPRS 通讯程序烧写到其 Nand Flash 中。M22 通讯模块:GPRS 通讯的具体实现。接受来自 ARM 的 AT 指令,从而进行 G
39、PRS 通讯,并将有用的信息反馈给 ARM。4.3 BenQ M22 模块部的软件特性下面我们来描述一下 BenQ M22 模块部集成的软件系统。对于无线 PSTN 的用户,BenQ 提供 AT 指令的支持。BenQ M22 的部集成的软件包括以下 3 个部分:Layer 1 驱动协议栈/AT 命令基本接口由于在无线 PSTN 和 BenQ M22 模块中都有微处理器,在这两者之间的接口通常是 AT 指令。当然由于协议栈(TCP/IP)的存在,我们也可以通过发送 AT 指令达到联通 GSM/GPRS 网的目的。5 模块软件运行流程图图 5.1 软件主菜单流程图图 5.2 外电呼入时流程图图 5
40、.3 发送短信流程图图 5.4 本查询流程图图 5.5 主动呼叫流程图6 模块设计总结计算机发展的目标是专用电脑,实现“普遍化计算”,因此可以称嵌入式系统是构成未来世界的“数字基因”。嵌入式系统与无线通讯网络的有机结合,构成了最具吸引力的嵌入式通讯设备:设计应用到车载 GPS 系统,手持 PDA,智能手机等各方面。本文针对 BenQ M22 无线模块在无线通讯方面的应用,对基于 ARM9 与嵌入式 Linux 的 GPRS 无线通讯系统的软件和硬件方面的设计进行了研究,并对可以实现的语音通讯、短信控制、本记录、来电查询、来电显示等功能进行了验证。(1)硬件设备和开发平台的选择是嵌入式开发中的关
41、键环节。硬件发面,本文对三星公司的各种 ARM 系列进行了分析分析比较,选取了性价比更高,应用更广泛,对 Linux 操作系统支持性更好的 ARM 构架的为处理系列的芯片S3C2410X。同样,在 GSM/GPRS 通讯模块的选择上,选取的是明基公司的 M22 无线通讯模块。开发平台方面, Linux 的可靠性、开源性、低成本以与丰富的开发工具和开发资源,使得选择嵌入式 Linux 系统成为必然。(2)引导装载程序(Bootloader)的开发是嵌入式开发中非常重要的环节。本文充分利用嵌入式 Linux 系统的开源特性,先对业界标准的引导装载程序 vivi 进行了分析,然后再针对 ST2410
42、 开发板的外围电路设计了相应的 Bootloader,并在此基础上增加了 M22 无线通讯功能。在通过 ADS 1.2 调试通过后,便直接下载到 ARM 中运行。因此,简化了开发流程,缩短了开发周期。(3)M22 模块通讯电路板的设计是本系统的关键部分。本文首先就 M22 外围电路中的几个具体问题做了详细的说明与解释:如电源部分的设计、差分语音通讯的电路、M22 与 SIM 卡的接口设计、天线的选择等等。又因为此 PCB 是高频电路板,与其他的 PCB 设计有很多的不同之处。本文也同时详细的讨论了高频 PCB 设计的方法与注意事项,从而为后续工作搭建了一个很好的平台。(4)本系统 3 个模块之
43、间都是采用串口进行通讯的。本文先分别对 PC 机、ARM、M22 模块的串口接口电路进行了深入比较与研究,然后针对 AT 指令,对具体的串口通讯的接口编程的步骤和方法进行了详细的讨论。ARM 与嵌入式 Linux 搭配的开发是目前嵌入式开发领域最热门的话题,也是嵌入式开发未来的重要方向。在对基于 ARM 微处理器和嵌入式 Linux 的 GPRS 通讯系统进行研究之后,本文认为该系统能够很好的满足嵌入式设备在无线通讯和远程控制领域的要求。由于 Linux 系统中软件驱动部分的可扩展性,我们可以想象该系统还有很大改进与上升空间。如为了满足可视化的需要或加强人机交互,可以将 Linux 系统中的 GUI 移植到本系统中。由此可见,这是一个值得深入研究的课题。参考文献:1俞昌忠. 基于嵌入式Web服务器的GPRS无线数据传输系统的设计D.工程大学,2012.2钦伟. 基于嵌入式Linux与GPRS的无线销售系统设计与实现D.中南大学,2011.3王栋. 基于GPRS的嵌入式系统无线通信技术的研究D.理工大学,2008.4朝. 基于嵌入式与GPRS技术的无线监测终端研究D.西北工业大学,2007.