摘要:介绍一种基于双口ram的lonworks现场总线智能通信节点的设计方法,并给出详细的设计步骤、硬件及软件实现。通过此lonworks智能通信节点,能够完成rs-232-c/rs-485标准与lontalk协议间的转换提供rs-232-c/rs-485网络到lonworks网络的接口,因此,具有很高的应用价值。
引言
lonworks(local operating networks,局部操作网络)总线是由美国echelon公司推出的一种现场总线技术。由于lonworks控制网络的开放性、高速性和互操作性,它已广泛用于工业、楼宇、家庭、办公设备、交通运输、能源等自动化领域。eia rs-232-c/rs-485通信网络在控制系统中应用最为普及,许多设备大都只提供rs-232或rs-485/422接口,不能直接接入lonworks网络。因此,需要将现场lon网络介质上的信息转换为rs-232-c/rs-485标准的信号,或将rs-232-c/rs-485标准信号转换为包含lontalk协议的数据,从而实现不同网络间的数据传输,同时也为上位pc机、底层工作站提供转换接口。本文所设计的lonworks智能通信节点方便地与eia rs-232-c/rs-485标准的串行i/o设备进行通信,轻松实现现场节点与上位pc机或其它rs-232-c/rs-485控制设备之间的可靠、准确、快捷数据传递。
1 lonworks智能通信节点的硬件结构
1.1 节点硬件电路设计
智能节点以neuron神经元处理器芯片为核心,其硬件电路还包括收发器、eeprom、双口ram、译码电路和service电路等。以神经元芯片构成网络接口,由它通过lontalk协议与网上的其它智能节点通信,并通过双口ram的访问实现与其它网络系统的数据交换。节点中用双口ram充当不同网络通信过程中现场信息的接收、发送缓冲区,完成最近发送到达的交换数据的存储转发功能,缓解和避免系统缓存紧张和瓶颈的产生。用非易失性存储器eeprom存放lontalk网络协议固件、多任务调度程序、网络适配器通信管理程序以及网络配置信息等。节点的硬件组成结构如图1所示。
智能节点的基本结构可分为两部分:以neuron 3150神经元芯片主构成的lonworks现场总线一侧,其基本功能是实现lon网络上的智能节点功能;另一侧是由单片机系统构成的串行通信接口,其功能是实现eia rs-232-c/rs-485标准的串行通信。在这两部分间采用了双口ram cy7c130芯片作为数据共享区。cy7c130通信接口电路的左端口与neuron 3150芯片连接,右端口与8051单片机系统连接,如图2所示。双口ram的两端都有独立的数据线、地址线和控制线,两端都可对双口ram的任意单元进行操作。只要两端不同时对同一地址单元进行操作就不会发生冲突。busy显示本端口想要存取的地址正在被另一个端口操作,发生硬件冲突时,后操作一端的busy信号有效。
在应用中分别对双口ram 1kb的存储空间进行定义,即cy7c130的同一存储单元对于neuron3150芯片及8051单片机系统各有一个地址,这样两个系统均能对其进行存取操作。在智能节点中,neuron3150芯片对1kb空间的地址为d000h~d3ffh。8051单片机系统对它的定义为0000h~03ffh。值得注意的是,cy7c130芯片3ffh和3feh两个单元被用作固定用途:当左端neuron3150芯片向3ffh单元写入数据时,将产生中断信号intr;同理,当右端8051单片机向3feh单元写入数据时,将产生中断信号intl。利用这两个信号,可以将系统设置为中断工作方式,达到节省通信时间的目的。由于双向数据信息的交换,可以这样来划分双口ram存储区间:000h~01ffh单元存入neuron 3150芯片向8051传送的信息,而200h~3ffh单元存放由8051向neuron 3150发送的信息,并将同类但不同次的信息放在固定的存储单元,每次都以新的数据覆盖上次的数据。这样就不必进行标志的判断,只需要固定单元取数据就可以进行处理,既节省时间,又安全可靠。
1.2 硬件的抗干扰
lon works设备往往工作在复杂的电磁环境中,其自身各部分与周围其它电子设备之间,都不可避免地存在各种形式的电磁干扰和静电放电。为了保证通信的准确无误,延长硬件使用寿命,该通信节点在设计上结合lonworks电路自身特点,采用有关接地、屏蔽和滤波的适当处理,有效减小了电磁干扰的影响。针对收发器ftt-10a,设计抗干扰电路时,应主要围绕印刷电路板上星形地结构和火花隙的设计。对于静电放电(esd),在印刷电路板(pcb)设计中,采用火花放电隙,能够削弱到达收发器和后续缓冲器电路的esd能量,使用箝位二极管,能大大增强节点承受来自网络连接端的esd能力。对于电磁干扰,应尽量保证强噪声源(如dc/dc变换器、时钟电路等)远离收发器ftt-10a。
2 lonworks智能通信节点的软件设计
在lon网程序设计中使用neuron c语言。neuron c是一种基于ansi c且带有网络通信和高级硬件设备接口扩展语句的高级不应该。它增加了对i/o、事件处理、消息传递和分散数据目标的支持,扩充了包括软件定时器、网络变量、显示消息、一个多任务调度程序以及其它各具特点的函数等。采用neuron c语言开发的应用程序,可直接在lonbuilder神经元仿真器上进行调试,因此应用程序的开发可独立于硬件设计进行。智能节点通信流程如图3所示。
程序中,节点neuron 3150侧使用显示报文通信,能有效实现智能节点与单片机进行双向通信的功能。用neuron c语言进行节点设计编程时,必须首先查询io_6和io_7的内容。定义两个比特类型的输入变量intl和busyl,通过查询这两个变量的内容来确定程序的运行流程。编程如下:
//*****包含文件*****
#include
#include
//*****公共变量声明*****
#define tlon_485 0xd000 //定义从lon网上所接收数据在双口ram存储单元首址
#defin t485_lon 0xd0200 //定义从单片机侧所接收数据在双口ram存储单元首址
io_6 input bit intl;//定义io_6,io_7为比特类型的输入变量
io_7 input bit busyl;
msg_tag tag_out1; //定义输出消息标签
//****系统主程序********priority when(msg_arrives)//显示网络消息事件
{unsigned int *p; //存储从lon网上接收的数据
int i;
p=(unsigned int*)(tlon_485);
for(i=0;i<30;i++)
{*p=msg_in.data[i];
p++;
}
}
}
when(io_in(intl)= =0)//当单片机侧有数据时申请中断
{when(io_in(busyl)= =1)
{unsigned int*u;
int j;
u=(unsigned int*)(t485_lon);
msg_out.code=1;
msg_out.tag=tag_out1;
for(j=0;j<30;j++)
{msg_out.data[j]=*u;
u++;
}
msg_send();//向lon网其它相关节点发送数据
}
}
图3
3 结论
实际运用证明,该智能通信节点能实现与其它多种常规智能节点(如模拟量i/o节点、开关量i/o节点等)构成现场总线控制网络,实现了rs-232-c/rs-485到lonworks网络网关的关键技术,保证了网络接口的高速数据传送。特别在当前楼宇自动化dcs控制系统中,基于控制器串口的小型主从式rs-485控制网络系统仍然应用得相当普遍。将lonworks和rs-485两种控制网络进行网络集成,就可以充分发挥lonworks技术在通信上的优势,构成节点的主从式rs-485网络的分级混合控制网络设计方案,因此有很高的推广应用价值。
洗墙灯的控制方式_洗墙灯的配灯过程
航空插头线束定制代加工
你见过机器人之间相互问答吗
锂电行业方形铝壳电芯在氦检方面存在以下痛点
金士顿DDR5内存通过英特尔内存解决方案_瑞虎8西伯利亚版上市发布
基于双口RAM的LonWorks智能通信节点设计
l3等级自动驾驶什么时候普及?
英创信息技术应用程序助手AppHelper使用介绍
2018版C-NCAP碰撞试验标准正式发布
中科创达与Autoware基金协会携手推进自动驾驶
云计算平台怎么使用_云计算平台在不同场合的使用介绍
通过12V电源的浪涌保护小器件方案
热电偶和热电阻,你真的都搞懂了吗?
柔性振动盘 视觉上料 anyfeeder
Nordic Nrf52840芯片为例看无线电传输和距离相关的两大关键因数
交叉极化干扰及其对抗措施
QA大战转折点?高通CEO:正在进行5G合作谈判,苹果能铁了心?
闭路电视监控系统防雷介绍
200G QSFP56高速线缆特性及发展前景
cpu怎么超频_超频后怎么帮cpu降热