导言
在体系编程ISP(In System Programming)是指在用户规划的方针体系或印刷电路板上为重新配置逻辑,或完成新的功用而对器材进行编程或重复编程。跟着EDA东西的遍及和ISP器材的日益老练,ISP技能也得到了越来越广泛的运用。ISP技能的运用使得硬件规划软件化,其明显优势表现在:简化生产流程;运用同一硬件结构完成多种体系功用,使之成多功用硬件;在不特别电路板资源的情况下进行电路板级测验;鸿沟扫描测验;经过Modem和ISP编程接口完成对体系的长途保护和晋级。
对ISP器材的编程可经过PC机进行,运用1条编程电路(或称下载电缆)将精确守时的编程信号供给给该器材。可是,这种办法不能使各种器材的数据下载脱离EDA东西独立进行,真实意义上的在体系可编程难以完成。关于ISP器材的编程也能够经过微处理器的操控程序完成,这就为依据Neuron芯片的LON网络节点供给了运用空间。
Lon(Local Operating Networks)总线是美国Echelon公司1991年推出的部分操作网络,现在已广泛运用于测控网络中。LonWorks现场总线技能在操控体系引入了网络的概念。在该技能的基础上,能够方便地完成散布式的网络操控体系,并使得操控体系更高效、更灵敏、更易于保护和扩展。运用散布的智能操控节点进行在体系编程无需编程电缆,而且能够充沛地运用体系资源,简化编程操作,大大拓宽了在体系编程技能的运用规模。
1、 依据Neuron芯片的操控节点
1.1 Neuron芯片简介
Neuron芯片的LonWorks节点的中心部分,它既能办理通道,一起具有输入/输出以及操控等才能。该芯片首要包含Neuron 3120和3150两大系列。二者的区别是3150芯片中无部ROM,但具有拜访外部存储器的接口,寻址空间可达64KB,可用于开发更为杂乱的运用体系,Noeuron芯片内部固化了完好的LonTalk通讯协议,确保节点间的牢靠通讯和互操作。芯片内部有3个8位CPU和谐作业,完成Lon节点的通讯和操控功用;11个编程I/O口;5个网络通讯端口供给3种作业方法;单端方法、差分方法和专用方法。
1.2 操控节点的硬件结构
Lon网络节点有2种类型:依据Neuron芯片的节点(Neuron芯片是仅有的处理器)和依据主机的节点(主处理器可所以微操控器、PC机等)。一个典型的现场总线操控节点的根本结构如图1所示,首要包含以下几个部分功用块;运用CPU、I/O处理单元、通讯处理器、收发器和电源。不管哪种类型的节点都有1片Neuron芯片用于通讯和/或操控、1个I/O接口用于衔接1个或多个I/O设备,别的还有1个收发器担任将节点衔接上网。
本规划中操控节点的根本结构如图2所法。该节点首要包含Neuron芯片、128KB Flash存储器、10MHz晶振、FTT-10A收发器以及I/O接口、驱动、CPLD。Neuron芯片外部扩展了Flash存储器,用于存储固件和用户运用程序。其间固件经过编程器下载,而运用程序的下载能够运用编程器,还能够运用网络办理东西经Lon网络下载,这样,CPLD的重新配置就能够经过Lon网络方便快捷地进行。5根在体系编程操控的ispEN、MODE、SDI、SCLK以太SDO占用Neuron芯片的5个I/O口。Neuron芯片I/O口自身的驱动才能是不行的,需求运用74HC367或74HC244增强信号驱动才能,并运用恰当的阻容网络给信号线滤波,增强抗干扰才能。
2 、在体系编程的软件完成
2.1 以LatTIc公司的ispLSI这种CPLD器材为例,器材内需求编程的E2COMS单元阵列如图2所示。
E2COMS元件按行和列排成阵列。地址移位寄存器指明当时的编程行数,而数据移位寄存器装载即将写入该行的数据。数据移位寄存器分为低段数据寄存器高段数据寄存器,低段与高段的数据别离装入。编程时先将欲写放某行的数据串行移入数据移位寄存器,并将地址移位寄存器中与该行对应的方方位1(其他方方位0),让该行被选中,在编程脉冲的效果下将水平移位寄存器中数据写入该行。然后将地址移位寄存器移动1位,使阵列的下行被选中并将水平寄存器中装入下一行的编程数据,依此类推。
JEDEC(熔丝图)文件是电子器材工程联合会所拟定的文件器材编程信息的规范格局计算机文件,编程信息用ASCII码表明。Lattice公司界说了一种专用用于ISP操作的数据格局,即ISP数据流文件(ispSTREAM),本来的一个ASCII码只用1bit表明,大大减小了数据文件的存储空间。因而,履行在体系编程之前,首要运用ispCODE软件来完成这一数据转化,构成易于与Neuron C言语源代码相交融的ispSTREAM文件。
2.2 Neuron C编程言语
Neuron C是专门为Neuron芯片规划的编程言语,它从ANSI C中派生出来的,并进一步扩展了用以支撑由Neuron芯片中的固件供给的各种运转特性。Neuron C言语编程效率高,可读性强。该言语参加通讯、事情调度、散布数据目标和I/O功用,是开发LonWorks运用的有力东西。
为完成Neruon芯片与I/O设备之间的通讯,Neuron芯片的11个I/O引脚可界说为34种I/O目标,用户可依据实践运用的需求合理挑选在运用程序中界说不同的I/O目标,然后用io_in()或io_out()等函数完成对I/O目标的数据读写操作,即完成Neuron芯片与I/O设备之间的通讯。在本规划中,用作编程信号的I/O口界说为“直接I/O目标”中的“比特I/O目标”。比特输入是以TTL电平兼容的逻辑信号,输出是CMOS电平,能够驱动外接的与CMOS以及TTL兼容的逻辑电路。
2.3 软件完成
依据CPLD器材的内部结构及其在体系编程原理,操控程序的使命是从存储器中读出熔丝图数据据,然后将其转化为串行数据流,写入CPLD中。编程的进程由5个编程信号操控,它们由事前界说好的I/O口发生,然后编制读写这些I/O口的程序。ISP编程进程便是软件对这些口读写的进程。编程的关键在于供给精确守时的ISP编程信号,有必要确保各ISP编程信号之间的时序联系。
Neuron C程序整体结构如图4所示。Neuron C源程序首要界说变量、函数以及I/O口的运用情况,然后编写when()句子调度程序。当需求履行ISP操作时,调用相关程序。图4中,ispSTREAM文件头包含CPLD器材类型、CPLD器材块擦除和行编程的脉冲宽度等参数。
Neuron C关键字答应直接将部分运用代码加到指定的存储段。本规划顶用far关键字将ispSTREAM文件存储在RAMFAR区域。此外,在编程软件履行期间,因为指令的履行时间相对较长,大多数硬件守时要求(一般较短)都有自动地得到满意。但编程脉冲整体擦除脉冲却别离长达40ms和200ms,而板上没有硬件守时器,只要靠软件延时来完成。
在NodeBuilder开发环境下,履行build指令后,将作业目录下的devicename.NEI文件输出,装载到编程器中,编程器将运用程序和固件下载到Flash存储器中。
3、结束语
实践运转证明,经过Neuron芯片对CPLD进行ISP操作之后,CPLD完成了预订的功用。
现在,Lon网络操控技能在航空/航天、楼宇操控、运输设备等多种范畴的运用日益老练,而且因为该技能具有高性能、低成本的网络接口产品,而且易于开发低成本的网关,完成Lon网与以太网有机的结合。因而,在本试验的基础上,能够测验由主机经过长途服务将ISP器材的编程数据文件下载到Lon网的节点中,并由底层的现场设备履行在体系编程操作。这样,在体系编程技能的内在及其优越性得以充沛的表现,一起该技能的运用空间向体系的底层和长途扩展,真实的在体系可编程年代现已到来。
责任编辑:gt