D0I:10.13374/j.issn1001053x.1999.06.025 第21卷第6期 北京科技大学学报 Vol.21 No.6 1999年12月 Journal of University of Science and Technology Beijing Dec.1999 EIA RS-232-C/RS-485信号Lon Works节点 赵家贵文波 北京科技大学信息工程学院,北京100083 摘要针对工业现场常见的EIA RS-232-C/RS-485信号设计了一类基于Neuron芯片的Lon- Works节点,该节点构成了EIA RS-232-CRS-485标准与LON的通讯协议之间的网关, 关键词LON Neuron芯片:EIA RS-232-CRS-485标准;节点 分类号TP393.03 从80年代末开始现场总线(FieldBus)成为 LonTalk协议之间的网关, 工业控制领域的热点,至今己出现多种现场总 线标准,较为著名的有FF,CAN和LON等四. 1节点硬件设计 以Neuron芯片为核心,辅以Lon Works收发 1.1 Lon Works节点硬件结构框图 器、现场信号的前置调理等电路即可构成LON 该节点的框图如图1所示. 的组成单元一典型节点.节点的作用是将工 ERROM 晶振 业现场的传感器或执行器的信号转换为包含 LonTalk协议的数据,从而与现场的其他节点直 接进行通讯,最终使得测量和控制等功能全部 232接可-UART,Neuron芯片 4 Lon Works 下放到现场级设备). 收发器 EIA RS-232-CRS-485地标准广泛为工业现 485接口 RAM LON网络介质 场设备所采用,是一种常见的电气和通讯接口, 图1BS-232-C/485信号的Lon Works节点结构框图 如PLC、智能仪器和调制解调器等设备均采用 232或485标准.因此,将现场设备的232/485信 该节点的工作原理如下:采用适当的接口 号转换为包含LonTalk协议的信息,从而与现场 芯片将现场信号电平转换为TTL兼容电平:采 的其他LON节点以及LON网络管理设备实现 用硬件UART将串行信号转换为并行信号从而 通讯,具有实际应用和拓宽LON应用范围的意 与Neuron芯片接口;Neuron芯片将输入数据处 义. 理为网络变量或其他包含LonTalk协议的数据 Neuron芯片的11个I/O有34种可选工作 并输出;采用Lon Works收发器将Neuron芯片 模式,其中包括串行I/O方式.该方式的数据格 的输出数据发送至LON的网络介质. 式为1位起始位、8位数据位和1位停止位,数 该节点既可与进行测量的现场仪表相连, 据速率可由软件设置为600,1200,2400和4800 也可与执行控制功能的设备相连,也就是说, bs,且其工作方式为半双工.从数据速率和工 该节点可处理双向信号,而这是通过软件设计 作方式来看,Neuron芯片自身所提供的串行接 来实现的. 口有很大的局限性,例如当数据速率要求大于 1.2节点的硬件电路设计 4800bps或要求全双工方式工作等情况下均无 该节点中,Neuron芯片选用Motorola公司 法实现.鉴于此,根据现场具体应用的要求,本 生产的MC143150.3150片内存储器的地址范 文设计了最大数据传输速率为115,200bps、全 围是E8OOH一FFFFH,包括2kB的SRAM和 双工的工作方式(不包括485信号)的Lon Works 512B的EEPROM.3150可以外接存储器,如 节点.该节点实际是RS-232-CRS-485标准与 RAM、ROM、EEPROM或FLASH,其地址范围 是0000H一E7FFH.根据一般应用的性能和成本 1999-04-06收稿赵家贵男,52岁,副教授
第 卷 第 期 年 月 北 京 科 技 大 学 学 报 】 心 一 一 一 信号 心 节点 赵家贵 文 波 北京科技大学信息工程学院 , 北京 摘 要 针 对 工 业现场 常见 的 一 一 瓜 一 信号设计 了一类基于 芯片的 · 节 点 , 该 节 点构成 了 一 一 瓜 一 标准与 的通讯 协议之 间的网关 关键 词 芯 片 一 一 瓜 一 标准 节点 分 类号 从 年代末 开 始 现场 总 线 成 为 工 业 控制领域 的热 点 , 至今 己 出现 多种现场 总 线标准 , 较 为著 名 的有 , 和 等〔 以 芯 片 为核 心 , 辅 以 收发 器 、 现场 信 号 的前 置 调 理等 电路 即 可 构 成 的组 成 单 元— 典 型 节 点 节 点 的作用 是 将工 业 现 场 的传 感 器 或 执 行 器 的信 号 转 换 为 包 含 协 议 的数 据 , 从而 与 现场 的其他节 点直 接进行 通讯 , 最 终使得测 量 和 控 制 等 功 能全部 下 放 到 现场 级 设 备 〔 一 一 一 地标准广 泛 为工 业现 场 设备所采用 , 是 一 种 常 见 的 电气和 通讯接 口 , 如 、 智 能仪器和 调 制 解 调 器 等设备均采用 或 标准 因 此 , 将现场 设 备 的 信 号转换 为包含 协议 的信息 , 从而 与现场 的其他 节 点 以及 网 络 管理 设 备 实现 通讯 , 具有 实 际应用和 拓 宽 应 用 范 围 的意 义 芯 片 的 个 有 种可 选工 作 模式 , 其 中包 括 串行 方 式 该 方式 的数 据格 式为 位起 始位 、 位 数据位 和 位停 止位 , 数 据速率可 由软件设置 为 , , 和 , 且 其 工 作方 式 为 半 双 工 从 数据 速 率和 工 作方 式来看 , 芯 片 自身所提供 的 串行接 口 有 很 大 的局 限 性 , 例 如 当数据 速 率要 求大于 或 要 求全双 工 方式工 作等情 况 下 均无 法 实现 鉴 于此 , 根据 现场 具 体应用 的要 求 , 本 文 设 计 了最 大 数据 传 输速率 为 巧 , 、 全 双 工 的工 作 方 式 不 包括 信 号 的 节 点 该 节 点 实 际 是 一 一 一 标准 与 协议之 间的网关 节点硬件设计 件结构框图 图 所示 收发器 晶振 接 口 卜 网络介质 图 一 一 信号 的 节点结构框圈 该节 点 的工 作原理 如下 采用适 当的接 口 芯 片将现场信号 电平 转换为 兼容 电平 采 用硬 件 将串行信号转换为并行信号从而 与 芯 片接 口 芯 片将输入数据 处 理 为 网络变量 或其他包含 协议 的数据 并输 出 采用 认 收发器将 芯 片 的输 出数据 发送 至 的 网络 介质 该节 点 既 可 与进行 测量 的现场仪表相 连 , 也可 与执行控制功能 的设 备相 连 也 就 是说 , 该节 点可 处理双 向信号 , 而 这 是 通过软 件 设 计 来实现 的 节点的硬件 电路设计 该节 点 中 , 芯 片选用 公 司 生 产 的 片 内存储器 的地址 范 围是 一 , 包括 的 和 的 可 以外接存储器 , 如 、 、 或 , 其 地址 范 围 一 一 是 一 根据 一般应用 的性 能和成本 收稿 赵 家贵 男 , 岁 , 副教授 DOI :10.13374/j .issn1001—053x.1999.06.025
Vol.21 No.6 赵家贵等:EIA RS-232-C/485信号LonWorks节点 ·601· 要求,该节点的外部存储器采用EPROM和 离水平杂散电磁场区域,对于不可避免的杂散 RAM.EPROM选用27C256-120,RAM选用 电磁场应使其相对于FTT-I0A垂直分布, HY62256一10.27C256的地址范围由Neuron芯 2节点软件设计 片的地址线和控制线E来确定.62256的地址范 围通过可编程逻辑阵列(GAL)根据Neuron芯片 2.1 Neuron芯片的编程语言一Neuron C 的地址线和控制线E来确定,另外,当节点采用 Neuron芯片有一套专门的开发语言一 RS-485方式时,GAL通过来自UART的RTS信 Neuron C.Neuron C派生于ANSIC,并增加了对 号对485接口处于发送还是接收状态进行控制. I/O、事件处理、报文传送和分布式数据对象的 232信号的调理电路选用SN75LBC187,它 支持,是开发Neuron芯片应用程序的重要工具. 将±12V的232电平转换为+5V电平,然后送 与ANSI C不同的是,Neuron C不支持文件I/O 至UART.选用MAX485芯片将485差分信号转 和浮点运算;但是,Neuron C有专用的实时库和 换为单端信号, 语法扩展以支持Neuron芯片的智能分布式控 为提高节点所能处理的信号的数据速率, 制应用.其语法扩展包括软件定时器、网络变 该节点采用异步串行通讯器件UART来实现信 量、显式报文、多任务调度、EEPROM变量和附 号与Neuron芯片I/O的接口.UART选用NS公 加功能等.其中,网络变量的使用为LON节点 司的PC16550D.16550D可将来自外设的串行信 间的通讯及互操作提供了基础.通过不同节点 号转换为并行信号,或将来自CPU的并行信号 的、相同类型的网络变量的互连,即可实现节点 转换为串行信号.通过对16550D内部寄存器进 之间的数据传递.也就是说,LON节点通过网 行编程,即可建立异步串行通信协议(数据传输 络变量实现了数据的共享. 速率、数据格式等)以及UART的操作方式(查 2.2节点的软件设计 询I/O或中断I/O).为了同UART的并行信号接 该节点的应用程序采用Neuron C语言编 口,将Neuron芯片的8个/O进行地址、数据复 写.其功能是实现现场设备的232C/485信号与 用,其余3个I/O作为读写UART的控制信号通 包含LonTalk协议的数据之间的相互转换. 道.此处采用地址数据分离器件74HCT573进 以节点与现场测量设备相连为例进行讨 行地址的锁存,实现地址和数据的分离. 论.根据硬件设计,将Neuron芯片的I/O定义为 Neuron芯片与LON的网络介质的接口采 多总线(muxbus)I/O对象类型.多总线I/O为并 用一种LonWorks收发器一自由拓扑型收发 行I/O对象,使用11个I/O构成8位地址和双向 器FTT-10A.FTT-10A是一种变压器耦合收发 数据总线接口,即采用地址和数据的总线复用. 器,可提供一个与双绞线的无极性接口,且支持 定义多总线I/O对象的Neuron C源代码如下所 网络的自由拓扑结构.网络通讯介质采用最常 示:IO0 muxbus IO BUS,其中,IO BUS为所定 用的双绞线. 义的/O对象名称. 13节点的抗干扰设计 节点程序包括:初始化16550D,从16550D 工业现场的环境一般来说较为恶劣,存在 的接收缓冲寄存器读取所测量的数据、进行相 多种干扰.为保证通讯的准确无误,延长硬件使 应的数据处理并打包为输出网络变量等3个部 用寿命,该节点除采用通常的供电和接地抗干 分. 扰措施外,主要是要避免和消除来自网络介质 初始化16550D主要包括:初始化线路控制 的静电泄放(ESD)和电磁干扰(EM),即主要针 寄存器(LCR),确定数据格式为8位数据位、1位 对FTT-10A来设计抗干扰电路. 停止位、无奇偶校验位,并使其D7位为1以允 对于ESD,在印刷电路板(PCB)设计中应提 许设置波特率因子寄存器:然后初始化波特率 供一个导入大地的通道,还要不致引起整个 因子寄存器(DLL和DLM)为允许范围内的某一 PCB电压的升降,具体采用火花放电隙和箝位 值(50bps~115,200bps):最后将LCR的D7位设 二极管来实现.对于EMI,因为FTT-10A对垂直 置为0以允许访问接收缓冲寄存器、发送保持 杂散电磁场最不敏感,而对水平杂散电磁场最 寄存器或中断允许寄存器, 敏感,所以在PCB设计中应使FTT-10A尽量远 初始化16550D的Neuron C源代码如下所 示(以波特率600bps为例):
赵 家贵等 一 一 信 号 节 点 要 求 , 该 节 点 的外 部 存储 器 采 用 和 选用 一 , 选用 一 的地址 范 围 由 芯 片 的地址 线和控制线 来确定 的地址 范 围通过可 编程逻辑阵列 根据 芯 片 的地址 线和控制线 来确 定 另外 , 当节 点采用 一 方式时 , 通过来 自 的 信 号对 接 口 处于发送还 是接收状态进行控制 信 号 的调 理 电路 选 用 , 它 将士 的 电平 转换为 电平 , 然后送 至 选用 芯 片将 差 分信 号转 换为单端信号 为提高节 点所能处 理 的信号 的数据 速 率 , 该节点采用异步串行通讯 器件 来 实现信 号 与 芯 片 的接 口 选用 公 司 的 可将来 自外设 的 串行信 号转换 为并行信号 , 或将来 自 的并行信号 转换为串行信号 通 过对 内部 寄存器进 行编程 , 即可 建立异步串行通信协议 数据传输 速率 、 数据格式等 以及 的操作 方 式 查 询 或 中断 为了 同 的并行信 号接 口 , 将 芯 片的 个 进 行地 址 、 数据 复 用 , 其 余 个 作为读写 的控 制 信 号 通 道 此 处 采用地 址数据分离器 件 进 行地 址 的锁存 , 实现地 址 和 数据 的分 离 芯 片与 的网络 介质 的接 口 采 用 一 种 收发器— 自由拓 扑型 收发 器 一 一 是一 种变压器藕 合 收发 器 , 可 提供一个与双绞线的无 极性接 口 , 且 支持 网络 的 自由拓扑结构 网络通讯 介质采用 最 常 用 的双 绞线 节点的抗干扰设计 工 业 现 场 的环 境一 般来说较 为恶 劣 , 存在 多种干扰 为保证通讯 的准确无 误 , 延长硬件使 用 寿命 , 该节点除采用通 常 的供 电和 接地 抗干 扰措施 外 , 主 要是要避 免和 消 除来 自网 络 介质 的静 电泄放 功 和 电磁 干 扰 , 即主 要 针 对 一 来设计抗干 扰 电路 对 于 , 在 印刷 电路板 设计 中应 提 供 一 个 导入 大 地 的通 道 , 还 要 不 致 引起 整 个 电压 的升 降 , 具 体采用 火花 放 电隙和 箱位 二 极管来 实现 对 于 , 因 为 一 对 垂 直 杂 散 电磁 场最 不 敏 感 , 而 对水 平 杂散 电磁 场 最 敏 感 , 所 以在 设计 中应 使 一 尽 量 远 离水 平 杂散 电磁场 区 域 , 对 于 不 可避 免 的杂 散 电磁场应 使其相对 于 一 垂 直 分布 节点软件设计 芯 片的编程语言 芯 片 有 一 套 专 门—的 开 发 语 言 派 生 于 , 并 增加 —了对 、 事件 处 理 、 报 文 传 送和 分 布 式 数 据 对 象 的 支持 , 是开 发 芯片应用程序 的重 要 工 具 与 不 同 的是 , 不 支持文 件 和 浮 点运算 但 是 , 有专用 的实时库和 语 法扩 展 以支持 芯 片 的智 能分布式控 制应用 其语法扩展 包 括 软 件 定 时器 、 网 络变 量 、 显 式报文 、 多任 务调 度 、 变量 和 附 加 功能等 其 中 , 网 络变量 的使用 为 节 点 间 的通讯及 互 操作 提供 了基础 通过 不 同节 点 的 、 相 同类型 的网络 变量 的互连 , 即可 实现节 点 之 间 的数据 传 递 也 就 是 说 , 节 点通 过 网 络 变量 实现 了数据 的共享 节点的软件设计 该节 点 的应 用 程序采 用 语 言编 写 其 功 能是 实现现场 设备 的 犯 信 号与 包 含 协议 的数据 之 间 的相 互 转 换 以 节 点 与 现 场 测 量 设 备 相 连 为 例 进 行 讨 论 根据 硬件 设计 , 将 芯 片 的 定 义为 多 总线 对 象类 型 多总线 为并 行 对 象 , 使用 个 构成 位地址 和 双 向 数据总线接 口 , 即采用地 址和 数据 的总线复用 定义 多总线 对 象 的 源代 码 如 下 所 示 一 , 其 中 , 一 为所 定 义 的 对象名称 节 点程 序包 括 初始化 , 从 的接 收缓冲 寄存器读取 所 测 量 的数据 、 进 行 相 应 的数据 处 理并打 包 为输 出 网络 变量 等 个 部 分 初始化 主 要 包括 初 始化 线 路 控制 寄存器 , 确 定数据格式为 位数据位 、 位 停止位 、 无 奇偶校验位 , 并使其 位 为 以允 许 设置 波特 率 因 子 寄存器 然 后 初 始化 波特 率 因 子 寄存器 和 为 允 许 范 围 内的某一 值 一 , 最 后 将 的 位设 置 为 以允许访 问接 收缓冲 寄存器 、 发送保持 寄存器 或 中断允 许 寄存器 初始化 的 源代码 如 下 所 示 以波特率 为例
602· 北京科技大学学报 1999年第6期 io_out(IO_BUS,Ox03,0x83); 可能多地接收到达的数据,本节点程序在接收数 io out(IO BUS,0x00,0xOc): 据这个任务中周期性地调用函数watchdog_up- io_out(IO_BUS,Ox01,0x00); date().节点的调试和实验证明这样做不会出现 io_out(IO_BUS,0x03,0x03). 系统不断复位的情况.采用LonWorks开发工具 Neuron C是一种基于事件的编程语言,本节 -LonBuilder中的Neuron C编译器对节点程 点程序使用两类事件.一类是reset,当节点加电、序进行编译,生成ROM映象文件,最后编程到 掉电或watchdog定时器终止时该事件被触发,片外EPROM中,另外,可对节点程序进行适当 进行初始化Neuron芯片和16550D:另一类是监 修改以适应具体应用的需要, 测16550D的线路状态寄存器事件,当数据准备 好时Neuron芯片对UART进行读操作,读取数 3结论 据后设置为输出网络变量以供其他节点或网络 本文所设计的节点可与EIA RS-232-C/ 管理设备共享数据.读取数据的Neuron C函数 RS-485标准的串行I/O设备进行接口将232或 为io inO),其格式如下: 485信号转换为包含LonTalk协议的数据,或可 io_in(ioobject_name,address); 将LON网络介质上的信息转换为232或485标 其中,ioobject_name为IO对象名称,address 准的信号,从而实现现场节点之间以及与网络管 为UART接收缓冲寄存器的8位地址. 理工具之间的数据传递. 值得注意的是,Neuron芯片的应用CPU在 Neuron芯片内部固化了LonTalk协议,使得 执行该0nO函数时会处于等待状态,也就是说 二次开发者不必过多关心通讯细节,而是集中力 等待数据时应用CPU不能处理其他IO事件、定 量处理具体的应用.Neuron芯片对现场通讯和控 时器终止、网络变量更新或报文到达事件,如果 制的强大支持以及Neuron C为分布式控制所作 20字符时间内尚没有接收到数据,则可能使wat- 的语法扩展使得LON的应用开发周期短、开发 chdog定时器产生超时错.在10MHz的输入时 效率高、产品性能好.局部操作网LON将在更多 钟下,watchdog的超时时间是0.84s(该时间随输 的领域得到更为广泛的应用. 入时钟而改变).通常情况下调度程序(scheduler) 会周期性地对watchdog定时器进行复位,但当 参考文献 程序处理一个较长的任务(task)如io_in0时,则1王锦标.,现场总线综述.冶金自动化,1998(6):1 有可能终止watchdog定时器,这将导致整个节 2周振环,凌志浩,马欣,等.Neuron芯片在新一代分布式 点的复位,为避免产生这种情况,同时使程序尽 测控系统中的应用.世界仪表与自动化,1998(10):40 A Kind of Lon Works Node for EIA RS-232-C/RS-485 Signal Zhao Jiagui,Wen Bo Information Engineering School,UST Beijing,Beijing 100083,China ABSTRACT A kind of Lon Works Node based on Neuron chip was developed for EIA RS-232-C/RS-485 signal.The node actually works as a gateway between RS-232-C/RS-485 standard and LonTalk protocol. KEY WORDS LON Neuron chip;EIA RS-232-C/RS-485 standard;node
北 京 科 技 大 学 学 报 年 第 期 一 , , 一 , , 一 一 , , 一。 , , 是 一 种基 于 事件 的编程语 言 本节 点程序使用 两类事件 一类是 , 当节 点加 电 、 掉 电或 定 时器终止 时 该事 件被触 发 , 进行初始 化 芯 片和 另一 类是 监 测 的线路状态 寄存 器事件 , 当数据准 备 好 时 芯 片对 进行读操 作 , 读取 数 据 后 设 置 为输 出 网络变量 以供 其他节 点或 网 络 管理 设备共享数据 读取数据 的 函数 为 , 其格式如下 , 其 中 , 为 对象名称 , 为 接收缓冲 寄存器 的 位地址 值得注 意 的是 , 芯 片 的应用 在 执行该 函数 时会处 于等待状态 , 也就是说 等待数据 时应用 不 能处理其他 事件 、 定 时器 终止 、 网 络 变量 更 新或报文 到达事件 如 果 字符 时 间 内尚没 有接收到数据 , 则可 能使 定 时器产 生超 时错 在 的输入 时 钟 下 , 的超 时 时 间是 该 时 间 随输 入 时钟而 改变 通常情 况下 调度程序 会 周 期 性 地对 定 时器进行 复位 , 但 当 程序 处 理 一 个较长 的任务 如 时 , 则 有可 能终 止 定 时器 , 这将 导致整个节 点 的复位 为避免产 生这种情况 , 同 时使程序尽 可 能多地接收到达 的数据 , 本节 点程序在接收数 据这 个任务 中周 期性地调用 函 数 少 节 点的调试和 实验证 明这样做不 会 出现 系统 不 断复位 的情况 采用 开 发工 具 — 中的 编译器 对节 点程 序进行 编译 , 生 成 映象文件 , 最 后编程到 片外 中 另外 , 可 对节 点程 序进行 适 当 修改 以适应 具 体应 用 的需要 结论 本 文 所 设 计 的 节 点 可 与 一 一 一 标准 的 串行 设 备进行 接 口气将 或 信号转换 为包含 协议 的数据 , 或可 将 网络介质上 的信息转换为 或 标 准 的信号 , 从而实现现场节 点之间 以及与网络管 理 工 具之 间 的数据传递 芯 片 内部 固化 了 协议 , 使得 二 次开发者不 必 过多关心通讯细节 , 而 是集 中力 量处理具体的应用 芯 片对现场通讯和控 制 的强大支持 以及 为分布式控制所作 的语法扩 展使得 的应用 开 发周 期短 、 开发 效率高 、 产 品性 能好 局 部操作 网 将在更 多 的领域得 到更 为广 泛 的应 用 参 考 文 献 王锦 标 现场 总线综述 冶金 自动化 , 周 振环 ,凌志浩 ,马欣 ,等 芯 片在新一代分布式 测控系统 中的应用 世 界仪表与 自动化 , 抢 一 一 一 , , 环仑儿 , , 一 一 一 一 一 一 一 一 瓜 一