关键词:PROFIBUS-DP总线;接口模块;凌阳单片机
Abstract:Because of the communication transform problem between traditional field instruments and FCS, an economical Profibus-DP communication transform interface module using Sunplus SPCE061A microprocessor and Siemens SPC3 protocol chip was designed in the paper. The schematic of main circuit and flowchart of software were given.
Keywords:PROFIBUS-DP bus;Interface Module;Sunplus Single-chip Microcomputer
0 引言
PROFIBUS(Process Fieldbus的缩写)是一种国际化的、开放的、不依赖于设备生产商的现场总线标准[1]。根据应用领域分为PROFIBUS-FMS、PA、DP三个兼容部分。其中,DP是用于装置级和现场级的制造业自动化,技术相对成熟,应用范围广,通用性强[2]。
目前,国外一些大的仪表制造厂商(如著名的SIEMENS,AEG,ABB公司等)分别推出了自己的PROFIBUS-DP现场总线控制系统及相应的现场总线产品,他们的DP开发技术已经相当成熟,其产品销量很好;但这些成绩主要来源于PLC系统的市场份额,而DP技术在现场总线智能仪表级的应用方面尚需提高。目前,我国在PROFIBUS-DP技术研究及DP产品开发方面起步较晚,一些自动化企业和科研院所主要以系统集成和工程应用为主,以SIEMENS的PLC系统为基础,借助于成熟的开发包技术,或者直接利用国外大公司提供的DP底层设备和智能仪表来构建自己的控制系统。这样做的缺点是:开发成本高,系统缺乏灵活性。
为了降低成本并尽可能减少来自DP开发者在技术方面的制约和限制,我们采用整体保留,局部改造的设计思想来开发具有PROFIBUS-DP接口的经济型总线仪表。按照新型DP系统的结构特征来设计满足用户需求的局部DP系统;依照DP技术规范和用户需求,用比较经济的开发模式,为原有的现场仪表配备具有接入DP网络功能的通讯接口,从而将原有仪表改造成总线仪表。
1 总线仪表接口模块的硬件设计
经济型总线仪表的硬件结构比较简单,主要由传统仪表和PROFIBUS-DP接口模块组成。如果将接口模块放入传统仪表内,则需重新设计仪表外壳;如果分开放置,则只需设计DP接口模块。该接口硬件设计采取分块设计模式,即单片机控制和隔离驱动两部分电路。下面以普通电压表为例,来描述DP接口的设计过程。
1.1 单片机控制电路
在DP系统中通常是多个主站和从站的结构,这个从站指的就是带有DP接口的总线仪表,其经济性在接口设计方面主要体现在:控制电路采用了凌阳61开发板。它已经包括了最小系统和外围扩展电路,体积小,价格相对便宜,功能比较完善。SPCE061A是其核心单片机,16位μ’nSPTM微处理器;内置2K字静态内存(SRAM)和32K字闪存(FLASH);32个通用I/O口;1个10位ADC(模拟数字转换器)mic-in输入通道,内置麦克风放大器和自动增益(AGC)功能;7个10位ADC(模拟数字转换器)line-in输入通道;2个10位DAC(数字模拟转换器)输出通道;具有watchdog功能;可编程音频处理[3]。单片机对外进行数据交换就是通过它的32个通用I/O端口实现的。协议芯片SPC3对它来说就是其扩展的外部RAM。它与SPC3引脚的连接示意图如图1所示。
图1 SPCE061A与SPC3连接示意图
图2 SPC3引脚外扩示意图
1.2 DP协议芯片SPC3
SPC3是西门子公司研制生产的一种用于开发DP智能从站的用户专用集成电路芯片,它遵照EN50170标准,集成了完整的PROFIBUS-DP协议[4]。其44个引脚在DP接口设计中的外扩方法如图2所示。
1.3 隔离驱动电路
这部分电路结构与SPC3说明书上所推荐的电路结构相似,但其中的隔离芯片用的是一片6N137和两片HCPL7721。在实验阶段,用直插式芯片要比贴片式芯片方便一些。下面只简要叙述其内部工作原理。
SPC3的XCTS脚是清除发送信号,当其为“1”时,表示清除发送信号;当其为“0”时,表示发送使能。SPC3的RTS脚是请求发送信号,与RS-485的4针脚对应;SPC3的TXD脚是串行发送端口,RXD脚是串行接收端口,这两个端口分别与RS-485的3针脚和8针脚对应。第一路是请求发送信号,所以单独走线。当高电平送到6N137的A脚时,从VO脚输出低电平;经过74HC132与非门后变成高电平;这个信号送到SN75ALS176的DE端。第二路和第三路是收发信号,所以走线相反。当SPC3的TXD发出高电平时,送到HCPL7721的VI端,其VO脚输出高电平,接着送到75176的D脚。这时,75176的A脚输出高电平,B脚输出低电平。当总线向SPC3发送信号时的原理与之类似,不再叙述。
2 软件设计
DP接口的硬件组成相对简单,这就给软件设计带来了一定的困难。因为硬件中具有通信功能的芯片只有SPC3,它集成了全部DP协议,但第二层的软件功能和管理需要用户通过软件来实现。所以软件设计是重点也是难点。我们采用模块化设计思想,使整体结构紧凑,条理清晰,易于调试和修改。软件开发环境是凌阳61开发板自带的IDE。
2.1 SPC3初始化
SPC3的内部集成了1.5KB双端口RAM,地址为000H~5FFH。内部RAM以8字节为1个单元(段),共分成192段。RAM空间按功能可分为处理器参数区、组织参数区和DP缓冲区三个区域。SPC3初始化就是在其上电后对内部寄存器各个地址进行对应赋值。这些数值要根据用户对参数区地址的每一位进行具体设置而定。
图3 SPC3初始化程序流程图
图4 DP接口主程序流程图
2.2 主程序及中断处理程序设计
SPCE061A的主要任务是初始化和启动SPC3、采集数据和显示数值、数据的发送和接收、根据主站要求处理外部中断。
当上位机或主站向现场总线仪表发送命令时,此仪表的DP接口要对此进行响应。此时的主程序就会跳到中断程序来处理这些突然事件。外部中断程序具体包括:处理新的全局控制命令、新的参数报文、新的I/O配置、新的地址、看门狗超时、用户时钟和查询波特率等。
2.3 SPC3寄存器读写功能测试
在整体软件开发完成后,需要编写一个测试程序来检验以前的设计工作。凌阳61开发板与SPC3内部寄存器交换数据只靠32个I/O端口。SPC3的初始化就是一个向其寄存器不断写入数据的过程。软件开发环境IDE的编程特点是通信数据要先通过I/O端口才能发送或接收,而且其开发界面里可以看到通用寄存器的变化值。所以,判断DP接口是否可以通信的一个重要标志就是单片机是否可以读、写SPC3内部寄存器的数据。
图5 SPCE061A与SPC3内部寄存器数据交换测试程序流程图
3 编写GSD文件
PROFIBUS-DP主站能够与各种DP从站(从简单的I/O从站到复杂的智能从站)交换数据,为了能够安全方便地识别种类众多的DP从站,需要得到从站的技术特性数据,描述这些数据的文件称为设备数据库文件(Device Description Data file,GSD)[5]。
GSD文件用标识符“#Profibus_DP”开始,每一句都以符合PROFIBUS GSD文件标准的关键词开始,不区分大小写,分号后面是注释语句。PROFIBUS-DP智能从站只是包含了DP从站设备的一些基本功能,如从站支持的波特率、交换的输入/输出数据长度和从站所属的类型等[6]。下面是编写从站GSD文件的部分内容。
#Profibus_DP
;Unit-Definition-List:
GSD_Revision =2 ;GSD格式标识符版本号
Model_Name =“SPC3_intelligent_slave” ;模块名(控制器类型)
Protocol_Ident =0 ;DP设备使用的协议:PROFIBUS-DP
Station_Type =0 ;DP设备类型,从站
……
9.6_supp =1 ;支持波特率9.6Kbit/s
……
MaxTxdr_9.6 =60 ;9.6Kbit/s时最大延迟(响应)时间
……
;Slave-Specification:
OrderNumber =“SPC3_intelligent_slave” ;产品订货号
Implementation_Type =“SPC3 solution” ;使用芯片SPC3来开发DP从站
Max_User_Prm_Data_Len =5 ;最大用户参数数据长度
Set_Slave_Add_supp =0 ;从站地址不可设置
Modular_Station =0 ;紧凑型从站
……
;Module-Definition-List:
Module =“8 Byte in,8 Byte out” ;I/O配置数据
EndModule
4 结束语
凌阳61开发板的性价比高,稳定性好,DP总线仪表采用凌阳单片机和协议芯片SPC3会使硬件电路简单紧凑,从而大大降低开发成本,加快开发进程。通过软件调试,智能从站基本功能已实现,但此接口加到电压表里会使体积增大,所以要想开发外型美观并且具有自主知识产权的经济型总线电压表,需要在传统仪表基础上设计嵌入式DP接口,分别将其装进现场仪表和上一级控制设备中,从而使整个DP系统结构紧凑,成本低廉,具有很好的市场应用前景。
本文作者创新点:抛开目前比较流行的DP产品开发包和总线桥技术,采用性价比高的凌阳61开发板作为DP接口开发平台;从经济性角度出发,为传统仪表设计DP总线接口,并将其改造成经济型总线仪表;从而降低整个DP系统的成本,使其具有更广阔的应用前景。
项目经济效益:如果一个小型PROFIBUS-DP控制系统的现场层分为10段,每段30个从站;那么预计采用上述设计方案比采用开发包设计方案大约节省25万元,比采用嵌入式设计方案大约节省35万元,比直接采用国外DP仪表大约节省60万元。
参 考 文 献
[1] 李正军.现场总线及其应用技术.第一版.北京:机械工业出版社,2005.
[2] 阳宪惠.现场总线技术及其应用.北京:清华大学出版社,1999.
[3] 罗亚非等.凌阳16位单片机应用基础.第一版.北京:北京航空航天大学出版社,2005.
[4] SIEMENS AG.SPC3 Siemens PROFIBUS Controller User Description.Germany:the Fed.Rep.of Germany,2002.
[5] 夏继强,邢春香.第一版.北京:北京航空航天大学出版社,2005.
[6] SIEMENS AG.PROFIBUS-DP Device Description Data Files GSD.Version:2.2.Germany:Certification Center of Germany,2003.
[7] 李晓冬,孙鹤旭,云利军,梁涛.PROFIBUS-DP在网络化过程控制系统中的应用.微计算机信息(测控自动化),2005,21(5),22~23