现场数据网关设计 毕业设计说明书.doc_第1页
现场数据网关设计 毕业设计说明书.doc_第2页
现场数据网关设计 毕业设计说明书.doc_第3页
现场数据网关设计 毕业设计说明书.doc_第4页
现场数据网关设计 毕业设计说明书.doc_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

南 京 工 程 学 院毕业设计说明书(论文)作 者: 学 号: 208080219 院 系: 通信工程学院 专 业: 通信工程(光纤通信) 题 目: 现场数据网关设计 指导者: 工程师 评阅者: 2012 年 6月 南 京 the design of field data gateway a dissertation submitted tonanjing institute of technologyfor the academic degree of bachelor of scienceby supervised byengineer college of communication engineeringnanjing institute of technology june 2012 摘要随着以太网技术的发展和普及,将以太网技术用于工业控制的底层网络,直接将现场接入工业以太网进行管理、监控和通信已经成为必然趋势。由于大多数的工业控制设备是通过现场总线来和主机进行数据交换的,而这种方法的传输距离和传输可靠性都不是很好。因此将各种现场总线的设备通过以太网连接到远端是一种很好的方法。本文设计了一种基于s3c2440 32 位嵌入式微处理器的工业网关。通过实现现场总线和以太网之间的数据转换,使工业控制系统实现网络数据处理能力,远程控制、监控、维护等功能。系统以32 位的arm 嵌入式微处理器s3c2440 为核心,外围扩展了串口、以太网控制芯片dm9000、显示等模块构建的硬件平台,并在ads1.2 环境下移植c/os-ii,开发相应的驱动程序和应用程序来构建一个嵌入式工业网关软件系统。该系统通过一定的优化和完善可以应用于工业控制系统中。文中给出了系统原理框图和有关程序代码,对系统软件的实现做了阐述,分析了对串口和以太网控制芯片的初始化、发送、接收子程序,以及tcp/ip协议栈和hdlc链路控制协议的部分实现,最后对网关的系统调试做了介绍。关键词:c/os-ii;以太网;tcp/ip协议;以太网控制器abstractwith the development and popularization of ethernet technology, the ethernet technology, which will be used for industrial control at the ground floor of the network, the industrial ethernet direct access to manage, control and communication, has become an inevitable trend. since most of the industrial control equipment is through the field bus and host to exchange data, the distance and transmission reliability by this way of transmission are not very good. so all kinds of field bus equipment through the ethernet connection to the remote is a kind of appropriate method. this paper introduces a design of industry gateway based on 32-bit s3c2440 embedded microcontroller processor. through the data transference between the realization of ethernet and field bus, industrial control system can realize the processing ability of network data, remote control, monitoring, and other functions. system, which is based on 32-bit arm processor s3c2440 embedded microcontroller as its core, expanding the hardware platform including the serial port, ethernet control chip dm9000, and the display module, develops the corresponding drivers and applications to construct a embedded industrial gateway software system, through the way of transplanting the c/os-ii in ads1.2 environment. the system can be applied to the industrial control system through certain optimization and perfection. in this paper, you can see the system block diagram and the program code, then the system software implementation has been discussed, it also has analyzated on serial and ethernet control chip, which includes the ways to initialize, to send, and to receive subroutine, after that it is the partial implementation of the tcp/ip protocol stack and hdlc link control protocol. finally, there will be a introduction of the gateway system debugging. key word:c/os-ii;ethernet;tcp/ip protocols;ethernet control chip 目录第一章 绪论11.1 引言11.2 以太网的发展状况11.3 论文主要内容41.4 论文章节安排4第二章 系统方案设计52.1 系统总体结构52.2 功能结构设计52.2.1 嵌入式数据网关52.2.2 以太网接口62.2.3 现场数据总线6第三章 硬件设计83.1 嵌入式系统硬件总体结构设计83.1.1 嵌入式系统硬件框图83.1.2 嵌入式系统硬件功能设计93.1.3 嵌入式系统硬件体系结构设计93.2 嵌入式处理器芯片113.3 以太网控制器14第四章 软件设计174.1 软件系统模块设计184.2 系统初始化模块设计194.2.1 串口初始化194.2.2 网口初始化194.3 核心操作系统c/os-ii模块204.3.1 c/os-ii嵌入式系统在arm上的移植204.3.2 核心操作系统c/os-ii模块的建立234.3 应用模块设计264.4.1 tcp/ip网络协议处理模块设计264.4.2 以太网驱动模块设计394.4.3 rs-232串口数据收发模块设计41第五章 系统调试445.1 系统调试方法设计445.1.1 系统调试环境的建立和配置445.1.2 硬件配置及连接485.1.3 系统软件调试48第六章 结论与设想53致谢54参考文献55附录a 以太网现场数据通信系统电路图56南京工程学院毕业设计说明书(论文)第一章 绪论1.1 引言以太网技术的最初进展来自于施乐帕洛阿尔托研究中心的许多先锋技术项目中的一个。人们通常认为以太网发明于1973年,当年罗伯特梅特卡夫(robert metcalfe)给他parc的老板写了一篇有关以太网潜力的备忘录。但是梅特卡夫本人认为以太网是之后几年才出现的。在1976年,梅特卡夫和他的助手david boggs发表了一篇名为以太网:局域计算机网络的分布式包交换技术的文章。1977年底,梅特卡夫和他的合作者获得了“具有冲突检测的多点数据通信系统”的专利,多点传输系统被称为csma/cd(带冲突检测的载波侦听多路访问)。从此标志以太网的诞生。计算机和网络技术的发展,引发了以太网(ethernet)的技术变革,随着科技的进步,网络技术得到了飞速的发展,人们对于信息共享度的要求也在不断的提高。随之而来的是,各种家电设备、仪器仪表乃至工业生产的数据采集设备、控制设备在逐步地走向网络化、集成化和自动化,以便利用快捷的网络资源,实现分布式远程监控、信息交换与信息共享。鉴于传统的工业通讯方式现场总线,存在传输距离短、互操作性差、传输速率低等缺点,而在现代大型工业控制系统中,设备除要完成现场工业生产要求外,还有个关键的环节就是数据采集与状态监控,因此,为了实现生产现场的无人值守和远程控制,找到一种便捷有效的方式来解决上述的问题,则成为技术发展的趋势。因此,基于以太网和现场总线技术的应用将越来越广泛。嵌入式系统与网络的日益结合,使在嵌入式实时操作系统中引入tcp/ip协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。而以太网是构筑现代网络的基础,因此基于以太网的嵌入式现场数据网关具有很高的实用价值。1.2 以太网的发展状况以太网(ethernet)指的是由xerox公司创建并由xerox、intel和dec公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用csma/cd(载波监听多路访问及冲突检测)技术,并以10m/s的速率运行在多种类型的电缆上。以太网与ieee8023系列标准相类似。当今世界网络技术的不断提高促进了国民经济的飞速发展,而网络技术与计算机技术相结合也引起工业控制领域技术上的飞跃,现场总线网络在这种背景下发展了起来。很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但tcp/ip协议允许它们互相进行通信。tcp/ip起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展成为计算机之间最常用的组网形式。它是一个真正的开放系统,因为协议族的定义及其多种实现可以不用花钱或花很少的钱就可以公开得到。它成为被称为“全球互联网”或“因特网”的基础,tcp/ip技术不但遍布于全球的家庭、学校、公司、政府机构等,也越来越多的应用于工业控制领域。 工业以太网,宽泛的是指工业控制领域中使用的以太网,他在技术上于商用以太网兼容,在产品设计时,在材质的选用、产品的强度、实用性,以及实用性、可操作性、可靠性和本质安全等方面能满足工业现场的需要。随着互联网技术的发展与普及推广,ethernet技术也得到了迅速的发展,ethernet传输速率的提高和ethernet交换技术的发展,给解决ethernet通信的非确定性问题带来了希望,并使ethernet全面应用于工业控制领域成为可能。由于以太网具有应用广泛、价格低廉、通信速率高、软硬件产品丰富、应用支持技术成熟等优点,目前它已经在工业企业综合自动化系统中的资源管理层、执行制造层得到了广泛应用,并呈现向下延伸直接应用于工业控制现场的趋势。从目前国际、国内工业以太网技术的发展来看,目前工业以太网在制造执行层已得到广泛应用,并成为事实上的标准。未来工业以太网将在工业企业综合自动化系统中的现场设备之间的互连和信息集成中发挥越来越重要的作用。快速以太网与交换式以太网技术的发展,给解决以太网的非确定性问题带来了新的契机,使这一应用成为可能。首先,ethernet的通信速率从10m、100m增大到如今的1000m、10g,在数据吞吐量相同的情况下,通信速率的提高意味着网络负荷的减轻和网络传输延时的减小,即网络碰撞机率大大下降。其次,采用星型网络拓扑结构,交换机将网络划分为若干个网段。ethernet交换机由于具有数据存储、转发的功能,使各端口之间输入和输出的数据帧能够得到缓冲,不再发生碰撞;同时交换机还可对网络上传输的数据进行过滤,使每个网段内节点间数据的传输只限在本地网段内进行,而不需经过主干网,也不占用其它网段的带宽,从而降低了所有网段和主干网的网络负荷。再次,全双工通信又使得端口间两对双绞线(或两根光纤)上分别同时接收和发送报文帧,也不会发生冲突。因此,采用交换式集线器和全双工通信,可使网络上的冲突域不复存在(全双工通信),或碰撞机率大大降低(半双工),因此使ethernet通信确定性和实时性大大提高。 近年来,由于不断增长的视频流量和更强大服务器架构的推动,计算机和网络应用程序对带宽的要求也随之增大。在某些关键的互联网汇接节点,已经有汇接8路10 gbps以太网的网络汇接方案以满足当前带宽需求。很显然,当前的10 gbps以太网并不能满足这些汇接节点的带宽需求。 在2006年7月,ieee802.3工作组成立了一个hssg1(higher speed study group)研究小组,负责调查下一代以太网的需求和要求。hssg的目标是试图确定在未来37年内满足市场的需求的下一代以太网速度。 根据hssg的一项调查结果显示,核心网络(网络汇接)和服务器网络(计算i/o)的带宽增长速率是不同。如图所示:图1.1 以太网带宽需求趋势要保证以太网能够更高效更经济地满足不同应用的需要,ieee802.3起草了下一代以太网技术标准ieee802.3ba,其中包含了40 gbps和100 gbps两种速度,主要针对服务器和网络方面不同的需求。40 gbps主要针对计算应用,而100 gbps则主要针对核心和汇接应用。由于以太网技术的迅猛发展,如何实现一个功能全,可靠性高的以太网网关变得尤为重要,这不仅仅关系到不同体系结构或协议的网络之间进行互通时,还有其提供协议转换、路由选择、数据交换等网络兼容功能的实现,可见一个功能齐全的网关,在以太网和其他网络之间数据交换起到举足轻重的作用。1.3 论文主要内容本课题分为三块来实现,一是以太网现场数据通信系统的硬件结构,包括s3c2440芯片、以太网控制芯片dm9000和rs232、rj45接口。并对硬件整体数据流向做相应的描述。二是系统软件功能模块的设计。主要是s3c2440芯片对串口的控制,以太网控制芯片对以太网数据的帧传输,单片机对数据封包和解包.三是系统调试,包括调试步骤和结果分析。本文所做的主要是针对以arm单片机为硬件平台、基于以太网现场数据通信系统硬件环境下,用arm 编程语言开发实现现场数据在以太网上的传送和控制的软件设计与调试。主要包括系统控制、传输控制、协议数据封包与解包程序。1.4 论文章节安排第一章绪论,简单的介绍了以太网现场数据通信系统的概念、以太网控制网络、工业控制的发展情况。第二章是阐述整个系统的硬件架构,包括以太网技术,tcp/ip参考模型,详细分析以太网帧、ip包、udp包格式,软件通信程序实现方面的总体思路,c /os-ii系统移植方面的知识,包括其内核架构,主要调试环境ads1.2介绍。第三章主要介绍以太网和现场数据网程序的实现,hdlc帧结构,封帧解帧的思路,以太网配置。第四章则是介绍了ads调试环境,程序烧录方法。 第五章主要就本次实验遇到的问题和问题的解决做出一个总结。第二章 系统方案设计2.1 系统总体结构本次系统设计的总体思想是,当rs-232接口收到来自现场总线数据设备的数据,在单片机的控制下,根据tcp/ip分层模型,依次为数据添加udp包头和ip层包头以及数据链路层报头,而后发送这些经过封装的数据报给以太网控制芯片dm9000,由控制芯片dm9000自动给这些数据报添加以太网所需要的相关信息,通过物理接口传送到以太网上。反向同理。数据传送简图如图2.1所示:现场数据网以太网pc终端pc终端数据网关rj45rs232处理核心基于arm处 理 器dm9000s3c2440 图2.1 数据传送简图2.2 功能结构设计 2.2.1 嵌入式数据网关嵌入式网关硬件环境以tq2440开发板为基础,使用的是s3c2440芯片和dm9000以太网控制芯片,实现rj45接口和rs232接口的数据传输。嵌入式单片机型号为三星公司出品的s3c2440单片机,它是一款支持实时仿真和跟踪的16/32位arm920t的risc处理器,处理器时钟高达400mhz,arm920t实现了mmu、amba bus和harvard高速缓冲体系结构,0.13um的cmos标准宏单元和存储器单元,其功耗低,简单,且全静态设计特别适合于对成本和功率敏感型的应用,它采用了新的总线架构,advanced micro controller bus architecture(amba)。2.2.2 以太网接口在以太网端采用dm9000作为网络接口控制器进行网络编程时,主要是通过ads1.2上uc/os-ii的移植实现对dm9000进行控制来实现的。这些控制主要包括对接口芯片的初始化,网络接口芯片的dma读写,及发送和接收网络数据包。其中,发送和接收网络数据主要是对tcp/ip协议栈的处理。 网卡接口中使用了20f001n芯片,20f001n是双绞线驱动/接收器,内部也有2个传输变压器。其作用为隔离网络两边的信号,防止相互干扰和烧坏元件,实现带电的插拔功能。2.2.3 现场数据总线连接智能现场设备和自动化系统的全数字、双向、多站的通信系统。主要解决工业现场的智能化仪器仪表、控制器、执行机构等现场设备间的数字通信以及这些现场控制设备和高级控制系统之间的信息传递问题。在现场数据网端采用rs232接口通信,rs232是个人计算机上的通讯接口之一,由电子工业协会(electronic industries association,eia) 所制定的异步传输标准接口。通常 rs-232 接口以9个引脚 (db-9) 或是25个引脚 (db-25) 的型态出现,一般个人计算机上会有两组 rs-232 接口,分别称为 com1 和 com2。串行通信接口标准经过使用和发展,目前已经有几种。但都是在rs-232标准的基础上经过改进而形成的。所以,以rs-232c为主来讨论。rs-232c标准是美国eia(电子工业联合会)与bell等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在020000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通信设备厂商都生产与rs-232c制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。max232是由德州仪器公司(ti)推出的一款兼容rs232标准的芯片。由于电脑串口rs232电平是-10v +10v,而一般的单片机应用系统的信号电压是ttl电平0 +5v,max232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供tia/eia-232-f电平。第三章 硬件设计3.1 嵌入式系统硬件总体结构设计3.1.1 嵌入式系统硬件框图硬件框图是简单的将每个功能模块列出,也是一个基本的模块组合,可以简洁的每个模块的功能体现出来。其中包括了电源模块,处理模块,串口模块以及网口模块。电源模块主要的用途是负责给整块开发板进行供电,保证每个模块都可以正常工作。处理模块主要的用途是负责协议的转换,数据的处理等,以保障通信的畅通。串口模块以及网口模块主要的用途是负责各网络相关数据信息的收发。硬件框图见图3.1。处理模块串口模块max3232cdm9000s3c2440芯片电源模块网口模块rj45max3232crs232rs232图3.1 硬件框图3.1.2 嵌入式系统硬件功能设计本网关硬件环境以单片机s3c2440芯片和dm9000以太网控制芯片为主,实现rj45接口和rs232接口的数据传输。内容包括硬件环境的初始化,数据的收发控制,封包解包设计,操作系统的移植等。 图3.2 硬件功能框图3.1.3 嵌入式系统硬件体系结构设计一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如sony 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。体系主要组成包括:1. 硬件层硬件层中包含嵌入式微处理器、存储器(sdram、rom、flash等)、通用设备接口和i/o接口(a/d、d/a、i/o等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在rom中。2. 中间层硬件层与软件层之间为中间层,也称为硬件抽象层(hardware abstract layer,hal)或板级支持包(board support package,bsp),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据bsp 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。这里谈到的bsp具有以下两个特点。 硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软 件与硬件平台之间的接口,bsp需要为操作系统提供操作和控制具体硬件的方法。 操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。3. 系统软件层系统软件层由实时多任务操作系统(real-time operation system,rtos)、文件系统、图形用户接口(graphic user interface,gui)、网络系统及通用组件模块组成。rtos是嵌入式应用软件的基础和开发平台。4. 功能层功能层主要由实现某种或某几项任务而被开发运行于操作系统上的程序组成。嵌入式体系结构如图3.3图3.3 嵌入式体系结构框图时下嵌入式和以太网的结合正是一个热点关注问题。主要在智能家居,工业以太网的表现中尤为突出,而嵌入式以太网技术的主要应用领域便是工业控制网络,即工业以太网,具有以太网接口的各种智能化仪器仪表正逐步取代传统的测控设备。嵌入式以太网技术为工业控制网络的发展带来了一个全新的思想和更广阔的领域,它突破了常规的框架,使网络不仅服务于管理层,而且进一步延伸到工业控制现场设备,以实现现场自动化智能设备之间的多点数字通信,形成工厂底层网络系统,完成从最底层到最上层的一体化联网。3.2 嵌入式处理器芯片samsung 公司推出的 16/32 位 risc 处理器 s3c2440 为手持设备和一般类型应用提供了高性价比和高性能的微控制器解决方案。为了降低成本,s3c2440 提供了丰富的内置部件,包括:16kb 指令cache和16kb数据cache,外部存储控制器 sdram,lcd 控制器(最大支持4k色stn和256k色tft),提供1通道lcd专用dma,带4通道dma并带有外部请求引脚,3通道uart(irda1.0,64字节tx fifo,和64字节rx fifo),2通道spi,1通道iic-bus接口(多主支持)。1.2v内核供电,1.8v/2.5v/3.3v存储器供电,3.3v外部i/o供电,具备16k的i-cache和16kdcache/mmu微处理器。图3.4 arm920t系统结构图s3c2440采用了 arm920t 内核,拥有强大的指令集,0.13um 工艺的 cmos 标准宏单元和存储编译器以及一种新的总线结构它采用了新的总线架构,advanced micro controller bus architecture(amba)。它的低功耗精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。s3c2440的杰出特性是它的cpu核,是由arm公司设计的16/32位arm920t risc处理器(400mhz)。它通过提供全面的、通用的片上外设,大大减少了系统电路中除处理器以外的元器件配置,从而最小化系统的成本。arm920t 是arm920tdmi系列中一款通用性的微处理器,由内核、高速缓存和内存管理单元(mmu)组成。支持字节(8位)、半字(16位)、字(32位)3种数据类型,其中,字需要4字节对齐,半字需要2字节对齐。工作于arm状态时,处理器执行32位的,字对齐arm指令。arm920t体系结构将存储器看做是从零地址开始的字节的线性组合。从0字节到3字节存放第一个存储的字数据,从4字节到7字节存放第二个存储的字数据,依次类推。作为32位的微处理器,arm920t体系结构所支持最大的寻址空间是4gb(2332字节),有2种方法存储字数据:大端格式和小端格式。大端格式中字数据的高字节存储在低地址,字数据的低字节存放在高地址;与大端存储格式相反,小端存储格式中,低地址中存放的是字数据的低地址,高地址存放的是字数据的高字节。s3c2440内部结构:图3.5 s3c2440内部结构3.3 以太网控制器dm9000是一款完全集成的和符合成本效益的,单芯片快速以太网mac控制器。它有一个一般处理接口,一个10/100m自适应的phy和4k dword值的sram。它的目的是在低功耗和高性能进程的3.3v与5v的支持宽容,dm9000还提供了介质无关的接口,来连接所有提供支持介质无关接口功能的家用电话线网络设备或其他收发器。该dm9000支持8位,16位和32 -位接口访问内部存储器,以支持不同的处理器。dm9000物理协议层接口完全支持使用10mbps下3类、4类、5类非屏蔽双绞线和100mbps下5类非屏蔽双绞线。这是完全符合ieee 802.3u规格。它的自动协调功能将自动完成配置以最大限度地适合其线路带宽。还支持ieee 802.3x全双工流量控制。这个工作里面dm9000是非常简单的,所以用户可以容易的移植任何系统下的端口驱动程序。 dm9000是一款完全集成的和符合成本效益单芯片快速以太网mac控制器与一般处理接口,一个10/100m自适应的phy和4k dword值的sram。它的目的是在低功耗和高性能进程的3.3v与5v的支持宽容。dm9000内部可分为远程 dma接口、本地 dma接口、mac(介质访问控制)逻辑、数据编码解码逻辑和其他端口。远程 dma接口是指单片机对dm9000内部 ram进行读写的总线,即 isa总线的接口部分。单片机收发数据只需对远程 dma操作。本地 dma接口是把 dm9000与网线的连接通道,完成控制器与网线的数据交换。mac(介质访问控制)逻辑完成以下功能:当单片机向网上发送数据时,先将一帧数据通过远程 dma通道送到dm9000中的发送缓存区,然后发出传送命令;当 dm9000完成了上帧的发送后,再开始此帧的发送。dm9000接收到的数据通过mac比较、crc校验后,由 fifo存到接收缓冲区;收满一帧后,以中断或寄存器标志的方式通知主处理器。fifo逻辑对收发数据作 16字节的缓冲,以减少对本地 dma请求的频率。 网络控制器dm9000选用davicom公司的快速以太网控制处理器,合成了mac,phy,mmu。该处理器配备有标准10 m /100m 自适应,16k 大容量的fifo,4 路多功能gpio,掉电,全双工工作等功能。物理层支持以太网接口协议。由于数据有时是以猝发形式收到的,因此,dm9000 还集成有接收缓冲区,以便在接收到数据时能把数据放到这个缓冲区中,然后由数据链路层直接从该缓冲区里取走数据。链路层通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与电缆的物理接口细节数据,它的缓冲区可用来暂时存储要发送或接收的帧。它完全支持ieee802.3u 规格,支持ieee802.3x 全双工的流控制。网络驱动功能层次如图3.6。dm9000网络驱动程序(struct net device)数据包发送功能子模块(函数dm9000_start_xmit()等)中断处理函数功能子模块(用于数据包的接受,函数dm9000_rx()等)dm9000以太网控制芯片接口操作相关的接口寄存器,如中断控制寄存器等。网络设备接口层网络驱动功能层硬件设备媒体层图3.6 dm9000网络驱动的功能层次dm9000还提供了介质无关的接口,来连接所有提供支持介质无关接口功能的家用电话线网络设备或其他收发器。该dm9000支持8位,16位和32 -位接口访问内部存储器,以支持不同的处理器。对dm9000读写操作,首先对dm9000正确寻址。aen(地址允许)是输入引脚片选信号。sa4sa9是地址总线49位,当aen低且sa9和sa8高,而sa7、sa6、sa5、sa4为低时,则dm9000被选中。dm9000默认i/0基地址为300h。cmd引脚用于设置command模式,cmd为高时,选择数据端口。cmd为低时,选地址端口。数据端口和地址端口的地址码由下式决定:dm9000地址端口=高位片选地址+300h+0h;dm9000数据端口=高位片选地址+300h+4h;dm9000芯片电路引脚见图3.7图3.7 dm9000芯片电路引脚图 第四章 软件设计由现场总线端通过rs232口发送数据到以太网的数据流向,事先约定好hdlc的帧格式和数据传输的波特率。数据通过串口缓冲区和以太网控制芯片缓冲区发送到网上,经过了hdlc解帧,单片机控制封包,添加以太网传输时所需的信息等处理。反之则经过以太网芯片处理,单片机控制解包,hdlc封帧等步骤。最终实现通信可能。系统软件数据流图如下:以太网hdlc协议数据以太网控制芯片中处理以太网信息单片机控制实现 udp、ip包头和链路层报头与数据的封包解包串口缓冲区hdlc解帧封帧crc校验以太网控制芯片缓冲 区图4.1 软件数据流图按协议内容的独立性和数据的存储传输可将软件设计划分为四个模块:串口发送与接收;hdlc协议的实现;单片机控制实现udp协议封包与解包; dm9000芯片对数据传输的控制与处理。系统软件的实现是以c/os-ii操作系统和tcp/ip协议栈在单片机上的移植、实时任务的建立为基础的。而上述各模块的实现主要在于tcp/ip协议栈、dm9000的初始化及收发等内容。所以本节将主要介绍c/os-ii的移植及tcp/ip协议栈、dm9000的相关设计内容。串口发送与接收单片机控制实现udp协议封包与解包dm9000芯片对数据传输的控制与处理 rs232口 rj45口hdlc协议的实现 图4.2 软件功能模块图4.1 软件系统模块设计本次设计中需要实现的是以太网端的ip分组问题,相继的是解决现场数据总线里高级数据链路控制hdlc的封帧和解帧,软件编程实现。首先完成系统的初始化,而后建立了三项任务,分别为以太网接收任务,主要负责接收以太网数据帧,定时任务,完成超时重传,定时传送,协议处理任务,完成tcp/ip协议处理。系统采用模块化编程的思想,将系统软件分成以太网驱动模块,tcp/ip协议处理模块,rs-232串口数据收发模块。模块如图4.3所示: 系统初始化模块 协议处理模块 数据传输模块 图4.3 系统模块(1)以太网驱动模块以太网控制器芯片dm9000的驱动程序。 (2)tcp/ip网络协议处理模块实现tcp/ip协议的一个子集,具体的有arp和udp。arp协议:支持arp请求和arp应答,支持arp高速缓存;udp协议:支持点对点、一点对多点的udp数据包通信。(3)rs-232串口数据收发模块rs-232串口采用中断方式实现对现场总线数据的收发。4.2 系统初始化模块设计在正式创建工程,编译相关实现代码之前,我们需要对系统进行初始化,其中包括对串口、对以太网网口的初始化,地址等进行相关的配置工作,也包括一些所使用到的宏定义。 4.2.1 串口初始化#define rulcon0 (*(volatile unsigned *)0x50000000)/uart 0 line control#define rucon0 (*(volatile unsigned *)0x50000004)/uart 0 control#define rufcon0 (*(volatile unsigned *)0x50000008)/uart 0 fifo control#define rumcon0 (*(volatile unsigned *)0x5000000c)/uart0modem control#define rutrstat0 (*(volatile unsigned *)0x50000010)/uart 0 tx/rx status#define ruerstat0 (*(volatile unsigned *)0x50000014)/uart 0 rx error status#define rufstat0 (*(volatile unsigned *)0x50000018)/uart 0 fifo status#define rumstat0 (*(volatile unsigned *)0x5000001c)/uart 0 modem status#define rubrdiv0 (*(volatile unsigned *)0x50000028)/uart 0 baud rate divisor/little endian#define rutxh0 (*(volatile unsigned char *)0x50000020)/uart 0 transmission hold#define rurxh0 (*(volatile unsigned char *)0x50000024)/uart 0 receive buffer4.2.2 网口初始化#define rextint0 (*(volatile unsigned *)0x56000088)/external interrupt control register 0#define reintmask (*(volatile unsigned *)0x560000a4)/external interrupt mask#define reintpend (*(volatile unsigned *)0x560000a8)/external interrupt pending在初始化所需要的的函数程序后,开始对核心操作系统c/os-ii进行移植。4.3 核心操作系统c/os-ii模块4.3.1 c/os-ii嵌入式系统在arm上的移植为了本系统有更为快速的用户响应,本设计中移植了c/os-ii。c/os-ii是一款完全公开的源代码,具有以下几个特点:(1)可移植性(portable)绝大部分m c/os-ii的源码是用移植性很强的ansi c写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得m c/os-ii便于移植到其他微处理器上。 m c/os-ii可以在绝大多数8位、16位、32位以至64位微处理器、微控制器 、数字信号处理器(dsp)上运行。(2)可固化(romable)m c/os-ii是为嵌入式应用而设计的,这就意味着,只要用户有固化手段(c编译、连接、下载和固化), m c/os-ii可以嵌入到用户的产品中成为产品的一部分。 (3)可裁剪(scalable)可以只使用m c/os-ii中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个m c/os-ii调用,这样可以减少产品中的m c/os-ii所需的存储器空间(ram和rom)。这种可剪裁性是靠条件编译实现的。(4)多任务mc/os-ii可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有56个任务 (5)可确定性 全部m c/os-ii的函数调用与服务的执行时间具有可确定性。 (6)任务栈每个任务有自己单独的栈, m c/os-ii允许每个任务有不同的栈空间,以便压低应用程序对ram的需求。(7)系统服务mc/os-ii提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。 (8)中断管理中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。 (9)稳定性与可靠性 mc/os-ii获得美国航空管理局(faa)的认可,确定可以用于飞行器中。c/os-ii内核介绍:c/os-ii主要有一个内核,只有任务管理和任务调度,无文件系统、界面系统、外设管理系统等。其特点是小巧、源代码公开、注解详细、实时性强、可移植性好、多任务、基于优先级的可剥夺型调度。c/os-ii是专门为单片机嵌入式系统应用而设计的,主体代码用标准的ansic语言编写而成,十分易于移植。c/os-ii 是一种基于优先级的抢占式多 任务实时操作系统, 包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程 大为减化。c/os-ii的内核总共有16个文件,其中11个文件与微处理器类型无关,移植后无需修改,可直接使用;3个文件与cpu类型相关,在移植时需要根据cpu情况进行修改;2个文件与具体应用有关。如图4.4:应用程序 与处理器类型无关的内核代码oscore.c os_flag.cos_mbox.c os_men.cos_mutex.c os_q.cos_sem.c os_task.cc/os-ii.cos_time.c c/os-ii.c 与应用有关的内核配置文件os_cfg.hinclude.h与处理器类型有关的内核代码os_cpu.h os_cpu.asm os_cpu_c.ccpu定时器 软件硬件图4.4 c/os-ii内核文件多任务的并发执行通常依赖于一个多任务操作系统,多任务操作系统的核心是系统调度器,它使用任务控制块(tcb)来管理任务调度功能。tcb用来保存任务的当前状态、优先级、要等待的事件或资源

温馨提示

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

最新文档

评论

0/150

提交评论