1、目录一、设计题目4二、设计要求4三、设计作用及目的4四、设计所用设备及软件4五、系统设计41、ARM处理器选型42、GSM/GPRS模块选型6六、系统硬件设计71、ARM硬件结构与外围电路7(1)SAMSUNGS3C24107(2)ST2410开发板的硬件结构8(3)ST2410硬件资源分配9(4)ST2410接口资源11(5)ST2410的串口通讯122、M22通讯电路板的设计15(1)BenQM22GSM/GPRS无线模块15(2)BenQM22电源部分的设计16(3)BenQM22天线的选择17(4)BenQM22与SIM卡的接口17(5)BenQM22在语音通讯设计18(6)BenQM
2、22通讯板的PCB设计19(7)BenQM22通讯板的串口21七、系统软件设计221、引导加载程序的设计22(1)Bootloader的基本概念22(2)ST2410的Bootloader功能说明232、串口通讯程序的设计243、BenQM22模块内部的软件特性264、AT指令27(1)AT指令的语法格式27(2)AT指令的分类285、系统软件运行流程图28八、GPRS通讯系统运行结果301、软件运行截图31九、设计总结34十、心得体会36十一、参考文献3736基于ARM与嵌入式Linux的GPRS无线通讯系统一、 设计题目基于ARM与嵌入式Linux的GPRS无线通讯系统二、 设计要求1、
3、利用分组将数据在网络中传送,达到多用户间对网络资源的共享2、 同时网络运营机构可以最大限度地使用现有GSM设备,避免了GSM设备投资的浪费。3、 数据传送使用GPRS,而语音传送使用GSM,使下载资料和通话可以同时进行。三、 设计作业及目的1、 了解什么是GPRS及其体系结构和基本功能2、 了解GPRS的是如何传输数据3、 了解GPRS在当前时代的运用四、 设计所用设备及软件(1)SAMSUNGST2410ARM9开发板(2)SHARPTFT_LCD液晶屏(3)BenQM22GPRS模块(4)神州行SIM卡(5)GSM900/1800MHz吸盘天线(6)BenQM22电路板五、系统设计1、AR
4、M处理器选型ARM微处理器现有ARM7,ARM9,ARM9E,ARM10E,SecurCore,Xscale,StrongARM等几个系列.鉴于当前电子市场上的情况,在此我主要讨论一下ARM7与ARM9这两种主流处理器的特点及应用领域。(1)ARM7微处理器系列ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点:具有嵌入式ICERT逻辑,调试开发方便。极低的功耗,适合对功耗要求较高的应用,如便携式产品。能够提供0.9MIPS/MHz的三级流水线结构。代码密度高并兼容16位的Thumb指令集。对操作系统的支持广泛,包括
5、WindowsCE、Linux、PalmOS等。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。ARM7系列微处理器的主要应用领域为:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。(2)ARM9微处理器系列ARM9系列微处理器在高性能和低功耗特性
6、方面提供最佳的性能。具有以下特点:5级整数流水线,指令执行效率更高。提供1.1MIPS/MHz的哈佛结构。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA总线接口。全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。MPU支持实时操作系统。支持数据Cache和指令Cache,具有更高的指令和数据处理能力。ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型.由此可见,ARM9对于Linux操作系统的支持
7、性明显强于ARM7。因此,本系统采的核心微处理器是SAMSUNGS3C2410(以ARM920T为内核)。2、GSM/GPRS模块选型目前市面上出现的主流GPRS/GSM模块主要有以下几种:(1)BenQ公司的M20/M22(A)/M32(A)模块;(2)SIEMENS公司的TC35i/MC35模块;(3)SonyEricsson公司的GR47/GR48模块考虑到市场的普及度与可靠性的要求,我们选择BenQ公司的通讯模块。鉴于设计成本与功能上的要求,本系统采用BenQM22无线模块。BenQM22特性如下:z支持频段:EGSM900/DCS1800/PCS1900MHZz符合ETSIGSMph
8、ase2+z支持SIM接口:3Vz工作电压3.2V4.2Vz通讯功能:支持GSM语音,数据,传真,短消息及GPRS数据传输等z软件支持标准ATcommand(3GPP27.07/27.05)z尺寸:36.8x35.2x2.85(mm)z48PINLCC封装六、 系统硬件设计1、ARM硬件结构与外围电路(1)SAMSUNGS3C2410S3C2410对于片内的各个部件采用了独立的电源供给方式:内核采用1.8V供电;存储单元采用3.3V独立供电;I/O采用独立3.3V供电S3C2410的内部结构图如下图1所示图1 S3C2410内部结构图(2)ST2410开发板的硬件结构本系统采用的是深圳优龙公司
9、开发的基于SAMSUNGARM9的ST2410开发板。该开发板的外围电路及功能如下所示:(1) 采用三星公司的S3C2410,主频可达203MHz;(2) 64M字节的SDRAM,由两片K4S561632组成,工作在32位模式下;(3) 64M字节NANDFlash,采用的是K9F1208,可以兼容16M,32M或128M字节;(4) 2M字节的NorFlash,采用的是SST39VF1601,工作在16位模式;(5)10M以太网接口,采用的是CS8900Q3,带传输和连接指示灯;(6)LCD和触摸屏接口;(7)1个USBHOST,S3C2410内置的,符合USB1.1;一个USBDevice
10、,S3C2410内置的,符合USB1.1;(8)支持音频输入和音频输出,音频模块由S3C2410的IIS音频总线接口和UDA1341音频编码解码器组成,板上还集成了一个MIC,用于音频输入;(9)2路UART串行口,波特率可高达115200bps,并具有RS232电平转换电路;(10) SD卡接口,兼容SDMemoryCardProtocol1.0和SDIOCardProtocol1.0;(11) Embedded-ICE(20脚标准JTAG)接口和并口式JTAG接口,支持ADS,SDT软件的下载和调试以及FLASH的烧写;(12)串行EEPROM:AT24C024KbytesEEPROM,I
11、IC接口;(13)蜂鸣器,4个LED灯;4个按键,开关电源,分布式电源供电,3V锂电池,提供CPU内置RTC操持电源;图2 ST2410开发板实物图(3) ST2410硬件资源分配 S3C2410将系统的存储空间分成8组(Bank),每组的大小是128MB,共1GB。Bank0到Bank5的开始地址是固定的,用于ROM或SRAM。Bank6和Bank7用于ROM、SRAM或SDRAM,这两个组可编程且大小相同。Bank7的开始地址是Bank6的结束地址,灵活可变。所有内存块的访问周期都是可编程的。S3C2410采用nGCS7:08个通用片选信号选择这些组。因此,S3C2410支持两种启动模式:
12、(1)从NANDFLASH启动(2)从外部nGCS0片选的NORFLASH启动所以在这两种启动模式下,各片选的存储空间分配是不同的,这两种启动模式的存储分配如图3所示:图3 存储空间分配图a)图是nGCS0片选的NorFlash启动模式下的存储分配图;b)图是NANDFLASH启动模式下的存储分配图;说明:SFRArea为特殊寄存器地址空间在进行器件地址说明之前,有一个点需要注意,nGCS0片选的空间在不同的启动模式下,映射的器件是不一样的。由下表可以知道:(1)在NorFlash启动模式(非NANDFLASH启动模式)下,与nGCS0相连的外部存储器NorFlash就被映射到nGCS0片选的
13、空间。表4 硬件地址分配表地址范围说明片选信号0x4800_00000x6000_0000SFR(特殊寄存器)地址空间0x4000_00000x4000_0FFFNANDFLASH启动模式下,该空间没有被使用非NANDFLASH启动模式下,该空间为BootSRam0x3000_00000x3400_0000SDRAM空间nGCS60x1900_0300CS8900的IO基址nGCS30x0000_00000x0020_0000NANDFLASH启动模式下,BootRam的有效地址:0x0000_00000x0000_0FFFnGCS0非NANDFLASH启动模式下,NorFlash的有效地址空
14、间为:0x0000_00000x0020_0000(2)ST2410接口资源表5 跳线分配表跳线名称说明JP1(核心板)决定S3C2410的启动模式插上短路块从NandFlash中启动,默认不插上短路块从NorFlash中启动表6 核心板按键说明按键名称说明S1(Reset)(核心板)复位按键,小按键K1K4按键4键盘表7 底板接口说明接口名称说明T1(RJ45)以太网接口(RJ45,带隔离器的)UART1(J8),UART3(J7)串行口1,2U10红外线IrDASD_CARD(J1)SD卡接口J17USBHOST接口USB_DEVICE(J15)USBDEVICE接口J2音频输出接口J27
15、CCFL背光电源输出接口J6板子的电源接口JP2一些扩展口JP1(LCDINTERFACE)LCD和触摸屏接口(3)ST2410的串口通讯由于在本系统中ARM与PC机和M22模块都是通过串口进行通讯。在此,我详细介绍一下S3C2410的串口资源。串行通信是微计算机之间一种常见的近距离通信手段,因使用方便,编程简单而广泛使用,几乎所有的微控制器,PC都提供串行通信接口。(1)串行通讯传输格式图8 串口的帧数据传输格式开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0”作为起始位,然后出现在通信线上的是字符的二进制编码数据。 每个字符的数据位长可以约定为5位、6位、7位或8位,一般
16、采用ASCII编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。最后是表示停止位的“1”信号,这个停止位可以约定持续1位、1.5位或2位的时间宽度。至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。每一个数据位的宽度等于传送波特率的倒数。微机异步串行通信中,常用的波特率为110,150,300,600,1200,2400,4800,9600等。(2)电气特性RS-232标准采用的接口是9芯或25芯的D型插头,常用的一般是9针插头(DB-9),下表是D
17、B9引脚说明:表9 DB9引脚说明引脚名称全称说明FGFrameGround连到及其的接地线TXDTransmittedData数据输出线RXDReceivedData数据输入线RTSRequesttoSend要求发送数据CTSCleartoSend回应对方发送的RTS的发送许可,告诉对方可以发送DSRDataSetReady告知本机在待命状态DTRDataTerminalReady告知数据终端处于待命状态CDCarrierDetect载波检出,用以确认是否收到Modem的载波SGSignalGround信号线的接地线(严格的说是信号线的零标准线)图10 DB9引脚实物图要完成基本的通信功能,
18、实际上只需要RXD,TXD,GND即可,但是由于BenQ的M22通讯模块需要握手信号(RTS和CTS),所以在本系统中至少要接5根线。同时又由于RS-232-C标准所定义的高,低电平信号与S3C210X系统的LVTTL电路定义的高,低电平信号完全不同,LVTTL的标准逻辑“1”对应2V3.3V电平,标准逻辑“0”对应0V0.4V电平,而RS-232-C标准采用负逻辑方式,标准逻辑“1”对应-5V-15V电平,标准逻辑“0”对应+5V+15V。显然,两者间要进行通信,必须经过电平的转换,转换芯片采用的MAX232。电路原理图见图11:图11 串口连接电图其中J8串口负责与BenQM22通讯,J7
19、串口负责与PC机通讯。 (3)S3C2410的UART操作S3C2410的UART(通用异步串行口)单元提供三个独立的异步串行I/O端口,每个都可以在中断和DMA两种模式下进行。它们支持最高波特率115.2Kbps。每个UART通道包含2个16位FIFO分别提供给接收和发送。S3C2410X的UART可以进行以下参数的设置:可编程的波特率,红外收/发模式,1或2个停止位,5位,6位,7位或8位数据宽度和奇偶位校验。2、M22通讯电路板的设计BenQM22通讯电路板主要是由M22无线模块的外围接口电路组成(参见附录1)。该电路板主要包括以下几个部分:(1)电源与整流部分(2)串口通讯接口(3)S
20、IM卡电路(4)差分语音电路(5)LED信号灯显示电路(6)蜂鸣器接口(7)按键输入(8)天线接口(1)BenQM22GSM/GPRS无线模块BenQ的这款M22无线模块能通过手机网络为任何需要语音通讯和数据传输要求的产品提供无线通讯解决方案。主要用于以下方面:无线PSTN、车载电话、无线终端、报警或安全系统、远程控制、短信通讯其管脚(44脚)分配如表12所示表12 BenQM22管脚分配表管脚名管脚数目描述UART/RS2326RS232接口UART22软件调试BU1蜂鸣器输出GPIO6通用I/O管脚PowerOn1上电运行LEDDriver1LED驱动SIM4SIM卡接口VBATRF3RF
21、的电源输入VBATBB1BB的电源输入Audio7语音接口KeypadInterrupt1键盘中断接口BGND10地NC1无连接图13 M22模块内部结构框图(2)BenQM22电源部分的设计我们知道无线模块的耗电具有不稳定的特点。在待机状态,在和基站的握手状态,在通话状态,在拨号状态,在信号强弱不同的地方这些因素都会直接的影响无线模块的耗电流,所以无线模块的电源设计非常重要。M22推荐的电源电压范围为DC3.6-4V,所以我在设计电源的时候取3.8V的电压,模块在工作中最大的瞬间电流能够达到1.7A,所以考虑到大电流的需要,我采用LM2576开关稳压芯片。又因为较高的输出电压纹波(一般大于2
22、0mV)是开关稳压电源设计中不可回避的问题。在某些对电源纹波电压有特殊要求的场合(如MCU内部有高精度A/D转换器等),可采用开关稳压电源来提高稳压电源的工作效率或采用线性稳压电源来降低稳压电源的输出纹波电压。因此,采用开关稳压电源与线性稳压电源相结合的形式可为有特殊要求的MCU供电提供一种更好的方法。因此我的最终电源设计方案采用LM7805和LM2576的联合设计。直流电源(12V)输入LM7805,然后输出DC5V,与此同时通过LM2576产生DC4V电压供给M22。由于LM2576具有可靠的工作性能、较高的工作效率和较强的输出电流驱动能力,从而为M22的稳定、可靠工作提供了强有力的保证。
23、图14 M22电路板电源部分电路原理图(3)BenQM22天线的选择实际上天线的选择总是一个难题。因为这和整个系统有关系,甚至和不同地区的GSM网络有一定的关系。BENQ在对天线的选择上推荐了一个如下的参考标准:表15 频率波段范围表16 VSWR(驻波比)参数表另外,对Impedance也要求为50ohms。(4)BenQM22与SIM卡的接口由于BenQM22必须通过中国电信的GSM/GPRS网络才能够工作,所以必须要用到SIM电话卡。安装时只要以右上角的缺口为准即可。图17 SIM卡接口电路原理图(5) BenQM22在语音通讯设计 在语音通讯方面,M22提供了两个语音通道:一个我们叫做
24、差分通道,也就是说无论是MICPHONE信号的输入,还是SPEAKER信号的输出都是采用差分的形式。也就是我们平时所说的“双端输入双端输出”。在管脚的定义上MICIP,MICIN就分别是MICPHONE的正输入端和负输入端。EARP,EARN就分别是SPEAKER的正输出端和负输出端。另一路语音通道是单端方式。具体管脚定义为AUXI和AUXOP。其中AUXI为MICPHONE的正输入端,MICPHONE的负输入端应该对地。AUXOP为SPERKER的正输出端,SPERKER的另一端应该对地。当然从外部线路的转换来说在这一路语音通道的使用中,MICPHONE也可以接成差分的形式,但是需要一个转换
25、电路。SPERKER也可以接成差分输入的形式,也需要一个差分转单端的线路。图18是差分端的MICPHONE输入参考图图18 差分方式的MICPHONE电路原理图 图19是SPEAKER的线路图图19 差分方式的SPEAKER电路原理图需要说明的是,由于单端输入单端输出的语音通道特别容易受到辐射干扰,从而对语音的质量产生了很大的影响,所以在本系统中只采用了差分语音通道。(6)BenQM22通讯板的PCB设计该通讯板设计成为一个双面PCB,在Protel99SE集成开发环境设计而成。图20 M22通讯板PCB图因为M22通讯板是高频电路,所以在绘制PCB时除了要注意一般电路板的设计规范以外,一定要
26、注意抗干扰的问题:(1)各部件之间的引线要尽量短。(2)在重要以及易受干扰的电路板对外接口线路中串接高频扼流环,以抑制高频干扰同时也起到抗操作人员所带静电的作用。(3)在信号输出及输入端使用光耦进行光电隔离,光耦两端使用分离的电源,能有效地抑制尖脉冲及各种噪声的干扰。在光电耦合器的输入端,既使是幅值很高的干扰,也会由于没有足够的能量使发光二极管发光而被抑制。(4)采用单点接地法。(5)尽量使用45度折线而不用90度折线布线以减少高频信号对外的发射与耦合。任何信号都不形成环路。(6)采用屏蔽技术。(7)经验告诉我们,宽度为100mil厚度为1盎司的PCB铜铂能够通过的电流约为3A。既然M22的瞬
27、间电流为1.7A,那么PCB走线的时候,铜铂的宽度就不能太小。考虑到实际使用的时候一般的平均电流为250mA的实际情况,我在电源走线的时候铜铂宽度为80mil。(8)若是电源从一层走到另外一层的时候,必然要用过孔来过渡。这个时候过孔数量是多少是需要注意的,由于机械加工的原因,过孔分布一定要均匀。(9)音频走线部分主要注意两点:1)各条音频线不交叉;2)各条走线之间要包裹地线。这两点措施主要是从防止射频干扰的考虑出发的。另外电源走线或者是时钟走线也不能和音频走线交叉无论这种交叉是在顶层TOPLAYER,还是在底层BOTTOMLAYER(10)比较均匀的铺地。因为这样也是减少干扰和降低一些很难觉察
28、的错误的产生的措施。 (11)在固定时必须接地。(7)BenQM22通讯板的串口前面已经提到了由于RS-232电平的问题,M22不能直接和PC机通讯,但是可以直接和ARM或单片机通讯,不需要任何电平转换芯片。那为什么这里却又需要一个电平转换芯片(SP3238)呢?主要是由于ST2410上的串口已经通过了MAX232,转换成了RS-232-C电平。为了能够与其通讯,必须也要将由M22出来的串口信号转换成RS-232-C电平。在此,我们采用的是另一种电平转换芯片SP3238。因为此芯片可以一次转换9个信号线,与MAX232相比更方便。图21 M22与ARM进行串口通讯原理图图22 SP3238与M
29、22接口的电路原理图七、系统软件设计该GPRS通讯程序是在ARMADS1.2(ARMDeveloperSuite。是ARM公司推出的新一代ARM集成开发工具。)集成开发环境中编译通过后,然后产生可以直接烧写在FLASH中的.bin格式的二进制可执行文件,最后进行下载运行的。1、引导加载程序的设计(1)Bootloader的基本念一个嵌入式Linux系统从软件的角度看,通常可以分为四个层次:(1)引导加载程序:包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。(2)Linux内核:特定于嵌入式板子的定制内核以及内核的启动参数。(3)文件系统:包括根文件系
30、统和建立于Flash内存设备之上文件系统。(4)用户应用程序。特定于用户的应用程序,有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。(2)ST2410的Bootloader功能说明本系统的Bootloader除了具有一般的功能外,还具有以下扩展功能:USB口文件下载、串口文件下载、NOR和NANDFLASH的烧写、运行存储在FLASH中的程序、针对linux设置启动参数、设置Wince或Linux的自启动、运行BenQM22GPRS通讯系统ST2410的Bootloader的流程图,如图4.1所示如前所述,此核
31、心板一共由三大存储设备NorFlash(2M)NandFlash(64M)SDRAM(64M)。前两个Flash设备就犹如PC机的两块硬盘,(由于NandFlash无论在价格与性能上都优于NorFlash,因此现在一般都采用NandFlash。)而SDRAM就犹如PC机的内存设备。下面来看一下ST2410的Bootloader中设置的NorFlash与NandFlash的内部结图23 Bootloader流程图构图。图24 NorFlash空间分配图 图25 NandFlash空间分配图2、串口通讯程序的设计如前所述,本系统有三大模块:(1)PC机:主要负责人机交互。在PC机上运行DNW(一种
32、串口调试软件),从而可以显示和接受来自ARM的数据。(2)ARM微处理器:核心处理器。将已经编写成功的GPRS通讯程序烧写到其NandFlash中。 (3)M22通讯模块:GPRS通讯的具体实现。接受来自ARM的AT指令,从而进行GPRS通讯,并将有用的信息反馈给ARM。图26 三大模块之间串口通讯接线原理图由此可见,串口通讯是本系统主要手段。下面我们就来详细的谈谈关于串口这部分程序的设计。S3C2410ARM微处理器的串口主要是通过各种串口控制寄存器来操作串口的:z线路控制寄存器(ULCONn):用来规定传输帧的格式;z控制寄存器(UCONn):用来设定串口的一些工作模式;z状态寄存器(UT
33、RSTATn):用来查询串口的状态;z波特率(UBRDIV):用来设置波特率;z发送寄存器(UTXHn):往这里写数据便可以直接往TXD发送数据;z接收寄存器(URXHn):从这里读数据便可以直接接受来自RXD的数据。(具体的每一位的功能分配,请参见SAMSUNGS3C2410数据手册)下面针对本系统,结合具体的程序,来具体的讨论一下串口的操作步骤;(1)管脚初始化:由于S3C2410微处理器总共只有272个管脚。而要实现那么多的功能,显然如果一个管脚就只有一个功能的话肯定是不够用的。因此,有一些管脚具有多个功能。在使用之前必须要对管脚的功能进行选择。rGPHCON=0x2afaa4;/选择串
34、口功能的管脚rGPHUP=0x7ff;/关闭所有管脚的上拉功能(2)串口寄存器初始化(以串口0为例):rUFCON0=0x0;/关闭串口0的FIFO功能rUMCON0=0x0;/关闭流控功能rULCON0=0x3;/设置8位数据位、1位停止位、无奇偶校验串口模式rUCON0=0x245;/设置串口0的触发模式rUBRDIV0=(int)(pclk/16./baud+0.5)-1);/设置波特率,pclk为CPU主频,baud为波特率(3)收发数据while(!(rUTRSTAT0&0x1);/等待接收缓冲空Data=rURXH0;/接受数据 while(!(rUTRSTAT0&0x2);/等待
35、发送缓冲区空rUTXH0=data;/发送数据在此就几个问题作一下说明:(1)溢出的问题:本系统用的只是串口通讯的一般模式。因此,发送寄存器和接收寄存器都只有1个字节那么大的空间。那么尤其是在截接受数据时很容易出现接受溢出的现象(即接收寄存器中的数据还来不及被取走,下一个数据就到来了)。我在编程时注意到了这个问题,我采用的办法是:只要接收到了一个字节的数据就马上把它赋给一个字符型变量,从而为接收下一个数据做准备。(2)握手信号(RTS/CTS):如前所述,当ARM通过串口0和BenQM22通讯时,必须至少要连接5根信号线(即TXD,RXD,RTS,CTS,GND)。但是由于在S3C2410中,
36、在普通模式下并不能使用RTS和CTS。然而,我们并没有必要将GPH0和GPH1管脚定义成CTS和RTS。只需要将GPH0定义成INPUT,将RTS定义成OUTPUT就可以了。(由于PC机和ARM通讯采用的是串口1,而这只需要3个数据信号线就够了,不需要握手信号。)3、BenQM22模块内部的软件特性BenQM22的内部集成的软件包括以下3个部分:Layer1驱动、协议栈/AT命令、基本接口由于在无线PSTN和BenQM22模块中都有微处理器,在这两者之间的接口通常是AT指令。当然由于协议栈(TCP/IP)的存在,我们也可以通过发送AT指令达到联通GSM/GPRS网的目的。图27 BenQM22
37、模块内部软件结构图图28 BenQM22接收指令时的流程图4、AT指令我们可以通过AT命令进行呼叫短信电话本数据业务补充业务传真等方面的控制。图29 AT指令示意图1、AT指令的语法格式(1)基本语法格式Example:ATV1OK(response)(2)扩展命令格式+=Example:AT+CMUT=0OK(response)(3)测试命令格式+=?Example:ATS3=?S3:(0-127)(response)OK(4)读取命令格式+?Example:AT+CACM?+CACM:”0”(response)OK2、AT指令的分类(1)一般命令(2)呼叫控制命令(3)网络业务命令(4)安
38、全性命令(5)电话本命令(6)短消息命令(7)补充业务命令(8)数据命令(9)传真命令(10)串口控制命令5、系统软件运行流程图软件主菜单流程图外电呼入时流程图发送短信流程图电话本查询流程图主动呼叫流程图八、GPRS通讯系统运行结果1、软件运行截图下面是软件主要功能运行时的屏幕截图(1)Bootloader主菜单Bootloader主菜单(2)GPRS主功能菜单GPRS主功能菜单(3)主动呼叫主动呼叫(4)主动呼叫时,主动挂机挂机(5)查阅短消息 短信信息(6)编辑与发送短消息编辑短信(7)电话本功能菜单电话本菜单(8)查阅已经存储的电话号码查阅存储的电话(9)添加电话条目时出错添加电话条目时
39、出错(10)添加电话条目成功添加电话条目成功(11)删除电话条目删除电话条目(12)查询已拨电话查询已拨电话 (13)查询未接听电话 查询未接听电话(14)查询已接听电话查询已接听电话(15)来电显示来电显示九、设计总结计算机发展的目标是专用电脑,实现“普遍化计算”,因此可以称嵌入式系统是构成未来世界的“数字基因”。嵌入式系统与无线通讯网络的有机结合,构成了最具吸引力的嵌入式通讯设备:设计应用到车载GPS系统,手持PDA,智能手机等各方面。本文针对BenQM22无线模块在无线通讯方面的应用,对基于ARM9与嵌入式Linux的GPRS无线通讯系统的软件和硬件方面的设计进行了研究,并对可以实现的语
40、音通讯、短信控制、电话本记录、来电查询、来电显示等功能进行了验证。(1)硬件设备和开发平台的选择是嵌入式开发中的关键环节。硬件发面,本文对三星公司的各种ARM系列进行了分析分析比较,选取了性价比更高,应用更广泛,对Linux操作系统支持性更好的ARM构架的为处理系列的芯片S3C2410X。同样,在GSM/GPRS通讯模块的选择上,选取的是明基公司的M22无线通讯模块。开发平台方面,Linux的可靠性、开源性、低成本以及丰富的开发工具和开发资源,使得选择嵌入式Linux系统成为必然。(2)引导装载程序(Bootloader)的开发是嵌入式开发中非常重要的环节。本文充分利用嵌入式Linux系统的开
41、源特性,先对业界标准的引导装载程序vivi进行了分析,然后再针对ST2410开发板的外围电路设计了相应的Bootloader,并在此基础上增加了M22无线通讯功能。在通过ADS1.2调试通过后,便直接下载到ARM中运行。因此,简化了开发流程,缩短了开发周期。(3)M22模块通讯电路板的设计是本系统的关键部分。本文首先就M22外围电路中的几个具体问题做了详细的说明与解释:如电源部分的设计、差分语音通讯的电路、M22与SIM卡的接口设计、天线的选择等等。又因为此PCB是高频电路板,与其他的PCB设计有很多的不同之处。本文也同时详细的讨论了高频PCB设计的方法与注意事项,从而为后续工作搭建了一个很好
42、的平台。(4)本系统内3个模块之间都是采用串口进行通讯的。本文先分别对PC机、ARM、M22模块的串口接口电路进行了深入比较与研究,然后针对AT指令,对具体的串口通讯的接口编程的步骤和方法进行了详细的讨论。ARM与嵌入式Linux搭配的开发是目前嵌入式开发领域最热门的话题,也是嵌入式开发未来的重要方向。在对基于ARM微处理器和嵌入式Linux的GPRS通讯系统进行研究之后,本文认为该系统能够很好的满足嵌入式设备在无线通讯和远程控制领域的要求。由于Linux系统中软件驱动部分的可扩展性,我们可以想象该系统还有很大改进与上升空间。如为了满足可视化的需要或加强人机交互,可以将Linux系统中的GUI移植到本系统中。由此可见,这是一个值得深入研究的课题。十、心得体会本学期为期两周的嵌入式课程设计在不知不觉中就结束了,虽说