LonWorks-USB互联适配器的设计开发
摘要:LonWorks技术的核心是神经元芯片,介绍了神经元芯片的一种I/O应用模式——并行口I/O模式,并介绍了基于此I/O模式设计开发的LonWorks协议与USB标准的互联适配器。
关键词:LonWorks 神经元芯片 并行口I/O模式 EZ-USB
LonWorks技术是美国Echelon公司于上世纪90年代初推出的一种现场总线技术。LON(Local Operating Network)的意思为局部操作网络,它是用于开发监控网络系统的一个完整的技术平台,LonWorks现场总线在网络通讯方面具有突出的优点,作为现场总线中的佼佼者在国内各个领域的测控系统中广泛流行。
通用串行总线(Universal Serial Bus,即USB)是一种快速、灵活的总线接口。与其它通信接口相比,USB总线接口最大的特点是易于使用,这主要表现在成本低、适用于多种设备、支持热插拔等方面,并且所有的配置过程都由系统自动完成,无需用户干预。目前,市场上供应的USB控制器主要有两种:带USB接口的单片机(MCU)和纯粹的USB接口芯片。本文采用Cypress公司推出的带智能USB接口的EZ-USB单片机。该单片机极大地降低了USB外设的开发难度,为PC机外设的制造商提供了一个性能优良、价格较低的设计方案。采用USB接口设计开发的LON网互联适配器很好地解决了传统适配器由于RS-232与PC/Laptop互联而造成的速度上的瓶颈。javascript:window.open(this.src);" style="cursor:pointer;"/>
1 系统框图及工作原理
1.1系统框图
系统框图如图1所示。
互联适配器是LON网与PC/Laptop的接口,在通信过程中起着关键的作用,它既完成了LON网与PC/Laptop的互联,又实现了数据的交换。互联适配器作为LON网的一个特殊的网络节点——通信处理器,能按照LonTalk协议与LonWorks总线上所有分布在现场的智能节点进行对等的数据通信,起到上传下达的桥梁作用。当现场的测控设备有数据送到LonWorks网络上时,互联适配器负责把所有发送给它的信息接收下来,将测控设备发送来的LonTalk显式报文重新打包装帧,向PC/Laptop发送。同时,它将从PC/Laptop接收来的已解析的数据按LonWorks现场总线通信协议构造LonTalk显式报文,发送给LonWorks网上的测控设备。
相对USB系统而言,PC/Laptop是USB主机,互联适配器只是USB外部设备。在整个USB系统中只有一个主控制器,即主机(PC/Laptop),主机是总线控制者,USB设备响应主机请求。系统软件设计部分也是针对主机和外部设备这两部分展开的。
1.2 工作原理
互联适配器中采用Neuron芯片预定义的并口I/O应用模式实现双CPU的通信,并行口的速率可达3.3Mbps,实现了高数据速率。
并行I/O应用模式下利用Neuron芯片的11个I/O口进行通信,其中,IO0~IO7为双向数据线,IO8~IO10为控制信号线,借助令牌传递/握手协议,并行I/O口可用来外接处理器,实现Neuron芯片与外接各类微处理器之间的双向数据通信,在这里采用EZ-USB单片机与Neuron芯片互连。主机PC/Laptop控制USB外部设备,通过互联适配器与LON网各现场节点通信,其实质就是互联适配器中EZ-USB单片机与Neuron芯片之间的通信。
并行口的工作方式有三种,即主模式、从A模式、从B模式。不同的模式下,IO8~IO10这三根控制信号线的意义不同,这里应用的是从A模式。在从A模式中,认为Neuron芯片为从CPU,EZ-USB单片机为主CPU,主CPU和从CPU之间的数据传输通过虚拟的写令牌传递协议(Virtual Write Token-Passing Protocol)得以实现。主CPU和从CPU交替地获得写令牌(Write Token),只有拥有写令牌的一方可以写数据(不超过255个字节),或者不写任何数据传送一个空令牌。传送的数据要遵从一定的格式,即在要传送的数据前面加上命令码和传送的数据长度,命令码有CMD_XFER(写数据)、CMD_NULL(传递空令牌)、CMD_RESYNC(要求从机同步)、CMD_ACKSYNC(确认同步)四种,最后以EOM字节结束。在从A方式中,整个握手/应答协议以及数据传送的实现过程是自动完成的。在通信以前,主CPU和从CPU之间先建立握手信号,即HS信号有效(这由3150的固件自动实现)。然后,主CPU再送一个CMD_RESYNC命令,要求从CPU同步,而从CPU接收到这个信号以后,则发送CMD_ACKSYNC,表示已经同步、可以通信了。同步以后,虚写令牌就在主CPU和从CPU之间无限地、交替地传递,拥有虚写令牌的一方就可以向数据总线上写数据,即主CPU可以往从CPU写数据,从机也可以将数据传往主CPU。
需要特别说明的是,Neuron芯片的握手及令牌传递的实现是自动的,但