Neuron多处理器芯片及其应用
摘要:Neuron芯片是美国Mitorola公司和日本Toshiba公司制造的一种多处理器结构的神经元芯片。它将通信协议和控制用微处理器有效地集成在一起,实现通信、控制、调度和I/O等功能。本文以MC134150为例,介绍有关Neuron芯片的基本结构和组成、LonTalk协议以及应用系统的组成方式等。
关键词:神经元芯片 多处理器 Neuron固件
一、Neuron芯片的基本组成
Neuron芯片作为一种多处理器结构的神经元芯片,有着完整的系统资源,如图1所示,其内部集成有三个管线CPU,最高工作频率可达10MHz。它设置有11编程输入、输出引脚(IO1~IO10),编程方法多达34种,方便了实现应用。片内设有EEPROM和RAM,支持有外部扩展多种存储器的接口,最大存储空间允许有64KB。内部含有两个16位定时器/计数器,能够由固件产生15个软件定时器。Neuron芯片的长处还在于它的网络通信功能,引出的五个通信引脚(CP0~CP4)提供了单端、差分和特殊应用模式等三种网络通信方式。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1.处理器单元
Neuron芯片集成有三个处理器,其中一个用于执行用户编写的应用程序,另外两个完成网络任务。图2示意了Neuron芯片内三个处理器的功能分配及与内部共享存储器区域之间的关系。
(1)MAC处理器是媒体访问控制层处理器。它处理OSI七层网络协议中的1,2层,主要包括驱动通信子系统硬件以及执行冲突回避算法等。MAC处理器使用位于共享存储器中的网络缓冲区与网络处理器进行通信。
(2)网络处理器实现网络协议中的3~6层。它实现网络变量处理、寻址、事务处理、文电鉴别、软件定时器、网络管理和路由等功能。网络处理器通过共享存储器中的网络缓冲区与MAC处理器通信,并采用应用缓冲区与应用处理器进行通信。应用缓冲区也是设置在共享存储器中的。对缓冲区的访问都用硬件信号灯来协调,以便在更新共享数据时消除竞争。
(3)应用处理器一方面执行用户编写的应用程序代码,另一方面执行由用户代码所调用的操作系统服务。大多数应用程序均可采用Neuron C语言来编制,使编程工作真正从繁琐的汇编语言中解脱出来。
2.存储器分配
MC143150的外扩存储器接口总线中,javascript:window.open(this.src);" style="cursor:pointer;"/>有8位双向数据总线、16位处理器驱动的地址总线以及用于外部存储器存取访问的两个接口信号线R/W和E。总的地址空间为64KB,其中有6KB的地址空间保留在芯片内,剩余的58KB的地址空间供外扩存储器使用。在外扩存储器中,通常用16KB存放固件,其余的42KB用于存放用户程序和数据信息。
3.应用I/O口
具有11个引脚的I/O接口提供有34种编程方式,另外,2个16位定时器/计数器可用于频率和定时I/O。由固件产生的15种软件定时器并不占用应用处理器的运算时间,而由完成网络功能的处理器实现。因此,用户可直接使用软件定时器,不必考虑其具体操作。
Neuron芯片提供的11个I/O引脚(IO0~IO10)可通过编程设定为34种不同的I/O对象,支持电平、脉冲、频率、编码等各种信号模式,有直接I/O对象、定时器/计数器I/O对象、串行I/O对象、并行I/O对象等供用户选择。它们与集成的硬件和固件一起可用于连接马达、阀门、显示驱动器、A/D转换器、压力传感器、热敏电阻、开关量、继电器、可控硅、转速计、其他处理器和调制解调器等,方便了实际应用。表1列举了所有I/O对象的基本类型。
表1 I/O对象类型参照表
I/O对象类型 | 注 释 |
Bit input/output | 位输入/输出 |
Bitshift input/output | 位称输入/输出 |
Byte input/output | 字节输入/输出 |
Dualslope input | 双积分输入 |
Edgedivide output | 脉冲沿分离输出 |
Edgelog input | 边沿跳变时间间隔序列输入 |
Frequency output | 频率输出 |
I2C input/output | I2C输入/输出 |
Infrared input | 远红外输入 |
Leveldetect input | 电平监测输入 |
Magcard input | 磁卡编码输入 |
Magtrackl input | 经录入1输入 |
Muxbus input/output | 多总线输入/输出 |
Neurowire input/output | 神经元接口输入/输出 |
Nibble input/output | 半字节输入/输出 |
Oneshot output | 单稳输出 |
Ontime input | 逻辑电持续时间输入 |
Parallel input/output | 并行输入/输出 |
Preiod input | 周期输入 |
Pulsecount input | 脉冲计数输入 |
Pulsecount output | 脉冲计数输出 |
Pulsewidth output | 脉宽输出 |
Quadrature input | 位置码盘输入 |
Serial input/output | 串行输入/输出 |
Totalcount input | 累加计数输入 |
Touch input/output | 触点输入/输出 |
Triac output | 触发输出 |
Triggeredcount output | 计数触发输出 |
Wiegand input | 维甘德输入 |
4.通信口
由CP0~CP4组成的通信接口,允许工作在单端或差分模式,既可直接驱动,也可外接变压器驱动或外接485总线驱动。传输速率的选择范围为0.6kb/s~1.2Mb/s。
5.附加功能
Neuron芯片具有睡眠/唤醒电路、看门狗定时器和服务引脚等附加功能。
(1)Neuron芯片可以在软件控制下进入低耗的睡眠状态,此时,振荡器系统时钟、通道端口所用的定时器/计数器均关闭。但是,所有的状态信息(包括内部RAM中的内容)都保留,这样可以降低系统功耗。
(2)Neuron芯片中的处理器由三个看门狗定时器保护,主要针对软件错误或存储器错误。若系统软件或应用软件不能周期性地复位些定时器,则整个神经元芯片将被自动复位。在10MHz时钟下,看门狗定时器大约持续0.84s。
(3)Service引脚在芯片固件的控制下,为配置和安装含有芯片的节点时使用。该引脚的可编程上拉电阻由应用软件选择。
二、Neuron固件
Neuron芯片的固件主要包括基于OSI参考模型的LonTalk协议、I/O驱动程序、事件驱动的多任务调试程度以及函数库等部分。其中的LonTalk协议具有通用性,支持多种媒体和多种网络拓扑结构,并提供多种服务。LonTalk协议可使控制信息在各种介质中可靠地传输。表2列出了LonTalk与OSI 7层协议之间的比较,以及与Neuron芯片中三个处理器之间的关系。
表2 LonTalk与OSI7层协议的比较
层号 | OSI层次 | 标准服务 | LON提供的服务 | 处理器 |
7 | 应用层 | 网络应用 | 定义标准网络变量类型 | 应用处理器 |
6 | 表示层 | 数据表示 | 网络变量、外部帧传送 | 网络处理器 |
5 | 会话层 | 远程操作 | 请求/响应、认证、网络管理 | 网络处理器 |
4 | 传送层 | 端对端的可靠传输 | 应答、非应答、点对点、广播、认证等 | 网络处理器 |
3 | 网络层 | 目的地址寻址 | 地址、路由 | 网络处理顺 |
2 | 链路层 | 介质访问和数据组帧 | 帧结构、数据解码、CRC差错检测预测、CSMA磁撞回避、选择优先级、碰撞检测 | MAC处理器 |
1 | 物理层 | 电气连接 | 介质、电气接口 | MAC处理器 |
三、Neuron C语言
Neuron C是基于ANSI C并针对LonWorks分布控制的应用,经优化、加强而成的一种程序设计语言。它增强了对I/O支持、时间处理、报文传递等功能,其扩充部分包括软件定时器、网络变量、显式报文、一个多任务调试、EEPROM变量和杂函数等。Neuron C语言提供的主要特征和支持包括以下内容。
(1)一个内部多任务调度程序:允许程序员以一种自然的方式逻辑地表达由事件引发的并行任务,并可以控制任务执行的优先级。
(2)一个Run-Time函数库:调用时执行事件检查、I/O管理、网络信息的接收和传送、Ueuron的多种控制等。
(3)实现对I/O操作显式的控制:通过对I/O对象的说明来定义标准化Neuron芯片特有的多功能I/O。
(4)新一级对象“网络变量”的说明语句:网络变量作为Neuron C语言的对象,无论何时被赋值,其值都可自动地传遍网络。网络变量的引入和使用了节点间的数据共享。
(5)新语句“when”:定义由事件驱动的任务。
(6)支持显式报文传递:实现对基本LonTalk协议服务的直接访问。javascript:window.open(this.src);" style="cursor:pointer;"/>
(7)一种对毫秒和秒计时器对象说明的语句:它们在停止计数时将会激活用户定义的任务。
利用Neuron C语言提供的支持,可大大控制网络软件的开发和应用,使开发人员几乎感觉不到在网络环境下编程。
四、应用系统的基本组成
图3所示是基于Neuron芯片的应用系统,一般由下述器件构成。
1.Neuron芯片
它主要用于实现LonTalk协议服务,执行节点中的应用程序。
2.收发器
收发器其实是连接Neuron芯片和通信介质之间的接口,可支持比绞线、电力线、无线射频、光纤及红外等多种介质的通信。由于Neuron固件中含有通信协议,因此,该器件的使用对构建网络环境的应用系统十分方便。
3.应用电路
应用电路是连接Neuron芯片的I/O引脚到诸如传感器、执行器、键盘、显示器等I/O设备所需的电子线路。它需要按照不同的应用要求单独设计。此时,只要通过配置I/O对象和编制Neuron C应用程序,就能控制该应用系统的工作,并实现网络环境的通信功能。
从图3所示的应用系统可知:Neuron芯片的I/O口可通过应用电路输入或输出数据,以与外界接口;借助于Neuron芯片固件中的LonTalk协议支持,Neuron芯片的通信口可通过收发器实现与网上其他应用系统的双向数据通信。Neuron芯片的强大功能和组成应用系统的灵活结构,对组建分布式应用系统无疑是相当方便的。