基于FF协议的智能阀门定位器通信接口的开发 |
摘 要:根据智能阀门定位器总线化的要求,开发了基于FF协议的通信接口,阐述了双处理器结构的OEM开发思想,给出了实现FF通信的详细步骤和开发工具。经测试,阀门定位器实现了FF总线通信功能,证明了开发方案的可行性。 关键字:现场总线 基金会现场总线 通信接口 圆卡 阀门定位器 1 引言 基金会现场总线(FF)是在过程自动化领域得到广泛支持和具有良好发展前景的现场总线技术。它分低速(FF-HI)和高速(FF-HSE)两部分,并且均被现场总线国际标准IEC61158所采用。由于FF协议把通信和控制两大部分功能结合在一起,因此协议本身的体系结构非常复杂。从实现方面来说,虽然FF协议本身是公开的,但是它并不涉及协议的实现,因此有许多有关实现的工作要做。 本文讲述了FF-HI总线智能阀门定位器的通信接口的开发,对于其它4-20mA设备或者智能设备的基金会现场总线通信接口的开发,有一定的参考价值。 2 总体设计 ![]() 图1 FF总线智能阀门定位器原理结构图 仪表卡采用MSP430单片机做主芯片,实现智能阀门定位器的初始化、阀位反馈、报警、显示等基本功能,这部分软硬件的开发已经完成;通讯圆卡为数据传输和控制部分,需要完成现场总线的通信和各种控制算法,本设计使用经认证的通讯圆上学简化了圆卡的硬件开发,只需完成仪表卡CPU与圆卡CPU之间的通信接口、圆卡和FF总线通讯和设备功能块的调用等功能的软件开发。 2.2 开发工具 HI现场总线圆卡是开发FF兼容设备的硬件接口,采用总线供电,可接口到符合FF-HI协议的网络中。圆卡使用MC68331嵌入处理器和可编程的128KB×16闪存运行通信栈接口库、功能块壳和用户应用程序。同时有一个128KB×16SRAM提供易失性存储器,用来存储总线管理信息库参数和块参数。圆卡与仪表卡测量部件的连接通过串行编程子卡实现。子卡可以执行DIO、A/D、D/A功能,通过2×21针WI插口与圆卡连接。 3 通信方案的设计 串行函数在圆卡和串行设备之间提供一个传递数据的通用方式。它和用于与串行设备进行通讯的通信栈协议及功能块壳的调用功能相互独立。对于使用三线串行通讯方式的通讯,串行函数提供了两种数据格式,其中通用串行格式为通用主/从命令/响应串行协议,需要用户对命令及响应数据包进行编码和解码。 串行函数可设置为连续发送/接收一个定义的命令序列,该序列由nihDefineSequence和nihSendCommand函数定义。nihDefineSequence定义发送给设备的序列中的命令行数,nihSendCommand定义序列中的命令。一个命令是一个串行的相互动作,它包括一个发送、一个接收或两者。当完成对序列中最后一个命令的定义后,序列按照命令定义的顺序发送所有的命令。使用nihDefineSequence或nihSendCommand函数取消序列的运行。使用函数nihDefineSequence和nihSendCommand可修改命令数据并保留命令序列中最后的响应数据。直接调用nihPutData,设置发送缓冲器中要改变数据的当前值,也可调用nihGetData,保留序列最后一次执行时,从串行设备接收到的数据包。调用nihsetparam函数可设置圆卡的通讯参数,如命令重发次数、前导码数目、超时、串行协议类型、波特率、校验类型、停止位。 4 圆卡应用开发 4.1 写设备模板,并将设备模板转换为C代码 设备模板由设备代码生成器转换为C代码。设备代码生成器codegen.exe的命令行为: 4.2 写用户应用文件 ![]() 图2 用户应用程序框图 (1)写功能块的回调函数,userStart函数以及注册回调函数。 userStart函数在通讯栈启动时被自动调用,可以初始化功能块壳并通过它注册开发设备的Callback函数。功能快应用进程使用注册函数以通知功能块壳用户应用的特性,包括用户定义的数据类型、物理块、变送块、功能块、块参数等。在userStart中调回用shRegistCallback函数注册Callback函数。 (2)指定系统时钟和RAM大小,定义和安装中断处理器。 圆卡提供优先级数为3、4、6的中断引脚,它们可为圆卡的任何中断源所使用,同时还能使用CPU的内部模块产生必要的中断。如在设备应用中使用中断,则必须在用户应用程序中安装中断处理器,并用niInstallIntHandler作栈功能调用。本设计中未使用中断处理器。 4.3 生成设备组态并将设备组态转换为C代码 运行组态生成器,将ini文件转换成为可链接的.e文件。其命令行为: 4.4 编辑、链接并下载程序 4.5 烧写内存 5 结论 |