(计算机应用技术专业论文)基于devicenet的嵌入式web服务器设计与实现.pdf_第1页
(计算机应用技术专业论文)基于devicenet的嵌入式web服务器设计与实现.pdf_第2页
(计算机应用技术专业论文)基于devicenet的嵌入式web服务器设计与实现.pdf_第3页
(计算机应用技术专业论文)基于devicenet的嵌入式web服务器设计与实现.pdf_第4页
(计算机应用技术专业论文)基于devicenet的嵌入式web服务器设计与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)基于devicenet的嵌入式web服务器设计与实现.pdf.pdf 免费下载

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

文档简介

华北电力大学硕士学位论文 摘要 目前,嵌入式i n t e r a c t 技术的飞速发展将以太网推进到工业自动化控制层以至 设备层。如果在d e v i c e n e t 和以太网之间设置嵌入式w e b 服务器,实现数据的远程 访问,就可以打破“信息孤岛”,拓展传输空问。因此,研究嵌入式w e b 服务器在 d e v i c e n e t 中的应用将具有重大的实用价值和现实意义。 首先简要分析了在d e v i c e n e t 中使用嵌入式w e b 服务器的可行性和必要性。其 次,提出了系统的整体设计架构,重点论述了w e b 服务器的体系结构和c a n 接口、 以太网接口驱动程序的实现,进而实现了d e v i c e n e t 总线通信。然后,在剖析t c p i p 协议栈的基础上对其进行了精简与实现,这里采用c g i 的思想实现动态页面,借助 h t t p 协议实现w e b 服务的功能。最后,在测试的基础上进行了技术总结,为今后 更复杂、功能更全面的设计提供了一定的参考价值。 关键词:设备网,嵌入式w e b 服务器,以太网,t c p i p 协议栈 a b s i r a c i n o w d a y s ,t h eb o o mo ft h ee m b e d d e di n t e m e tt e c h n o l o g yb r i n g st h ee t h e m e ti nt h e c o n t r o ll a y e ri nt h ef i e l do fa u t o m a t i o n e v c i li nt h ed e v i c el a y e r i fy o ul a y o u tt h e e m b e d d e dw e bs e r v e rb e t w e e nt h ed e v i c e n e ta n dt h ee t h e m c t ,y o uc a ng e tt h er e m o t e d a t a , a n dy o uw i l lb r e a ko u tf r o mt h ei s o l a t e di s l a n do ft h ei n f o r m a t i o n ,e n l a r g et h e s p a c eo ft h et r a n s m i s s i o n t h e r e f o r eo _ l e r ei st h es i g n i f i c a n tp r a c t i c a lv a l u ei nt h es t u d y o f t h ee r n b e d d e dw e bs e r v e r f i r s n y ,t h ep a p e ra n a l y s e st h ep r a c t i c a l i t ya n dt h en e e di nt h eu s eo ft h ee m b e d d e d w e bs o l v e ro ft h ed e v i c e n e t s e c o n d l y , i tb r i n g sf o r w a r dt h ew h o l ef l a m eo ft h es y s t e m , a n di te m p h a s i z e st h ea r c h i t e c t u r eo fw e bs e r v e ra n dt h ec a ni n t e r f a c e ,t h er e a l i z a t i o n o ft h ed r i v e rp r o g r a mo fe t h e r n e ti n t e r f a c e ,w i t hi tr e a l i z e st h eb u sc o m m u n i c a t i o no f d e v i c e n e t n e x t ,i tc u t st h es u i t eo ft h et c p i pp r o t o c o lo nt h eb a s i so ft h ec o m p l e t e a n m o m yi nt h es o f t w a r ef i e l d ,a n di tr e a l i z e st h ed y n a m i cf r o n tp a g ew i t ht h ec g i ,a n d i t c a r r i e so u tt h ew e bs e r v e rw i t ht h eh e l po ft h eh j r r pp r o t o c 0 1 l a s t l y , t h eu s e d t e c h n o l o g yo nt e s t i n ga n dp r o v i d i n gt h er e f e r e n c ei ss u m m a r i z e df o rt h ef u l l s c a l ed e s i g n i nt h ef u t u r e s if e n g s h a n ( c o m p m e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f s h a oz u o z h i ,l id o n 萄i a n g k e yw o r d s :d e v i e e n e t ,e m b e d d e dw e bs e r v e r , i n t e r n e t , t c m pp r o t o c o l i 声明 本人郑重声明:此处所提交的硕士学位论文基于d e v i c e n e t 的嵌入式w e b 服 务器设计与实现,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行 的研究工作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学 或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名:飙 日 期:2 雌灯 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权 保管、并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或 其它复制手段复制并保存学位论文:学校可允许学位论文被查阅或借阅:学校 可以学术交流为目的,复制赠送和交换学位论文;同意学校可以用不同方式在不 同媒体上发表、传播学位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名:运丑盈4 日期:丝丑,酉 导师签名 日期 呻 纱 箩 攀 华北电力大学硕士学位论文 1 1 选题的背景及意义 第一章绪论 随着计算机、通信、网络技术的持续高速发展,以太网已经成为网络的主流和 事实标准。无论是在国际互联网,还是在各种商业网络以及办公自动化领域,以太 网都显示出强大的生命力。如何在控制领域内合理利用这些已有的成熟技术,近年 来一直是工控领域的重要课题和研究热点【l l 。 与此同时,信息交换的领域正在迅速覆盖从工厂的现场设备层到控制、管理的 各个层次,覆盖从工段、车间、工厂、企业乃至世界各地的市场。信息技术的飞速 发展,引起了自动化系统结构的变革,逐步形成了以网络集成自动化系统为基础的 企业信息系统。现场总线就是顺应这一形式发展起来的新技术。本课题就是采用一 种基于c a n 技术的现场总线一一d e v i c e n e t 。 在自动化的工业现场,下层车间的监测设备之间都是采用现场总线互连,而企 业的管理层和生产监控层都是连接于以太网的p c 机,甚至是位于异地连接于互联 网上的p c 机。要实现生产现场与外界的信息交换,加强生产现场与更高控制管理 层之间的沟通,打破系统“信息孤岛”,就必须实现d e v i c e n e t 与以太网的互连通信。 要真正实现d e v i c e n e t 与以太网的互连通信,也就是要把嵌入式系统与i n t e r n e t 技术 相结合,这便产生了嵌入式i n t e m e t 技术。嵌入式i n t e r n e t 技术已成为当前嵌入式系 统发展的热点之一,具有广阔的应用前景。目前,将嵌入式系统接入i n t e m e t 通常 有两种方法1 2 j : 一种方法是采用高速的1 6 3 2 位微处理器直接实现t c p i p 协议栈;另一种方法 是使用嵌入式网关来实现,即每个嵌入式系统首先和网关进行通信,通信方式采用 传统的r s 2 3 2 等,由嵌入式网关负责实现t c p i p 协议栈,完成嵌入式系统与i n t e r n e t 的信息交互。 但是无论采用哪种方法实现嵌入式系统与i n t e m e t 的互联,想要实现通过w e b 方式访问嵌入式系统,都必须在嵌入式系统或网关内实现嵌入式的w e b 服务器。本 课题就是在微处理器直接实现t c p i p 协议栈的基础上,进一步实现w 曲服务的功 能。 事实证明,该互连系统不仅可以广泛应用于工业控制领域,实现小型工业检测 系统网络化,还可以实现智能仪器、智能园区、环境工程、植物工厂、工业制冷等 方面的应用,具有广阔的应用前景和推广价值。 华北电力大学硕士学位论文 1 2 研究思路及主要工作 d e v i c e n e t 中自动控制系统与现场设备之间,以及现场设备与现场设备之间的 通信半径比较有限,有关的通信协议也比较少,而且一般是孤立于i n t e m e t 以外的, 所以有必要在d e v i c e n e t 与以太网( 采用i n t e m e t 的主流标准以太网) 之间设立一个 嵌入式w e b 服务器。用它来实现将基于t c p i p 协议的计算机网络设备与基于 d e v i c e n e t 协议的底层现场网络连通,实现d e v i c e n e t 中现场设备状态信息的发布, 拓展通信的有效空间,从而构成一个完整的互连系统。 本课题就是基于以上思路来开展设计与实现工作的。由此可见,有了嵌入式 w e b 服务器则可以方便、低廉地将信息传送到d e v i c e n e t 的外部世界。这种d e v i c e n e t 与i n t e r n e t 的结合也正是嵌入式i n t e r n e t 技术的真正体现。 为了达到以上的设计目标,论文主要完成了以下工作: ( 1 ) 论述了系统的整体设计架构; ( 2 ) c a n 接口和以太网接口驱动程序的实现; ( 3 ) d e v i c e n e t 总线通信的实现; ( 4 ) t c p i p 协议栈的精简和实现; ( 5 ) 动态页面的设计与发布; ( 6 ) 系统测试与技术总结。 z 华北电力大学硕士学位论文 第二章系统的整体设计架构 在p c 机上实现w e b 服务的功能非常容易,但是嵌入式系统硬件资源相对于p c 机非常贫乏,要在其上实现w e b 服务的功能难度很大。 本课题是在8 位单片机上实现w e b 服务的功能,并且它通过c a n 接口实现与 d e v i c e n e t 相连通信,通过以太网接口实现与以太网互连通信。c a n 接口、微处理 器和以太网接口组成了系统的整体架构,从而可以实现d e v i c e n e t 中数据的远程访 问。系统的整体设计架构如图2 一l 所示。 2 1d e v i c e n e t 现场总线 图2 - l 系统的整体设计架构 d e v i e e n e t 是美国r o c k w e l l 公司1 9 9 4 年提出的基于控制器局域网c a n 的一种 现场总线,用于实现低成本、高性能的设备层网络互连。在讨论d e v i c e n e t 之前, 有必要阐述一下现场总线( f i e l d b u s ) 的有关理论。 2 1 1 现场总线技术 现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机 局域网。下面给出现场总线两种有代表性的定义l j j : ( 1 ) i s as p 5 0 中对现场总线的定义:现场总线是一种串行的数字数据通信链 路,它沟通了过程控制领域的现场控制设备( 即场地设备) 之间以及与更高层次自 动控制领域的自动控制设备( 即车间级设备) 之间的联系。这里的现场设备是指最 底层的用于控制、监测、执行和计算的设备,包括传感器控制、智能阀门、微处理 器和内存等各种类型的仪表产品。 ( 2 ) 根据国际电工委员会i e c 6 1 1 5 8 标准定义:现场总线是指安装在制造或过 3 华北电力大学硕士学位论文 程区域的现场装置与控制室内的自动控制装置之间数字式、串行、多点通信的数据 总线。 由此可见,现场总线就是把单个分散的控制设备变成网络节点,以现场总线为 纽带,把它们连接成可以相互沟通信息、共同完成自控任务的网络系统与控制系统。 现场总线使自控系统与设备具有了通信能力,把它们连接成网络系统,加入到信息 网络的行列。因此,把现场总线技术说成是一个控制技术新时代的开端也并不为过。 2 1 2d e v i c e n e t 的性能特点 d e v i e e n e t 是种简单、开放、低价、可靠、高效的通信总线,它将工业设备 连接到网络,从而消除了昂贵的硬接线成本。直接互连改善了设备间的通信,并同 时提供了相当重要的设备级诊断功能,这是通过硬接线i o 接口很难实现的,因此 它被视作一种面向工业控制底层的现场总线。d e v i e e n e t 的性能特点如表2 1 【4 1 。 表2 - 1d e v i e e n e t 的性能特点 网络大小最多6 4 个节点,每个节点支持的i o 数量无限制 可选的端一端网络长度随网络传输速度而变化 波特率距离 网络长度 1 2 5 k b i t l s5 0 0 m 2 5 0 k b i t s2 5 0 m 5 0 0 k b i t s1 0 0 m 数据包 0 8 b 线性( 干线,支线) :电源和信号在同一网络电缆中;总线电源结构和 总线拓扑结构 容量可调 网络模型生产者消费者模型;支持对等( 点对点) 、多主和主从通信方式 媒介访问控制采用带非破坏性逐位仲裁的载波侦听多址访问技术c s m n b a 总线寻址带多点传送( 一对多) 的点对点;多主站和主从;轮询或状态改变 系统特性支持设备的热插拔,无需网络断电 具有通信错误分级检测机制及通信故障的自动判别和恢复功能;通信 通信特性面向连接的模式;面向连接通信的典型请求响应;大信息量的分段 移动 规范和协议都是开放的,目前属“开放d e v i e e n e t 厂商协会”o d v a 协议规范 组织所有 在c a n 物理层和数据链路层的基础上,提出了应用层协议,其中运 体系结构 用了许多全新的概念 4 华北电力大学硕士学位论文 2 2 以太网的层次结构 以太网如今更多的被用来指各种采用载波多路访问和冲突检测机制c s m a c d ( c a r r i e rs e n s em u l t i p l e a c c e s “c 0 1 l i s i o nd e t e c t i o n ) 技术的局域网,即多个工作站都连 接在一条总线上,所有的工作站都不断向总线上发出监听信号,但在同一时刻只能 有一个工作站在总线上进行传输,而其它工作站必须等待其传输结束后再开始自己 的传输。 ( 1 ) i s o 0 s i 模型 o s i ( o p e ns y s t e mi n t e r c o n n e c tr e f e r e n c em o d e l ,开放系统互联参考模型) 是i s o ( i n t e r n a t i o n a ls t a n d a r d i z a f i o no r g a n i z a t i o n ,国际标准化组织) 为实现开放系统互连面 建立的模型,日的是为异种计算机问的互连提供一个共同的基础和标准框架,并为 保持相关标准的一致性和兼容性提供参考。o s i 模型共有七层,由低到高分别是物 理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每层完成定的 功能,每层都直接为其上层提供服务,并且所有层次都互相支持。 ( 2 ) 基于以太网的t c p i p 参考模型 t c p i p ( t r a n s m i s s i o nc o n t r o lp r o t o c o l i n t c m e tp r o t o c o l ,传输控制网际协议) 网 络体系来源于上世纪6 0 年代末期的美国国防部a r p a n e t 工程。它是许多协议的 集合,是由1 0 0 多个协议组成的协议族,每个协议适于一种因特网的特定应用,这 是t c p i p 如此灵活的原因之一。每一协议都可以独立与其他协议使用,从而与其 他传输技术相兼容。t c p 和i p 是t c w i p 协议中最著名的两个协议,t c p i p 协议因 此而得名。 以太网是当今t c p i p 采用的主要局域网技术。对于以太网,其协议本身只定 义了o s i 模型中最低两层的协议:物理层和数据链路层。基于以太网的t c p i p 协 议是作为运行在以太网上的高层协议出现的。其实除了t c p ,i p 协议以外,以太网 上还有其他的高层协议,比如n o v e l l 网协议等。t c p i p 模型中没有会话层和表示层, 在传输层上就是应用层,它包含所有的高层软件,如虚拟终端协议( t e l n e t ) 、文件 传输协议( f t p ) 、电子邮件协议( s m r p ) 和h t t p 协议等。 2 3 系统架构的设计 系统主要由微处理器,c a n 接口和以太网接口三部分组成。微处理器负责接口 中相关控制器的初始化并实现w e b 服务的功能;c a n 接口和以太网接口分别与 d e v i c e n e t 和以太网相连,实现数据的发送和接收。下面对它们进行详细的论述。 5 华北电力大学硕士学位论文 2 3 1 微处理器简介 这里采用p 8 7 c 5 2 x 2 单片机【”,该系列单片机都是8 位单片机,采用先进的 c m o s 工艺制造,是p 8 0 c 5 1 系列单片机的派生品,其指令集与8 0 c 5 1 完全兼容。 该单片机有4 个8 位f o 口,3 d 1 6 位定时事件计数器,多中断源,4 个中断优先 级的可嵌套中断结构,1 个增强u a r t ,1 个通用的串行通道,片振荡时钟电路。根 据系统要求,外部存储器空间可扩展到6 4 k ,外部扩展可使用标准t t l 兼容存储器 和逻辑器件。这些使得单片机具有更强大的功能,更好地应用于诸如脉宽调制,高 速f o 和上下计数能力如马达控制等场合。 2 3 2c a n 接口设计 构成c a n 接口的主要器件是c a n 控制器和收发器。c a n 控制器以一块可编 程芯片上的逻辑电路的组合,来实现c a n 通信模型中物理层和数据链路层的功能, 并且对外提供与微处理器的物理接口。通过对c a n 控制器的编程,可以设置它的 工作方式,控制它的工作状态,进行数据的发送和接收,把应用层建立在它的基础 之上。c a n 收发器提供了c a n 控制器与物理总线之间的接口以及对c a n 总线的 差动发送和接收功能,是影响网络性能的关键因素。这里采用p h i l i p s 半导体公司的 c a n 控制器s j a l o o o 和c a n 收发器t j a l 0 5 0 t 。 2 3 2 1c a n 控制器s j a l 0 0 0 s j a l 0 0 0 主要用于移动目标和一般工业环境中的区域网络控制。为了确保与外 部微处理器的独立工作,它对于微处理器是以存储器映像外围设备的形式出现的。 而且它增加了一种新的操作模式一一p e l i c a n ,这种模式支持具有很多新特性的 c a n 2 0 b 协议。s j a l 0 0 0 的内部结构如图2 2 所示【6 1 。 c a n 总线 接 主 口 = 刮发送缓冲器 毒 4 - - 控 管 c a n 发 制 理核心模块送 逻 器 辑 爿接收缓冲器h 接收滤波器 图2 - 2s j a l 0 0 0 的内部结构 根据c a n 规范,c a n 核心模块控制c a n 帧的发送和接收。 6 华北电力大学硕士学位论文 ( 1 ) 接1 :3 管理逻辑( i n t e r f a c e m a n a g e m e n t l o g i c ) 负责连接外部主控制器,该 控制器可以是微处理器或任何其他器件。它接收来自微处理器的命令,控制c a n 寄存器的地址,并为微处理器提供中断和状态信息。 ( 2 ) 发送缓冲器( t r a m s m i tb u f f e r ) 能存储一条将在c a n 总线上发送的完整报 文,当主控制器初始化发送,接口管理逻辑会使c a n 核心模块从发送缓冲器中读 c a n 报文。 ( 3 ) 接收滤波器( a c c e p t a n c e f i l t e r ) 把报文头中的标识符和接收滤波器中的内容 进行比较,以判断该报文是否被接收,如果被接收,报文存入接收缓冲器中。 ( 4 ) 接收缓冲器( r e c e i v ef i f o ) 用来存储从c a n 总线上接收并通过了滤波的报 文。存储报文的多少由工作模式决定,而最多能存储3 2 个报文。因为数据超载可 能性被大大降低,这使用户能更灵活地指定中断服务和中断优先级。 2 3 2 2c a n 接口的硬件电路 单片机p 8 7 c 5 2 x 2 与c a n 控制器s j a l o o o 构成的c a n 接口电路如图2 3 所示。 图2 - 3c a n 接口电路图 可以看出,电路主要由四部分构成:微处理器p 8 7 c 5 2 x 2 、c a n 控制器s j a l 0 0 0 、 c a n 收发器t j a l 0 5 0 t 和高速光电耦合器6 n 1 3 7 。s j a l 0 0 0 的a d 0 a d 7 连接到微 处理器的p 0 口;c s 是通过地址译码控制( 地址为6 0 0 0 h ) ,即表示s j a l 0 0 0 的器 件地址可以为6 0 0 0 h ;c p u 可对s j a l 0 0 0 执行相应的读写操作。s j a l 0 0 0 的r d 、 w r 、a l e 分别与微处理器的对应引脚相连,i n t 由j p 3 来选择是i n t 0 还是i n t l , 微处理器可通过中断方式访问s j a l 0 0 0 ,s j a l 0 0 0 的复位信号r s t 低电平有效。 为了增强d e v i c o n e t 节点的抗干扰能力,s j a l 0 0 0 的t x 0 和r x 0 并不是直接与 t j a l 0 5 0 t 的t x d 和r x d 相连,而是通过高速光电耦合器6 n 1 3 7 后与t j a l 0 5 0 t 相连,这样就很好地实现了总线上各节点间的电器隔离。 7 华北电力大学硕士学位论文 2 3 3 以太网接口设计 这里采用以太网控制器r t l s 0 1 9 a s 和r j 4 5 构成以太网接口。微处理器负责 r t l 8 0 1 9 a s 的初始化及通过控制r t l 8 0 1 9 a s 实现数据的接收和发送等通信任务。 2 3 1 3 1 以太网控制器r t l 8 0 1 9 a s r t l 8 0 1 9 a s 是台湾r e a l t e k 公司生产的一种n e 2 0 0 0 兼容的i s a 总线以太网 控制芯片,网络传输速率为1 0 m b i t s e c ,支持c s m a c d 传输协议,与8 0 5 1 单片机 接口简单,相对8 0 5 1 单片机而言r t l 8 0 1 9 a s 的带宽充裕。 r t l 8 0 1 9 a s 有两块r a m :一块1 6 k 字节r a m ,地址为0 x 4 0 0 0 0 x 7 f f f ( 该 地址为芯片内的存储地址,网卡芯片用它来存储转发数据) ;一块3 2 字节r a m ,地 址为0 x 0 0 0 0 0 x 0 0 f f 。芯片内部地址空间的分配如图2 4 所示【7 1 。 d 1 5d 0 0 0 0 0 h 0 0 f f h 0 1 0 0 h 3 f f f h 4 0 0 0 h 7 l 硎 8 0 0 0 h c o o o h f f f f h p r o m 不使用 8 p 1 6 缓冲区趿口r a m 内容同0 0 0 0 h - - 7 f f f h 相同 不使用 图2 4 芯片内部地址空间的分配 由图可知,r t l s o l 9 a s 内部地址o x 4 0 0 0 o x 7 f f f 为8 k + 1 6 双口r a m ,它是 分页存放的,1 6 b l y t e s 地址的高8 b y t e s 为页地址,每页2 5 6 b y t e s ,共6 4 页。如地址 o x 7 f f f 称为第7 f 页,o x 7 f 0 0 o x 7 f f f 为该页的存储空间。程序设计中使用这块 r a m 作为发送和接收数据包的缓冲区,发送和接收缓冲区的大小可以自行划定。由 于r t l 8 0 1 9 a s 接收或发送的数据是按页存储的,如果某页没有完全填满数据,则 下包数据也不能继续使用该页,只能使用新的页,并且数据是按页连续存放的。其 中,从o x o o o o o x o o f f 的内存为p r o m ,是n e 2 0 0 0 兼容的网卡都有的。如果用 9 3 c 4 6 ,则p r o m 用于存放上电复位时从9 3 c 4 6 读出的m a c 地址,没有使用9 3 c 4 6 的话,可以不管这部分存储区。本设计中没有使用网卡和9 3 c 4 6 ,因此可以不使用 从地址0 x 0 0 0 0 o x o o f f 的3 2 字节的p r o m 。0 x 8 0 0 0 0 x f f f f 内容跟0 x 0 0 0 0 o x t f f f 内容相同( 对于8 b y t e s 工作方式) ,在本设计中不使用。 8 华北电力大学硕士学位论文 2 3 3 2r t l 8 0 1 9 a s 的d m a 操作 要接收和发送数据包都必须对双口r a m 进行读写,并且需要通过d m a ( d i r e c t m e m o r ya c c e s s ,直接存取存储器) 方式进行读和写。双端口是指两套总线连接该 r a m :本地d m a ( l o c a ld m a ) 和远端d m a ( r e m o t ed m a ) ”。 本地d m a 可以理解为r t l 8 0 1 9 a s 内部数据传输,由芯片自身完成。只要给定 待发送数据的起始页地址和数据长度并启动发送命令以后,数据的发送可由硬件收 发电路负责完成。而远端d m a 指r t l 8 0 1 9 a s 与微处理器之间的数据传输,需要主 机的参与。主机只要设定好读写的起始地址和长度后就可以读写芯片r a m ,且每操 作一次r a m 地址自动加1 ,处理速度比普通的r a m 操作要快的多。芯片内部有一 些总线仲裁逻辑,负责两套总线的管理,使它们能同时读写r a m ,而不产生冲突。 远端d m a 要比本地d m a 慢很多,所以远端d m a 不需要等待时序。远端d m a 和本地d m a 可以并发操作,互不影响,但是本地d m a 的优先权要高。当二者同 时请求总线,本地d m a 获得优先控制权并可以中断远端d m a ,反之不可。当本地 d m a 传输完毕后可以继续被中断的远端d m a 操作,以完成远端d m a 的传输。 r t l 8 0 1 9 a s 拥有控制、状态和数据寄存器,通过它们微处理器可以与 r t l 8 0 1 9 a s 通信。但由于5 1 单片机资源紧张,在实现数据的收发时避免进行内存 拷贝,所以我们采取如下措施:( 1 ) 使用全局结构体变量,在内存中只保留一个数 据拷贝,其他没有来得及处理的包保存在r t l 8 0 1 9 a s 的1 6 kr a m 里;( 2 ) 使用查 询方式而不用中断;( 3 ) 客户服务器模型中服务器工作于串行方式,并发方式不适 合5 1 单片机。 2 3 3 3 以太网接口的硬件电路 单片机p 8 7 c 5 2 x 2 与r t l 8 0 1 9 a s 构成的以太网接口电路如图2 - 5 所示。 图2 - 5 以太网接口电路图 9 华北电力大学硕士学位论文 其中,r t l 8 0 1 9 a s 的数据线s d o s d 7 与p 8 7 c 5 2 x 2 的a d o a d 7 ( p 0 口) 相连,地址线a 0 a 4 与p 8 7 c 5 2 x 2 的a 0 a 4 ( p 0 口锁存后的信号) 连接。读写 信号经g a l l 6 v 8 产生,r t l s 0 1 9 a s 的基地址为0 x 5 0 0 0 。按电路图连接后,当访问 地址的范围为0 x 5 0 0 0 0 x 5 0 1 f 时,p 8 7 c 5 2 x 2 实现对r t l 8 0 1 9 a s 的读写操作。 r t l 8 0 1 9 a s 支持3 种工作方式:即插即用方式、跳线方式、免跳线方式。这里 采用跳线工作方式( j p 接高电平) ,即网卡的i o 地址和中断都由跳线决定。因为 即插即用方式5 1 单片机无法实现;另外免跳线方式不但要用到一片9 3 c 4 6 芯片, 而且增加了连线提高了成本。以太网接口采用无屏蔽双绞线r j 4 5 接口,由于 r t l 8 0 1 9 a s 内置了1 0 b a s e 2 t 收发器,这部分接口也比较简单,只需要一个隔离变 压器2 0 f 0 0 1 n 即可。 1 0 华北电力大学硕士学位论文 第三章d e v i c e n e t 总线通信的实现 3 1d e v i c e n e t 的通信模型 d e v i c e n e t 建立在c a n 的基础之上,沿用了c a n 协议标准所规定的总线网络 的物理层和数据链路层,并补充定义了不同的报文格式、访问仲裁规则及故障检测 和故障隔离方法。可以简单的说,c a n 定义了数据传输的句法和格式,而d e v i c e n e t 的应用层定义了传输数据的语法和语义。d e v i c e n e t 的通信模型如图3 1 所示【9 】。 i s o 应用层( 层 i s o 数据链路层 ( 层2 ) i s o 物理层 ( 层1 ) i s o 介质( 层0 图3 1d e v i c e n e t 的通信模型 3 2c a n 接口驱动程序的实现 c a n 协议规范 由于d e v i c e n e t 中节点间是通过c a n 接口互连的,因此要实现总线的通信, c a n 接口驱动程序的实现是关键。d e v i c e n e t 是一种基于c a n 的现场总线,所以其 数据发送和接收的方式与c a n 一样,都遵从c a n 的定义1 0 】。c a n 接口驱动程序 由三部分组成:c a n 控制器初始化程序、报文接收程序和报文发送程序。 3 2 1s j a l 0 0 0 初始化的实现 s j a l 0 0 0 的初始化只有在复位模式下才可以进行在正常工作之前,必须通过 微处理器对其进行配置,主要是控制段中的一些配置寄存器的设置,其中有验收代 码寄存器( a c r ) 、验收屏蔽寄存器( a m r ) 、总线定时寄存器i ( b t r l ) 和输出控制寄 存器( o c r ) 。验收代码寄存器和验收屏蔽寄存器用于报文的验收;总线定时寄存器1 用于总线上通信波特率的设定,总线定时寄存器0 ( b t r 0 ) 的内容决定波特率预分频 1 1 华北电力大学硕+ 学位论文 器( b r p ) 和同步跳转宽度( s j w ) 的数值;输出控制寄存器( o c r ) 用于配置四种不同的 输出方式:正常输出、时钟输出、双相位输出和测试输出。 ( 1 ) s j a l o o o 的初始化内容 初始化时钟分频寄存器 是使用b a s i c c a n 模式还是p e l i c a n 模式 是否使用c l k o u t 管脚 是否忽略c a n 的输入比较器 是否将t x l 的输出用作专用的中断输出 初始化接收识别符和接收屏蔽寄存器 定义接收报文的接收识别符 定义能接收的报文的相关屏蔽寄存器信息 初始化总线定时器 定义总线的位速率( b i t r a t e ) 定义位间的采样时间点 定义一个位时间内需要采样的次数 初始化输出控制寄存器 定义c a n 总线上输出管脚t x o 和t x i 的输出模式 定义c a n 总线上输出管脚t x o 和t x l 的信号工作方式 ( 2 ) s j a l 0 0 0 的初始化程序 初始化程序主要是通过对c a n 控制器控制段中的寄存器写入控制字,从而确 定c a n 控制器的工作方式等1 1 】。s j a l 0 0 0 的初始化流程如图3 2 所示。 下面提供了简化的s j a l 0 0 0 初始化c 5 1 源程序。 v o i di n i t s j a l 0 0 0 ( ) a o : x b y t e 【0 x 4 0 0 0 】= o x o l ;复位模式 x b y t e 【0 “0 0 4 】= o x l l 接收中断使能,w a k e _ u p 中断使能 x b y i e 【0 x 4 0 0 8 】= 0 x f a ;输出控制寄存器 x b y t e o x 4 0 0 f 】= o x 4 8 ;c l o e kd i v i d e r e a = i ; e x l = l : ) 当完成所有的初始化工作后,s j a l 0 0 0 就进入工作( o p e r a t i o n ) 模式,并且使 c a n 控制器的中断功能有效。 1 2 华北电力大学硕士学位论文 开始初始化或者重新配置 0 使主控制器上的中断源无效l 1 进入重置模式请求 弋= 配置时钟分频寄存器: lp e l i c a n 或b a s i c c a n 2 忽略c a n 输入比较器 3 c l k 、o u t 控制频率 4 t x l 的使用 上 配置接收识别符和屏蔽寄存器 上 配置总线定时寄存器 上 配置输出控制寄存器 j 1 进入操作,正常模式 弋专 使c a n 中断有效,并且使主控 制器中的c a n 中断源有效 图3 - 2s j a l 0 0 0 的初始化流程图 1 3 华北电力大学硕士学位论文 3 2 2s j a l 0 0 0 接收数据的实现 c a n 控制器和微处理器的数据交换可以使用中断方式和周期轮询方式。从响应 速度和执行的效率来讲,应用环境使用中断方式比较好,因此必须编写自己的收发 中断处理函数,其功能是将c a n 控制器缓冲区中的报文拷贝到一个临时的全局缓 冲区中,并将该缓冲区作为高层协议处理和底层协议收发处理的一个接口,这样的 设计具有良好的可扩展性。如果将来使用其他厂家的c a n 控制器,所做的修改也 仅仅是改动一些与具体硬件相关的几个底层函数。只要定义好互相通信的接口,就 可以将软件和硬件进行分离。 s j a l 0 0 0 有一个报文发送缓冲区和两个报文接收缓冲区用于d e v i c e n e t 的报文 传送。当s j a l 0 0 0 没有报文要发送时,它启动接收管理逻辑单元。当总线有报文接 收时,它接收并检查到达报文标识符的最高8 位( i d 1 0 - i d 3 1 ,如果它满足下式,则 予以验收【1 2 】。 【( i d 1 0 i d 3 ) 一( a c 7 a c o ) 】”( a m 7 - a m 0 ) = 1 1 1 1 1 1 1 l b ( 3 - 1 ) 同时接收缓冲区还要为空,如果此时没有空的接收缓冲区,则数据超载位被置 位( 超载) ,当完整报文被正确接收时,将开始下列操作: ( 1 ) 接收缓存器状态位被置为高; ( 2 ) 若接收中断开放位被置为高( 开放) ,则接收中断被置为高( 置位) 。 s j a l 0 0 0 接收报文的中断处理流程如图3 3 和图3 4 所示。 接收报文中断 l 图3 - 3 正常报文接收中断处理流程图 1 4 华北电力大学硕士学位论文 接收报文数据超长中断流 i c a n 接收中断? 从接收缓冲区读新的消息并保存 释放接收缓冲区( 置命令位r r b = r e l e a s e ) 与应用有关的处理过程,如接收消息过程 接收缓冲区的状态 = e m p t y 7 数据超长中断? 与应用有关的处理过程,根据设定的“数 据超长”策略做出反应 清除数据超长( 置命令位c d 0 = c l e a r ) 图3 - 4 报文接收超长处理流程图 3 2 3s j a l 0 0 0 发送数据的实现 发送报文的处理是接收报文的一个逆过程。当s j a l 0 0 0 要发送报文时,先将预 发送报文写入发送缓存器中,再通过命令寄存器控制s j a l 0 0 0 发送逻辑单元进行发 送,它先检测总线是否空闲,如果此时空闲它将立即进行,否则它将等待一段随机 时间后再检测。在报文发送时,它还在不断地检测总线冲突,如果低优先级的 d e v i c e n e t 节点发现冲突它将自动退让,让优先级高的节点继续发送,等高优先级 的节点发送完毕后,它才有机会发送报文,而此时根据d e v i c e n e t 仲裁协议,高优 华北电力火学硕士学位论文 先级的节点根本不会检测到这个冲突,它将无损筏送。 s j a l 0 0 0 采用中断方式发送报文的流程如图3 - 5 所示。 主程序发送消息中断服务程序发送消息 准备开放c a n 发送中断 请求发送消息 发送缓冲区是否 释放? 写消息到 发送缓冲区 临时存储待发 送的消息 设置发送 请求位 设置“f l l r t h e , r m c g s a g e 标志位 图3 5s j a l 0 0 0 采用中断方式发送报文的流程图 3 3 总线网络通信的测试 3 3 1 测试环境 d e v i c e n e t 总线网络通信测试环境: 利用2 个d p 5 1 h 实验仪构成d e v i c e n e t 网络的两个节点,该实验仪采用了 p 8 7 c 5 2 x 2 微处理器和c a n 接口,2 个节点间通过c a n 接口利用通信电缆相连, 实现数据的发送和接收。两个节点互相发送数据,交换的数据每秒更新一次,并且 每个节点把接收的数据通过l e d 数码管显示出来。 本系统采用c 5 1 语言编写程序【1 3 】,c 5 1 语言和c 语言兼容,所以程序阅读性能 好。开发环境是k e i l 公司的k e i li t v i s i o n 2 ,编译效果好,代码生成率高。 3 3 2 软件实现 要实现d e v i c e n e t 总线节点互发数据,其软件实现应包括三大部分:接口驱动 1 6 华北电力大学硕士学位论文 程序的实现、接收数据模块和发送数据模块。c a n 接口驱动程序的实现前面已经做 了论述,下面仅给出接收数据模块和发送数据模块的程序实现流程图。 ( 1 ) 接收数据模块负责接收s j a l 0 0 0 缓冲区里的内容,并读到m c u 的存储区 中,等待处理。程序实现流程图如图3 - 6 所示。 图3 - 6 接收程序模块流程图 ( 2 ) 发送数据模块负责发送数据给s j a l 0 0 0 接收缓冲区,把m c u 存储区中的 数据发送到d e v i c e n e t 总线上,程序实现流程图如图3 7 所示。 1 7 华北电力大学硕士学位论文 3 3 3 测试结果 图3 - 7 发送程序模块流程图 根据以上的软件实现,实现了两个节点互发数据。例如节点l 不断向节点2 发 送数据,且每秒更新一次,即数据值加】。节点2 会收到节点1 发送来的数据并通 过l e d 显示出来,且与节点l 保持一致。如果节点l 复位,则节点2 会收到数值0 , 二者在单向上保持高度同步,但不会影响节点2 向节点1 发送的数据,节点l 收到 的数据正常变化,毫无干扰。如图3 - 8 所示,节点1 ( 下方节点) 向节点2 发送的 数据是“5 8 ”,通过节点2 的l e d 显示出来即为4 d p5 15 8 ”,其中“d p5 1 ”表 示这里采用的是d p 5 1 仿真实验仪,而“5 8 ”表示的是接收到的数据值。与此同时 节点2 向节点l 发送的数据是“5 0 ”,节点l 的l e d 显示结果即为“d p5 15 0 ”, 由此可见,它们是双向传输,互不影响。 1 8 华北电力大学硕士学位论文 图3 8d e v i c e n e t 总线通信测试结果 1 9 华北电力大学硕士学位论文 第四章t c p i p 协议栈中数据的封装和分用 t c p i p 是一个开放式通信协议,开放性意味着不管这些设备的物理特性有多大 差异都可以进行通信。w e b 作为i n t e r n e t 的重要应用,其基础就是t c p i p 协议。所 以,嵌入式系统只有实

温馨提示

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

评论

0/150

提交评论