(计算机应用技术专业论文)基于arm嵌入式系统的网络传输应用与研究.pdf_第1页
(计算机应用技术专业论文)基于arm嵌入式系统的网络传输应用与研究.pdf_第2页
(计算机应用技术专业论文)基于arm嵌入式系统的网络传输应用与研究.pdf_第3页
(计算机应用技术专业论文)基于arm嵌入式系统的网络传输应用与研究.pdf_第4页
(计算机应用技术专业论文)基于arm嵌入式系统的网络传输应用与研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)基于arm嵌入式系统的网络传输应用与研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得山东理工大学或其它教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明 确的说明并表示了谢意。 研究生签名:1 永i 移 时间:乙够年月f 2 日 关于论文使用授权的说明 本人完全了解山东理工大学有关保留、使用学位论文的规定,即:学校有权保 留送交论文的复印件和磁盘,允许论文被查阅和借阅;学校可以用不同方式在不同媒 体上发表、传播学位论文的全部或部分内容,可以采用影印、缩印或扫描等复制手段 保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此协议) 研究生躲却铂 帆砧年6 月仡日 导师签名: 时间:弘够年多月位日 山东理工大学硕上学位论文第一章引言 1 1 课题研究背景及意义 第一章引言 在测控领域内,目前大多数嵌入式系统还处于单独应用阶段,以m c u 为核心, 与一些监测、伺服、指示设备配合实现一定的功能。在一些工业和汽车应用中,为了 实现多个m c u 之间的信息交流,利用c a n 、r s 2 3 2 、r s 一4 8 5 等总线将m c u 组网,但 这种网络的有效半径短,有关的通信协议也比较少,并且一般是孤立于i n t e m e t 以外的: 而且,工业控制现场环境复杂,对硬件设备的操作具有一定的危险性( 串口设备带电 拔插有可能烧毁设备) ,而网络设备接口就可以避免一些误操作可能带来的危害( 可 以带电拔插) 。i n t e m e t 现已成为社会重要的基础信息设施之一,是信息流通的重要渠 道,如果嵌入式系统能够连接到i n t e m e t 上,则可以方便、低廉地将信息传送到几乎世 界上的任何一个地方。因此,随着嵌入式系统和网络技术的发展,在工业控制等各领 域,嵌入式系统将越来越多地支持网络传输功能,这不仅提高了信息的传输效率,也 增强了系统设备操作的安全性。 根据嵌入式系统的发展趋势,硬件方面,虽然8 位控制器仍将长期存在,但是1 6 位和3 2 位处理器j 下处在一个高速发展阶段,特别是3 2 位机,其应用范围和产值都将会 超过8 位机。a r m 系列微处理器作为3 2 位微处理器的代表现在已经广泛应用于电子消 费、网络通讯、航空航天以及其他很多工业控制领域。软件方面,最初运行于硬件之 上的是一些简单的单任务操作系统,或者更简单的控制程序,甚至根本就没有操作系 统而直接运行应用程序。在这种情况下系统无法运行复杂的应用程序或者效率很低, 每次设计任务的修改非常繁琐,并要求程序员十分了解硬件特性,这些都阻碍了应用 于这类c p u 之上的嵌入式产品的开发速度。因此,操作系统在嵌入式系统开发中的使 用将会大大增加,u c l i n u x 就是目前应用比较成熟的一个嵌入式操作系统。 将嵌入式系统与i n t e m e t 结合起来的主要困难在于,i n t e m e t 上面的各种通信协议 对于计算机存储器容量、运算速度等性能要求比较高。以前大量存在的是8 位和1 6 位 m c u ,支持t c p i p 等i n t e n l e t 协议将占用大量系统资源,系统任务无法正常运行。而 现在3 2 位的m c u 已经配有大容量的存储芯片,应用技术也趋于成熟。综合上述背景, 本课题选择一个基于越泓微处理器和u c l i n u x 操作系统的嵌入式系统网络进行研究, 顺应了嵌入式系统的发展趋势。课题从硬件核心一3 2 位微处理器的选型,硬件部分设 计,嵌入式操作系统移植,到t c p i p 协议栈分析及网络应用程序编写,完成了对一个 嵌入式系统从计划设计到开发调试完整过程的研究。 山东理工大学硕士学位论文第一章引言 1 2 2 嵌入式操作系统及u c l i n u x 嵌入式操作系统是能够根据实际应用环境的要求对内核进行裁剪和重配置的操 作系统。根据其面向实际应用领域的不同其组成也有所不同,一般包括实时内核、网 络组件、文件系统、图形用户界面四个部分。 国外嵌入式操作系统已经从简单走向成熟,代表性的产品主要有v x w o r k s 、 q n x 、p a l mo s 、w i n d o w s c e 等。这些操作系统的应用占据了机顶盒、p d a 等的绝 大部分市场。本设计采用嵌入式u c l i n u x 操作系统,它是针对没有m m u 的处理器而 设计的,专为嵌入式系统做了许多小型化的工作,也继承了l i n u ) 【操作系统的许多优 点: 1 多任务支持。多任务是现代计算机最主要的一个特点,它是指计算机同时执 行多个程序,而且各个程序的运行相互独立。 2 多用户支持。多用户是指系统资源可以被不同用户各自拥有使用,即每个用 户对自己的资源有特定的权限,互不影响。 3 开放性及源码开放。开放性是指系统遵循世界标准规范,特别是遵循开放系 统互联( o s i ) 国际标准。而l i n u x 源码开放方便了用户和开发人员对l i n u x 的研究, 也是其发展如此迅速的主要原因。 4 健壮性。l i n u x 系统已经在真实世界中被广泛地运用和执行,一系列的应用 成果也证明它是一种可靠性和健壮性非常高的操作系统。 5 丰富的网络功能。完善的内置网络是l i n u x 的一大特点。l i n u x 在通信和网 络功能方面优于其他操作系统。其他操作系统的网络连接功能和内核的耦合性低,也 没有内置这些联网特性的灵活性,而l i n u x 为用户提供了完善、强大的网络功能,这 也是本设计采用嵌入式u c l i i 懈操作系统的主要原因之一。 1 2 3 嵌入式i n t e r n e t 的应用意义 现在,世界已经进入了后p c 机时代。信息电器( i n f o m l a t i o na p p l i a n c e s ) ,如个 人数字助理( p d a ) 、w e b 可视电话、移动电话的g p s 或w c d m a 产品、t v 机顶盒、 电视会议机、数码相机等嵌入式设备,它们都要求与i n t e m e t 联网,并且已经嵌入了联 网所需的硬件和软件。而在工业控制领域,鉴于传统数据传输方式的种种缺点,嵌入 式设备的数据传输也逐渐采用优点更为明显的基于t c p i p 协议的网络传输。可以说, 在进入2 1 世纪后,互联网进入了嵌入式i n t e m e t 时代。 过去,通过专用通信线采集远程现场设备数据进行远程显示和远程控制的应用 已经很多,但此类应用的共同特点是:通信介质要专用,通信协议要应用人员自己编 山东理工大学硕士学位论文 第二章系统硬件平台设计 第二章系统硬件平台设计 硬件平台采用最小化设计,选用p h i l i p s 公司生产的基于删7 t d m i s t m 核的 l p c 2 2 1 0 微处理器,并对存储电路及外围接口电路进行了详细设计。 5 v 稳压 电源 l d o 低压 差稳压器 1 2 c 接口测 温芯片 厂 。,i 一 1 2 c 接口存 储器 l p c 2 2l0 - p a c k ( a l t m 7 t d m i s ) j t a g 接口 n o r f l a s h | | 2 m b _ jig p i o l 接口 n a n d f l a s hi | 1 6 m b l i ,jl 。- _ _ _ _ _ _ _ _ _ _ _ _ _ _ 。,。一 p s r a m 8 m b 图2 1 硬件系统总体结构框图 2 1a r m 微处理器l p c 2 2 1o 概述 嵌入式删微处理器凭借着其耗电少、成本低、功能强、1 6 3 2 位双指令集、以 及全球众多的合作伙伴支持保证等特点,已成为移动通信、手持计算、多媒体数字消 费等嵌入式解决方案的s c 标准。 本设计采用p h i l i p s 公司生产的l p c 2 2 l o 微处理器。l p c 2 2 1 0 是基于支持实时仿真 和嵌入式跟踪的1 6 3 2 位a i m x 山东理丁大学硕士学位论文第二章系统硬件平台设计 如图2 3 、图2 4 、图2 5 所示。 图2 35 v 电源电路 u 3 s p x l l1 7 m b - 3 3 图2 43 3 v 电源电路 s p x l l1 7 m b - 1 8 图2 51 8 v 电源电路 5 v 电源电路中,二极管d 1 防止电源反接,经过c 4 2 、c 4 4 滤波,然后通过稳压 芯片l m 2 5 7 5 将电源稳压至5 v ,再使用l d o 芯片( 低压反差电源芯片) 稳压输出 3 3 v 及1 8 v 电压( l m 2 5 7 5 电压调节可调输出电压为1 2 3 v 3 7 v ) 。s p x l l1 7 m 3 3 3 和s p x l l1 7 m 3 1 8 l d o 芯片输出电流大,输出电压精度高,稳定性好,详细参数如 表2 1 所示。 表2 1s p x l1 17 电气特性 鍪钦 l 袈q| j l 孙| 碧,l t 纳 秘久 i 州 l 。拜、 i 8 1 8 、1 锑融li o 臻j * l 。,。k ( m j 绷 。: 2 m 、捧一i1 2 、l1 7 ll 1 牲k : 。;、 锑n 融 烹燃卜文一 k :i | | 鳓 孓:;l 、 l :;,:k 洳 l 7 山东理工大学硕士学位论文第二章系统硬件平台设计 由于l p c 2 l o o 系列a 1 w 7 微控制器具有独立的模拟电源和模拟地引脚,为了降 低噪声和出错几率,模拟电源与数字电源应该隔离,使用1 0 u h 的电感l 2 l 4 实现 电源的高频噪声隔离。为了确保s p x l l l 7 的稳定性,输出端至少需要一个2 2 u f 的 钽陶瓷电容或1 0 u f 铝电容,也可以选用一个更大的输出电容值( 1 0 0 u f ) 以增长负 载瞬态响应,这里选用一个1 0 u f 的钽电容来改善瞬态响应和稳定性口引。 2 2 2 时钟和复位电路设计 1 复位电路 由于a r m 芯片的高速、低功耗和低工作电压导致其噪声容限低,对电源的瞬态 响应性能、时钟源的稳定性和电源监控可靠性等诸方面也提出了更高的要求。本硬件 平台复位电路使用了带1 2 c 存储器的电源监控芯片c a t l 0 2 5 j i 3 0 ( 复位门槛电压为 3 o v 3 1 5 v ) ,提高了系统的可靠性,电路原理图1 仲3 如图2 6 所示。 、r m l l 图2 6 系统复位电路 信号r 汛s t 连接到l p c 2 2 1 0 芯片的复位脚i 也s e t ,当复位键r s t 按下时, c a t l 0 2 5 j i 一3 0 的i 也s e t 引脚立即输出复位信号,使l p c 2 2 1 0 芯片复位。 c a t l 0 2 5 的精密复位控制器可确保掉电和电源上下电时系统的正确操作,它配置 有开漏的复位输出。上电过程中复位输出一直保持有效,直至v c c 到达门槛电压v t h , 并在v c c 到达v t h 后大约2 0 0 m s ( t p u r s t ) 内复位输出仍然保持有效。当t p u r s t 时间过后, 复位输出无效。这时,复位输出被相应的上拉下拉电阻拉高或拉低。 下电过程中复位输出在v c c 下降到低于v t h 后有效。若v c c 1 0 v ( v r v a l i d ) , r e s e t 输出就有效。器件将忽略出现的快速负v c c 瞬时脉冲( 干扰) 。复位输出的时 序见下面图2 7 。 8 山东理工大学硕士学位论文 第二章系统硬件平台设计 u - 8 a 12 52 9d o a 22 4 a 0d q o 3 ld 1 a 32 3 a l d 0 1 3 3e 晓 a 4 2 2 a 2d 0 2 3 5e 1 3 a 52 1 a 3d o b 3 8d 1 4 a 6加 a 4d 0 4 4 0e 1 5 a 71 9 a 5 d 0 5 4 2d 1 6 a 81 8 a 6d 0 6 4 4d 口 a 98 a 7d 0 7 3 0d 暇 a 1 0 7 a 8d 0 8 3 2d 1 9 a 1 16 a 9d 0 9 3 4d 1 0 a 1 25 a 1 0 d 0 1 0 3 6d 1 l a 1 34 a 1 l d 0 1 1 3 9d 1 2 a 1 43 a 1 2 d q l 2 4 1d 1 3 a 1 52 a 1 3 d 0 1 3 4 3d 1 4 a 1 61 a 1 4 d 0 1 4 4 5d 1 5 a 1 74 8 a 1 5 d q l 5 4 7】 a 1 81 7 a 1 6n c a 1 91 6 a 1 7n c ; l u 31 0 k a 2 09 a 1 8n c a 1 9n c 篙 砌4l m ( 1 0 n cn c r 旺f2 6 d 3 7 n 、 n o e2 8 c e 2 7 = := c 1 3 o e 憾 n w e1 14 6 l 1 0 4 w e 溜 3 s s l 3 9 v 上1 6 u 亏= - 图2 9n o rf l a s h 存储器电路 s s t 3 9 l f f 1 6 0 具有高性能的字编程功能,字编程时间为1 4 u s 。器件通过触发位 或数据查询位来指示编程操作的完成。为了防止意外写的发生,器件还提供了硬件和 软件数据保护机制。s s t 3 9 l f f 1 6 0 的1 0 0 0 0 个周期的耐用性和大于1 0 0 年的数据保持 时间等特点,使其可广泛用于设计制造和测试等应用中。 s s t 3 9 l f f 1 6 0 尤其适用于要求程序、配置或数据存储器可方便和低成本的更新 的应用系统。对于所有的系统,s s t 3 9 l f f 1 6 0 的使用可显著增强系统的性能和可靠 性,降低功耗。s s t 3 9 l f f 1 6 0 比其它技术制造的f l a s h 器件在擦除和编程操作中消耗 更少的能量,所有能量的消耗与应用的电压、电流和操作时间有关。由于不管对于任 何的电压范围,s u p e r f l a s h 技术都消耗很小的电流,使用很短的擦除时间,因此 s s t 3 9 l f f 1 6 0 在擦除或编程操作中消耗的能量小于其它f l a s h 技术制造而成的器件。 s s t 3 9 l f f 1 6 0 也增强了程序、数据和配置存储器低成本应用的灵活性。 s u p e r f l a s h 技术提供了固定的擦除和编程时间,与擦除编程周期数无关。因此使 用时不必像其它f l a s h 技术制造的器件一样( 擦除和编程时间随着擦除编程周期的增加 而延长) 要对软件或硬件进行修改和变动。s s t 3 9 l f f 1 6 0 功能框图如图2 1 0 所示。 l o 山东理工大学硕士学位论文 第二章系统硬件平台设计 v c c v 鹞 c e 苍片使巷:c e 输入是器件选择控制信号 r e 读懂筐:r e 输入控制著串行数据的输出 w e 写使售:w e 输入控制若写i j o 口操作 w p 写俣护:w p 为电塬变化时的无意写提供了写德除僳护 c l e 命令镇存使盏:c l e 输入控制著发送到命令寄存器的命令的有效通路 a l e 地址镇存使盏:a l e 输入控制著地址到内部地址寄存器的有效路径 图2 12k 9 f 2 8 0 8 u o c 功能框图 2 3 接口电路设计 2 3 1j 丁a g 接口电路设计 j t a g 技术n 2 3 是一种嵌入式调试技术。它在芯片内部封装了专门的测试电路n 蛆 ( t e s 认c c e s s p o r t ,测试访问口) ,通过专用的j t a g 测试工具对具有j t a g 接口芯片 的硬件电路进行边界扫描和故障检测。l p c 2 2 1o 有一个内置j t a g 调试接口,通过其 j t a g 边界扫描接口与j t a g 仿真器连接,利用相应的调试工具( a d s ) ,可进行系 统的软、硬件调试,从而达到对芯片内部工作状态进行监控的目的。j t a g 接口电路 是否正确是整个系统调试成功的关键。 j t a g 接口的连接有1 4 针和2 0 针两种,本设计采用2 0 针接口,j t a g 信号的定 义及其与l p c 2 2 1 0 的连如图2 1 3 所示。 1 2 山东理工大学硕士学位论文第二章系统硬件平台设计 p 1 3 l 厂i r s r| d 3 3 0 。而 l 2 _ j p 1 2 8 ,n ) i1 】) i 34 p h 匝皿sp 1 3 m 侣邢 56 l p c 冱l op 1 2 9 ,i k t a k 78 p 1 九d or 麟 9l o p 1 放靠江q ii t d 0 l l1 2 li 1 31 4 1 飚l 1 51 6 且张 1 71 8 1 92 0 j rj r 图2 13j t a g 接口电路 图2 1 3 中,j t a g 接口上的信号n t r s t 连接到l p c 2 2 1 0 芯片的t r s t ,以达到 控制l p c 2 2 1 0 内部j t a g 接口电路复位的目的。根据l p c 2 2 1 0 的应用手册说明,在 i 盯c k 引脚接一个4 7 千欧的下拉电阻,使系统复位后l p c 2 2 l o 内部的j t a g 接口使 能,这样就可以直接进行j t a g 方式调试了。 2 3 2 串行线路接口电路设计 由于系统电源是3 3 v ,设计使用s p 3 2 3 2 e 进行r s 2 3 2 电平转换。s p 3 2 3 2 e 系列 是r s 2 3 2 收发器对便携式和手持式应用如笔记本或掌上型电脑的一种解决方案,它 有一个高效的电荷泵,工作电压为3 3 v 时只需0 1 心电容就可进行操作。电荷泵允 许s p 3 2 3 2 e 系列在+ 3 3 v 到+ 5 0 v 内的某个电压下发送符合r s 一2 3 2 的信号。s p 3 2 3 2 e 器件包含一种低功耗关断模式,该模式下器件的驱动器输出和电荷泵被禁止。关断状 态下,电源电流低于1 “a 。基于以上特点选择s p 3 2 3 2 e 作为r s 2 3 2 转换芯片。 r s 2 3 2 标准接口为9 针或2 5 针的d 型插头,本设计采用9 针插头。对于基本的 通信功能,只需连接磁囝、t x d 、g n d 即可,典型接口电路如图2 1 4 所示( 未连接 地线) 。 v r 眦1 图2 14 串口接口电路 1 3 山东理工大学硕士学位论文第二章系统硬件平台设计 2 3 31 2 c 总线接口电路设计 l p c 2 210 具有支持4 0 0 k b s 高速模式的硬件1 2 c 接口,本硬件系统包括采用1 2 c 接口的温度传感器i c l m 7 5 ,硬件连接如图2 1 5 所示矧。 图2 15l m 7 5 硬件连接电路 l m 7 5 串行可编程温度传感器,与传统的热敏电阻温度传感器不同,l m 7 5 已经把 当前温度转化为数字值,微控制器可以直接读出使用。l m 7 5 的温度转换时间小于 3 0 0 m s ,由于该芯片在检测点己把被测温度模拟量转化为数字量,因此在总线上传送的 是数字信号,提高了系统的抗干扰性能和数据传输的可靠性,传输距离可以达到1 0 0 米,l m 7 5 主要特性如表2 2 所示。 表2 2l m 7 5 主要特性 温度敏感精度o 5 测温范围 一5 5 1 2 5 接口类型标准1 2 c 串行接口 1 2 c 从设备数至多8 个l m 7 5 共用一1 2 c 总线 工作电压2 7 v 5 5 v 低功率工作时2 5 0 u a ( 典型值) ,关断模式l u a ( 典型值) l m 7 5 使用标准1 0 0 k b p s l 2 c 总线速度,数据传输距离最大为1 0 0 米。在程序设 计中,l m 7 5 作为1 2 c 从设备,l p c 2 2 1 0 作为1 2 c 主设备对l m 7 5 进行数据的读取, 时序图如图2 1 5 所示。 1 4 山东理工大学硕上学位论文第二章系统硬件平台设计 1 邗n w 仉州w m 扑附醐n n _ 、:八尘:i 选姒! ! ! i ! ! ! ! i ! ! ! ! ! ! 二:羔! 户 塞鼻卜百砥毛矿_ 萨揣铲 91 孽 1 0 弋州丛刷渊! 斟挝域渊! 崩拦燃抛龇! 厂 瓣燃! j :;节;溉删r 袅粼字爷j 微磁甑钉磊效琳字蒂嚣姜客秦溅 图2 1 5l p c 2 2 1 0 与l m 7 5 串口操作时序图 2 3 4 以太网络接口电路设计 系统硬件平台以太网接口电路以r t l 8 0 1 9 a s 芯片1 为核心,电路原理图如图2 1 6 所示。 图2 16 以太网接口电路 l p c 2 2 1 0 具有外部总线接口,所以电路设计为1 6 位总线方式对r ,r l 8 0 1 9 a s 进 行访问,即数据总线d 0 d 1 5 与芯片的s d 0 s d l 5 连接。由于i 汀l 8 0 1 9 a s 工作电 压是5 v 而l p c 2 2 l o 的i o 电压为3 3 v ,所以需要在总线上串接4 7 0 欧的保护电阻。 r t l 8 0 1 9 a s 芯片的v i h 最小值为2 0 v ,所以与l p c 2 2 1 0 连接不需要加电平转换器。 1 5 山东理工大学硕士学位论文 第三章移植u c l i n u x 到l p c 2 2 l o 第三章移植u c l in u x 到l p c 2 2 1o 本章主要介绍移植嵌入式操作系统u c l i n u x 到硬件平台的主要方法。移植的工 作的主要任务是修改u c l i n u x 底层和硬件相关的部分,让u c l i n u x 可在指定的硬件平 台上运行。硬件芯片为采用p h i l i p s 公司的l p c 2 2 1 0 的微处理器,它的体系架构属 于a r m 7 t d m i s ,支持实时钟模拟和调试。 3 1 建立开发环境 1 编译器选择 在u c l i 叫x 移植中使用的编译器为g c c 。因为u c l i n u x 中使用了很多g c c 特有 的语法,所以编译器选择g c c 。 2 调试器选择 在内核的移植过程中,使用的调试器为模拟器s k y e y e ,目前s k y e y e 支持 l p c 2 2 1 0 处理器。其用户界面直接绑定在g d b 的用户界面,支持g d b 的基本语法, 方便了l p c 2 2 1 0 移植工作中的代码调试。 3 2 移植代码修改 此部分工作为芯片级的移植。当前u c l i n u ) ( 已经支持了无m m u 的a r m 体系结 构,因此只需增加一些与l p c 2 2 1 0 处理器相关的代码即可。 尽管u c l i n u x 已经支持了相应的体系架构,但由于具体处理器设计要求不同, 因此各种基于a 1 w 7 处理器的中断系统也大不相同。可以说,对于a i 蝴平台的芯片 级移植的很多工作都集中在对底层中断系统的修改上。下面主要列举移植需要添加的 代码。可分为4 部分:体系架构和机型相关代码:中断相关的代码;其他代码;修改 m a k e f i l e 和配置菜单。 3 2 1 内核代码修改 在这部分,会添加启动代码和一些体系结构相关的数据结构。主要分为如下3 部分。 1 增加处理器类型 为目标芯片l p c 2 2 1 0 随机选择一个机型的序号,在i n c l u d e a s m a n i l l l o m m u 1 7 山东理工大学硕士学位论文第三章移植u c l i n u x 到l p c 2 2 1 0 m a c h t y p e s h 中添加l p c 开发板体系结构号。但m a c h t ) ,p e s h 是一个编译时自动生成 的文件,手动修改的内容在下次编译时会被覆盖。每次编译时, a r c b 伽1 i l n o m m 毗o o l s 儋e t m a c h t y p e s h 文件会读取a r c h a 姗n o m m 毗o o l s m a c h - t y p e 文 件,然后产生i n c l u d e a s m - a 咖n o m m m a c h - t y p e s h 文件,因此需要修改的应该是 a r c h a n i l n o m m u m a c h 一够p e s 文件,方法是在文件最后加上一行: l p ca r c h _ l p c l p c9 1 2 添加描述处理器型号的数据结构 添加文件a r c h a 瑚n o i n m u m a c h 1 p c a u r c h c 。在该文件里实现了一个描述机型的数 据结构 m a c h i n ed e s c ,然后用m a c h i n es t a r t 、m a i n t a i n e r 、 b o o tm e m f i x u p 、i n i t i r q 和m a c h i n ee n d 这些宏填充到m a c h i n ed e s c 中, 其中f i x u pl p c ( ) 函数用于初始化内存的数据结构m e i i l i n f 0 ,会在启动时被调用。内容 见附录a r c h a n n n o m m u m a c h 1 p c a 1 c h c 。 3 添加l p c 2 2 1 0 芯片的启动代码 在l i n u x 2 4 妣眦h 瓜e m e l 1 1 e a da n l l v s 文件中添加启动代码,读出前面添加的处 理器序号和机型号。这些代码基本上对于所有a l u 处理器都是类似的,在这个文件 中添加一段类似于其他删处理器的启动代码,完成针对l p c 2 2 1 0 的p r o c e s s o ri d 和m a c h i n ea r c ht y p e 赋值。代码参见附录a r c h l 【e m e l 1 1 e a da n l l v s 。 3 。2 2 中断系统代码修改 1 l p c 2 2 1 0 的中断系统描述 l p c 2 2 1 0 的中断系统提供了3 2 个中断源,可把它们分为3 类:快速中断、向量 化的中断和非向量化的中断。下面介绍其中的主要寄存器。 ( 1 ) v i c r a w i n t :中断状态寄存器,记录了系统发生的中断。 ( 2 ) v i c v e c 认d d r 0 1 5 :记录了0 1 5 这1 6 个向量中断函数的地址。 ( 3 ) v i c v e c t a d d r :记录了中断处理函数的地址。在发生向量中断时,处理器会把 发生中断的中断处理函数( 即把上面1 6 个寄存器中相应寄存器的内容) 拷贝到该寄 存器。 2 内核中断系统代码实现 a r m 平台共有7 种异常,中断是其中的一种。当硬件产生中断异常之后,c p u 会跳转到相应的异常处理函数去处理中断异常,也就是0 x 1 8 地址,在这个地址上 l i n u x 存放了一条跳转语句: b - r e 止s 劬s _ s t a r t + ( v e c t o r _ i r q - _ s 劬s _ s ) 通过这条语句,内核会跳转到v e c t o ri r q 中去执行。在v e c t o ri r q 中保存中断 的堆栈及返回位置,并且进行模式切换,然后跳入岫s v c 或i r qu s r 程序中去执 1 8 山东理工大学硕士学位论文第三章移植u c l i n u x 到l p c 2 2 1 0 应用程序l应用程序2 应用程序n 多 多 多 ( 动态共享库 ) 之多 ( 虚拟文件系统( v f s ) ) 之多之乡 j f f s j f f s 2 c r a 哇f s ( r a m d i s k ) y a f f s 厂y a f f s 2 一 e x t 2 e t 3 f a t 多 ,r 、 ( 缓冲区( b u f 融c 虬h c ) ) 、lj , 弋 7 七多 f i a s hd r i v c rd i s kd r i v e r 多迫多 f l a s hd c v i c ed i s kd e v i 3 3 1 文件系统的实现原理 图3 1lin u x 文件系统结构图 嵌入式系统一般采用f l 嬲h 作为存储介质。文件系统不能直接对f l 嬲h 进行操作, 必须通过f l a s h 的驱动来实现对f l a s h 进行操作。嵌入式l i i n l ) 【提供一个m t d 驱动程 序,将f l a s h 驱动与系统程序分开。 m t d ( m e m o 巧t e c h n o l o g yd e v i c e ) 是l i n u x 上为访问f l 础设备( 如闪存芯片、 f l a s h 卡、记忆棒等设备) 而开发的一个抽象接口,目标是在硬件驱动程序和上层程 序之间提供通用接口,提供一组对底层闪存系统进行类似于标准文件r e a d 、w r i t e 和 e r a s e 等操作的统一接口。上层程序并不需要知道具体的底层情况。 3 3 2 根文件系统的选择与内容实现 常见的嵌入式l i n u x 文件系统有c r a m f s 、腰f s 、j f f s 2 、y a f f s 、y a f f s 2 、 t m p f s 等。因为本系统采用的硬件平台是大容量的r a m 和f l a s h ,故采用的文件系 统方式是基于i :渔m d i s k 的e x t 2 文件系统。具体的m d i s k 制作方法如下: 1 制作映像文件 生成可以虚拟成块设备的文件,文件名为i i l i t h g ( 当前工作目录为u s r s r c u c l i n u x d i s t ) : 撑d di f = d e v z e r oo f = i 1 1 i t i m gb s21 0 2 4c o u m = 5 0 0 其中,b s 木c o 咖为块设备大小( 单位为字节) 。 格式化生成的块设备( “t i m g 文件) : 2 i 山东理工大学硕十学位论文第四章嵌入式t c p i p 协议栈分析及网络驱动程序的编写 第四章嵌入式t c p ip 协议栈分析及网络驱动的编写 t c p i p 协议栈是研究嵌入式i n t e m e t 的基础,实现一个符合自己开发需求的协议 栈才能更好的进行嵌入式网络功能的学习。本章工作主要分析了嵌入式t c p i p 协议 栈,并根据设计要求编写r t l 8 0 1 9 a s 网络芯片驱动,实现了网络的启动部分。 4 1t c p i p 协议栈分析 4 1 1t c p ip 协议简介 t c p i p u 2 1 协议起源于2 0 世纪6 0 年代末美国政府资助的一个分组交换网络研究 项目,到2 0 世纪9 0 年代已经发展成为计算机之间最常用的通信协议。传统的丌放式 系统互连参考模型,是一种通信协议的7 层抽象的参考模型,其中每一层执行某一特 定任务。t c p i p 协议并不完全符合o s i 的七层参考模型。而t c p i p 通讯协议采用4 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。该模型的 目的是使各种硬件在相同的层次上相互通信。 嵌入式t c p i p 协议栈是嵌入式平台网络功能实现的基础,本章对其进行了详细 的分析。系统嵌入式t c p i p 协议栈的实现采用周立功公司的t c p i p 协议栈实现方法, 并根据其特点实现r t l 8 0 1 9 a s 驱动的编写。 4 1 2 以太网的分层和协议栈结构 t c p i p 协议是一个非常复杂的协议集n 刳,传统的以太网协议分为7 层( 应用层、 表示层、会话层、传输层、网络层、数据链路层、物理层) ,但是7 层协议只是为了 理论上的描述方便,一般的应用只分为5 层( 应用层、传输层、网络层、链路层、物 理层) ,而实际所用到的t c p i p 协议可分为4 层( 如表4 1 ) 进行开发,每一层负责 不同的通信功能。t c p i p 协议栈己经成为开放系统互联的标准,与其它任何协议相 比,t c p i p 协议能够提供更好的交互操作性能,可以在大多数系统中使用,并且它 可兼容多种网络技术,因而t c p i p 非常流行并且己经得到了广泛使用。 山东理工大学硕十学位论文第四章嵌入式t c p i p 协议栈分析及网络驱动程序的编写 表4 1t c p ip 协议分层 应用层 t e n e t 、f t p 、h t t p 、s m t p 传输层t c p 、u d p 、( i c m p 、i g m p ) 网络层 i p 、a r p 链路层 设备驱动( p p p 、以太网、f d d i ) 数据封装体现协议层次模型的重要特征1 。每层协议按照自己的方式进行数据的 封装和拆封。数据发送时,各层在收到的上一层数据前面添加对应的头部信息,进行 数据封装,然后传递到下一层。数据接收时,各层对数据进行解包,剥离出头部信息, 进行适当的保存,然后将数据传递到上一层处理。如图4 1 所示。 卜f ! 冀。,磊二爿 4 1 3 链路层协议 图4 1t c p ip 协议栈的结构图 1 以太网协议 e t h e m e ti i 标准是一种比较旧的以太网标准( 图4 2 ) ,它是由d i g i t a l 、i n t e l 、 x e r o r 三家公司共同创建的,而后来i e e e 又创立了i e e e 8 0 2 3 标准。 报头 目标地址 源地址 以太网类型 有效负载 二 二二 二 4 乱1 5 0 0 字节 帧检查序列 二二 二二工二二 图4 2e t h e r n e tl i 帧的封装 鳕蓠 一部二一部一慵一部一一首=一首一嚏一首一 一部一 一酋一 一网一一太一 一以一 一 一 山东理工大学硕士学位论文第四章嵌入式t c p i p 协议栈分析及网络驱动程序的编写 2 a i 冲协议 地址解析协议( a r p ) 是联系i p 协议和l a n 协议的桥梁,它的应用范围是局域网 ( l a n ) ,如以太网,f d d i ,令牌网等,它是基于访问共享和广播技术的协议。该协 议把节点的i p 解析成对应的m a c 地址( 也叫物理地址) ,它可以在局域网内寻找i p 所 对应的m a c 地址,并保存起来以供发送使用。a r p 协议是基于数据链路层协议之上的, 但它不属于网络层协议,它是数据链路层和网络层之间的通道,是数据链路层的一部 分。 a r p 由两种帧组成,一种是请求帧,即在网络里面查找i p 地址对应的m a c 地址; 另一种是应答帧,即回答该i p 地址对应的m a c 地址是多少。请求帧由要发i p 报的节点 发出,它是一个广播报,子网内的所有节点都能够收到。各节点收到后,如果目标i p 和自己的i p 相同,就发送一个a r p 应答报,否则就丢弃掉。当发送请求帧的节点接收 到应答报后,就知道了对方的m a c 地址,即可发送i p 报。 a r p 帧的以太网类型是0 x 0 8 0 6 ,a r p 帧不包含i p 帧,不能通过i p 路由器,它可以 通过集线器、中继器、第2 层交换机、网桥等在子网内传播。a r p 封装如图4 3 所示。 硬件类型 协议类型 硬件地址长度 协议地址长度 操作 发送端硬件地址 发送端协议地址 接收端硬件地址 接收端协议地址 4 1 4 网络层协议 图4 3a r p 帧的封装 1 i p 协议 i p 协议是t c p i p 协议栈的核心。它出现于1 9 8 1 年,发展至今已经有2 0 多年了, 但是它仍然保持着旺盛的生命力。i p 协议提供的服务有:数据传输、封装多种上层协 议、提供路由及传输信息、信息报交换技术等,正是这些特性,使它成为t c p i p 中最 重要的一个协议。i p 报是由报头和负载组成的,报头的长度范围为2 0 6 0 字节,有效 负载范围为8 6 5 5 1 5 字节。工p 报头的封装如图4 4 所示。 山东理工大学硕士学位论文第四章嵌入式t c p i p 协议栈分析及网络驱动程序的编写 版本 i p 报头长度 服务类型 总长度 标识符 标志 分段偏移量 生存周期 协议 信息头校验和 源i p 地址 目标i p 地址 i p 选项和填充字符 l4 位 4 位 l 字节 l 字节 l 字节 3 位 1 3 位 l 字节 l 字节 2 字节 i 4 字节 4 字节 4 字节n ( o l o ) 图4 4 ip 报头的封装 2 i c m p 数据报 i n t e r n e t 控制信息协议( i c m p ,i n t e r n e tc o n t r 0 1m e s s a g ep r o t o c 0 1 ) ,结构 上是属于传输层的,但实际的功能是属于网络层的,是i p 层的组成部分。i c m p 协议为 i p 数据报提供传输过程中遇到的路由并传送错误报告。 i c m p 消息在以下几种情况下发送:当数据报不能到达目的地时,当网关已经失 去缓存功能时,当网关能够引导主机在更短路由上发送时。图4 5 为i c m p 的封装。 类型 代码 校验和 特定类型的数据 l 字节 l 字节 2 字节 图4 5ic m p 的封装 i c m p 消息以基本i p 报头发送。 3 i g m p 数据报 i n t e r n e t 组管理协议i g m p 是t c p i p 协议族中负责i p 组播成员管理的协议。它 用来在i p 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。i g m p 不包括组播路由器之间的组成员关系信息的传播与维护,这部分工作由各组播路由协 议完成。所有参与组播的主机必须实现i g m p 。 参与i p 组播的主机可以在任意位置、任意时间、成员总数不受限制地加入或退 出组播组。组播路由器不需要也不可能保存所有主机的成员关系,它只是通过i g m p 协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。而主机方 只需要保存自己加入了哪些组播组。 i g m p 在主机与路由器之间是不对称的:主机需要响应组播路由器的i g m p 查询 报文,即以i g m pm e m b e r s l l i pr e p o n 报文响应;路由器周期性发送成员资格查询报 文,然后根据收到的响应报文确定某个特定组在自己所在子网上是否有主机加入,并 且当收到主机退出组的报告时,发出特定组的查询报文( i g m p 版本2 ) ,以确定某 个特定组是否已无成员存在。 2 7 山东理t 大学硕上学位论文第四章嵌入式t c p i p 协议栈分析及网络驱动程序的编写 4 2 基于r t l 8 0 19 a s 的网络驱动编写 u c l i n u x 网络设备驱动程序是u c l i n u ) 【操作系统网络应用中的一个重要组成部 分n 1 。访问网络设备的驱动程序不需要使用设备节点。u c l i i l u ) 【的网络系统主要是基 于b s du i l i x 的s o c k e t 机制。在系统和驱动程序之间定义有专门的数据结构( s kb u 进行数据的传递。系统内部支持对发送数据和接收数据的缓存,提供流量控制机制, 提供一对多协议的支持。因此,选择哪个驱动程序是基于内核内部的其他决定,而不 是调用o p e n ( ) 。对网络设备的使用通常由系统调用s o c k e t 接口引入。如图4 8 所示是 用r t l 8 0 1 9 a s 以太网接口,在嵌入式处理器上实现t c p i p 协议来实现i n t e r n e t 接入 功能的一种简单方案。 4 2 1 硬件原理 t c m p 协议栈 c l i e n t 嵌入式系统 数据包接收函数 s t a t i ci n tr t l 8 019 _ r x ( i i l ti r q , v o i d 宰d e v j d ,s n u c tp t _ r e g s 宰i e g s ) 从硬件中读取新到达的数据; 调用函数n e t i f _ o ,将新的数据包向网络协议的上一层传送; ) 最后,将驱动程序编译进内核,加载模块,然后使用i f c 锄g 、r o u t ea d d 命令设 置i p 地址和子网掩码,保证r t l 8 0 1 9 能正常工作。 4 2 5 数据结构和函数 l i n u x 中已经定义了为编写网络驱动程序必须使用的数据结构和函数。由于编写 程序的大部分工作就是填写这些数据结构并同时定义这些函数的入口点,因此必须分 析清楚这些数据结构与函数。对网络设备的驱动程序来说最重要的数据结构有s t m c t d e v i c e 和s t m c ts kb u f f 引。 1 s t l c t d e v i c e 3 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论