库存索引:

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
0
1
2
3
4
5
6
7
8
9

基于Lonworks技术的网络打印服务器设计

        

    

    

    本文描述的网络打印服务器(nps)可以为工业现场的多个智能装置提供可靠的打印共享服务,极大地节约了系统成本;并且还可以方便地对nps的功能进一步扩充,构成一个分布式控制系统。lonworks网络技术[1]是由echelon公司开发的一种现场总线网技术,具有通信可靠、抗干扰能力强的优点,使其在航天控制、工业过程控制、楼宇自动化、通信等领域得到了广泛的应用。其采用的lontalk协议完全支持osi/iso网络协议参考模型从物理层直至应用层的全部7层服务。toshiba公司的tmpn3150/3120神经元芯片[2]内嵌了lontalk协议,lontalk协议和一个网络操作系统作为神经元芯片的固件提供给用户,方便了用户开发。神经元芯片支持多种通信介质、多信道和多种通信速率。nps硬件设计采用toshiba公司的tmpn3150神经元芯片,应用程序开发和调试工具为echelon公司的nodebuilder[3],其编程语言为neuron c语言l4,5]。nps能够与多达64个其他智能设备(id—intelligent device)构成总线型网络,通信介质为双绞线,通信速率在78kbps时最大通信距离为1 200 m。系统结构如图1所示。

    

    1 nps硬件设计

    如图2所示,nps采用1块tmpn315081af神经元芯片,配置1片64k×8位flash存储器作为程序存储器和1片128k×8位ram作为数据存储器;神经元芯片的cp0~cp4双向通信接口和78kbps的收发器构成lon-works网络接口;tmpn315081af神经元芯片i/o引脚的功能可通过程序灵活配置。在此,i/00~i/07引脚接打印机接口的8位数据线,i/08引脚接打印机选通线(strb),i/09接打印机的“busy”信号线,并要在应用程序中用如下neuron c语句配置:

    io_0 output byte printdata;

    io_8 output bit printstb;

    io_9 output bit printbusy;。

    2 nps应用程序设计

    nps与各个智能节点之间为主从方式,通过查询完成工作。网络寻址为domain:subnet:node方式。网络通信采用显示报文格式。

    2.1 应用程序运行机制

    tmpn315081af神经元芯片固化了lontalk的全部七层协议[2],位于应用层的调度程序(scheduler)负责目标应用程序的启动、任务调度运行,并且任务运行必须有一个特定的事件来触发。根据这个调度机制,本文在nps的应用程序中实现了以下事件(events)及其对应任务的功能。

    (1) reset事件

    完成nps的网络地址设置,建立lonworks网络的域和地址,并完成打印机初始化工作。

    (2)timer_expires事件

    在程序中定义了3个周期性定时器:

    stimer repeating snetupdtr=12;

    mtimer repeating maddrtr=300;

    mtimer repeating mpolltr=1000;。

    

    秒级定时器snetupdtr启动网络更新,毫秒级定时器maddrtr事件对应的任务通过广播报文查询网络上的节点地址,并更新程序中的所有节点列表。节点结构定义如下:

    typedef struct

    { unsigned int id_num;//唯一id

    char id_descrip[32];//描述网络地址,定义在neu-ron c的addrdefs.h文件中msg_out_addr id_dest_addr;

    }id_info;

    毫秒级定时器mpolltr事件激发查询任务,询问网络上的节点是否有打印信息。

    (3)msg_arrives事件

    当收到报文时,此事件为真,其对应的任务接收报文,根据报文类型字段,可以区分是命令报文还是欲打印数据报文。

    (4)io_in()事件

    在程序中对应when(io_in(print_busy)==0){…},就是当打印机一旦空闲,就启动打印任务,把程序中打印缓冲区的数据输出到打印机。整个nps应用程序的运行机制如图3所示,每个任务在执行时都调用相应的函数来完成预定功能,函数代码不在此详述。

    2.2 应用程序通信协议

    之所以单独提出这个问题,是因为通讯协议对网络应用程序至关重要。本文中,nps和其他智能节点间的应用层通信协议为两级协议:第一层,显式报文严格按照neu-ron c定义的格式、填写报文的个字段;第二层,对显式报文中的数据段,应该定义自己的用户数据规约。<