基于arm的gprs系统的设计内容摘要:

嵌入式应用软件开发环境,包括一整套完备的面向嵌入式系统的开发和调试工具 :源码编辑器、工程管理器、工程编译器 (编译器、汇编器和连接器 )、集成调试环境等。 其界面同 Microsoft Visual Studio 相似,用户可以在中创建工程、打开工程,建立、打开和编辑文件,编译、连接、设置、运行、调试嵌入式应用程序。 ADT IDE 集成开发环境使用优秀自由软件 GNU 的 GCC 交叉编译工具,并经过优化和严格测试,支持 C 语言、汇编语言等。 陕西理工学院毕业设计 第 14 页 共 43 页 (2)、 工程坏境的配置 ( i) General 页设置 General 页包括调试设备的选择以及回复缺省配置参数功能, ATD IDE 工程设置对话框 如图 所示。 在 Debugger device 下拉列表中选择调试设备。 这里选择 ARM9Simple。 图 ATD IDE 工程设置对话框 ( ii) Debug 页设置 Download case 选项位用户提供了两种下载调试文件的途径: Build Case(编译设置方案)和Customize Case(客户配置方案),在编译设置方案中,集成调试环境将选择当前工程文件的输出文件( .elf 文件)为程序下载文件和调试信息文件,此时, Customized case 以及 Endian 中的选项均不可设置。 如果选择客户配置方案,则以上选项均可有用户执行设置,而与当前工程无关。 None 选项表示连接目标板厚系统无任何行为。 ADT IDE 工程设置 Debug 页对话框如图 所示。 图 ADT IDE 工程设置 Debug 页对话框 ( iii) Compile 页设置 编译器的参数可通过工程配置对话框的 Compile 页进行修改, ADT IDE 工程设置 Compile 页对话框如图 所示。 陕西理工学院毕业设计 第 15 页 共 43 页 图 ADT IDE 工程设置 Compile 页对话框 (iv) Assemble 页设置 GNU Tools for ARM 编译器的 Assemble 页如图 所示。 该页中的命令行参数用于汇编器,用户的所有 设置显示在 Assemble options 的编辑框中。 工程在出事创建时,系统提供缺省设置参数。 在 Assemble 页 中, Category 下拉列表框中又包含积累汇编器选项,在该下拉列表框中可切换选择各类选项。 同样,在一般情况下只需在 General 选项下设置头文件的包含路径。 本次设计没有汇编代码,所以无需修改默认的配置。 图 ADT IDE 工程设置 Assemble 页对话框 (v) Link 页设置 链接器的参数可通过工程对话框的 Link 页进行修改。 该页中的命令参数用于 GNU 链接器,用户的所有设置显示在 Link options 编辑框中。 ADT IDE 工程设置 Link 页对话框 如图 所示。 陕西理工学院毕业设计 第 16 页 共 43 页 图 ADT IDE 工程设置 Link 页对话框 ( vi) Directory 页设置 在 Directory 页 可以添加补充的源文件目录。 在调试程序时,如果在本工程中没有找到对应源代码,则会继续查找在此处设置的路径, ADT IDE 工程设置 Link 页 Library Search Path 选项 对话框 如图 所示, ADT IDE 工程设置 Directory 页 对话框 如图 所示。 图 ADT IDE 工程设置 Link 页 Library Search Path 选项对话框 图 ADT IDE 工程设置 Directory 页对话框 (3)、 工程的编译 编译、 汇编和链接操作可通过以下 3中方式完成: 陕西理工学院毕业设计 第 17 页 共 43 页 ( 1)通过选择主菜单的 Build子菜单完成; ( 2)通过编译 Build工具栏完成; ( 3)通过在工作去窗口的工程节点和文件节点的右键菜单完成。 (4)、 工程的调试 ( 1)连接调试器 调试器的连接包括调试器的硬件和软件连接。 调试器连接成功后自动进入调试状态。 通过选择菜单单项 Debug→ Remote connect 实现。 ( 2)下 载程序 正确连接目标后,就可以下载可执行目标文件爱你到目标系统存储器中。 通过选择菜单项 Debug→Download实现。 ( 3)调试和执行程序 运行程序必须在调试状态的停止子状态进行,通过选择菜单单项 Debug→ Go或者单击 Debug工具栏中的 Go按钮来实现。 图。 修改无误后将程序通过烧录器烧录在 ARM92410开发板上。 图 程序调试界面图 本设计实现的是基于嵌入式的 GPRS 无线数据系统,主要目标是利用 GPRS 网络与远程控制中心无线通讯。 所以通 讯协议的实现也是系统软件实现的主要任务。 TCP/IP 协议定义了网络层和传输层的公众规程特性,用以提供网络和运行不同操作系统的各类计算机之间相互通信。 在该部分的设计中,需要利用 TCP/IP 协议来完成 GPRS 业务数据的装帧和拆帧,但由于资源有限,需对 TCP/IP 协议进行合理地简化,采用分层的结构实现。 简化层次的目的是为了便于系统的软件调试,提高编程效率。 陕西理工学院毕业设计 第 18 页 共 43 页 在设计中,利用嵌入式仿真操作系统 ADT 1000 的开发环境,使编程方式实现了软件功能。 GPRS终端实现的协议栈是 TCP/ IP, 简化后的网络协议主要有 UDP 协议、 IP 协议、 IMP 协议、 PPP 协议。 DTU 发送数据时,按应用层 (用户数据 )一传输层 (UDP)一网络层 (IP)一数据链路层 (PPP)~物理层 (串口 )顺序进行数据封装。 而在接收数据时,以相反的 顺序进行解封装。 上层函数的实现需要应用到底层函数,而底层函数的任务是为上层函数提供服务,最终完成应用层任务 — 传输数据。 各层的功能是 : 应用层负责处理特定的应用程序细节。 传输层为主机上的应用程序提供端到端的通信,采用 UDP 协议。 网络层为主要每一次链接具体分配一个 IP 地址。 数据链路层采用 EP over PPP实现数据终端 的接入,由微处理器控制 TC35i 模块 ,采用 PPP 协议实现。 ( 1) 、 物理层 该终端与 GPRS 网络之间的物理层通道就是 GPRS 连接。 具体的 GPRS 协议都已被做在 GPRS通讯模块中,通过数据端对 GPRS 模块正确的 AT 指令设置后,就可以进行 AT 拨号指令进行拨号连接。 当收到 GPRS 模块的拨号反馈应答后,一条物理通道即 GPRS 信道就在本终端中 GPRS 模块和GPRS 网络之间建立了起来。 驱动程序层是数据链路层和物理层的接口,用于将协议栈产生的数据发送给 TC35i,或接收 TC3 5i 传递的数据。 ( 2) 、 数据链路 层 TCP/IP 协议支持多种不同的链路层协议,如以太网、令牌环网、 FDDI(光纤分布式数据接口 )及RS232 串行链路等。 本系统中 TC35i 与 CPU 之间采用三线制 RS232 方式连接,链路层使用 PPP 协议进行通讯。 在物理层之上, PPP( Point to Point Protocol)协议是为在同等单元之间传输数据包而设计的简单链路层协议,其提供了全双工操作,并按照顺序传递数据包。 PPP 协议设计的目的主要是通过拨号或专线方式建立点对点连接发送数据。 作为标准协议的完整集合, PPP 协议已经为工业界广泛接 收。 PPP 协议的数据帧结构如表 所示。 串口中断接收程序首先以包起始和结束符来判断是否有完整的 PPP 包,并对 PPP 包的内容进行校验,以确定数据包的完整性和正确性。 表 PPP 协议的数据帧结构 标志 地址 控制 协议 0021 IP数据报 CRC 标志 7E 本系统利用 PPP 协议封装正数据报。 PPP 协议的封装需要注意字符转义问题。 利用 GPRS 业务进行通讯前,设备首先必须与 GPRS 网络进行协商以建立 PPP 链路,即协商点到点的各种链路参数配置。 一个典型的链路创建过程分成三个阶段 :第一阶段为链路创建阶段,使 用了链路控制协议LCP(Link Control Protocol ) ,用于建立、构造、测试链路连接。 第二阶段为认证阶段,使用口令验证协议挑战握手认证协议第三阶段为网络协商阶段,使用了 IP 控制协议,用于设置网络协议环境,并分配 IP 地址。 陕西理工学院毕业设计 第 19 页 共 43 页 协商机制用有限状态机模型来实现。 一旦协商完成, PPP 链路已经创建 IPl 地址已经分配,就可以按照协商的标准进行 IP 报文的传输了。 该系统软件设计部分利用函数来实现 PPP 链路建立过程中的三阶段。 PPPRxTaks 任务接收到 PPP 数据帧后,首先根据协议字段值来判断数据帧内容, 如果为正数据 报,则调用护处理函数 PIRx。 如果 PPP 数据帧封装的是 PPP 协商协议,则调用相应的 LCPHandler、PAPHandler 和护 CPHandler 函数进行处理。 PPPTX 函数用于把从网络层接收到的护数据报封装成PPP 数据帧,再调用函数通过 TC35i 发送。 其次, PPPRxTask 任务用于处理接收到的 PPP 数据帧,根据 PPP 数据帧协议域字段值选择不同的协议处理。 PPPTxO 本函数用于将 IP 数据报封装成 PPP 数据帧并调用函数发送。 LCPHandler ()函数通过与 GPRS 网络协商链路选项来创建 链路。 PAPHandler ()函数用于进行用户认证。 IPHandler()函数用于配置 IP 网络,并获得动态 IP 地址。 ( 3) 、 网络层 IP 协议作为网络层协议,主要是将数据流切割成适当的包大小,然后将这些包通过选择路由,利用不同的路由来传送包到目的地 IP。 IP 协议位于 PPP 协议之上,是目前运用最广泛的网络层协议,是 TCP/IP 协议族中最为核心的协议,包括 IP 协议、 CIMP 协议等,所有上层协议包括 TCP、 UDP等数据都以 IP 数据报传输。 IP 提供最好的传输服务,但它不能保证正数据报能成功到达目的地,是不可靠的连 接。 ICMP 协议用于传递差错报文和其他需要注意的信息,是封装在正协议中传输。 通常,可以将 ICMP 报文分成查询报文和差错报文两种类型。 借助于 ICMP 协议,我们可以判断 Inter网络上某一个主机是否可以访问,这也是 ICMP 协议使用最多的方面。 因为本设计所实现的 GPRS系统为数据终端设备,无需路由转发功能,且每次通讯量较短,因此本设计对协议的实现进行了简化,去除了 IP 报的路由和分片重组功能,减少了程序对系统资源的占用。 IP 数据报的格式如表 所示。 表 IP 数据报格式 4 位版本 4 位首部长度 8 位 服务类型( TOS) 16 位总长度 (字节数) 16 位标识 3 位标志 13 位片偏移 8 位生存时间 ( TTL) 8 位协议 16 位首部检验和 32 位源 IP 地址 32 位源 IP 地址 选项 数据 在网络层 ,主要实现了 IP、 ICMP 协议。 网络层创建了两个函数 :IPRX 函数用于接收链路层传递的IP 数据报,根据少数据报协议字段值来决定该数据报是传递给 CIMP 处理模块还是 UDP 处理模块。 IPTX 函数用于接收 ICMP 数据报或 UDP 数据报,封装成 IP 数据报传递给链路层。 ( 4) 、 传输层 陕西理工学院毕业设计 第 20 页 共 43 页 IP 协议没有提供 一个机制去检测数据报是否成功到达目的地,也不关心数据报是否丢失、重复或者损坏,它依靠传输层的协议来保证一个可靠的传输。 传输层主要为两台主机上的应用程序提供端到端的通信,有两个不同的传输协议 :TCP(传输控制协议 )和 UDP(用户数据报协议 )。 TCP 提供了一种可靠的连接,这意味着它可以发现并恢复错误, TCP 还提供了一种流控机制,可以防止高速设备以过快的速度向慢速设备发送数据。 采用了 TCP 作为传输层协议,是为了弥补 IP 连接不可靠的不足,为上层数据传输提供面向连接的、可靠的服务。 当然,所有这些功能都是以系统 的延时、带宽和吞吐量为代价的。 而 UDP 是一种不可靠的、无连接的传输层协议,不可靠意味着不能保证数据一定能够无错的到达对方,首部只有 8 个字节,实现较容易。 由于 UDP 具有很少的头字节,能够有效利用带宽。 与 TCP 协议相比, UDP 能够减少数据流量,这在 GPRS 业务中即意味着运营费用的节省。 因此,本系统的协议栈中传输层采用了 UDP协议,为了保证 UDP 传输的正确,采用伪首部校验和计算方法计算 UDP 的校验和。 UDP 数据报的格式如表 所示。 表 UDP 数据报格式表 16 位源端口号 16 位目的端口号 16 位 UDP 长度 16 位 UDP 校验和 数据(如果有) UDP 协议的实现建立在砰层协议之上,用于在应用层和。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。