基于PROFIBUS的智能接口芯片SPC3及其应用
扫描二维码
随时随地手机看文章
关键词:AT89C52;PROFIBUS;SPC3;RS-485;DP协议
1 引言
SPC3是一种可以广泛应用于工业现场总线PROFIBUS-DP的智能接口芯片。现场总线技术是一种实现现场级设备数字化通信的工业现场层网络通信技术,它可用一条电缆将现场设备连接起来以完成现场设备控制、监测和远程参数化等功能。
烟草行业的数据采集与监控系统的数据传输量大,实时性强,并要求在较短的时间内完成各种参数的设置和数据更新。如一个卷接机组生产速度每分钟可达16000支,这样,在高速运行过程中,机组要对生产的烟支重量、质量等进行实时在线检测、计算判断与控制,并采集整个机组的运行状态、各传感器执行器的工作状况以及各分控制系统的实时数据,要求其控制系统必须具有较高的实时性、精确性、可靠性。因此,在卷接机组电控系统的设计中,笔者采用了PROFIBUS现场总线技术,其总控系统与各分系统的接口芯片采用了SPC3。
2 PROFIBUS总线和SPC3芯片简介
2.1 PROFIBUS总线
PROFIBUS-DP是欧洲首屈一指的开放式现场总线系统,它的应用领域包括加工制造自动化、过程自动化和楼宇自动化。数据通讯采用标准RS-485接口,传输速率可达12Mbps,传输距离可达23.8km,而且响应时间短、抗干扰能力强。通过双绞线或光缆进行数据传输,极易扩展,它不但能与执行器、传感器接口进行连接,也可以通过各种专用集成电路(ASIC)和接口模块来简化设备的连接,最多可以连接125个节点。
2.2 智能芯片SPC3
根据传输数据量的大小和智能化程度,SIMENS公司提供了SPC2、SPC3、LSPM2等不同种类的芯片来连接PROFIBUS-DP主站与从站。这里笔者选用SPC3来完成本系统的设计。SPC3(SIMENS PROFIBUS CONTROLER )集成了完整的DP协议,其中包括方式寄存器、状态寄存器、中断寄存器、各种缓冲器指针和缓冲区等。该芯片内部含有1.5kB的 RAM,带有11位地址线的并行8位接口,全部存储器分为192段,每段8个字节,用户可以立即寻址。SPC3支持所有8位处理机和微处理器。也可以自动完成“字节转换”,这使得摩托罗拉处理器可以直接正确读取16位值,通常读和写可通过两个口(8位数据总线)来完成。
SPC3中集成有一个保护监视定时器(WATCHDOG),应用处理器出现故障时,PROFIBUS-DP 通信将被禁止,这样就不至于危及外围设备。作为SPC3的心脏,微处理器(MICRO SEQUENCER)控制着系统整个工作过程。在UART中,并行数据流和串行数据流完成互换。SPC3在发送第一个字符前会产生RTS(REQUEST-TO-SEND)信号,即请求发送信号。另外,SPC3还具有自动辨识波特率(9.6k~12Mbps)的功能。
3 在ZJ19E电控系统中的应用
ZJ19E卷接机组电控系统选择西门子公司工控机作为主站,与触摸屏组成人机界面?采用PROFIBUS总线技术和美国Wonderware公司的In-Touch7.0工业组态软件实现与重量控制系统、质量检测系统等从站的通讯与数据交换。在每个DP从站中都有SPC3芯片及其相关的硬件电路。主站上可以设置各种参数,如:机器运行速度、进料情况、烟支数量、烟支稀释度上下限、烟支重量上下限等。从站参照这些设定值来控制机器的正常运转;而机器动态、静态的各种参数则由每个从站进行搜集整理并可在主站上一览无余。中间的数据传输就是PROFIBUS的功劳了。每一个模块(主、从站)的功能实施均可依靠软件来完成。整个电控系统的框图如图1所示。
3.1 硬件设计
图2所示是本系统的硬件框图。AT89C52是采用先进的CMOS工艺制造的8位微控制器。它具有并行可编程功能的非易失性FLASH存储器,是80C51的派生器件。该控制器具有运算速度快、兼容MCS51指令集的特点,可以闪速可编程、可擦除。它有三个16位定时/计数器。由于AT89C52内部集成有8kB Flash,因此本设计不需另外扩展ROM即可进行内部加密。
外接看门狗电路MAX705用于为微控制器提供保护,它能在单片机上电时可靠复位,并能在断电时防止程序跑飞,从而避免SPC3中的数据被修改。另外,本系统也可采用手动复位,以便在调试或出现故障时使整套系统同时复位。
图3
为了防止外界干扰对系统产生影响,单片机与下位机的通讯采用RS-485接口电路来进行光耦隔离。其收发接口采用HCPL2601、DHCPL7721及SN75176等进行隔离,以保证数据可靠传输,消除干扰。
SPC3有8根数据线和11根地址线,其中低8位地址线与数据线复用。外接不同的单片机会使SPC3一些管脚上的电平出现差异,其相应的意义也不同。这一点与别的接口片子有很大区别,SPC3与外接AT89C52 的连线见图3所示。
3.2 软件设计
SPC3的软件设计主要包括AT89C52微控制器的软件设计以及SPC3的初始化程序设计。通讯协议主要由上位机的客户服务程序来完成,单片机AT89C52主要实现智能终端与协议识别,以及与下位机的通讯和数据转存,同时完成下位机与双口RAM的连接控制,保证数据转换安全可靠的进行,避免通讯冲突。
a.单片机控制程序设计
单片机的控制程序由三部分组成:初始化部分用于完成单片机和所有外围电路的初始化以及终端和协议的识别;主循环部分用于读写双口RAM,同时对上位机进行检查和计算以完成数据采集,进而实现数据的转存和交换;而中断服务程序则完成相应的中断处理并执行双口RAM的共同协议。
SPC3内部含有1.5kB的RAM(即000H—5FFH),利用外接单片机可以确定该RAM的确切地址。同时,根据SPC3产生的中断,单片机还可对SPC3接收到的主站输出数据进行转存,以便从站读取,此外也可以处理从站通过SPC3发给主站的数据等。SPC3实质上是主站与从站间的“通讯站”,即就是将主站发来的数据包解开送给从站,并将从站送来的数据打包给主站。详见图4的程序框图(其中“输入、输出”是相对主站而言的)。
SPC3的初始化程序包括设置SPC3允许的中断、写入从站号码和地址、设置SPC3中的各种寄存器和缓冲器等;而中断程序主要处理PRM报文、CFG报文、SSA报文。由于这些报文来自主站,所以,SPC3的初始化需要主站的支持才能进行。不同的主站有不同的数据存取空间,因而分到每个从站的数据量也不同。这样,在初始化SPC3时,配置的数据字节数也将相应改变。只有每个从站地址在同一个系统中是唯一的,主站与每一个从站才能准确无误地通讯。
b. 上位机程序简介
上位机的管理软件主要通过客户服务程序来完成协议转换和存储,以及数据的分析和显示。单片机上传的数据信息经过相应的协议校验确认后,可用来完成各种参数的设置和数据的交换。在对传输数据进行识别时,单片机首先接收上位机客户服务程序软件下传的校验和,在经过确认是协议识别指令后,再上传一个表示就绪的状态帧,然后接收识别用的数据帧。在经过检验后,如果确认数据帧有错,那么,系统将返回相应的状态帧并等待上位机重新发送数据,而如果数据正确,则返回状态帧,然后开始对终端单元进行识别。
由于每个PROFIBUS 总线上的主站、从站完全有可能是不同厂商的产品,因此,在组建系统时需要有设备描述文件,即GSD文件。GSD文件是用特定格式描述现场设备技术参数的ASCII文件,它是在专门软件环境下编辑生成的,详情可参见参考文献。使用根据GSD文件生成的组态工具可以将不同厂商的设备集成在同一总线系统中。这就是智能型芯片正常工作的“环境”。一旦对含有SPC3的DP 从站生成GSD文件,就相当于该从站持有了一个通用“身份证”,这样,这个从站就可以在任何DP主站下组建总线系统了。
4 结束语
本文详尽地叙述了基于AT89C52的智能芯片SPC3的设计使用方法,由于AT89C52没有外扩ROM和RAM,而将程序直接放在其内部闪存中,因此,该方法具有外围电路简单、与处理器并口兼容性好、时序控制简单易懂、可靠性和性价比都比较高等优点。但应注意:SPC3的初始化是一个难点,也是一个比较重要的环节。