0. 前语:
PROFIBUS是一种国际化、开放式、不依赖于设备生产商的现场总线标准,广泛适用于制造业主动化、流程工业主动化和楼宇、交通、电力等其他范畴主动化。依据现场总线的操控体系要求现场外表及设备有必要具有现场通讯才能,而我国现在的实践情况是:大都传统外表及现场设备并不具有现场总线接口,而彻底运用国外进口设备将会使体系本钱过高。怎么将很多的传统仪器设备连接到PROFIBUS总线上,完结PROFIBUS主站与传统设备之间通讯数据通明传送,成为广阔用户急于要处理的问题。如:具有RS-232接口的现场丈量设备及外表等,怎么使其成为PROFIBUS总线上的一个从站。本文所叙述的这个接口产品便是处理从RS-232到PROFIBUS-DP的协议转化,起到一个桥的效果,咱们称之为总线桥。
1. PROFIBUS-DP网络协议
PROFIBUS的网络协议是以ISO公布的OSI标准七层参阅模型为根底的,仅仅对第三层到第六层进行简化。它的三种模块(FMS、DP和PA)能够习惯不同的运用目标和通讯速率方面的要求,开放性也好。但它们均运用共同的总线存取协议,该协议是经过OSI参阅模型第二层(数据链路层)来完结的,它包含了确保数据可靠性技能及传输协议和报文处理。
数据链路层协议媒体拜访操控(MAL)部分选用受控拜访的令牌总线(Token Bus)和主从方法。其间令牌总线与局域网IEEE8024协议共同,令牌在总线上的各主站间传递,持有令牌的主站取得总线操控权,该主站依照联系表与从站或与其他主站进行通讯。主从方法用于主站和从站间通讯,其作业特点是:总线上一个主站操控着多个从站,主站与每一个从站树立一条逻辑链路;主站宣布指令(Command),从站给出呼应(response);从站能够接连发送多个帧,直到无信息发送、到达发送数量或被主站中止停止。数据链路中帧的传输进程分为三个阶段:数据链路树立、帧传输和链路开释。PROFIBUS-DP并未选用ISO/OSI的运用层,而是自行设置一用户层。该层界说了DP的功用、标准与扩展要求等。DP物理层与ISO/OSI参阅模型的榜首层相同,选用RS-485传输技能。
2. RS-232设备通讯协议
RS-232仅仅设备通讯物理层的一个标准,因而PROFIBUS主站有必要向RS-232设备传送它能够了解的数据,这便是RS-232设备的通讯协议。所以,为完结PROFIBUS主站与RS-232设备的有用数据通讯,PROFIBUS主站编程人员应该了解RS-232设备的通讯协议。RS-232设备的通讯协议一般有以下两类:
(1)具有应对联系和若干通讯指令的通讯协议
这是运用比较广泛的通讯格局,通讯数据可所以ASIIC码或二进制数据。关于这种设备,既有发送又有接纳。用户在主站编程,依照协议规则的报文格局将通讯数据填入RS-232总线桥的PROFIBUS数据输出区,经过所发生的中止发动转化接口将通讯数据发送到设备,然后总线桥主动转入接纳状况。当总线桥数据悉数接纳完RS-232设备的答复报文数据后,将答复报文数据主动填入PROFIBUS数据输入区,这样,PROFIBUS主站能够在PROFIBUS数据输入区得到RS-232设备的答复报文数据。
(2)无应对联系、单纯接纳或发送数据(ASIIC码或二进制数据)的通讯协议
此类设备(如条码扫描器)只经过RS-232接口向PROFIBUS主站发送数据,也有的设备(如显示屏)只经过RS-232接纳PROFIBUS主站发送的数据。PROFIBUS主站完结这类简略通讯协议的原理与榜首种协议相同,仅仅不会呈现抵触,编程更为简略。
3. RS232总线桥硬件规划
RS232总线桥体系框图如图1所示:
图1:体系框图
3.1 SPC3阐明
西门子公司供给的SPC3是用于DP智能从站的协议专用芯片,也是本规划的要害器材。SPC3具有1.5K字节的报文帧存储器、方法寄存器、状况寄存器、中止寄存器及缓冲区等,各部分地址分配如表1。
表1:SPC3内存单元地址分配
SPC3需外接48MHZ晶振,能主动检测波特率从9.6K到12M。总线拜访是由硬件驱动的,与运用目标之间通讯选用数据接口,因而数据的交流独立于总线周期。SPC3的方法寄存器0用于设置PROFIBUS-DP的操作方法,如minTSDR、SYNC、FREEZE等,方法寄存器1设置可动态改动的状况。状况寄存器寄存从站的状况信息,以便在任何时刻能扫描总线的介质拜访子层(MAC)。
集成的监督定时器(WatchDog),可主动识别波特率,并避免呈现毛病危及外围设备。一个公共的中止输出,CPU能够经过读取中止寄存器来判别中止源并履行相应中止。在UART中,完结并行数据流和串行数据流的改换。在榜首个字符发送前,SPC3生成发送恳求信号RTS。它集成了完好的DP从站状况机,PROFIBU协议的周期性循环部分数据通讯由SPC3中预先分配的各缓冲区指针的来回切换完结,其他非循环部分数据通讯则需求由微处理器中的软件来完结。
SPC3本身带有1.5KB的数据存储区,至少需求11位地址线。单片机P0口的P0.0~P0.7接SPC3的DB0~DB7端,既作为SPC3的数据线,也作为SPC3地址总线的低8位。单片机P2口的P2.0~P2.2接SPC3的AB0~ AB2端,作为SPC3地址总线的高3位,一起要使SPC3的高5位AB7..3=00000。在软件程序的规划中,SPC3的数据存储器的地址区被强制在1000H~15FFH,这要求P2.7~2.4=0001,要想AB4仍为0,就有必要将P2.4经过一个非门接SPC3的AB4端。在实践电路中,SPC3的AB7~5经过一个接地电阻接地,使得AB7..5=000,AB3接P2.3一直给出低电平信号即AB3=0,AB4的输入端经过一个可编程逻辑芯片对P2.7~2.4的编码电路来完结(AB4=P2.7|P2.6|P2.5|非P2.4),这样只要使P2.7~2.4=0001,AB4一直为1,然后确保SPC3的数据存储器的地址规模为1000H~15FFH。
3.2 PROFIBUS总线接口
PROFIBUS接口是PROFIBUS标准驱动电路,由由两个输入光电阻隔电路(6N137,10MBit/s)、一个输出光电阻隔电路(6N136)、一个RS-485驱动芯片(SN75LS176)、一个D型9针插头组成及辅佐电路组成。光隔是用以消除来自零线的搅扰,假如现场通讯的波特率需求到12M,在光隔选用时还需求考虑更高的功能,如HCPL7720等。
3.3 RS-232接口
RS232接口电路RS-232驱动电路,由一个输入光电阻隔电路(6N136)、一个输出光电阻隔电路(6N136)、一个串口处理芯片(MAX232)、D型9针插头及辅佐电路组成,完结串口TTL信号到RS-232信号的转化。
3.4 拨码开关
一方面用作设置从站地址,另一方面用作RS-232接口设置。上电时,使D7=1,D5~D0作为串口装备数据存入EEPROM,然后将D0拨到0,D6~D0共7位作为设置的从站地址。D2D1D0:串口波特率设置;D4D3:是否有奇/偶校验;D5:接纳/发送答应。
3.5 微处理器接口
微处理器AT89LS8252由以下几部分组成:一个8位中央处理器(CPU),片内8K字节的Flash存储器,2K字节的EEPROM,片内256字节的SRAM,4个8位的双向可寻址I/O端口,一个全双工UART串行接口,具有SPI接口,含有WATCHDOG、定时器等,可满意接口对程序、装备数据、PROFIBUS标准对异步通讯等的需求。AT89LS8252外接24M HZ晶振。。经过对SPC3的操控完结PROFIBUS的通讯,并在RAM中树立PROFIBUS通讯数据缓冲区。另一方面,经过RS-232接口完结和外部现场设备的通讯,同样在RAM中树立RS-232通讯数据缓冲区。CPU经过两个通讯缓冲区的数据交流,完结PROFIBUS到RS-232的通讯。
4. 软件规划
在西门子公司的DP从站开发包PACKAGE4中,包含面向SPC3的C原码固态程序DPS2。使用它所供给的用户宏接口,能够便利的完结SPC3中各寄存器及缓冲区的初始化设置,依据中止源类型完结与主站通讯数据的承受与发送。因而单片机不需求考虑从站状况机的完结次序。其主程序流程图如图2所示,中止流程如图3所示。
图2:主程序流程图
图3:SPC3中止程序流程图
其间,有以下三个部分需求要点阐明。
(1)SPC3初始化
微处理器对SPC3的初始化包含:屏蔽不答应的中止;设置用户WatchDog值;将ID号、从站地址赋给SPC3对应寄存器,初始化方法寄存器;自界说各buffer长度,初始化spc3中各buffer(地址、长度赋给对应参数寄存器,并将buffer区清0);从read-cfg-buffer中读入装备数据核算三个Din-buffer和三个Dout-buffer各自的实践长度及地址;获取三个Din-buffer中闲暇的一个,其地址赋user_input_buffer_ptr_fb;获取两个确诊buffer中闲暇的一个地址赋user_diag_buffer_ptr_fb,置确诊标志user_diag_flag_fb = TRUE;从Status Register取波特率赋;给处理器参数wd_baud_ctrl_val赋值。考虑到在实践的体系运转中,一般不需求更改从站地址,初始化中将更改站地址标志置为FALSE。
(2)数据通讯进程
当参数化、装备完结后状况机进入数据交流状况。微处理器依据SPC3中止寄存器的状况对SPC3接纳到的主站发送的输出数据进行转存,一起安排需经过SPC3发送给主站的数据,并依据要求安排外部确诊等。
在RS-232串口通讯程序规划中,别离设有串口承受中止、发送中止程序来处理串口数据的承受和发送。因为PROFIBUS侧的数据更新速率远远快于RS-232侧的数据更新的速率,为确保由PROFIBUS侧输入的数据能一次性的整块传送到RS-232侧,需在程序中加一数据缓冲区来暂时存储PROFIBUS 侧输入的数据。在对数据缓冲区中的数据的处理期间,数据缓冲区加锁,以避免数据缓冲区中数据更新,只要一次处理完结,数据缓冲区才解锁,答应再次更新其间数据。
在每一次程序循环中,程序一次性的将整块PROFIBUS侧的输入数据读入一数据缓冲区中并将其加锁,进行数据处理,输出到RS-232侧的设备中,承受RS-232侧的回来信息;假如数据缓冲区中的PROFIBUS侧的输入数据数据处理完毕,数据缓冲区解锁,将RS-232 侧的输入数据及信息传送到PROFIBUS侧。顺次再循环。
(3)在主站装备中要注意,尽管本产品的I/O数量可依据PROFIBUS标准恣意设定,但装备报文的长度是固定的。
结束语
PROFIBUS是世界上最著名的工业现场总线之一,并已为愈来愈多的国内外用户所承受和选用。本总线桥产品的开发,运用户能够便利地将具有RS-232接口的传统仪器设备集成到PROFIBUS总线体系,成为一种契合PROFIBUS总线协议的新产品。
参阅文献:
[1] Siemens,SPC3 and DPS2 User Description,Siemens AG in Fed Rep of Germany,1998
[2] 满庆丰、韩锋、夏继强,开发PROFIBUS-DP智能从站,电测与外表,2003,40(3)
[3] 方彦军、朱登攀,图画传输中PROFIBUS接口的规划与完结,主动化外表,2002,23(12)