




已阅读5页,还剩66页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于嵌入式系统的gprs数据终端的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于嵌入式系统的删数据终端的设计与实现 工8 8 2 9 0 0 摘要 随着通信技术的高速发展 6 m r s 无线通信网络己与互联网连接在 一起 成为一种可持续利用和开发的资源 嵌入式系统也由于功耗低 性能强等特点 被广泛应用于通信 工业控制等领域 本文利用嵌入 式系统和g p r s 网络 设计和实现了g p r s 无线数据终端 该终端以 s 3 c 4 4 b o x 微处理器为中心 通过驱动g p r s 通讯模块 由g p r s 无线网 络连接到i t e m e t 从而实现数据传输 本文首先介绍了g p r s 技术原理 阐述了g p r s 无线数据终端的功 能及应用 然后对删微处理器及嵌入式操作系统u c o s 进行了详 尽的描述和研究 接着是g p r s 终端的软硬件设计和实现 最后对系统 的整体功能进行了测试 该终端的硬件设计 主要包括微处理器芯片 的选型 m c 3 5 通讯模块的接口设计 存储器单元及串曰电路设计等 软件上主要包括心 o s i i 在s 3 c 4 4 b o x 上的移植 t c p 佃通讯协议栈的 实现 包括p p p p u d p 等协议 系统任务的划分及各个功能模块 的具体实现 软件采用的方案可以描述为 嵌入式操作系统 t c p 邛 协议栈 应用程序 应用程序在u c o s i i 的基础上开发 将应用程序分 解成多任务 简化了应用系统软件设计 提高了系统的可靠性 本课题实现的g p r s 无线数据终端 内嵌t c p 口协议 可以通过 g p r s 网络连接到互联网 数据传输实时性强 为用户提供透明的数据 传输通道 在电力自动化 环保 交通监控等领域获得了广泛的应用 特别适用于移动环境 难于布线的场所和边远地区 关键字 g p r s 无线数据终端 删 儿c 0 s i i m c 3 5 t c p p 基于嵌入式系统的g p r s 数据终端的设计与实现 a b s t r a c t w i t ht h er a p i d d e v e l o p m e mo fc o m m u n i c a t i o nt e c h n o l o g y g p r s w i r e l e 8 sn e t v o r kw i mt h ei n t e m e tl 姐sb e e nl i n k e da n db e c o m ear e s o u r c e o fs u s t a i i l a b l eu s ea n dd e v e l o p m e n t t h ee m b e d d e ds y s t e mb e c a u s eo f1 0 w c o n s u m p t i o na n ds t r o n gp e 响衄a n c ec k 哪m e r i s t i c st h a ti sw i d d yu s e di n t d e c o m n m n i c a t i o n s i n d u 嘶a 1c o n t r o l 卸do t h e ra r 明s i t lt h i s p a p e rt h e g p r sw i r e l e s sd a t a t e r m i n a lw a sd e s i g n e d 姐dr e z e dt ou s em e e m b e d d e ds y s t e ma i l dt h eg p r sn e t w o r kt h i st e 衄i n a lt a k e st h e s 3 c 4 4 b o xi n i c r o p r o c e s s o ra sac e m e r t h r o u 曲d r i v i n gg p r sm o d u l eo f c o m 咖n i c a t i o n c o 如e c t i n gt ot h ei 址锄e tb yg p r sw i r e l e s sn e t w o r 瓤 吼r i n gd a t at r a n s m i s s i o n t h e 眦i c l ef l 刚n t r o d u c e dm e g p r st e c h n o l o g yp r m i p l e s e l a b o r a t e d t h e 向n c t i o n sa n d 即p j i c a t i o n so fg p r sw i r e l e s sd a t at e 肌i n a l t h e na d e t a i l e d d e s c r i p t i o n a n dr e s e a r c hw a sc a r r i e do nf o rt h ea r m m i c r o p r o c 船s o ra n dt h ee m b e d d e do p e r a 血塔s y s t e m c o s 一 f o o w e db y h a r d w a r e 卸ds o f t w a r ed e s i g na n dr e a l i z a t i o no fg p r st e r n l i l l a l f l n a l l yt h e o v e r a l l 如n c t i o no ft h es y s t e mw a st e s t e d t h i st e m i n a l sh a r d w a r ed e s i g n m a i l l l yi n c i u d e st h ec h o i c eo fm i c r o p r o c e s s o fc h i p t h ei m e a c ed e s i g no f m c 3 5m o d u i eo fc o m m u n i c 撕o n n l ec i r c u i td e s i g no fm e m o r ym o d u l e s a n ds e r i a lp o r ta n ds oo n t h es o f t w a f em a i n l yi n c l u d e st h et r a 璐p l a n to f c o s i io ns 3 c 4 4 b o x t h ef e a l i z a t i o no ft c 甲 i ps t a c kw h i c hi n c l u d i n g p p p 皿u d pa n ds oo n t h ed i v i s i o no fs y s t e mt a s ka n dt h es p e c 前c r e a l i 盈毗o o fe a c h 如n c t i o nm o 血l l e t h es o f h v a r ep l a na d o p t e dc a nb e d e s c r m e d 船a ne m b e d d e do p e 倒 i l l gs y s t e m t c p ms t a c k 印p l i c a c i o n p r o 掣蛐 t h e 印p i i c a t i o np r o g r a mw a sd e v d o p e do nt l eb a s i so f c o s i i a n dd i v i d e di n t om u l t i t a s k w h i c hs i m p l m e dm es o 脚a r ed e s i g no f a p p l i c a t i o ns y s t e m a i l di i n p r o v e dt h er e l i a b i t yo f s y s t e m t h eg p r sw i r e l e s sd a t at e 瑚i n a lw a sr e a l i z e di nt h i st o p i c e m b e d d e d 基千矗罕 式丽蠹 女藩章竺巢誊掰翥罂辫碉丽i 萎蠢三l 翥f 塞l 霎坚羹封 嚣嚣 薛1 t 竹雌彗 誊毛霞誊羲重重蓬律i 藿霄 詈 葺葺 耋茎薹茎拈 1 y 簧强娶哇 州1 1 钉i 霎 二m 簿g t f 禹整i 爱 塾滗l 1 雪姑蕈 辨j 驿翳1 戛 磐 p t 重蠢g 善鹾藩尊瑶 1 i l t 嚣巴i 喜睡 譬 洋l l l 雾雾 警鞋g 轼兰兰t u u 譬i s 蠹掣 n l 萋亘羞割篓蕴要l a 砭e qr a 辫蚕壁甘s 兮i 望重ji 季舞 臼氕葛掣 e 禹喜 嚣嚣鞋n 替 响应后 向串曰写入编码 后的要发送数据 以 z 结束 其他相关的a t 命令请参阅文献f 7 3 可靠性的保证 由于g p r s 网络目前存在掉包率偏高 经常掉线 链路不稳定的 特点 终端在设计时采取了以下几点措施保证数据传输的稳定性 1 当通讯过程中 t c p 重传次数大于3 次时 认为g p r s 网络出 错 如果具有短信备份功能 切换到短信发送的工作模式 切换时 首先向g p r s 模块发送 命令 从在线传输模式切换到在线命 令模式以响应短信发送的a t 命令 在短信工作模式下 每隔一段时 间 开始p p p 拨号 若拨号成功 则将工作模式切换回使用g p r s 网络传输 若不具备短消息备份功能 则将终端重新启动 9 j 2 为了保证永远在线 避免在应用环境中由于链路空闲而被服务 器强制断连 设备提供心跳功能 主动发送心跳数据 维持链路 具 体做法是 设置一个心跳中心 可与数据中心使用相同的服务器 终 端每隔一段时间向心跳中心发送称为心跳的特定u d p 报文 该报文 不包含有意义的数据 仅表示模块在线 当中心一段时间后收不到心 跳信息时 可知模块已经脱离g p r s 网络 此时工作人员可以通过拨 打终端电话的形式 将传输终端软复位 本工作过程为远程唤醒 远 程唤醒的设置为用户提供了更为完善的使用功能 2 2 4 基于g p r s 网络的数据传输系统 4 9 1 0 基于g p r s 网络数据传输系统如图2 1 所示 该系统主要有g p r s 无线数据终端 g p r s 网络 i n t e m e t 和远程控制中心四个部分构成 1 2 基于嵌入式系统的g p r s 数据终端的设计与实现 一i n t e i 的s t r o n g 删 一i m e l 的x s c a l e 其中删7 m i m 9 越t m 9 e 和越l m l o 为4 个通用处理器系列 每一个系列提供一套相对独特的性能来满足不同应用领域的需求 3 2 2 删7 微处理器系列 a l l m 7 系列微处理器为低功耗的3 2 位r j s c 处理器 最适合用于 对价位和功耗要求比较严格的消费类应用 a r m 7 微处理器系列具有 如下特点 一具有嵌入式i c e r t 逻辑 调试开发方便 一极低的功耗 适合对功耗要求严格的应用 如便携式产品 一能够提供o 9 m 邛s 肛删z 的三级流水线结构 一代码密度高并兼容1 6 位的t h u m b 指令集 一对操作系统的支持广泛 包括w i n d o w sc e l i n u x u c o s 等 一指令系统与a r m 9 系列 a r m 9 e 系列和删1 0 e 系列兼容 便于用户的产品升级换代 一主频最高可达1 3 0 m 口s 高速的运算处理能力能胜任绝大多数 的复杂应用 a r m 7 系列微处理器包括如下几种类型的核 灿t m 7 t d m i 删7 t d m s 删7 2 0 t 球m 7 e j 其中 m 泓7 t d 眦是目前使 用最广泛的3 2 位嵌入式i u s c 处理器 属低端a r m 处理器核 t d m 的基本含义为 t 支持1 6 位压缩指令集t h u m b d 支持片上d 曲u g m 内嵌硬件乘法器 m u l 卸l i c r i 嵌入式i c e 支持片上断点和调试点 删7 微处理器的主要应用领域为 工业控制 i n t e i n e t 设备 网络和调制解调器设备 移动电话等多种多媒体和嵌入式应用 本课题选用的是s a m s u n g 公司的基于删7 t d m i 核的 1 6 基于嵌入式系统的g p r s 数据终端的设计与实现 s 3 c 4 4 b o x 微处理器 即属于删7 微处理器系列 3 2 1 3 删微处理器结构 传统的c i s c c o m p l e xi n s 咖c t i o ns e tc o m p u t e r 复杂指令集计算 机 结构有其固有的缺点 即随着计算机技术的发展而不断引入新的 复杂的指令集 为支持这些新增的指令 计算机的体系结构会越来越 复杂 然而 在c i s c 指令集的各种指令中 其使用频率却相差悬殊 大约有2 0 的指令会被反复使用 占整个程序代码的8 0 而余下的 8 0 的指令却不经常使用 在程序设计中只占2 0 显然 这种结构 是不合理的 基于以上的不合理性 1 9 7 9 年美国加州大学伯克利分校提出了 i u s c 限e d u c e di n s t m c t i o ns e tc o m p u t e r 精简指令集计算机 的概念 r j s c 并非只是简单地去减少指令 而是把着眼点放在了如何使计算 机的结构更加简单合理地提高运算速度上 i u s c 结构优先选取使用 频率使用最高的简单指令 避免复杂指令 将指令长度固定 指令格 式和寻址方式种类减少 以控制逻辑为主 采用眦s c 架构的删微处理器一般具有如下特点 1 体积小 低功耗 低成本 高性能 2 支持t h u m b 1 6 位 删 3 2 位 双指令集 能很好的兼容8 位 1 6 位器件 3 大量使用寄存器 指令执行速度更快 4 大多数数据操作都在寄存器中完成 5 寻址方式灵活简单 执行速率更高 6 指令长度固定 当然 和c i s c 架构相比较 尽管r i s c 架构有上述的优点 但 决不能认为l u s c 架构就可以取代c i s c 架构 事实上 i u s c 和c i s c 各有优势 而且界限并不那么明显 现代的c p u 往往采用c i s c 的外 围 内部加入了i u s c 的特性 如超长指令集c p u 就是融合了戳s c 和c i s c 的优势 成为未来的c p u 方展方向之一 1 7 基于肤八式系统的g p r s 数据终端的设计与实现 的优先级 优先级数越高 优先级越低 时间管理 u c o s i i 根据硬件提供的定时中断 实现延时和超时 控制等功能以及对系统时间的管理 任务同步与通信 c o s 1 1 支持用户创立信号量和事件标志对任 务与任务之间以及任务与中断服务之间的同步 同时 u c 0 s i i 通过消 息队列 邮箱实现任务之间的通信 内存管理 l l c o s i i 把连续的大块内存按分区来管理 然后通过 管理算法 减少内存碎片 移植部分 与c p u 的接口部分是指u c 0 s i i 针对所使用的c p u 的 移植部分 由于l c 0 s 一 是一个通用性的操作系统 所以对于关键问题 上的实现 还是需要根据具体c p u 的具体内容和要求作相应的移植 这 部分通常用汇编语言编写 主要包括中断级任务切换的底层实现 任 务级任务切换的底层实现 时钟节拍的产生和处理 中断的相关处理 部分等内容 l 竺竺苎塑塑j 黼 囤圆圈 图3 l c 0 s i i 的软硬件体系结柯 图3 1 显示了u c o s i i 的硬件和软件体系结构 应用程序处于整个 基于嵌入式系统的g p r s 数据终端的设计与实现 通过调用o s t a s k c r e 8 t e o 或0 s t a s k c r e a t e e 埘0 创建至少一个任务 0 s s t a n o p 开始多任务调度 o s s t a n 0 并不返回 3 3 4j 坨 o s i i 的任务及任务管理 通过在o sc f g h 文件中定义宏o sl o w e s tp r j o 可以决定系统 的任务的个数 c o s 1 1 支持多任务 其主要工作之一就是对任务进行 管理 调度 c o s i i 的任务管理包括在用户的应用程序中建立任务 删除任务 改变任务的优先级 挂起和恢复任务 下面介绍任务的基 本概念以及创建和删除任务的方法 u c o s i i 任务与c 函数语言类似 具有一个v o l d 返回类型和一个参 数 只是其从不返回 实际上其就相当于一个无限的循环 任务结构 的示意代码如程序清单如下所示 v o i dt h s k v o i d p d a t a f o r 慎s 户 弋码 内核服务 甩户代码 u c o s i i 中的任务可以看成由四个部分组成 应用程序本身 任务 堆栈 任务控制块 o st c b 以及任务优先级 应用程序即任务代码 被烧写到f l a s h 中 任务堆栈用于存储当前任务的c p u 寄存器内容 每 个任务都有自己的堆栈空间 堆栈必须被声明为o s s i k 类型 当任务 由运行态变成其他状态时 c p u 寄存器内容被压入相应的任务堆栈 当 任务由就绪态变成运行态时 则将该任务堆栈中的内容重新加载到c p u 寄存器中 任务控制块o st c b 是一个数据结构 当任务的c p u 控制权 基于嵌入式系统的g p r s 数据终端的设计与实现 被剥夺时 c o s i i 用它来保存该任务的状态 当任务重新获得c p u 使 用权时 任务控制块能确保任务从被中断的那一点丝毫不差地继续执 行下去 o st c b 全部驻留在 a m 中 在任务建立的时候 o st c b 被 初始化 在u c o s 下开发应用程序 也就是要将应用划分成多个任务 通 过任务来实现所需的功能 因此 程序实现的第一步就是建立任务 任务可以在多任务环境启动之前建立 也可以多任务环境启动后 由 运行的任务建立 需要注意的时 在启动多任务环境前必须至少创建 了一个任务 u c o s 中提供了2 个系统函数来建立任务 0 s t a s k c 触l t e 和o s t a s k c r e 征x t 在建立任务时 需要指定任务的开始地址 任务堆 栈栈项指针 以及任务的优先级 利用o s 协k c r e a t e 创建任务的方法如下所示 o s t a s k c r e a t t a s i 小i 锄e v o i d 年 p d a t a o s s t k t a 8 k s t a c k s t a c k s i z e i t a s l p f ox 其中t a s k n a m e 为任务的名称 p d a t a 是向任务传递的参数 t a s k s t a c k 为分配给任务的堆栈 而t a s kp m 是任务的优先级 3 3 5u c o s i i 的任务调度 u c o s 为占先式内核 这就意味着几乎每个时刻总是运行处于就 绪态的最高优先级任务 任务调度的主要工作就是查找进入就绪态的 最高优先级任务 由于任务的调度是基于优先级的 当低优先级任务 在执行时 如果有高优先级任务进入就绪态 则当前任务将被挂起 转而执行处于就绪态的高优先级任务 当任务所等待的信号量可用或者等待超时时会发生任务级调度 任务向其它任务发送消息时也可能发生任务调度 任务级的调度是由 函数0 s s c h e d 调用汇编函数o s c t x 跚来实现的 在退出中断服务子程序 时 如果有高优先级任务处于就绪态 则会发生中断级任务调度 内 核执行该高优先级任务 否则恢复执行被中断的任务 由于雎c o s i i 为占先式内核 应注 统的编程与擦除操作 通过对其内部的命令寄存器写入标准的命令序 列 可对f l a s h 进行编程 烧写 整片擦除 按扇区擦除以及其它操 作 由于f l a s h 存储器在系统中常用于存放程序代码 系统上电或复 位后便从此获取指令并开始执行 与f l a s h 存储器相比较 s d r a m 不具有掉电保持数据的特性 但其存取速度大大高于f l a s h 存储器 且具有读 写的属性 因此 s d ra m 在系统中主要作程序的运行空间 数据及堆栈区 当系统启 动时 c p u 首先从复位地址o x o 处读取启动代码 在完成系统的初始 化后 程序代码一般应调入s d r a m 中运行 以提高系统的运行速度 同时 系统及用户堆栈 运行数据也都放在s d r a m 中 s 3 c 4 4 b o x 的存储系统的地址空间具有8 个存储体 每个存储体 可达3 2 m b 总共可达2 5 6 m b 在这8 个存储体中 b a l l k 0 b a n i 5 可 支持r o m s r a m b a n l 6 b a i l k 7 可支持r o m s r a m 和 f p e d o s d r a m 等 只需要将c p u 上的相应b a n l 连线按到外设芯 片的片选引脚上 便可以根据相应的地址进行存储器或外设操作了 在本系统中 存储器的配置依照p c 机的结构 使用b a l l k o 上的f l a s h 来放置系统b i o s 系统上电以后 p c 指 针自动指向b a n i o 的第一个单元 开始进行系统白举 系统自举完成 以后 便从硬盘中将系统文件和用户应用程序复制到s d r a m 内存中 执行 用s d r a m 当作系统内存 只有b a i l l 6 b a i l l 7 能支持s d r a m 所以将s d r a m 接在b a n k 6 上 如果同时使用b a n k 6 b a l l l 7 则要求 连接相同容量的存储 而且其地址空间在物理上是连续的 4 2 4 审口电路单元 基于嵌入式系统的g p r s 数据终端的设计与实现 r s 2 3 2 是p c 机与通信工业中应用广泛的一种串行接口 被美国 电子工业协会定义为 在数据终端设备和数据通讯设备之间使用串行 二进制数据交换的接口 作为一种硬件协议 r s 2 3 2 被用于连接 d t e d a t at e f m i n a le q u i p m e n t 数据终端设备 和d c e d a t a 墨主亟 蒌墨堑堕鱼 墨 墼塑堡塑鲤壁盐兰垂塑 系统的开发平台 选择a r m u c o s i i 作为该系统的核心 主要是基 于以下考虑 1 选择a r m 嵌入式处理器的必要性 处理速度快 a 脚垤是 s c 结构的处理器 而且 姐m 7 内部集成了三级流水 线 大大增加了处理速度 超低功耗各种档次的删的功耗都是同档次其他嵌入式处理器中较低 的 低电压 微电流供电 这些都无疑为便携式设备最理想的选择 应用前景广泛 目前 删的使用最广 开发资源丰富 有利于缩短产品的研 发周期 而且对于删开发应用平台 我们有了较好的技术基础 可以在较短时间内研制出合适的产品 价格低廉 在各种嵌入式处理中 删的价格适中 而且使用量大 比较 容易购买 技术支持力量比较强大 2 选择嵌入实时操作系统u c o s 的必要性 嵌入式实时操作系统r t o s 是嵌入式系统的软件开发平台 在嵌 入 式实时操作系统环境下 开发一个复杂的应用程序 可以将整个程序 分解为多个任务模块 提高了开发效率 缩短了开发周期 而且 嵌 入式实时操作系统充分发择了3 2 位c p u 的多任务潜力 另外 使用 r i o s 还可以提高系统的实时性和可靠性 与其他实时操作系统相比 u c o s i i 有自己的特点 这些特点决 定了使用这个操作系统要比不使用操作系统在开发和功能上具有更 多的优势 结构简单 c o s 采用c 语言和汇编语言 其中绝大部分用c 语言 结 构非常简洁 这就为编程人员使用此操作系统提供了便利 基于嵌入式系统的g p r s 数据终端的设计与实现 图4 2s 3 c 4 4 b o x 内部结构图 4 2 2g p r s 通讯模块 目前 用于工业系统的g p r s 数据传输模块有很多 比如西门予 的m c 3 5 m c 3 5 t 爱立信的g m 4 7 g m 4 8 等 市场上关于g p r s 的 应用主要使用的是西门子的m c 3 5 模块 该模块结合语音 数据传输 短信服务及f a x 等功能 最大传输速率可以达到8 5 6 k b p s 特别适 用于数据的监测和传输 根据系统要求及性能价格比 在本系统中 g p r s 模块选用m c 3 5 作为g p r s 通讯模块 来达到通过g p r s 承载 业务传送数据的目的 l m c 3 5 的特点 基于嵌入式系统的g p r s 数据终端的设计与实现 m c 3 5 模块主要由g s m 基带处理器 g s m 射频部分 电源a s l c 电 路 f l a s h 存储器 s 删以及z 连接器和天线接口组成 m c 3 5 模块 的结构如图4 3 所示 3 m c 3 5 的接线方式 m c 3 5 数据接口为t t l 电平的r s 2 3 2 接口 共有九条信号线 分别 是1 x d l b d d t r d s r c t s r t x g n d r i n g d c d 它提 供给用户上位机与m c 3 5 的命令和数据传输通道 可以通过a t 指令集进 行参数配置 晟高速率可达5 7 6 0 0 b 口s 本文采用三线制呦脚 澄d 的方式连接m c 3 5 与s 3 c 4 4 b o x 接线简图如图4 4 所示 对于标准r s 2 3 2 中未使用的引脚 如果为输出引 脚则浮空 如果为输入引脚则通过1 0 k 欧姆电阻上拉 i g t 引脚用于启 动g p r s 引擎模块 为下降沿使能 i g t 引脚与s 3 c b 0 x 通用端口相 连 利用软件启动m c 3 5 m c 3 5 的硬件接口资料可以参见文献 图 哇i c 3 5 接线简图 4 m c 3 5 模块的s 肌卡接口 m c 3 5 模块是机卡分离的移动终端设备 要登录到移动网络上 还 必须通过其s 珊卡接口扩展外部s 州卡插槽 m c 3 5 模块的s m 卡接口符 合i s o7 8 1 6 3i c 卡标准 m c 3 5 模块的s m 卡接口共有6 个引脚 各个引 脚的作用和定义如下 基于嵌入式系统的g 豫s 数据终端的设计与实现 第五章g p r s 终端的软件实现 对于一个完整的嵌入式系统 应包括硬件开发 编写b o o t i o a d e r 移植操作系统 软件开发等 上一章我们已经选择好了目标系统的硬 件平台 本章我们主要研究g p r s 终端的软件实现 下面首先看一下 g p r s 终端工作流程及设计目标 然后介绍一下嵌入式系统的开发平 台 最后主要介绍一下各模块的具体实现 5 1g p r s 终端工作流程及设计目标 5 1 1g p r s 终端工作流程 本系统的核心功能由嵌入到中央控制器的软件实现 我们首先在 s 3 c 4 4 b o x 微处理器上移植心 o s i i 然后在 c o s i i 平台上进行应 用系统的开发 实现t c p 口协议栈对数据进行打包 解包处理 终 端与控制中心之间就可以采用t c p i p 协议进行通信了 本文采用了 在嵌入式实时操作系统 c o s i i 下编程的方法 u c 0 s 1 i 内核为通讯 协议和应用程序提供任务管理与调度 利用u c 0 s 的占先式多任务 调度机制来保证系统的实时性 在实时操作系统下通过多任务调度 即可实现r s 2 3 2 数据和中心站的相互通信 系统整体框图如图5 1 所示 g p r s 无线数据终端上电或复位后 首先等待参数配置命令 如 果收到配置命令 则进入配置状态 否则 读取片内用户f i a s h 中保 存的配置信息 接着通过串口向g p i 峪无线模块发送相应的衄 指令 g p r s 终端开始进行拨号和p p p 协商过程 当p p p 协商成功 无线模 块登陆网络成功后 系统通过加载p p p t c p 巾d p p 等协议 同中心 建立起s o c i 1 玎连接 数据的双向传输通道建立 系统进入发送 接收用户数据和定时向数据中心注册的循环状态 g p r s 终端工作流 程如图5 2 所示 基于嵌入式系统的g p r s 数据鹫输阴发计与头现 图5 1 系统整体根酉 3 8 基于嵌入武系统的g p r s 数据终端静设计与买批 图5 3 系统开发环境 那么 在建立了目标系统的软硬件开发平台后 我们就可以向基 于s 3 c 4 4 b o x 的硬件上移植 c o s 操作系统 在此基础上进行应用 软件的开发 继续开发g p r s 功能 5 3 c o s i i 在s 3 c 4 4 8 0 x 上的移植 要使用u c 0 s 首先应将其成功地移植到所使用的c p u 上 所谓 移植 就是使 个实时内核能在某个微处理器或微控制器上运行 为 了方便移植 大部分u c o s i i 的代码是用c 语言编写的 但是仍需要用 汇编语言编写一些与处理器硬件相关的代码 这是因为u c o s i i 在读写 处理器寄存器时 不能用c 语言来实现 由于雎c o s 在设计之初就已 经充分考虑了可移植性 所以u c o s 的移植相对来说比较容易 5 3 1 移植条件 2 5 要使u c o s 正常工作 处理器必须满足以下要求 处理器的c 编译器能产生可重入型代码 可重入代码指的是一髟 代码 如一个函数 可以被多个任务同时调用 而不必担心会破坏数据 代码的可重入性是保证完成多任务的基础 除了在c 程序中使用局部耍 4 1 基于嵌入式系统的g p r s 数据终端的设计与实现 t y p e d e f u n s i g n e d i n t o s s t k 幸堆栈入口宽度1 6 位 该文件还定义了舢洲处理器退出临界区和进入临界区的宏定义 群d e f i n eo s n t e i u r j t i c a l 0 削l m d i s a b i e l m o 产关中断 群d e 矗n e0 s e t c t i c a l 舢孙伍n a b l e i n t 0产开中断 堆栈增长方向也由该文件定义 堆栈由高地址向低地址增长 这 也是和编译器有关的 拌d e f i n eo ss t kg i 的w 1 h1 产堆栈的增长方向1 为递减 o 为递增 2 o sc p uc c 的移植 用c 语言编写6 个简单的函数 o s t a s l s t k i 血 函数用来初始化任务的堆栈结构并返回新的指针 s t k 初始状态的堆栈模拟发生一次中断后的堆栈结构 在删体系结 构下 任务堆栈空间由高至低依次保存着p c 1 r r 1 2 r l l r l o r 1 r o c p s r s p s r 任务堆栈初始化函数具体代码如下 的i d8 0 s t a s k s t k i n i t v o i d 4 t a s k v o i d p d v o i d p d a t a v o i d p t o s i n t l 6 uo p t u 1 1 s i g i l e d i n t s t k o p t o p t 产o p t 未使用 此处可防止编译器警告 s t i 1 l n s i 朗e di n t p t o s 产载入堆栈指针 幸为新任务建造上下文t 8 一一s t k 帆s i g n e di n t t a s k p p c 4 一s t k 觚l s 噜n e di n t t a s k p l r 一s t 0 1 2 一g f l o r l l 4 非 o 叶1 0 一s t k o 4 r 9 4 卡 s t k o r 8 丰 8 t k o r 7 卑 s t k o p r 6 基于嵌入式系统的g p r s 数据终端的设计与实现 8 s t l f o r 5 一s t l f o p r 4 8 s t k 0 r 3 s t k 0 r 2 s t k o 严r l s t k 啪s i g n e di n t p d a t a r o s t k s v c 3 2 m o d 纠o x 0 p 印s r l q f i q 关闭 4 一s t l s v c 3 2 m o d e f o x o ps p s r 承q h q 关闭 r e t u m v o m s t 蹴 下面这5 个函数是h o o k 函数 为用户定义函数 执行特定的用户操 作 如果没有特殊需求 则只需简单地将它们都实现为空函数就可以 但必须声明 o s t a k c r e a t m o o k 0 0 s t a s d h o o k 0 s t a s k s w h o o k o s t a s k s t a t h o o k o 0 s t i m e t i c 妞o o k o 3 o sc p ua a s m 的移植 用汇编语言编写5 个简单的汇编函数 这5 个汇编函数分别为 o s s t a r t h i g 抓d y 0 o s 1 a s k s 硪 0 s t i c l d s r 以及 m 汛 i s a b l e i n t m m n a b l e i n t o 下面介绍这5 个函数的移植过程 o s s t a n h 噜h r d y 0 函数是在0 s s t a n 0 多任务启动后 负责从最高优 先级任务的t c b 控制块中获得该任务的堆栈指针s p 通过s p 依次将c p u 现场恢复 这时系统就将控制权给用户创建的该任务进程 直到该任 务被阻塞或者被其他更高优先级的任务抢占c p u 该函数仅仅在多任务 启动时被执行一次 用来启动第一个 也就是最高优先级的任务 g l o b a l o s s t a n h i g h r d y 0 s s t a r t l m g i l r d y 基于嵌入式系统的g 豫s 数据终端的设计与实现 l d r r 4 a d d ro s t c b c u e 严得到当前任务控制块的地址 l d r r 5 a d d r p s t c b h i g h r d y 得到最高优先级任务控制块的地址 l d r r 5 r 5 p 得到堆栈指针4 l d r s p r 5 p 转向新的堆栈 s t rr 5 r 4 产设置新的任务控制块的地址 u m f i 8 p r 4 m s r s p s r c x s r 4 l d m f d s p r 4 严从堆栈顶得到新任务的状态 m s r c p s r c s f r 4 l d m f d 8 p r o r 1 2 l r p c p 开始新的任务 任务级的上下文切换函数o s j a s k s w 0 它是当任务因为被阻 塞而主动请求c p u 调度时被执行 由于此时的任务切换都是在非异常模 式下进行的 因此区别于中断级别的任务切换 它的工作是先将当前 任务的g p u 现场保存到该任务堆栈中 然后获得最高优先级任务的堆栈 指针 从该堆栈中恢复此任务的c p u 现场 使之继续执行 这样就完成 了一次任务切换 其程序清单如下所示 g l o b a l0 s j a s k s w o s a s k s w s t m f d s 乩 l r 严 s n 伍d s p k 严 s 咖r ds 虬 r o r 1 2 保存返回地址和寄存器文件4 吸sr 4 c p s r s t m f ds p r 4 p 保存c p s r 将最高优先级设置成当前优先级 u 垠r 4 a d d l o s p r i o c u r l d r r 5 a d d f 0 s p r i o h i g h i y l d r br 6 r 5 s n 啦r 6 n 4 p 得到当前任务控制块的地址 4 5 基于嵌八式系统的g p r s 数据终端的设计与实现 l d r r 4 a d d r o s i c b m u r r 5 r 4 s t r s p r 5 p 把s p 存入被抢占的任务的控制块中 产得到最高优先级任务控制块的地址 l d r r 6 a d d r o s t c b h i g h r d y u r r 6 r 6 l i rs p r 6 产得到新任务的堆栈指针 p 把最高优先级的任务设置成当前任务 s t r r 6 r 4 l d m f d s p r 4 m s r s p s r c x s f r 4 l d m f d s 此 r 0 一r 1 2 l r p c 皋从新任务堆栈中恢复所有的寄存器 时钟节拍是特定的周期性中断 这个中断可以看作是系统心脏的 脉动 时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节 拍 以及当任务等待事件发生时 提供等待超时的依据 o s t i c l i s r 0 就是时钟节拍中断服务函数 下面给出了o s7 n c l d s r 0 的部分代码 g l o b a l0 s t i c k i s r o s t i c l i s r s 加b s p r o r l l l r m r s r o c p s r o r r r 0 r o 拌o x 8 0 严设置中断禁止标志 m s rc p s rc x s r o 产中断结束 l d r f o l i s p c l d r r l 2 b i t t m 皿r o s t r r l r o b l i r q s t a n b lo s l 抽d n c k b l i r q f i n i s 也 l d r r o 2 n e e u o s w 印 c o n t e x t 基于嵌入式系统的黜数据终端的设计与实现 l d r r 2 r o c m p r 2 撑l l d r e qp c i c o n s w 退出临界区和进入临界区函数分别是退出临界区和进入临界区的 宏指令实现的 主要用于在进入临界区之前关闭中断 在退出临界区 的时候恢复原来的中断状态 实现如下 g l o b a la i i s a b l e i n t 越m 仍i s a b l e i n t 进入临界区前关中断 s t m d b s p r o n 峪r o c p s r o i 墩r 0 r o 撑n o i n t m s r c p s r j c x s r 0 l d m a 印 r 0 m o v p c 址 g l o b a la r 匝n a m e i n t 问 a b l d n t 退出临界区后开中断 s b s p r o m r sr 0 c p s r o r r r 0 r o 珊4 0 i n t m s r c p s r c x s r o u m 队s 儿 r o m o v p c 1 c 完成上述工作后 c o s i i 就可以运行在删处理器上了 5 3 3 移植后的内核测试 上述工作完成之后 还要对移植后的内核在目标板上进行测试 为p c o s i i 编写一个启动程序 初始化系统的硬件环境和软件环境 初 始化定时器以及初始化串口 并向操作系统提供一些硬件相关例程和 函数 以方便调试 在c p u 板级和程序自身初始化完成后 就可以把 基于嵌八式系统的g 豫s 数据终端的设计与实现 c p u 的控制权交给操作系统了 5 4 通信协议的实现 2 9 3 0 本课题设计和实现了g p r s 无线数据终端 主要目标是利用 舻r s 网络与远程控制中心无线通讯 所以通讯协议的实现是本文软件实现 的主要任务 t c p i p 协议定义了网络层和传输层的公众规程特性 用以提供网 络和运行不同操作系统的各类计算机之间相互通信 在该部分的设计 中 需要利用t c p 口协议来完成g p r s 业务数据的装帧和拆帧 但 由于资源有限 需对t c p 坤协议进行合理地简化 采用分层的结构 实现 简化层次的目的是为了便于系统的软件调试 提高编程效率 在本课题中 采用在嵌入式实时操作系统 c 0 s i i 下编程方式实 现了软件功能 g p r s 终端实现的协议栈是t c p 诤o v e r 冲p 简化后 的网络协议主要有切 p 协议 邛协议 i c m p 协议 p p p 协议 d t u 发送数据时 按应用层 用户数据 一传输层 u d p 一网络层 口 一 数据链路层 p p p 一物理层 串口 顺序进行数据封装 而在接收数 据时 以相反的顺序进行解封装 上层函数的实现需要应用到底层函 数 而底层函数的任务是为上层函数提供服务 最终完成应用层任务 传输数据 通讯协议的模型如图54 所示 囹5 哇t c p i p 协议棱模型 图中各层的功能是 应用层负责处理特定的应用程序细节 4 8 基于嵌入式系统的g p r s 数据终端的设计与实现 传输层为主机上的应用程序提供端到端的通信 采用u d p 协议 网络层为主要每一次链接具体分配一个坤地址 数据链路层采用碑o v e rp p p 实现数据终端的接入 由微处理器控制 m c 3 5 模块 采用p p p 协议实现 下面详细介绍各层的具体实现 5 4 1 物理层 该终端与g p r s 网络之问的物理层通道就是g p r s 连接 具体的 g p r s 协议都已被做在g p r s 通讯模块中 通过数据端对g p r s 模块正 确的a t 指令设置后 就可以进行a t 拨号指令进行拨号连接 当收到 g p r s 模块的拨号反馈应答后 一条物理通道即g p r s 信道就在本终端 中g p r s 模块和g p r s 网络之间建立了起来 驱动程序层是数据链路层和物理层的接口 用于将协议栈产生的 数据发送给m c 3 5 或接收m c 3 5 传递的数据 5 4 2 数据链路层 t c p 佃协议簇支持多种不同的链路层协议 如以太网 令牌环网 f d d i 光纤分布式数据接口 及r s 2 3 2 串行链路等 本系统中m c 3 5 与 c p u 之间采用三线制r s 2 3 2 方式连接 链路层使用p p p 协议进行通讯 在物理层之上 p p p p o i n tt op o i n tp r o t o c 0 1 协
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建事业单位考试企业咨询服务题及答案
- 声音传播学习福建事业单位考试试题及答案
- 农业职业经理人考试准备经验试题及答案
- 深入了解植物生长原理试题及答案
- 2024年农艺师考试不同备考模式的比较研究与选择策略试题及答案
- 测试题分析模板及答案大全
- 聚焦重点的花艺师考试试题及答案
- 危险游戏技术测试题及答案
- 农业经理人考试历年真题的复习与分析试题及答案
- 关注农村经济与社会发展的结合点试题及答案
- 河南省省属煤炭企业煤矿瓦斯治理调研报告
- 第04章 计算机辅助设计-1
- 2022年00642《传播学概论》复习资料
- 双室浮动床除盐水系统程序控制设计
- 铝合金化学成分表
- 村级基本公共卫生考核评分表
- 烟囱图集(上)05G212
- 外拉线内悬浮抱杆分解组塔计算
- 清华版小学英语一年级下册全册教案
- BWASI网关使用手册-第10章节
- 施工控制网中央子午线及投影基准面的选择
评论
0/150
提交评论