多处理器赋能:LonWorks网络控制节点的创新设计与深度剖析_第1页
多处理器赋能:LonWorks网络控制节点的创新设计与深度剖析_第2页
多处理器赋能:LonWorks网络控制节点的创新设计与深度剖析_第3页
多处理器赋能:LonWorks网络控制节点的创新设计与深度剖析_第4页
多处理器赋能:LonWorks网络控制节点的创新设计与深度剖析_第5页
已阅读5页,还剩27页未读, 继续免费阅读

下载本文档

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

文档简介

多处理器赋能:LonWorks网络控制节点的创新设计与深度剖析一、引言1.1研究背景与意义1.1.1研究背景随着信息技术的飞速发展,现场总线技术在工业自动化和楼宇自动化等领域得到了广泛应用。现场总线作为一种连接现场设备和控制系统的通信网络,能够实现设备之间的实时数据传输和协同工作,极大地提高了生产效率和系统的可靠性。在众多现场总线技术中,LonWorks技术凭借其独特的优势脱颖而出,成为工业和楼宇自动化领域的重要选择。LonWorks技术由美国Echelon公司于20世纪90年代初推出,它采用了ISO/OSI模型的全部7层通讯协议,是在现场总线中唯一提供全部服务的现场总线。该技术具有优秀的互操作性、开放性以及强大的分布式处理能力,能够使用一对简单的双绞线给现场设备供电,并传输现场设备与控制室之间的通信信号。在一个LonWorks控制网络中,智能控制设备(节点)使用同一个通信协议与网络中的其它节点通信,每个节点都包含内置的智能来完成协议的监控功能。一个LonWorks控制网络可以有3个到30000个或更多的节点,涵盖了传感器功能(如温度、压力等)、执行器功能(如开关、调节阀、变频驱动等)、操作接口(如显示、人机界面等)以及控制功能(如新风机组、VAV等)。由于不需要像传统控制系统中的中央控制器,LonWorks分布式控制技术显示出很高的系统可靠性和系统响应,并且降低了系统的成本和运行费用。在LonWorks控制网络中,通常使用基于Neuron芯片的LonWorks网络控制节点来管理众多的控制对象。然而,Neuron芯片本身计算处理能力较弱,难以满足日益复杂多样的应用环境的需求。例如,在一些对数据处理速度和精度要求较高的工业自动化场景中,如高速生产线的实时监控与控制、复杂工艺过程的优化控制等,Neuron芯片的处理能力就显得捉襟见肘;在楼宇自动化领域,随着智能建筑的发展,对各种设备的集成控制和智能化管理需求不断增加,如智能照明系统需要根据环境光线和人员活动情况进行精确的调光控制,空调系统需要实现高效的节能运行和智能的温度调节,Neuron芯片也难以满足这些复杂的控制需求。因此,如何在利用Neuron芯片强大通信功能的前提下,充分发挥网络控制节点的控制功能,成为了亟待解决的问题。1.1.2研究意义本研究设计基于多处理器结构的LonWorks网络控制节点,具有重要的理论和实际意义。从理论层面来看,多处理器结构在计算机体系结构和分布式系统领域一直是研究的热点。将多处理器结构引入LonWorks网络控制节点,能够为控制网络领域的研究提供新的思路和方法。通过对多处理器之间的协同工作机制、任务分配策略以及通信方式的深入研究,可以进一步丰富和完善控制网络的理论体系,为后续的相关研究奠定坚实的基础。从实际应用角度而言,多处理器结构能够显著提升LonWorks网络控制节点的性能。主处理器具有强大的控制功能,可以弥补Neuron芯片控制能力弱的缺点,使节点能够更高效地处理复杂的控制任务。例如,在工业自动化中,能够实现对生产过程的精确控制和优化,提高产品质量和生产效率;在楼宇自动化中,可以实现对各种设备的智能化管理和节能运行,提升用户的舒适度和满意度。同时,利用Neuron芯片的通信功能,可将设计的网络控制节点很好地融入LonWorks控制网络中,确保了系统的兼容性和稳定性。这不仅有助于推动LonWorks技术在工业和楼宇自动化等领域的更广泛应用,还能促进相关产业的技术升级和发展,提高企业的竞争力,具有显著的经济效益和社会效益。1.2国内外研究现状在国外,对LonWorks网络控制节点及多处理器结构应用的研究开展较早且取得了丰硕成果。美国、欧洲等发达国家和地区的科研机构和企业在这一领域投入了大量资源,进行了深入的研究和实践。例如,美国Echelon公司作为LonWorks技术的开发者,不断对其进行改进和完善,推出了一系列基于LonWorks技术的产品和解决方案,并在工业自动化、楼宇自动化、交通运输等多个领域得到了广泛应用。同时,一些高校和科研机构也对LonWorks网络控制节点的性能优化、多处理器结构的应用等方面进行了研究,提出了许多创新性的方法和技术。在国内,随着工业自动化和楼宇智能化的快速发展,对LonWorks技术的研究和应用也日益受到重视。众多高校和科研机构积极开展相关研究工作,在LonWorks网络控制节点的设计、开发以及多处理器结构的应用等方面取得了一定的进展。例如,一些研究团队通过对主从处理器之间通信方式的改进,提高了数据传输的效率和可靠性;还有一些团队在节点的硬件设计和软件编程方面进行了优化,增强了节点的功能和稳定性。此外,国内企业也在不断加大对LonWorks技术的应用和推广力度,将其应用于智能建筑、工业控制系统等领域,取得了良好的效果。然而,目前国内外的研究仍存在一些不足之处。例如,在多处理器结构的优化设计方面,如何进一步提高处理器之间的协同工作效率,降低系统的复杂度和成本,仍然是需要深入研究的问题;在网络控制节点的可靠性和安全性方面,虽然已经采取了一些措施,但在面对复杂多变的应用环境时,仍有待进一步加强。因此,对基于多处理器结构的LonWorks网络控制节点的研究具有重要的理论和实际意义,有望在现有研究的基础上取得新的突破。1.3研究内容与方法本研究主要围绕基于多处理器结构的LonWorks网络控制节点的硬件和软件设计展开。在硬件设计方面,选用高性能的主处理器,如ATmega128芯片,利用其丰富的片内资源和数量众多的可编程I/O端口,设计外部控制电路,以实现对各种现场设备的有效控制。从处理器选择Lon控制模块,该模块内的Neuron芯片具有强大的通信功能,能够将网络控制节点很好地接入LonWorks控制网络中。通过合理设计主从处理器之间的接口电路,确保两者之间能够高效、稳定地进行数据传输和协同工作。在软件设计方面,采用模块化的程序设计思路,为网络控制节点设计众多常用的控制功能。例如,设计人机交互平台,方便用户对节点进行操作和监控;实现数据存储及安全验证功能,确保数据的安全性和可靠性;开发数据通信模块,实现节点与LonWorks控制网络以及其他设备之间的数据传输。同时,对主从处理器之间的通信进行优化,采用双口RAM芯片完成数据交换,有效解决因时钟不同步而存在的数据传输问题,并通过设定软件规约的方法,解决主从处理器对双口RAM器件进行操作时的读写冲突和写写冲突问题。本研究采用了多种研究方法。首先是文献研究法,通过广泛查阅国内外相关的学术文献、技术报告和专利等资料,了解LonWorks技术、多处理器结构以及网络控制节点设计等方面的研究现状和发展趋势,为研究提供理论基础和技术参考。其次是实验研究法,搭建实验平台,对设计的基于多处理器结构的LonWorks网络控制节点进行硬件调试和软件测试,通过实验数据验证节点的性能和功能,并对实验结果进行分析和总结,不断优化设计方案。此外,还运用了对比分析法,将基于多处理器结构的LonWorks网络控制节点与传统的基于Neuron芯片的节点进行对比,从硬件设计、软件设计以及实际应用等方面进行比较,突出本研究设计的节点的优势和特点。二、LonWorks网络技术基础2.1LonWorks技术概述LonWorks(LocalOperatingNetworks)技术是美国Echelon公司于1991年推出的一种具有开放性、互操作性的分布式控制网络技术,被誉为“局部操作网”。该技术以其卓越的性能和广泛的适用性,在工业自动化、楼宇自动化、交通运输以及水务工程等众多领域得到了广泛应用。LonWorks技术的核心是神经元芯片(NeuronChip),这是一种高度集成的芯片,内部集成了三个8位处理器,分别用于执行用户应用程序、通信协议和网络监控功能,从而实现高效、实时的数据传输与设备控制。神经元芯片采用CMOSCLSI技术,使得构建低成本的控制网络成为可能。芯片内的第一个CPU为介质访问控制处理器,负责处理LonTalk协议的第一层和第二层;第二个CPU为网络处理器,实现LonTalk协议的第三层至第六层;第三个CPU为应用处理器,实现LonTalk协议的第七层,执行用户编写的代码及用户代码所调用的操作系统服务。LonWorks技术采用LonTalk通信协议,该协议遵循国际标准化组织(ISO)的OSI七层网络模型,这是LON总线最突出的特点。LonTalk协议通过神经元芯片上的硬件和固件实现,提供介质存取、事务确认和点对点通信服务,还具备优先级传输、冲突避免和自动重发等功能,确保了数据传输的稳定性和可靠性。此外,该协议支持双绞线、电力线、无线射频、光纤、同轴电缆、红外线等多种通信介质,并且在同一网络中可以混合使用多种通信媒介,极大地提高了网络部署的灵活性。例如,在工业自动化场景中,对于环境较为恶劣、干扰较大的区域,可以选择抗干扰能力强的光纤作为通信介质;而在一些对布线要求不高、需要灵活部署的场合,则可以采用无线射频进行通信。在网络拓扑方面,LonWorks技术支持总线形、星形、环形以及自由形等多种结构,可实现自由组合,用户可以根据实际应用需求选择最合适的拓扑结构。在楼宇自动化系统中,对于楼层分布较为集中的建筑,可以采用总线形拓扑结构,将各个节点连接在一条总线上,这种结构布线简单、成本较低;而对于一些对可靠性要求较高的系统,如机场的监控系统,可以采用环形拓扑结构,当某个节点出现故障时,数据可以通过其他路径传输,保证系统的正常运行。LonWorks技术还采用了面向对象的设计方法,通过网络变量把网络通信的设计简化为参数设置,大大缩短了产品开发周期。网络变量可以是任何单个数据项也可以是结构体,它使不同节点之间的通信变得更加简单和可靠。例如,在一个智能建筑的控制系统中,温度传感器节点可以将采集到的温度数据通过网络变量发送给空调控制器节点,空调控制器节点根据接收到的温度数据来调整空调的运行状态,实现对室内温度的自动控制。2.2LonWorks网络控制节点2.2.1节点的功能与作用LonWorks网络控制节点是LonWorks网络中的关键组成部分,它在整个网络系统中承担着数据采集、控制和通信等重要功能。在数据采集方面,控制节点能够连接各种类型的传感器,如温度传感器、压力传感器、湿度传感器等,实时获取现场的物理量数据。以工业生产中的温度监测为例,控制节点通过与温度传感器相连,能够精确采集生产过程中的温度信息,为后续的控制决策提供准确的数据支持。这些采集到的数据经过节点内部的处理和转换,将模拟信号转换为数字信号,以便于后续的传输和处理。控制功能是网络控制节点的核心功能之一。节点根据预先设定的控制策略和接收到的数据,对执行器进行精确控制。在楼宇自动化系统中,控制节点可以根据室内的温度、湿度等环境参数,控制空调、通风设备的运行状态,实现对室内环境的智能调节;在工业自动化领域,控制节点能够控制电机的启动、停止、转速等,确保生产设备的稳定运行。通过对执行器的有效控制,实现对生产过程或环境的精确调控,提高系统的效率和性能。通信功能是网络控制节点实现与其他节点和设备之间数据交互的重要手段。控制节点通过内置的Neuron芯片和LonTalk协议,能够与网络中的其他节点进行可靠的通信。它可以将采集到的数据发送给其他节点,也可以接收来自其他节点的控制指令和数据。在一个大型的智能工厂中,各个生产环节的控制节点通过通信功能相互协作,实现生产过程的自动化和智能化管理。节点之间的通信可以采用多种方式,如网络变量、显式消息等,以满足不同应用场景的需求。网络变量通信方式简单高效,适用于数据量较小、实时性要求较高的场景;显式消息通信方式则更加灵活,适用于数据量较大、需要进行复杂数据处理的场景。2.2.2传统节点的结构与局限性传统的LonWorks网络控制节点通常基于Neuron芯片构建,其结构相对简单。以基于Neuron芯片的节点为例,主要由Neuron芯片、传感器、控制设备、收发器和电源等部分组成。Neuron芯片作为节点的核心,不仅负责通信协议的处理,还承担着一定的控制功能。它内部集成的三个CPU分别用于实现介质访问控制、网络通信和用户应用程序的执行。传感器负责采集现场的物理量数据,如温度、压力等,并将其转换为电信号传输给Neuron芯片;控制设备则根据Neuron芯片的控制指令,对外部设备进行控制,如驱动电机、调节阀门等;收发器用于实现节点与网络之间的物理连接,将节点产生的电信号转换为适合在网络中传输的信号形式,并将接收到的网络信号转换为节点能够处理的电信号;电源则为整个节点提供所需的电能。然而,这种基于Neuron芯片的传统节点在面对日益复杂的应用环境时,逐渐暴露出一些局限性。首先,Neuron芯片本身的计算处理能力较弱。随着工业自动化和楼宇自动化等领域的发展,对控制节点的计算能力要求越来越高。在一些需要进行复杂数据处理和分析的场景中,如工业生产过程中的优化控制、智能建筑中的能源管理等,Neuron芯片难以满足实时性和精度的要求。例如,在工业生产中,需要对大量的生产数据进行实时分析和处理,以优化生产过程、提高产品质量,传统的Neuron芯片由于计算能力有限,无法快速完成这些复杂的计算任务,导致控制决策的延迟,影响生产效率和产品质量。其次,传统节点的资源有限。Neuron芯片内部的存储器容量较小,难以存储大量的程序代码和数据。在一些应用场景中,需要节点存储大量的历史数据用于数据分析和故障诊断,或者运行复杂的算法以实现更高级的控制功能,传统节点的资源限制使得这些需求难以满足。在智能建筑的能源管理系统中,需要节点存储长时间的能耗数据,以便分析能源使用情况、制定节能策略,但传统节点由于存储器容量不足,无法存储足够的历史数据,限制了能源管理系统的功能实现。此外,传统节点的扩展性较差。由于其硬件结构和软件架构的限制,在需要增加新的功能或连接更多的设备时,往往需要对节点进行较大的改动,这不仅增加了开发成本和时间,还降低了系统的可靠性。在工业自动化生产线中,随着生产工艺的改进和产品种类的增加,可能需要在控制节点上添加新的传感器或执行器,以实现更精确的控制,但传统节点的扩展性不足,使得这种升级改造变得困难重重。综上所述,传统基于Neuron芯片的LonWorks网络控制节点在计算处理能力、资源和扩展性等方面存在的局限性,已经成为制约其在复杂应用场景中广泛应用的瓶颈,因此需要探索新的节点结构来克服这些问题。三、多处理器结构的设计原理3.1多处理器结构的优势多处理器结构在LonWorks网络控制节点中具有显著的优势,主要体现在提升处理能力、增强功能扩展性和提高系统可靠性等方面。在处理能力上,传统的基于Neuron芯片的LonWorks网络控制节点,由于Neuron芯片本身计算处理能力较弱,难以满足日益复杂的应用需求。而多处理器结构通过引入高性能的主处理器,如ATmega128等,与从处理器(如包含Neuron芯片的Lon控制模块)协同工作,能够显著提升节点的处理能力。主处理器强大的运算能力可以快速处理大量的数据和复杂的算法,从而实现对各种现场设备的精确控制和高效管理。在工业自动化生产线上,需要对生产过程中的各种参数进行实时监测和调整,多处理器结构的控制节点能够快速处理传感器采集到的大量数据,并根据预设的控制策略及时调整执行器的动作,确保生产过程的稳定和高效。从功能扩展性来看,多处理器结构为LonWorks网络控制节点提供了更广阔的发展空间。主处理器丰富的片内资源和数量众多的可编程I/O端口,使其能够方便地连接各种外部设备,实现更多样化的功能。通过连接不同类型的传感器和执行器,节点可以实现对温度、压力、湿度等多种物理量的监测和控制,还可以实现对电机、阀门等设备的精确驱动。此外,主处理器还可以运行复杂的算法和程序,如数据处理算法、智能控制算法等,进一步拓展节点的功能。在智能建筑中,多处理器结构的控制节点可以集成更多的功能模块,如安防监控、能源管理、环境监测等,实现对建筑物的全方位智能化管理。在系统可靠性方面,多处理器结构具有更好的容错能力。当其中一个处理器出现故障时,其他处理器可以继续承担部分或全部的工作任务,确保系统的基本功能不受影响。在工业控制系统中,如果某个控制节点的主处理器出现故障,从处理器(如Lon控制模块)可以继续维持与网络的通信,并执行一些简单的控制任务,保证生产过程不会因为节点故障而中断。这种容错机制提高了系统的可靠性和稳定性,降低了系统维护成本和停机时间,对于一些对可靠性要求较高的应用场景,如电力系统监控、医疗设备控制等,具有重要的意义。3.2处理器选型与配置3.2.1主处理器的选择主处理器在基于多处理器结构的LonWorks网络控制节点中扮演着核心角色,其性能和资源直接影响着节点的整体功能和性能。在众多可选择的芯片中,ATmega128是一款非常适合作为主处理器的芯片,它具有一系列突出的性能和资源特点,能够满足复杂应用场景的需求。ATmega128属于AVRRISC架构,拥有133条指令,并且大多数指令可在单个时钟周期内执行,这使得它具有高速的运算能力。在16MHz的时钟频率下,其运行速度可达16MIPS(百万指令每秒),能够快速处理各种数据和任务。这种高速处理能力对于需要实时响应的应用场景至关重要,如工业自动化中的实时控制、智能建筑中的快速数据处理等。在工业生产线上,需要对传感器采集到的大量数据进行实时分析和处理,以实现对生产过程的精确控制,ATmega128的高速运算能力可以确保数据能够得到及时处理,从而保证生产过程的高效运行。该芯片还具备丰富的存储资源。它拥有128KB的系统内可编程Flash内存,用于存储程序代码,支持10,000次的写/擦除耐久性,并且设有独立的锁定位和可选的启动代码区,这为程序的存储和更新提供了便利和安全性。4KB的EEPROM内存适用于存储配置信息或用户数据,具有100,000次的写/擦除寿命,可用于保存一些重要的参数和数据。此外,还有4KB的内部SRAM供程序运行时临时存储数据使用,能够满足程序运行过程中对数据存储的需求。在智能建筑控制系统中,需要存储大量的设备配置信息和用户设置,ATmega128的存储资源能够很好地满足这些需求,确保系统的稳定运行。ATmega128还拥有丰富的外设功能。它配备了多个定时器/计数器,包括8位和16位的,支持预分频器和比较器,以及PWM输出,可用于实现各种定时、计数和电机控制等功能。8路10位ADC提供多种输入选项,包括单端、差分和可编程增益的差分通道,能够精确采集各种模拟信号。此外,它还包含两个两线接口、两个串行USART,可工作于主机/从机模式的SPI接口,以及一个可编程看门狗定时器和一个片内模拟比较器,这些丰富的外设接口使得它能够方便地与各种外部设备进行通信和交互。在工业自动化领域,需要与各种传感器、执行器和其他设备进行通信,ATmega128的丰富外设接口能够满足这些通信需求,实现对生产过程的全面监控和控制。3.2.2从处理器的选择从处理器在基于多处理器结构的LonWorks网络控制节点中同样起着不可或缺的作用,它与主处理器协同工作,共同实现节点的各项功能。在众多可选的从处理器中,Lon控制模块是一种常见且有效的选择,其内部的Neuron芯片具有强大的通信功能,能够将网络控制节点很好地接入LonWorks控制网络中。Lon控制模块内的Neuron芯片采用CMOSCLSI技术,内部集成了三个8位处理器,这三个处理器分工明确,协同工作,使得Neuron芯片具备了强大的通信处理能力。第一个CPU为介质访问控制处理器,负责处理LonTalk协议的第一层和第二层,主要实现数据链路层的功能,包括介质访问控制、数据帧的封装和解封装等,确保数据能够在物理介质上可靠传输。第二个CPU为网络处理器,实现LonTalk协议的第三层至第六层,负责网络层、传输层和会话层的功能,如网络地址的管理、数据的路由选择、传输连接的建立和维护等,保障了数据在网络中的准确传输。第三个CPU为应用处理器,实现LonTalk协议的第七层,执行用户编写的代码及用户代码所调用的操作系统服务,完成应用层的功能,如网络变量的处理、应用程序的执行等,使得节点能够与其他设备进行有效的通信和交互。在与主处理器的协作方面,主处理器主要负责处理复杂的控制任务和数据处理工作,利用其强大的计算能力和丰富的资源,实现对现场设备的精确控制和管理。而Lon控制模块则专注于通信功能,通过Neuron芯片实现与LonWorks控制网络中其他节点的通信,将主处理器处理后的数据发送到网络中,同时接收来自网络的指令和数据,并传递给主处理器进行进一步处理。在一个智能建筑的控制系统中,主处理器负责根据室内温度、湿度等环境参数控制空调、通风设备的运行状态,而Lon控制模块则将这些控制数据发送到LonWorks网络中,与其他相关节点进行通信,实现整个建筑的智能化控制。两者之间通过合理的分工和协作,充分发挥各自的优势,提高了节点的整体性能和功能。3.3节点内总线设计3.3.1总线结构类型在基于多处理器结构的LonWorks网络控制节点中,总线作为连接各个处理器和外部设备的关键通道,其结构类型的选择对节点的性能和功能有着重要影响。常见的总线结构类型包括并行总线和串行总线,它们在多处理器节点中都有各自的应用场景和特点。并行总线结构是一种较为传统的总线类型,它在多根数据线上同时传输多个数据位,数据以字节或字为单位进行传输。并行总线具有数据传输速度快的显著优势,因为多个数据位可以同时传输,大大提高了数据的传输速率。在一些对数据传输速度要求较高的应用场景中,如高速数据采集系统,并行总线能够快速地将传感器采集到的数据传输给处理器进行处理,确保数据的实时性。并行总线的硬件实现相对简单,其逻辑结构较为直观,易于设计和调试。然而,并行总线也存在一些局限性。由于需要多根数据线同时传输数据,随着数据位宽的增加,总线的布线复杂度会显著提高,这不仅增加了电路板的设计难度和成本,还容易引入信号干扰,导致数据传输错误。并行总线的传输距离也受到一定限制,随着传输距离的增加,信号的衰减和干扰会加剧,影响数据传输的可靠性。串行总线结构则是通过一条或两条数据线,将数据分解成二进制位,一位一位地分时进行传输。串行总线的优势在于其布线简单,只需要较少的数据线,降低了电路板的布线难度和成本。串行总线还具有较强的抗干扰能力,由于数据是一位一位传输的,在传输过程中受到干扰的概率相对较低,且可以通过一些校验和纠错机制来提高数据传输的可靠性。此外,串行总线在远距离传输方面具有明显优势,能够实现较长距离的数据传输。在一些对布线要求较高或需要进行远距离通信的应用场景中,如智能楼宇中的远程监控系统,串行总线可以方便地实现各个节点之间的通信。然而,串行总线的数据传输速度相对较慢,因为数据需要一位一位地传输,传输相同数量的数据所需的时间较长。在一些对数据传输速度要求较高的场景中,串行总线可能无法满足实时性的要求。在实际应用中,需要根据具体的需求和场景来选择合适的总线结构类型。对于对数据传输速度要求较高、传输距离较短且布线空间允许的应用,并行总线可能是更好的选择;而对于对布线要求简单、传输距离较远或对数据传输速度要求不是特别高的应用,串行总线则更为合适。有时也会在一个系统中同时采用并行总线和串行总线,以充分发挥它们各自的优势,实现系统的最佳性能。3.3.2基于FPGA/CPLD的总线接口逻辑设计在基于多处理器结构的LonWorks网络控制节点中,为了实现处理器与总线之间的高效通信,需要进行合理的总线接口逻辑设计。现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)由于其具有可编程性和灵活性的特点,常被用于实现总线接口逻辑。以VHDL语言设计为例,下面将阐述如何利用FPGA/CPLD实现与处理器的接口逻辑。VHDL(VHSICHardwareDescriptionLanguage)是一种用于描述电子系统硬件功能的硬件描述语言,它具有强大的描述能力和丰富的语法结构,能够精确地描述硬件的行为和逻辑。在使用VHDL进行基于FPGA/CPLD的总线接口逻辑设计时,首先需要根据总线的协议和处理器的接口要求,定义接口的信号和数据格式。对于并行总线接口,需要定义地址线、数据线、控制线等信号,明确它们的宽度和功能;对于串行总线接口,则需要定义串行数据线、时钟线等信号,并确定数据传输的时序和协议。在设计过程中,通常会将接口逻辑划分为多个功能模块,每个模块实现特定的功能,如数据发送模块、数据接收模块、地址译码模块等。以数据发送模块为例,其主要功能是将处理器输出的数据按照总线协议的要求进行格式化,并通过总线发送出去。在VHDL代码中,可以使用状态机来实现数据发送的流程控制,根据不同的状态执行相应的操作,如加载数据、发送数据、等待应答等。以下是一个简单的数据发送模块的VHDL代码示例:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitydata_transmitterisPort(clk:inSTD_LOGIC;rst:inSTD_LOGIC;data_in:inSTD_LOGIC_VECTOR(7downto0);send_en:inSTD_LOGIC;bus_data:outSTD_LOGIC_VECTOR(7downto0);bus_strobe:outSTD_LOGIC;busy:outSTD_LOGIC);enddata_transmitter;architectureBehavioralofdata_transmitteristypestate_typeis(idle,send_data,wait_ack);signalcurrent_state,next_state:state_type;beginprocess(clk,rst)beginifrst='1'thencurrent_state<=idle;elsifrising_edge(clk)thencurrent_state<=next_state;endif;endprocess;process(current_state,data_in,send_en)beginnext_state<=current_state;bus_data<=(others=>'0');bus_strobe<='0';busy<='0';casecurrent_stateiswhenidle=>ifsend_en='1'thenbus_data<=data_in;bus_strobe<='1';next_state<=send_data;busy<='1';endif;whensend_data=>bus_strobe<='0';next_state<=wait_ack;whenwait_ack=>--等待应答信号,假设存在ack信号--ifack='1'then--next_state<=idle;--busy<='0';--endif;null;endcase;endprocess;endBehavioral;数据接收模块的功能则是从总线上接收数据,并将其转换为处理器能够识别的格式。在VHDL代码中,可以通过检测总线信号的变化,按照总线协议的时序要求接收数据,并进行相应的处理。地址译码模块用于根据处理器发送的地址信号,选择相应的设备或寄存器进行数据传输。通过合理设计地址译码逻辑,可以确保处理器能够准确地访问到所需的资源。完成各个功能模块的设计后,需要将它们组合起来,形成完整的总线接口逻辑。在VHDL中,可以通过实体和架构的层次化设计来实现模块的组合。将各个模块定义为不同的实体,然后在顶层实体中通过端口映射将它们连接起来,实现整个接口逻辑的功能。在设计过程中,还需要进行仿真和调试,以验证接口逻辑的正确性和性能。通过使用仿真工具,如ModelSim等,可以模拟实际的工作场景,对接口逻辑进行功能验证和时序分析,及时发现并解决潜在的问题。四、硬件设计实现4.1硬件总体架构基于多处理器结构的LonWorks网络控制节点的硬件架构主要由主处理器模块、从处理器模块、通信接口模块以及其他功能模块组成,其架构图如图1所示。图1基于多处理器结构的LonWorks网络控制节点硬件架构图主处理器模块选用高性能的ATmega128芯片,负责复杂的数据处理和控制任务。从处理器模块采用包含Neuron芯片的Lon控制模块,专注于实现与LonWorks控制网络的通信功能。通信接口模块则包含RS-232、RS-485等多种通信接口,用于实现与其他设备的通信。其他功能模块如电源模块为整个节点提供稳定的电源,存储模块用于存储程序和数据。在这个架构中,主处理器和从处理器通过特定的接口电路进行数据交互和协同工作。主处理器将处理后的控制数据发送给从处理器,从处理器再通过LonWorks网络将数据传输到其他节点;同时,从处理器接收来自LonWorks网络的指令和数据,并传递给主处理器进行进一步处理。通信接口模块则根据不同的通信需求,选择合适的通信接口与其他设备进行通信,实现数据的输入和输出。各模块之间相互协作,共同完成LonWorks网络控制节点的数据采集、控制和通信等功能。4.2各硬件模块设计4.2.1主处理器模块主处理器模块以ATmega128芯片为核心,其电路设计充分利用了该芯片丰富的片内资源和强大的处理能力。ATmega128芯片的外围电路主要包括时钟电路、复位电路、电源电路等,这些电路为芯片的正常工作提供了必要的条件。时钟电路采用16MHz的晶振,为芯片提供稳定的时钟信号,确保芯片能够按照设定的频率进行高速运算。复位电路则采用了上电复位和手动复位相结合的方式,在上电时,复位电路会自动将芯片的复位引脚拉低,使芯片进入复位状态,待电源稳定后,复位引脚恢复高电平,芯片开始正常工作;手动复位则通过一个复位按钮实现,当需要手动复位芯片时,按下按钮即可将复位引脚拉低,实现芯片的复位。在电源电路方面,为了保证芯片的稳定工作,采用了滤波电容对电源进行滤波,去除电源中的杂波和干扰信号。同时,还设置了电源监控电路,实时监测电源的电压和电流,当电源出现异常时,能够及时采取措施,如发出警报或进行电源切换,以确保芯片的安全。主处理器模块通过并行总线与其他模块进行数据传输,其数据传输速率高,能够满足对大量数据快速传输的需求。并行总线的设计使得主处理器能够方便地与从处理器、通信接口模块以及其他功能模块进行通信和交互。通过地址总线和数据总线,主处理器可以准确地访问其他模块中的寄存器和存储器,实现数据的读取和写入。控制总线则用于控制数据传输的时序和方向,确保数据传输的准确性和可靠性。主处理器模块还通过中断机制与其他模块进行交互,当其他模块有紧急事件需要处理时,可以通过中断请求信号向主处理器发送中断请求,主处理器在接收到中断请求后,会暂停当前的任务,转而处理中断事件,处理完成后再返回原来的任务继续执行。这种中断机制提高了系统的响应速度和实时性,使得主处理器能够及时处理各种突发事件。4.2.2从处理器模块从处理器模块中的Lon控制模块是实现与LonWorks控制网络通信的关键部分,其电路原理基于Neuron芯片的特性进行设计。Neuron芯片内部集成了三个8位处理器,分别负责通信协议的不同层次,使得芯片具备强大的通信处理能力。在通信接口方面,Lon控制模块通过双绞线与LonWorks控制网络相连,采用FTT-10A收发器进行数据传输。FTT-10A收发器具有高速、可靠的特点,能够在复杂的工业环境中稳定地传输数据。它支持自由拓扑结构,使得网络布线更加灵活方便。在与主处理器的通信中,Lon控制模块通过双口RAM与主处理器进行数据交换。双口RAM具有两个独立的端口,分别连接主处理器和从处理器,使得两者可以同时对双口RAM进行读写操作,提高了数据传输的效率。为了确保数据传输的准确性和稳定性,还设置了数据校验和纠错机制,在数据传输过程中,对数据进行校验和纠错,保证数据的完整性。以数据发送为例,当主处理器有数据需要发送到LonWorks控制网络时,首先将数据写入双口RAM中。Lon控制模块检测到双口RAM中有新的数据后,将数据读取出来,并按照LonTalk协议的格式进行封装,添加源地址、目的地址、数据长度等信息。然后,通过FTT-10A收发器将封装好的数据发送到LonWorks控制网络中。在数据接收过程中,Lon控制模块通过FTT-10A收发器接收来自LonWorks控制网络的数据,对接收到的数据进行解析和校验。如果数据校验正确,则将数据写入双口RAM中,主处理器可以从双口RAM中读取数据进行处理。如果数据校验错误,则丢弃该数据,并要求发送方重新发送。4.2.3通信接口模块通信接口模块在基于多处理器结构的LonWorks网络控制节点中起着至关重要的作用,它实现了节点与其他设备之间的通信连接,使得节点能够与上位机、其他传感器或执行器等进行数据交互。本设计中包含RS-232和RS-485等多种通信接口,它们各自具有独特的电路设计和作用。RS-232接口主要用于与上位机进行通信,其电路设计采用MAX232芯片进行电平转换。由于RS-232接口的信号电平与TTL电平不兼容,MAX232芯片能够将TTL电平转换为RS-232标准的电平,使得节点可以与上位机进行可靠的通信。RS-232接口采用单端信号传输方式,数据通过一根信号线和接地线进行传输。其电压范围通常为±12V,适合于短距离(通常不超过15米)的传输。在本设计中,RS-232接口主要用于节点与上位机之间的调试和参数配置。上位机可以通过RS-232接口向节点发送控制指令,设置节点的工作参数;节点也可以通过RS-232接口将采集到的数据和状态信息发送给上位机,以便上位机进行监控和分析。RS-485接口则常用于与其他传感器或执行器进行通信,其电路设计采用MAX485芯片。RS-485接口采用差分信号传输方式,通过两根信号线(A和B)传输数据,信号通过比较这两根线的电压差来识别信息。这种差分信号传输方式具有较强的抗干扰能力,能够有效抵消外部噪声干扰,因此RS-485能支持更长距离的通信(最长可达1200米)。在本设计中,RS-485接口可以连接多个传感器或执行器,实现多点通信。通过RS-485接口,节点可以与多个传感器进行数据交互,采集各种物理量数据;也可以向多个执行器发送控制指令,实现对设备的远程控制。在一个工业自动化系统中,节点可以通过RS-485接口连接多个温度传感器、压力传感器等,实时采集生产过程中的温度和压力数据;同时,节点还可以通过RS-485接口控制多个电机、阀门等执行器,实现对生产设备的自动化控制。4.2.4其他功能模块除了上述主要模块外,基于多处理器结构的LonWorks网络控制节点还包括电源模块、存储模块等其他功能模块,这些模块在节点的正常运行中起着不可或缺的作用。电源模块为整个节点提供稳定的电源,其设计采用开关电源芯片,能够将外部输入的电源转换为节点所需的各种电压。在本设计中,外部输入电源为24V直流电源,通过开关电源芯片将其转换为5V和3.3V等不同电压,为ATmega128芯片、Lon控制模块以及其他芯片和电路提供稳定的供电。开关电源芯片具有效率高、体积小等优点,能够满足节点对电源的需求。为了确保电源的稳定性和可靠性,电源模块还采用了滤波和稳压措施。在电源输入端,使用了电容和电感组成的滤波电路,去除电源中的高频噪声和杂波,保证输入电源的纯净。在电源输出端,采用了稳压芯片,对输出电压进行稳定调节,确保输出电压在一定范围内波动,满足芯片和电路对电源稳定性的要求。存储模块用于存储程序和数据,采用EEPROM芯片和SRAM芯片相结合的方式。EEPROM芯片具有掉电数据不丢失的特点,用于存储节点的配置信息、校准参数等重要数据。SRAM芯片则具有读写速度快的优点,用于存储程序运行过程中的临时数据和变量。在本设计中,EEPROM芯片选用了AT24C02,它具有2Kbit的存储容量,能够满足节点对配置信息和参数存储的需求。SRAM芯片选用了IS61LV25616,它具有256Kx16位的存储容量,能够为程序运行提供足够的临时存储空间。通过这种存储模块的设计,既保证了重要数据的安全性和可靠性,又满足了程序运行对数据读写速度的要求。4.3硬件抗干扰设计在基于多处理器结构的LonWorks网络控制节点的硬件设计中,硬件抗干扰设计是至关重要的一环,它直接影响到节点在复杂电磁环境下的稳定性和可靠性。为了提高节点的抗干扰能力,采用了多种硬件抗干扰措施,主要包括屏蔽、滤波和接地技术。屏蔽技术是通过使用金属材料包围电路,以阻断外部电磁波的干扰和抑制电路内部产生的电磁波泄漏到外部。在本设计中,对主处理器模块、从处理器模块以及通信接口模块等关键部分采用了金属屏蔽罩进行屏蔽。金属屏蔽罩能够有效地阻挡外部电磁干扰信号的侵入,保护内部电路的正常工作。在选择屏蔽材料时,选用了导电性良好的金属,如铜或铝,以提高屏蔽效果。同时,确保屏蔽罩的完整性和密封性,避免出现缝隙或孔洞,防止电磁波从这些薄弱部位进入。对于通信线缆,采用了屏蔽双绞线,屏蔽层能够有效地屏蔽外界电磁干扰对线缆内传输信号的影响,同时也能防止线缆内的信号向外泄漏,避免对其他设备产生干扰。滤波技术是通过在电路中加入滤波器,滤除不需要的频率成分,从而抑制电磁干扰。在电源输入端,加入了由共模扼流圈和差模电容组成的LC滤波电路,用于滤除输入电源线上的共模干扰和差模干扰。共模扼流圈能够对共模干扰电流呈现高阻抗,阻止共模干扰电流进入电路;差模电容则用于滤除差模干扰电流,使电源更加纯净。对于信号传输线路,根据信号的频率特性,选择合适的滤波电路。在高频信号传输线路中,使用π型或T型滤波电路,能够更好地抑制高频干扰,保证信号的稳定传输。在RS-485通信接口电路中,为了防止信号传输过程中的干扰,在A、B信号线上分别串联了一个电阻,并在A、B线之间并联了一个电容,组成了简单的滤波电路,有效地提高了通信的可靠性。接地技术是EMC设计中的一项基础工作,良好的接地能够提供一个稳定的参考电位,减少噪声干扰,并且可以作为电流返回路径。在本设计中,采用了单点接地和多点接地相结合的方式。对于低频电路部分,采用单点接地,即将所有的接地信号都连接到一个公共的接地点上,这样可以避免形成接地环路,减少地电位差引起的干扰。对于高频电路部分,由于高频信号的趋肤效应,采用多点接地,使高频电流能够通过多个接地路径快速返回,降低接地阻抗,减少高频干扰。同时,注意接地线的粗细和长度,避免形成不必要的环路。对于主处理器模块和从处理器模块等关键部分,采用了较粗的接地线,以降低接地电阻,提高接地效果。在电路板设计中,合理规划接地路径,确保接地的可靠性和有效性。五、软件设计实现5.1软件总体架构基于多处理器结构的LonWorks网络控制节点的软件架构采用分层设计思想,主要包括硬件驱动层、中间层和应用层,各层之间相互协作,共同实现节点的各项功能。硬件驱动层位于软件架构的最底层,它直接与硬件设备进行交互,负责对硬件设备进行初始化、控制和数据传输等操作。对于主处理器ATmega128,硬件驱动层包括对其内部资源的驱动,如定时器、ADC、串口等。通过对定时器的驱动,可实现精确的定时功能,用于数据采集的定时触发和控制任务的定时执行;对ADC的驱动则能够实现对模拟信号的准确采集,将模拟量转换为数字量供后续处理。对于从处理器Lon控制模块,硬件驱动层主要是对其通信接口和相关寄存器的驱动,确保能够与LonWorks控制网络进行稳定的通信。例如,通过对FTT-10A收发器的驱动,实现数据在双绞线介质上的可靠传输。中间层是连接硬件驱动层和应用层的桥梁,它主要负责数据的处理和通信协议的实现。在数据处理方面,中间层对硬件驱动层采集到的数据进行预处理,如数据滤波、数据校准等,以提高数据的准确性和可靠性。在通信协议实现方面,中间层实现了LonTalk协议的部分功能,确保节点能够与LonWorks控制网络中的其他节点进行正确的通信。例如,在数据发送过程中,中间层按照LonTalk协议的格式对数据进行封装,添加源地址、目的地址、数据长度等信息,然后将封装好的数据传递给硬件驱动层进行发送;在数据接收过程中,中间层对接收到的数据进行解析和校验,确保数据的完整性和正确性,然后将解析后的数据传递给应用层进行进一步处理。应用层是软件架构的最上层,它直接面向用户和应用场景,实现了节点的各种应用功能。应用层包括人机交互功能,通过显示屏和按键等设备,为用户提供直观的操作界面,用户可以通过该界面设置节点的参数、查看节点的状态等;还包括数据存储和安全验证功能,将采集到的数据存储到EEPROM或其他存储设备中,并对存储的数据进行加密和校验,确保数据的安全性和可靠性;应用层还实现了数据通信功能,与其他设备或系统进行数据交互,如将节点采集到的数据发送给上位机进行分析和处理,接收上位机发送的控制指令并执行相应的操作。5.2主处理器软件设计5.2.1控制功能实现主处理器软件在整个基于多处理器结构的LonWorks网络控制节点中承担着关键的控制功能,其实现方式涵盖了人机交互、数据存储、安全验证等多个重要方面。在人机交互功能的实现上,采用了图形化界面设计。通过液晶显示屏(LCD)和按键矩阵构建人机交互平台。在硬件连接方面,将LCD的控制引脚与主处理器的I/O端口相连,如将LCD的RS(寄存器选择)引脚连接到主处理器的某个I/O端口,用于选择数据寄存器或指令寄存器;将RW(读写控制)引脚连接到另一个I/O端口,用于控制数据的读写操作;将E(使能)引脚连接到主处理器的一个I/O端口,作为LCD的使能信号。按键矩阵则通过行列扫描的方式与主处理器的I/O端口相连,实现按键的检测和识别。在软件编程方面,使用C语言编写相关程序。首先初始化LCD,设置其显示模式、光标位置等参数。例如,使用以下代码初始化LCD:voidlcd_init(){//设置LCD控制寄存器lcd_control_register=0x38;//8位数据模式,2行显示,5x7点阵字符lcd_send_command();//其他初始化命令,如显示开、光标关等}当有按键按下时,主处理器通过扫描按键矩阵获取按键的状态和编码。根据按键编码,调用相应的处理函数。如果按下的是设置参数的按键,则进入参数设置界面,用户可以通过按键输入参数值,主处理器将接收到的参数值进行处理和存储。数据存储功能主要利用EEPROM芯片实现。在硬件连接上,将EEPROM的数据线、地址线和控制线与主处理器的相应I/O端口相连。在软件设计中,编写了专门的数据存储和读取函数。为了确保数据的安全性,采用了CRC(循环冗余校验)算法对存储的数据进行校验。在数据存储时,先计算数据的CRC校验值,然后将数据和校验值一起存储到EEPROM中。以下是使用CRC-16算法计算校验值的代码示例:unsignedshortcrc16(unsignedchar*data,unsignedintlength){unsignedshortcrc=0xFFFF;for(unsignedinti=0;i<length;i++){crc^=(unsignedshort)data[i];for(unsignedintj=0;j<8;j++){if(crc&0x0001){crc>>=1;crc^=0xA001;}else{crc>>=1;}}}returncrc;}在数据读取时,先读取存储的数据和校验值,然后重新计算数据的CRC校验值,并与读取的校验值进行比较。如果两者相等,则说明数据没有被篡改,读取的数据有效;否则,说明数据可能存在错误,需要采取相应的措施,如重新读取数据或提示用户数据错误。安全验证功能则通过密码验证和权限管理来实现。在系统初始化时,设置初始密码和用户权限。用户在进行重要操作,如修改系统参数、查看敏感数据等时,需要输入密码进行验证。主处理器将用户输入的密码与存储的密码进行比对,如果密码正确,则允许用户进行相应的操作,并根据用户的权限限制其操作范围。为了防止密码被破解,采用了加密算法对密码进行加密存储。可以使用简单的异或加密算法,将密码与一个固定的密钥进行异或运算,然后存储加密后的结果。在验证密码时,先将用户输入的密码进行异或运算,然后与存储的加密密码进行比对,以确保密码的安全性。5.2.2数据处理算法主处理器中的数据处理算法在整个网络控制节点中起着至关重要的作用,它直接影响着节点对数据的处理能力和控制效果。以PID控制算法为例,该算法在工业自动化和楼宇自动化等领域有着广泛的应用,能够实现对各种物理量的精确控制。PID控制算法是一种线性控制算法,它根据给定值与实际输出值构成控制偏差,将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制。其控制规律可以用以下公式表示:u(t)=K_p\left(e(t)+\frac{1}{T_i}\int_{0}^{t}e(t)dt+T_d\frac{de(t)}{dt}\right)其中,u(t)为控制量,K_p为比例系数,e(t)为偏差,T_i为积分时间常数,T_d为微分时间常数。在基于多处理器结构的LonWorks网络控制节点中,将PID控制算法应用于温度控制场景。在硬件方面,通过温度传感器采集环境温度数据,将传感器的输出信号经过调理电路后接入主处理器的ADC端口,主处理器通过ADC采样获取温度数据。在软件实现上,使用C语言编写PID控制算法的程序。首先定义PID控制算法的相关参数,如比例系数K_p、积分时间常数T_i、微分时间常数T_d、设定温度值setpoint等。然后编写PID计算函数,根据采集到的温度数据和设定温度值计算控制量。以下是一个简化的PID计算函数代码示例:floatpid_control(floatcurrent_temperature,floatsetpoint,floatKp,floatKi,floatKd,float*integral,float*previous_error){floaterror=setpoint-current_temperature;*integral+=error;floatderivative=error-*previous_error;floatoutput=Kp*error+Ki**integral+Kd*derivative;*previous_error=error;returnoutput;}在主程序中,不断调用PID计算函数,根据计算得到的控制量控制加热或制冷设备,以实现对温度的精确控制。在每次调用PID计算函数之前,先读取当前温度数据,然后将当前温度数据、设定温度值以及PID参数传递给PID计算函数。根据计算得到的控制量,通过主处理器的I/O端口输出相应的控制信号,控制加热或制冷设备的启停或调节其工作功率。通过这种方式,实现了基于PID控制算法的温度精确控制,提高了系统的控制性能和稳定性。5.3从处理器软件设计从处理器软件在基于多处理器结构的LonWorks网络控制节点中主要负责实现与LonWorks控制网络的通信功能,其核心是LonTalk协议的实现以及通信任务的处理。从处理器软件中LonTalk协议的实现基于Neuron芯片的特性和功能。Neuron芯片内部集成了三个8位处理器,分别负责不同层次的协议处理。第一个CPU为介质访问控制处理器,负责处理LonTalk协议的第一层(物理层)和第二层(数据链路层)。在物理层,它实现了与通信介质的电气连接和信号传输,根据不同的通信介质类型,如双绞线、电力线、无线等,配置相应的物理接口参数。对于双绞线介质,采用差分曼彻斯特编码方式进行数据传输,确保数据在传输过程中的准确性和可靠性。在数据链路层,负责数据帧的封装和解封装,添加帧头、帧尾、校验位等信息,以保证数据的完整性和正确性。当发送数据时,将上层传递下来的数据按照数据链路层的格式进行封装,添加源地址、目的地址、数据长度、CRC校验码等信息,然后通过物理层发送出去;当接收数据时,从物理层接收到数据帧后,首先进行CRC校验,验证数据的正确性,如果校验通过,则解封装数据帧,将数据传递给上层处理。第二个CPU为网络处理器,实现LonTalk协议的第三层(网络层)至第六层(表示层)。在网络层,负责网络地址的管理和数据的路由选择。每个节点在LonWorks控制网络中都有唯一的地址,网络处理器根据节点的地址信息,将数据准确地路由到目标节点。在一个包含多个子网的LonWorks控制网络中,网络处理器能够根据子网地址和节点地址,选择最佳的路由路径,确保数据能够快速、准确地传输到目标节点。在传输层,负责端对端的数据传输控制,提供可靠的传输服务,如确认、重传等机制,确保数据的可靠传输。如果发送节点没有收到接收节点的确认信息,将按照一定的重传策略重新发送数据,直到收到确认信息或达到最大重传次数。在会话层和表示层,负责建立和维护节点之间的会话连接,以及数据的表示和转换,确保不同节点之间能够正确地理解和处理数据。第三个CPU为应用处理器,实现LonTalk协议的第七层(应用层),执行用户编写的代码及用户代码所调用的操作系统服务。在应用层,通过网络变量和显式消息两种方式实现与其他节点的通信。网络变量是一种简化的通信方式,它将节点之间的通信数据封装成网络变量,不同节点之间通过绑定网络变量实现数据的自动交换。在一个智能建筑的照明控制系统中,照明控制节点和光照度传感器节点可以通过绑定网络变量,实现光照度数据的自动传输和控制。显式消息则是一种更灵活的通信方式,节点可以根据需要发送和接收显式消息,实现更复杂的通信功能。当一个节点需要向另一个节点发送特定的控制指令时,可以通过显式消息的方式发送,接收节点根据消息内容执行相应的操作。在通信任务处理方面,从处理器软件采用中断驱动的方式。当有数据到达或需要发送数据时,触发相应的中断。接收中断服务程序负责从通信接口接收数据,并将数据存储到缓冲区中。在接收数据时,先进行数据校验,确保数据的正确性,然后将数据存储到缓冲区中,并设置数据接收标志。发送中断服务程序则负责从缓冲区中读取数据,并将数据发送出去。在发送数据之前,先对数据进行封装,添加相应的协议头和校验位等信息,然后通过通信接口发送出去。通过这种中断驱动的方式,提高了通信任务处理的实时性和效率,确保从处理器能够及时、准确地与LonWorks控制网络中的其他节点进行通信。5.4主从处理器通信机制5.4.1双口RAM通信方式双口RAM通信方式在解决主从处理器数据传输问题上具有独特的优势,其原理基于双口RAM的硬件特性和工作机制。双口RAM是一种特殊的随机存取存储器,它具有两个独立的端口,分别连接主处理器和从处理器,允许两个处理器同时对其进行访问。这两个端口各自拥有独立的地址线、数据线和控制线,使得主从处理器可以在不同的时钟域下独立地进行读写操作,有效解决了因时钟不同步而存在的数据传输问题。在硬件连接上,将双口RAM的一端端口与主处理器的地址总线、数据总线和控制总线相连,另一端端口与从处理器的相应总线相连。主处理器通过其端口对双口RAM进行写操作时,将需要发送给从处理器的数据写入双口RAM的特定存储单元。从处理器通过其端口对双口RAM进行读操作时,从相应的存储单元中读取主处理器发送的数据。在数据读取过程中,从处理器首先检测双口RAM的状态信号,如BUSY信号,以确定双口RAM是否处于可访问状态。如果BUSY信号为低电平,表示双口RAM正在被另一个处理器访问,从处理器需要等待;当BUSY信号为高电平,表示双口RAM可访问,从处理器可以读取数据。为了进一步提高数据传输的可靠性和效率,采用了硬件判优和软件握手相结合的方式。在硬件判优方面,双口RAM内部通常设有仲裁逻辑电路。当主从处理器同时访问双口RAM的同一存储单元时,仲裁逻辑电路会根据预设的优先级规则,决定哪个处理器的访问请求有效。通常情况下,先到达的访问请求具有更高的优先级。如果主处理器的访问请求先到达,仲裁逻辑电路会使主处理器的访问有效,同时将从处理器的访问请求屏蔽,并将从处理器对应的BUSY信号置为低电平,通知从处理器等待。当主处理器完成访问操作后,仲裁逻辑电路会将从处理器的BUSY信号置为高电平,允许从处理器进行访问。在软件握手方面,主从处理器之间通过设置标志位来实现数据传输的同步。主处理器在向双口RAM写入数据后,会设置一个标志位,表示数据已写入。从处理器在读取数据之前,先检测该标志位。如果标志位被设置,表示有新的数据到来,从处理器可以读取数据;读取数据后,从处理器会清除该标志位,通知主处理器数据已被读取。通过这种硬件判优和软件握手相结合的方式,有效避免了主从处理器对双口RAM的访问冲突,确保了数据传输的准确性和可靠性。5.4.2通信协议与数据交互流程主从处理器之间的通信协议是确保数据准确、可靠传输的关键,它规定了数据的格式、传输规则以及双方的操作流程。在制定通信协议时,充分考虑了主从处理器的功能和需求,以及数据传输的稳定性和效率。通信协议规定了数据帧的格式,数据帧由帧头、数据长度、数据内容和校验位组成。帧头包含了通信协议的版本号、数据类型、源地址和目的地址等信息。通信协议版本号用于标识当前使用的通信协议版本,确保主从处理器使用相同版本的协议进行通信;数据类型字段用于区分不同类型的数据,如控制指令、传感器数据、状态信息等,以便主从处理器能够正确地解析和处理数据;源地址和目的地址字段分别表示数据的发送方和接收方,确保数据能够准确地传输到目标处理器。数据长度字段表示数据内容的字节数,主从处理器根据该字段确定读取或写入数据的长度。数据内容字段则包含了实际需要传输的数据,根据数据类型的不同,数据内容的格式和含义也不同。校验位用于对数据进行校验,确保数据在传输过程中没有被篡改或损坏。采用CRC(循环冗余校验)算法生成校验位,主处理器在发送数据时,根据数据内容计算CRC校验值,并将其添加到数据帧的校验位字段中;从处理器在接收数据后,重新计算数据的CRC校验值,并与接收到的校验位进行比较。如果两者相等,则说明数据传输正确;否则,说明数据可能存在错误,从处理器会要求主处理器重新发送数据。在数据交互流程方面,当主处理器有数据需要发送给从处理器时,首先按照通信协议的格式封装数据。将数据内容填充到数据帧的数据内容字段中,计算数据长度并填充到数据长度字段中,设置帧头的相关信息,包括通信协议版本号、数据类型、源地址和目的地址等,最后计算CRC校验值并填充到校验位字段中。封装完成后,主处理器将数据帧写入双口RAM的特定存储单元,并设置标志位,表示有数据待发送。从处理器通过检测双口RAM的标志六、实验与测试6.1实验平台搭建为了对基于多处理器结构的LonWorks网络控制节点进行全面的实验与测试,搭建了一个完整的实验平台。该平台主要包括硬件设备和软件工具两部分。硬件设备方面,核心部分是基于多处理器结构的LonWorks网络控制节点,其中主处理器采用ATmega128芯片,从处理器采用包含Neuron芯片的Lon控制模块。同时,配备了多种传感器和执行器,用于模拟实际的应用场景。选用DHT11温湿度传感器,通过主处理器的I/O端口与控制节点相连,用于采集环境的温度和湿度数据;连接了一个直流电机作为执行器,通过控制节点的I/O端口控制电机的启动、停止和转速,以验证节点的控制功能。还准备了一台上位机,通过RS-232接口与控制节点进行通信,用于发送控制指令和接收节点采集的数据。软件工具方面,采用AVRStudio作为主处理器ATmega128的开发环境,利用其强大的代码编辑、编译和调试功能,对主处理器的软件进行开发和测试。对于从处理器Lon控制模块,使用LonBuilder作为开发工具,该工具专门用于LonWorks网络的开发和配置,能够方便地对Lon控制模块进行编程和调试。在数据传输和分析方面,使用串口调试助手,通过RS-232接口与控制节点进行数据交互,实时监测和分析节点发送和接收的数据。在搭建实验平台时,首先进行硬件连接。将DHT11温湿度传感器的数据线连接到主处理器ATmega128的一个I/O端口,电源和地线分别连接到节点的电源和地;将直流电机的控制信号线连接到主处理器的另一个I/O端口,电机的电源和地线也连接到相应的位置。然后,将控制节点通过RS-232接口与上位机相连,确保通信线路连接正确。在软件配置方面,在AVRStudio中编写主处理器的程序代码,实现数据采集、控制算法和与从处理器的通信等功能;在LonBuilder中编写从处理器的程序代码,实现与LonWorks控制网络的通信功能。完成硬件连接和软件配置后,对整个实验平台进行初步调试,确保各个设备和软件工具能够正常工作。6.2功能测试对基于多处理器结构的LonWorks网络控制节点的各项功能进行了详细测试,以验证其设计的正确性和实用性。测试内容主要包括数据采集功能、控制功能和通信功能等方面。在数据采集功能测试中,利用DHT11温湿度传感器采集环境的温度和湿度数据。通过主处理器的ADC模块对传感器输出的模拟信号进行采样和转换,得到数字量数据。在AVRStudio中编写数据采集程序,设置合适的采样频率和数据处理算法。每隔10秒采集一次温湿度数据,并对采集到的数据进行滤波处理,去除噪声干扰。将采集到的数据通过RS-232接口发送到上位机,使用串口调试助手进行接收和显示。经过多次测试,采集到的温湿度数据准确可靠,能够真实反映环境的实际情况。在不同的温度和湿度环境下,采集的数据与实际值的误差在允许范围内,证明了控制节点的数据采集功能正常。控制功能测试则以直流电机作为控制对象。在主处理器中编写控制程序,采用PID控制算法对电机的转速进行控制。通过上位机发送不同的转速设定值,主处理器根据设定值和电机的实际转速,计算出控制量,通过I/O端口输出相应的PWM信号,控制电机的转速。在测试过程中,逐渐增加和减小转速设定值,观察电机的转速变化情况。电机能够快速响应控制指令,稳定地运行在设定的转速下,转速波动较小,证明了控制节点的控制功能有效。在改变电机的负载情况下,控制节点也能够自动调整控制量,保持电机转速的稳定,体现了良好的控制性能。通信功能测试主要包括主从处理器之间的通信以及控制节点与LonWorks控制网络的通信。对于主从处理器之间的通信,通过双口RAM进行数据交换。在主处理器中编写数据发送程序,将需要发送的数据写入双口RAM;在从处理器中编写数据接收程序,从双口RAM中读取数据。通过设置标志位和握手信号,确保数据传输的准确性和可靠性。经过多次测试,主从处理器之间的数据传输稳定,没有出现数据丢失或错误的情况。在控制节点与LonWorks控制网络的通信测试中,将控制节点接入LonWorks控制网络,通过LonBuilder工具配置网络参数。在网络中设置其他节点,与控制节点进行数据交互。控制节点能够准确地接收来自其他节点的指令和数据,并将自身采集的数据发送到网络中,实现了与LonWorks控制网络的正常通信。6.3性能测试6.3.1数据处理能力测试为了评估基于多处理器结构的LonWorks网络控制节点的数据处理能力,分别对主处理器的数据处理速度和从处理器的通信效率进行了测试。在主处理器数据处理速度测试中,设计了一系列复杂的数据处理任务,包括大量数据的运算、复杂算法的执行等。利用AVRStudio的性能分析工具,对主处理器执行这些任务所需的时间进行测量。在进行1000次32位整数乘法运算的测试中,记录主处理器完成这些运算所需的时间。经过多次测试,得到主处理器在16MHz时钟频率下,完成1000次32位整数乘法运算平均所需时间约为[X]ms。与传统基于Neuron芯片的节点相比,由于主处理器ATmega128具有更高的运算速度和更强大的处理能力,能够显著提高数据处理的效率。传统节点在处理相同的数据处理任务时,所需时间约为[X+Y]ms,多处理器结构的节点数据处理速度提升了约[提升比例]。对于从处理器的通信效率测试,主要测试其与LonWo

温馨提示

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

评论

0/150

提交评论