嵌入式系统硬件体系结构设计
- 格式:doc
- 大小:250.32 KB
- 文档页数:12
关键字:嵌入式系统设计ARM FPGA多功能车辆总线Multifunction Vehicle Bus 在计算机、互联网和通信技术高速发展的同时,嵌入式系统开发技术也取得迅速发展,嵌入式技术应用范围的急剧扩大.本文介绍了一种基于ARM和FPGA,从软件到硬件完全自主开发多功能车辆总线(Multifunction Vehicle Bus)MVB??B嵌入式系统的设计和实现。
系统设计和实现通常来说,一个嵌入式系统的开发过程如下:1.确定嵌入式系统的需求;2.设计系统的体系结构:选择处理器和相关外部设备,操作系统,开发平台以及软硬件的分割和总体系统集成;3.详细的软硬件设计和RTL代码、软件代码开发;4.软硬件的联调和集成;5.系统的测试。
一、步骤1:确定系统的需求:嵌入式系统的典型特征是面向用户、面向产品、面向应用的,市场应用是嵌入式系统开发的导向和前提。
一个嵌入式系统的设计取决于系统的需求。
1、MVB总线简介列车通信网(Train Communication Network,简称TCN)是一个集整列列车内部测控任务和信息处理任务于一体的列车数据通讯的IEC国际标准(IEC-61375-1), 它包括两种总线类型绞线式列车总线(WTB)和多功能车厢总线(MVB)。
TCN在列车控制系统中的地位相当与CAN总线在汽车电子中的地位。
多功能车辆总线MVB是用于在列车上设备之间传送和交换数据的标准通信介质。
附加在总线上的设备可能在功能、大小、性能上互不相同,但是它们都和 MVB总线相连,通过MVB总线来交换信息,形成一个完整的通信网络.在MVB系统中,根据IEC-61375-1列车通信网标准, MVB总线有如下的一些特点:拓扑结构:MVB总线的结构遵循OSI模式,吸取了ISO的标准。
支持最多4095个设备,由一个中心总线管理器控制。
简单的传感器和智能站共存于同一总线上。
数据类型:MVB总线支持三种数据类型:a.过程数据:过程变量表示列车的状态,如速度、电机电流、操作员的命令。
嵌入式操作系统的通用硬件抽象层设计摘要:基于嵌入式操作系统硬件抽象层理论,设计一种用于嵌入式操作系统内核开发的通用硬件抽象层平台。
通用硬件抽象层能够为嵌入式操作系统内核的设计开发屏蔽硬件平台的特性,提供统一的硬件相关的服务接口,可以使嵌入式操作系统内核的设计开发不依赖于特定的硬件平台,同时开发的嵌入式操作系统内核具有更强的可移植性。
关键词:嵌入式操作系统通用硬件抽象层(HAL)BSP V开发模式引言为了便于操作系统在不同硬件结构上进行移植,美国微软公司首先提出了将底层与硬件相关的部分单独设计成硬件抽象层美国微软公司提出了将操作系统底层与硬件相关的部分单独设计成硬件抽象层HAL(Hardware Abstraction Layer)的思想。
硬件抽象层的引入大大推动了嵌入式操作系统的通用程度,为嵌入式操作系统的广泛应用提供了可能。
然而,目前BSP形式的硬件抽象层仅仅能够解决有限的几种操作系统在同样有限的BSP所支持的硬件平台上的移植,而对绝大多数需要根据不同嵌入式应用而专门定制的嵌入式操作系统来说能起的作用则非常有限。
1 硬件抽象层原理1.1 硬件抽象层概念嵌入式系统是一类特殊的计算机系统。
它自底向上包括3个主要部分:硬件环境、嵌入式操作系统和嵌入式应用程序。
硬件环境是整个嵌入式操作系统和应用程序运行的硬件平台,不同的应用通常有不同的硬件环境;因此如何有效地使嵌入式操作应用于各种不同的应用环境,是嵌入式操作系统发展中所必须解决的关键问题。
硬件抽象层通过硬件抽象层接口向操作系统以及应用程序提供对硬件进行抽象后的服务。
当操作系统或应用程序使用硬件抽象层API进行设计时,只要硬件抽象层API能够在下层硬件平台上实现,那么操作系统和应用程序的代码就可以移植。
这样,原先嵌入式系统的3层结构逐步演化为一种4层结构。
图1显示了引入硬件抽象层后的嵌入式系统的结构。
在整个嵌入式系统设计过程中,硬件抽象层同样发挥着不可替代的作用。
嵌入式系统硬件开发流程1.需求分析:首先需要与客户或项目团队明确嵌入式系统的需求和功能。
根据需求,确定系统的输入输出接口、处理器类型、存储器需求和其他关键硬件组件。
2.系统设计:根据需求分析的结果,开始进行系统设计。
设计包括了整体体系结构的设计、硬件模块的设计以及各模块之间的接口设计。
在这个阶段,还需要确定系统的电源需求、尺寸和外壳设计等。
3.选择硬件平台:根据系统的需求和设计,选择合适的硬件平台。
硬件平台可以是单片机、FPGA、ARM等。
选择硬件平台时需要考虑功耗、性能、成本和开发工具的可用性等方面。
4.硬件原理图设计:根据系统的需求和设计,进行硬件原理图设计。
硬件原理图设计主要包括选择和连接各种硬件模块、设计电源电路和时钟电路等。
在设计过程中,需考虑信号完整性、电磁兼容性和热管理等问题。
5.PCB设计:将硬件原理图转化为PCB设计。
PCB设计包括在PCB上放置元件、连线布局和绘制电源层和地层等。
在设计过程中,还需考虑电磁兼容性和阻抗匹配等问题。
6.PCB制造:将PCB设计文件传输给PCB制造厂商,制造出实际的PCB板。
制造过程包括PCB板材的选择、蚀刻、钻孔、贴片、焊接和检查等。
7.原型测试:制造完成的PCB板与其他硬件模块进行组装,形成嵌入式系统原型。
通过连接电源,测试系统的各个功能和性能是否满足需求。
如发现问题,需要返工或重新设计。
8.硬件调试和优化:对原型进行硬件调试,包括调试电路连接的正确性、性能和稳定性等。
通过对系统的不断调试和优化,确保系统的稳定运行。
9.硬件验证和认证:对已调试和优化的嵌入式系统进行验证和认证。
验证过程包括功能验证、稳定性测试、可靠性测试等。
认证过程可能涉及到特定行业的标准和要求,如电磁兼容性认证等。
10.批量生产:通过验证和认证后,嵌入式系统可以进行批量生产。
在批量生产之前,需确保原材料的供应链和生产工艺的稳定性。
同时,还需考虑生产成本和交货时间等因素。
11.维护和升级:一旦嵌入式系统投入使用,可能会出现问题或有新需求。
嵌入式系统硬件体系结构设计一、嵌入式计算机系统体系结构体系主要组成包括:硬件层中涵盖嵌入式微处理器、存储器(sdram、rom、flash等)、通用设备USB和i/oUSB(a/d、d/a、i/o等)。
在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。
其中操作系统和应用程序都可以固化在rom中。
硬件层与软件层之间为中间层,也称作硬件抽象化层(hardwareabstractlayer,hal)或板级积极支持纸盒(boardsupportpackage,bsp),它将系统上层软件与底层硬件拆分开去,并使系统的底层驱动程序与硬件毫无关系,上层软件开发人员无须关心底层硬件的具体情况,根据bsp层提供更多的USB即可展开研发。
该层通常涵盖有关底层硬件的初始化、数据的输出/输入操作方式和硬件设备的布局功能。
3.系统软件层系统软件层由实时多任务操作系统(real-timeoperationsystem,rtos)、文件系统、图形用户USB(graphicuserinterface,gui)、网络系统及通用型组件模块共同组成。
rtos就是嵌入式应用软件的基础和研发平台。
功能层主要由实现某种或某几项任务而被开发运行于操作系统上的程序组成。
一个嵌入式系统装置通常都由嵌入式计算机系统和继续执行装置共同组成,而嵌入式计算机系统就是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层共同组成。
继续执行装置也称作被控对象,它可以拒绝接受嵌入式计算机系统收到的掌控命令,继续执行所规定的操作方式或任务。
本网关硬件环境以单片机s3c2440芯片和dm9000以太网控制芯片为主,实现rj45接口和rs232接口的数据传输。
内容包括硬件环境的初始化,数据的收发控制,封包解包设计,操作系统的移植等。
硬件框图就是直观的将每个功能模块列举,也就是一个基本的模块女团,可以简约的每个模块的功能彰显出。
嵌入式系统――体系结构、编程与设计嵌入式系统是一种特殊的计算机系统,它被设计用来完成特定的任务。
它通常集成在其他产品或系统中,比如汽车、家电、医疗设备等等。
嵌入式系统的体系结构、编程和设计是关键的方面,决定了系统的性能和功能。
嵌入式系统的体系结构是指系统的硬件组成和组织方式。
嵌入式系统通常采用定制化的硬件设计,与通用计算机系统有所不同。
它们通常具有较小的体积和较低的功耗要求,并且需要满足特定的实时性和可靠性需求。
嵌入式系统的体系结构包括处理器、存储器、外设等组件的选择和组织方式,以及系统的总线结构、中断处理等。
嵌入式系统的编程是指为系统编写软件的过程。
由于嵌入式系统的硬件和软件紧密耦合,编程需要考虑硬件的特性和限制。
常见的嵌入式系统编程语言包括C、C++、汇编等,开发工具包括编译器、调试器等。
在编程过程中,需要理解并利用系统提供的接口和功能来实现所需的功能。
此外,由于嵌入式系统通常对资源有限,编程需要注意优化代码,减小系统的资源占用。
嵌入式系统的设计是指系统功能和性能的设计。
在设计过程中,需要明确系统的需求和目标,并根据需求选择合适的硬件和软件组件。
设计还需要考虑系统的实时性、可靠性和安全性等方面的要求。
此外,设计还需要考虑系统的可维护性和可扩展性,以便在后续的升级和维护过程中更加方便和高效。
嵌入式系统的体系结构、编程和设计是相互关联的,它们共同决定了系统的性能和功能。
在嵌入式系统开发过程中,需要综合考虑这些方面,以满足系统的需求并提供良好的用户体验。
同时,嵌入式系统的开发也需要团队合作,包括硬件工程师、软件工程师、测试工程师等的协同工作。
总结起来,嵌入式系统的体系结构、编程和设计是嵌入式系统开发过程中的关键方面。
通过合理的体系结构设计、优化的编程和精心的系统设计,可以实现嵌入式系统的高性能和丰富的功能,从而满足用户的需求。
嵌入式系统的发展将继续推动物联网、智能家居、智能交通等领域的发展,为人们的生活带来更多的便利和舒适。
嵌入式系统开发的基本流程
嵌入式系统开发的基本流程包括以下几个步骤:
1. 需求分析:明确系统的功能需求,并进行需求分析和规划。
2. 体系结构设计:根据需求分析的结果,设计系统的整体架构和模块划分,确定关键技术和硬件平台。
3. 硬件设计:根据系统的架构设计,选择合适的硬件平台,进行硬件电路设计和布局布线。
4. 软件设计:根据系统的架构设计,设计软件模块的功能和接口,确定软件流程和算法。
5. 软硬件集成:将软件和硬件进行集成调试,确保软硬件之间的相互协作正常。
6. 系统测试:对整个嵌入式系统进行测试,确保系统性能和功能符合要求。
嵌入式系统中软件工作量约占全部工作量的80%,其中测试与验证的工作量占软件工作量的70%。
在复杂系统中,需求分析和系统设计成为系统成功实现的关键,很多分析设计方法被引入到嵌入式系统设计中,包括面向对象方法、设计模式等。
以上是嵌入式系统开发的基本流程,仅供参考,具体实施时可以根据项目需求和实际情况进行调整。
嵌入式系统设计嵌入式系统设计过程概念特性,特征硬件/软件划分硬件组成部分软件组成部分Estimation -Exploration硬件软件设计(S yn t he s is,La y ou t,…)设计(C om pi l at i on,…)验证和评估(尺寸, 功耗, 性能, …)传统软件/硬件开发模型面临的问题Break the wall today!传统设计方法存在的问题z缺少统一的软硬件表示方法z划分依靠先验定义z不能够验证整个系统z通过HW/SW 边界时很难发现不兼容问题z缺少成熟的设计流程z上市时间问题z描述更改变得困难发展过程z软硬件协同设计早期–主要是针对一个特定的硬件如何进行软件开发或根据一个已有的软件实现具体的硬件结构。
z前者是一个经典的软件开发问题–软件性能的好坏不仅仅取决于软件开发人员的技术水平,更有赖于所使用的硬件平台;z后者是一个软件固化的问题–实现的途径可以是采用一个与原有软件平台相同的硬件处理器,并将软件代码存储于存储器当中,也可以是在充分理解软件的内在功能之后完全用硬件来实现软件的功能。
软硬件共同设计能带来什么?z缩短开发周期z取得更好的设计效果z满足苛刻的设计限制z这种平台的推出将不仅包含芯片本身,还必须包含完整的开发系统和典型应用实例,而供应商提供的服务和技术支持也当然要成为产品不可分割的一部分。
目标和需求z统一的设计方法z执行独立z设计/执行验证z自动软件,硬件,接口合成商业应用z Research(研究)–CADLab, SIR/CASTLE (Germany), Chinook,COSMOS, COSYMA, CoWare, DICE,COMET, LYCOS (Denmark), POLIS,Ptolemy, Riley, TOSCA, AKKA, CODES,VIOOL, COOL…z Commercial(商业)–ArchGen(Synergy System Design, Inc.),Mentor Graphics, Synopsys, Synthesia->Cadence, Co-design Automation->Synopsys, Celoxica, CoWare, etc.缺点z典型的手动划分(manual Partition )z固定应用领域(carefully very specialized) z逐渐增长的评估需求支持很弱(no abstractmodels)z主要强调性能z模型的连贯性在设计重用中不被支持z商业系统更强调协同验证(co-verification)方面(more achievable goal)软硬件协同设计定义z软硬件协同设计定义–The meeting of system-level objectives byexploiting the trade-offs between hardware and software in a system through their concurrentdesign–软硬件共同设计目的是为硬件和软件的协同描述,验证和综合提供一种集成环境。
《嵌入式系统设计》教学大纲嵌入式系统设计是计算机科学与技术领域的一个重要分支,主要研究如何设计和开发嵌入在其他设备或系统中的计算机系统。
嵌入式系统设计涉及到硬件和软件的相互协作,涵盖了多个学科和技术领域,包括计算机体系结构、操作系统、嵌入式软件开发、嵌入式系统测试等。
本课程将对嵌入式系统设计的相关知识和技能进行系统的讲解和实践操作,旨在培养学生的嵌入式系统设计与开发能力。
一、课程目标1.了解嵌入式系统的概念、特点、应用领域和发展趋势;2.掌握嵌入式系统设计的基本原理和方法;3.学习使用常见的嵌入式系统设计工具和开发环境;4.培养嵌入式系统设计与开发能力,能够独立完成基本的嵌入式系统设计项目。
二、教学内容第一章嵌入式系统概论1.嵌入式系统的概念和特点2.嵌入式系统的应用领域和发展趋势3.嵌入式系统设计的基本要求和步骤第二章嵌入式系统硬件设计1.嵌入式系统的硬件平台和体系结构2.嵌入式系统的处理器选择和嵌入式开发板3.嵌入式系统的外设接口和通信接口设计4.嵌入式系统的电源和封装设计第三章嵌入式系统软件设计1.嵌入式系统开发环境和常用软件工具2.嵌入式系统的软件开发过程和方法3.嵌入式系统的软件编程语言和开发框架4.嵌入式系统的操作系统选择和驱动程序开发第四章嵌入式系统测试与调试1.嵌入式系统的测试原理和策略2.嵌入式系统的测试工具和方法3.嵌入式系统的调试技术和工具4.嵌入式系统的性能调优和优化方法三、教学方法1.理论授课:通过讲解嵌入式系统的相关概念、原理和方法,培养学生的理论知识;2.实践操作:通过实验和实际项目,让学生亲自动手操作和实践,加深对嵌入式系统设计的理解和掌握;3.讨论交流:通过小组讨论和大班互动,促进学生之间的交流和合作,共同解决问题;4.课程项目:学生可以选择一个与嵌入式系统设计相关的项目进行深入研究和实践,提高综合应用能力。
四、考核方式1.平时成绩:包括课堂表现、实验报告和讨论参与等;2.期末考试:对理论知识的掌握程度进行考核;3.课程项目:对学生的综合能力进行考核;4.考勤情况:根据学生的出勤情况进行评定。
冯诺依曼体系结构的计算机硬件系统冯诺依曼体系结构(von Neumann architecture)是计算机硬件系统的一种设计架构,由物理硬件和执行指令的控制逻辑组成。
它是现代计算机体系结构的基础,被广泛使用于今天的大部分计算设备,包括个人电脑、服务器以及嵌入式系统等。
冯诺依曼体系结构的核心思想是将数据和指令以二进制形式存储在计算机的主存储器中,并通过读取和执行指令来进行计算和操作。
这种架构通过引入存储程序的概念,将计算机的控制逻辑与数据处理分离,实现了可编程的通用计算机。
1.存储程序:冯诺依曼体系结构中,指令和数据以相同的方式存储在主存储器中,可以被按需读取。
这种存储程序的概念为计算机的灵活性和可编程性打开了大门,使得计算机能够根据存储在主存储器中的程序来执行各种不同的任务。
2.单一总线:冯诺依曼体系结构使用一个总线来连接主存储器、CPU和其他外部设备。
这种简单而统一的连接方式为计算机的构建和扩展提供了便利,同时也使得数据和指令的读取和传输可以高效完成。
3. 存储器与处理器的分离:冯诺依曼体系结构中,主存储器和处理器是分开的。
处理器通过指令寄存器(Instruction Register)读取存储器中的指令,并根据指令的操作码完成相应的操作。
这种分离使得存储器和处理器可以独立进行升级和改进,提高了系统的可扩展性和灵活性。
4.顺序执行:冯诺依曼体系结构中,指令是按照顺序依次执行的。
每次指令执行完成后,计算机会自动地按顺序读取下一条指令。
这种顺序执行的方式简化了计算机的设计和控制,减少了复杂度,并为流水线等指令并行技术的实现提供了基础。
冯诺依曼体系结构的设计思想和基本原则为计算机系统的发展提供了基础。
然而,随着计算机技术的进步,冯诺依曼体系结构也逐渐显露出一些局限性,如存储墙和冯诺依曼瓶颈等问题。
因此,近年来也出现了一些对冯诺依曼体系结构的扩展和改进,如哈佛体系结构和数据流体系结构等。
总之,冯诺依曼体系结构是一种经典的计算机硬件系统设计架构,它为计算机的发展提供了重要的基础和指导。
一、嵌入式计算机系统体系结构
体系主要组成包括:
1. 硬件层
硬件层中包含嵌入式微处理器、存储器(SDRAM 、ROM 、Flash 等)、通用设备接口和I/O 接口(A/D 、D/A 、I/O
等)。
在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。
其中操作系统和应用程序都可以固化在ROM 中。
软件层功能层
2. 中间层
硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。
该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。
3. 系统软件层
系统软件层由实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。
RTOS是嵌入式应用软件的基础和开发平台。
4. 功能层
功能层主要由实现某种或某几项任务而被开发运行于操作系统上的程序组成。
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成,而嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。
执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。
硬件的设计
本网关硬件环境以单片机S3C2440芯片和DM9000以太网控制芯片为主,
实现RJ45接口和RS232接口的数据传输。
内容包括硬件环境的初始化,数据的收发控制,封包解包设计,操作系统的移植等。
硬件框图
硬件框图是简单的将每个功能模块列出,也是一个基本的模块组合,可以简洁的每个模块的功能体现出来。
其中包括了电源模块,处理模块,串口模块以及网口模块。
电源模块主要的用途是负责给整块开发板进行供电,保证每个模块都可以正常工作。
处理模块主要的用途是负责协议的转换,数据的处理等,以保障通信的畅通。
串口模块以及网口模块主要的用途是负责各网络相关数据信息的收发。
硬件框图
处理模块
串口模块
MAX3232C DM9000
S3C2440芯片
电源模块
网口模块 RJ45 MAX3232C
RS232RS232
硬件功能框图
时下嵌入式和以太网的结合正是一个热点关注问题,而嵌入式以太网技术的主要应用领域便是工业控制网络,即工业以太网,具有以太网接口的各种智能化仪器仪表正逐步取代传统的测控设备。
元件介绍
1、嵌入式处理器芯片S3C2440
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内部结构:
S3C2440内部结构
2、以太网控制器DM9000
DM9000是一款完全集成的和符合成本效益的,单芯片快速以太网MAC 控制器。
它有一个一般处理接口,一个10/100M自适应的PHY和4K DWORD 值的SRAM。
它的目的是在低功耗和高性能进程的3.3V与5V的支持宽容,DM9000还提供了介质无关的接口,来连接所有提供支持介质无关接口功能的家用xx线网络设备或其他收发器。
该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选用DAVI公司的快速以太网控制处理器,合成了MAC,PHY,MMU。
该处理器配备有标准10 M /100M 自适应,16K 大容量的FIFO,4 路多功能GPIO,掉电,全双工工作等功能。
物理层支持以太网接口协议。
由于数据有时是以猝发形式收到的,因此,DM9000 还集成有接收缓冲区,以便在接收到数据时能把数据放到这个缓冲区中,然后由数据链路层直接从该缓冲区里取走数据。
链路层通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与电缆的物理接口细节数据,它的缓冲区可用来暂时存储要发送或接收的帧。
它完全支持IEEE802.3u 规格,支持IEEE802.3x 全双工的流控制。
网络驱动功能层次如图3.6。
DM9000网络驱动的功能层次
DM9000还提供了介质无关的接口,来连接所有提供支持介质无关接口功能的家用xx线网络设备或其他收发器。
该DM9000支持8位,16位和32 -位接口访问内部存储器,以支持不同的处理器。
对DM9000读写操作,首先对DM9000正确寻址。
AEN(地址允许)是输入引脚片选信号。
SA4~SA9是地址总线4~9位,当AEN低且SA9和SA8高,而SA7、SA6、SA5、SA4为低时,则DM9000被选中。
DM9000默认I/0基地址为300H。
CMD引脚用于设置MAND模式,CMD为高时,选择数据端口。
CMD为低时,选地址端口。
数据端口和地址端口的地址码由下式决定:
DM9000地址端口=高位片选地址+300H+0H;
DM9000数据端口=高位片选地址+300H+4H;
DM9000芯片电路引脚见图:
DM9000芯片电路引脚图
二、系统软件数据流程
由现场总线端通过RS232口发送数据到以太网的数据流向,事先约定好HDLC的帧格式和数据传输的波特率。
数据通过串口缓冲区和以太网控制芯片缓冲区发送到网上,经过了HDLC解帧,单片机控制封包,添加以太网传输时所需的信息等处理。
反之则经过以太网芯片处理,单片机控制解包,HDLC封帧等步骤。
最终实现通信可能。
系统软件数据流图如下:
软件数据流图
按协议内容的独立性和数据的存储传输可将软件设计划分为四个模块:串口发送与接收;HDLC协议的实现;单片机控制实现UDP协议封包与解包;DM9000芯片对数据传输的控制与处理。
软件功能模块图。