您当前的位置:五五电子网电子知识单元电路接口电路PC104系统LON总线接口的设计 正文
PC104系统LON总线接口的设计

PC104系统LON总线接口的设计

点击数:7409 次   录入时间:03-04 11:59:12   整理:http://www.55dianzi.com   接口电路

【摘要】 LON总线是一种应用日益广泛的现场总线。为了使工业计算机系统方便地接入LON网络,文章介绍了采用双口RAM作为数据通信桥梁的PC104系统LON总线接口电路的设计,并给出了详细的硬件电路和软件设计流程。
【关键词】 PC104  LonWorks技术  双口RAM  FT3150


一、 引 言


    LON(LOCal Operational Netwok)总线是由美国Echelon公司于1991年推出的局部操作网络,是一种基于嵌入式神经元(Neuron)芯片的现场总线。Echelon公司推出了一系列软硬件工具作为对LON总线设计和开发的支持。目前,LON总线被广泛应用在楼宇自动化、家庭自动化、保安系统、办公设备、运输设备、工业过程控制等行业。
    PC104系统作为一种工业计算机系统目前在工业控制、铁路运输等领域应用越来越广泛。由于PC104规范采用总线插接结构,使得PC104系统具有结构紧凑、应用灵活、整机功耗低等优点。本文设计的接口电路利用双口RAM存储器作为桥梁,实现PC104系统主处理器与神经元芯片之间的数据交换,使PC104系统具有LON总线连接能力。

二、  LON总线的特点

    LON总线的特点在于它为用户提供了针对实际工程应用的通信芯片-神经元(Neuron)芯片。它通过内部集成的3个8位CPU,处理完整的LonWorks通信协议,从而确保在网络节点之间可以使用可靠的通信标准进行数据通讯。Neuron芯片带有强大的I/O功能。它通过11支可编程的I/O引脚,为用户提供了数字量I/O、串口通讯、并行通讯等34种I/O功能,与实际应用结合地十分紧密。为了方便用户开发,LonWorks提供了Neuron C开发语言及相应的开发工具,并提出了网络变量的全新概念。网络变量以隐式报文的形式自动在网络中传递信息、更新数据,用户无需为数据通信增加任何额外工作。

三、  接口硬件设计

    本文设计的接口其硬件电路主要由PC104总线插槽、双口RAM、FT3150芯片及外围电路、扩展存储器、CPLD逻辑译码电路组成,硬件结构如图1所示。

图1 硬件结构图


1  FT3150及外围电路
    本文采用的是Echelon公司最新推出的FT3150神经元芯片,它内部集成了Neuron 3150处理器内核和自由拓扑双绞线收发器,减小了接口电路的功耗,符合PC104  规范对接口板低功耗的要求。同时本文使用了与之配套的Echelon公司的FT-X1通信变压器,它对电磁干扰和高频共膜噪声具有较强的抗干扰能力。

图2 FT3150结构图

    图2给出了FT3150 芯片的内部结构图。FT3150芯片主要由Neurron芯片核心和一个自由拓扑收发器组成。Neuron芯片内部包含处理七层LonTalk协议的3个8位处理器,芯片内部集成了2KB RAM以及0.5KB EEPROM存储器。芯片的I/O功能模块提供了11支I/O引脚,根据实际需要对11支引脚进行编程,可以形成多达34种I/O功能,包括并行I/O、串行I/O、定时/计数器等等。通过对外引出地址及数据总线,芯片可以方便地扩充数据程序存储器。
    FT3150芯片服务引脚主要用于节点配置、安装与维护。它被设计为输入输出复用引脚。当其作为输出引脚驱动LED时,不同的LED状态指示了不同的节点工作状态,如表1所示。当其作为输入时,Neuron芯片会自动在网络上发送含有Neuron芯片ID值信息的网络管理消息,用于网络配置。


表1  节点状态

2  扩展存储器
     FT3150芯片的存储空间最多可以扩展到64K,而且片中只集成了极少的程序和数据存储器,分布在地址高段,其他必需的存储空间需要用户扩展。本文为芯片扩展了32K FLASH存储器作为FT3150芯片的固件和程序存储器,地址为0x0000-0x7FFF;16K RAM作为数据存储器,地址为0x8000-0xBFFF;4K双口RAM作为与PC104系统进行数据交换的数据存储器,地址为0xC000-0xCFFF。
3  双口RAM
    双口RAM是一种比较特殊的RAM存储器,它具有两套完全相同的独立的地址、数据和控制信号。这些信号允许两套系统同时访问存储器的数据,即在两套系统间形成了共用存储区,两套系统可以通过这个共用存储区进行数据交换。双口RAM的内部逻辑结构如图3所示。


 
图3 双口RAM内部逻辑结构图


    由于对存储器操作的快速性,利用双口RAM进行数据交换成为一种高效、普遍的数据交换方式,在高速数据采集等很多场合都有其广泛应用。但是,正是由于两套系统同时对存储器进行访问,就存在着对存储器读写冲突的问题。即当双方恰好同一时间对同一存储器地址进行写或一读一写操作时,操作数据会发生错误。
    双口RAM本身提供了几种解决冲突问题的方法:中断(INT)、忙(BUSY)、令牌(SEM)以及软件编程。 本文采用了8K的IDT7005双口RAM芯片,采用硬件忙信号解决操作冲突问题。当访问冲突发生事时,芯片会根据地址及片选信号判断,在信号较慢一方产生(BUSY)信号,通知较慢方做出相应处理。本文将两路忙信号(BUSYL、BUSYR)接入CPLD实现与逻辑BUSY=BUSYL AND BUSYR,得到的输出信号BUSY与PC104总线的IOCHRDY信号相连。PC104总线的IOCHRDY是慢速设备等待信号,当信号有效时,PC104总线会自动延时地址信号、控制信号以及数据信号,直到慢速设备准备好。当双口RAM访问产生冲突,处理速度较快的PC104总线进行等待,直到Neuron芯片访问完成后再进行操作。
4  复位电路
    为了保证接口电路正常运行,本文使用了专用的复位芯片MAX809,芯片的功能主要是当电源电压低落至一门槛电压甚至更低时,复位信号输出RESET有效,使芯片复位。另一方面,作为PC104系统的组成部分,当PC104系统复位引脚RESETDRV有效时,也同时引起Neuron芯片复位。
5  CPLD逻辑控制
    接口电路使用了ALTERA的CPLD芯片EPM7064,通过VHDL语言编程实现对所有存储器操作的片选信号和读写控制信号的产生、复位信号与双口RAM忙信号的逻辑处理。
6  PC104总线
    本文采用的PC104系统CPU板为SuperDX(盛博科技)。PC104系统为总线插接结构,本文按照PC104规范对板卡机械、电气要求制作了电路,通过PC104总线插槽实现了与系统的总线连接。

四、 软件设计

    Echelon公司为了方便用户对Neuron芯片的使用,专门为其开发了Neuron C语言。它是从ANSI C中派生出来的,并对ANSI C 进行了增删。熟悉C语言的编程人员能够轻松地掌握Neuron C语言并应用其进行开发。为了与Neuron芯片的开发相配合,Neuron C语言也有其自身的特点:
1  网络变量
    这是Neuron C语言提出,专门应用于LonWorks网络信息传输的变量形式,节点可使用网络变量通过隐式报文与其他节点进行通信。网络变量分为输入网络变量和输出网络变量,输出网络变量负责将变量数据报文发送到LonWorks网络上,与之相对应的输入网络变量在接收到报文后自动将数据更新。对用户来讲数据刷新完全是透明的。
    用户除了可以自行定义网络变量外,还定义了标准网络变量类型(SNVT)。根据具体应用的不同,标准网络变量有255种。
2  定时器
   Neuron C语言为用户提供了软件计时器对象,它使编程人员能够任意时刻激活所要完成任务。定时器分为两种:毫秒计时器和秒计时器,提供的定时器时间间隔分别为是1~64000毫秒和1~65535秒。在一个程序中可以定义最多15个定时器对象。
3  调度程序
    Neuron芯片的任务调度是由事件驱动的,当一个给定的条件判断为"TRUE"时,与条件有关的代码体(任务)即执行,符合逻辑思考的一般习惯。编程人员可以定义任务作为某类事件发生的结果,如当某一输入引脚的状态发生变化,则将相关的输入变化值赋给输出网络变量;或者当计时器溢出,将输出网络变量刷新,实现对输出网络变量的定时刷新。
    本文的Neuron C程序流程如图4所示。由于Neuron C语言的程序结构为事件触发,调度程序顺序检查事件触发条件是否满足,如果满足则执行相应处理程序。使用软件计时器进行数据定时刷新,当计时器溢出时,首先处理网络输入数据,读取相应的输入网络变量。由于采用双口RAM在PC104主处理器与FT3150芯片之间进行数据交换,只需要将网络的更新数据存入相应的双口RAM存储区。对于PC104系统的输出数据,FT3150芯片读取相应的存储区,获得输出数据,将数据赋值给输出网络变量,FT3150芯片会自动更新网络中的信息。为了保证数据刷新成功,程序要对输出网络变量更新是否成功进行检查,发送失败则进行重发。

 
图4   Neuron C 程序流程图


五、 实验结果

[1] [2]  下一页


本文关键字:接口  接口电路单元电路 - 接口电路