版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第30章PROFIBUS-DP现场总线智能节点的设计本章主要内容包括:任务描述及设计方案SPC3芯片简介系统软硬件设计随着当今工业的发展,其复杂化程度日益提高,在工业控制过程中需要对现场信号进行大量的采集,而且随数据的传递与转换以及对系统的控制精度、可靠性都提出了更新、更高的要求,因此产生了新型的现场总线控制系统FCS。一个现场总线控制系统中需要有很多现场总线智能仪表,本章基于西门子公司的智能化芯片SPC3设计了一款能把现场检测420mA到的模拟信号转换为符合PROFIBUS-DP传输协议的仪表,来作为PROFIBUS-DP的现场总线网络中的一个智能节点使用。30.1系统设计要求及设计思路现场
2、总线控制系统是一种权分散的、全数字化的、串行的总线控制系统。现场仪表、执行器、阀门等提供的应是符合现场总线协议标准的信号。在众多的现场总线中,PROFIBUS以其优异的性能在工业控制系统中被广泛应用,因此有必要设计一个智能节点,以微控制器为核心,能够使现场控制器与底层传感器和执行器进行双向通信,来完成任务。这一小节将介绍一个基于AT89S52单片机和SPC3的智能节点系统设计,系统的具体功能如下:能够完成4-20mA模拟信号到串行信号的转换;能完成节点地址的设定;可以实现检测数据的显示,数据交换过程的指示,超限警报等;UART到PROFIBUS总线的转换。本文采用AT89S52片机和西门子的S
3、PC3协议芯片来完成现场总线通信接口的设计,数据采集部分采用线性光电隔离器对模拟信号进行隔离,通过12位串行A/D转换器MAX186将现场信号转换为数字信号后输入到单片机,单片机经过数字滤波后经SPC3发送到PROFIBUS-DP总线上,单片机同时通过SPC3接收PROFIBUS-DP主站指令和数据,将诊断数据发送给主站。结构框图如图30-1所示。PROFIBUS-DP现场信号模拟光隔A/D转换器光电隔离单片机DIPRommRam复位电路RS-485接口SPC3光电隔离RS-485驱动器图30-1 系统结构框图30.2 PROFIBUS-DP现场总线及其通信协议简介PROFIBUS(Proce
4、ss Fieldbus)是由西门子等公司开发的一种国际化的、开放的、不依赖于设备生产商的现场总线标准,先后成为德国和欧洲的现场总线标准(DIN19245和EN5017),并于2000年成为IEC61158国际现场总线标准之一,2001年成为我国机械行业标准JB/T10308.3-2001.30.2.1 PROFIBUS现场总线简介PROFIBUS现场总线是一个开放的、与制造商无关的、无知识产权保护的国际标准,任何人都可以获得这个标准并设计各自的软、硬件解决方案。PROFIBUS包括三个兼容部分:PROFIBUS-FMS,PROFIBUS-DP和PROFIBUS-PA,它们分别适用于不同领域。P
5、ROFIBUS-DP采用数字化、开放式通信,稳定可靠,使用PROFIBUS-DP可取代昂贵的24V或420mA的并行信号传输线,改变了传统控制系统中每个仪表都需要一条线连接到中央控制室的局面,大量节约了布线费用,同时也降低了中央控制室的造价。目前,PROFIBUS-DP是在欧洲乃至全球应用最为广泛的现场总线之一,它的技术性能使其可以应用于全球的制造业、楼宇、过程自动化及电站自动化,使用该总线不但可以提高通信能力及系统运行的可靠性,大大节省系统安装时的布线费用和硬件费用,而且更加容易对系统进行管理和维护。PROFIBUS-DP的基本功能和特征:远距离高速传输。PROFIBUS-DP的通信介质有两
6、种:一种是采用屏蔽绞线,通信速率为9.6Kbit/s/1200m12Mbit/s/100m,每段最多节点数为32;另一种是采用光纤,用于电磁兼容性要求高和长距离要求的场合。51单片机典型应用开发范例大全分布式结构。各主站间令牌传递,主站与从站为主从传递,每段可达32个站,用于中继器连接段,最多可达126个站。易于安装。总线结构使得1个站点的安装、卸载不影响其他站点的正常工作。诊断功能。诊断功能能对故障进行快速定位,诊断信息在总线上传递并由主站采集。灵活的配置。1类主站可以完成调节控制功能,并通过循环和非循环的报文对现场的从站节点进行访问和控制;2类主站在需要时可以通过非循环报文同1类主站以及现
7、场从站节点交换数据。硬件支撑。原则上,PROFIBUS-DP协议可以在任何具有内部或外部异步串行端口的微处理器上实现,但这种方法会引起对CPU资源的争夺和冲突,影响通信状态机制的实时控制,当传输速度超过500kbit/s传输技术时就需要使用专门的协议芯片,西门子公司的SPC3正是这种芯片。总线存取协议。各主站之间采用令牌传递方式,主站和从站之间采用主从方式。为了更好地理解后面介绍的软件程序这里先介绍一类主站与从站的通信过程。系统从上电到正常的数据交换工作状态的整个过程可以概括为以下四个阶段:主站与从站的初始化。上电后主站和从站进入Offline状态,执行自检。当所需要的参数都被初始化后,主站开
8、始监听总线令牌,从站开始等待主站对其设置参数。总线上令牌环的建立。在一定的时间内主站如果没有听到总线上有信号传输,就开始自己生成令牌并初始化令牌环,然后改主站做一次对全体可能主站地址的状态询问,根据收到的应答结果确定活动主站表。主站与从站通信的初始化。在主站和从站设备通信之前,主站必须设置DP从站的参数并配置从站通信接口。主站通过请求从站的诊断数据来检查从站的准备情况。如果从站报告它已经准备好接收数据,则从站参数数据并检查通信接口配置,收到从站的确认回答后,主站在请求从站的诊断数据已查明从站是否准备好进行用户数据交换。只有这些工作完成后主站才能开始循环的与从站交换数据。用户的交换数据通信。30
9、.2.2 PROFIBUS-DP通信模型PROFIBUS-DP使用了OSI模型的第1、2层和用户接口,第3到第7层未用,这种精简的结构确保了高速数据传输。物理层采用了RS-485标准,规定了传输介质和电气特性。PROFIBUS-DP的数据链路层称为现场总线数据链路层FDL,包括总线介质访问控制MAC以及现场总线链路控制FLC,FLC向上层提供服务存取点的管理和数据缓存。第1层和第2层的现场总线管理FMA1/2完成待定总线参数的设定,它还完成这两层出错信息的上传。PROFIBUS-DP的用户层包括直接数据链路映射DDLM、DP基本功能、扩展功能以及设备运行行规。DDLM提供访问FDL的接口,DP
10、设备行规是对用户数据含义的具体说明,规定了各种应用系统和设备的行为特征。协议结构如图30-2所示。PROFIBUS-DP的物理层实现对称数据的传输,一个总线内的导线是屏蔽双绞电缆,段的两端各有一个中端器。传输速率从9.6kibt/s到12Mbit/s可选,所选用的波特率适用于连接到总线上的所有设备,可实现半双工、异步、无间隙同步数据传输,采用NRZ(非归零)编码。数据链路层(FDL)规定了总线存取控制、数据安全性以及传输协议和报文的处理,规定了数据帧格式。FDL向上一层提供的四种服务包括:发送数据需应答(SDA)、发送数据无需应答(SDN)、发送并请求数据需回答(SRD)、循环地发送并请求数据
11、需回答(CSRD)。用户想要FDL提供服务,必须向FDL申请,而FDL执行后回想用户提交服务结果。FDL的用户除了可以申请FDL服务之一外,还可以对FDL以及物理层PHY进行一些必要的管理,比如强制复位FDL和PHY、设定参数、读状态、读事件及进行配置等,在PROFIBUS-DP规范中,这一部分叫做FMA1/2(第1、2层现场管理)。用户层DP设备行规FMA7基本功能,扩展功能DP用户接口,直接数据链路影射,DDLM数据链路层现场总线数据链路层FDLFMA1/2物理层RS-485(PHY)图30-2 PROFIBUS-DP协议结构用户层包括DDLM和用户接口/用户等,他们在通信中实现各种应用功
12、能。DDLM是预先定义的直接数据链路映射程序,将所有的在用户接口中传送的功能都映射到第2层FDL和FMA1/2服务。它向第2层发送功能调用SSAP、DSAP和Serv-class等必须的参数。接收来自第2层的确认和指示并将它们传送给用户接口/用户。通信模型如图30-3所示。UserUser interfaceDDLMFDL和FMA1/2PHYUserUser interfaceDDLMFDL和FMA1/2PHY主站从站图30-3 PROFIBUS-DP通信模型30.3 智能从站专用通信接口芯片SPC3SPC3是西门子公司用于开发PROFIBUS-DP从站的智能通信专用芯片,集成了完整的PROF
13、IBUS-DP协议,可以独立完成全部PROFIBUS-DP通信功能。30.3.1 SPC3技术特点SPC3只继承了传数据输的部分功能,而没有集成模模拟功能(RS-485驱动器,因此后面的智能从站设计要专门设计通信接口电路)。SPC3集成了1.5KB的双口RAM作为SPC3与程序的接口。整个RAM被分为192段,每个8字节。用户寻址是由内部微序列器MS通过基址指针来实现。基址指针可位于存储器的任何阶段。所以,任何缓存都必须位于段首。如果SPC3工作在DP方式下,SPC3将自动完成所有的DP-SAPs的设置。在数据缓存区生成各种报文(如参数数据和配置数据),为数据通信提供三个可变的缓存器,2个输入
14、,1个输出。通信经常用到变化的缓存器,因此不会发生任何资源问题。SPC3为最佳诊断提供两个诊断缓存器,用户可存入刷新的诊断数据,在这一过程中,有一诊断缓存总是分配给SPC3。总线接口是一个参数变化的位同步/异步接口,可使用任何Intel和Motorola处理器/微处理器。用户可通过11位总地址直接访问1.5KB的双口Ram或参数存储器。处理器上电后,程序参数(站地址、控制位等)必须传送到参数寄存器和方式寄存器。任何时候状态寄存器都能监视MAC状态。各种事件(诊断和错误等)都能进入中断寄存器,通过屏蔽寄存器使能,然后通过响应寄存器响应。SPC3有一个公共的中断输出。看门狗定时器有3种状态,Ban
15、dSearch、BandControl、DPControl。微序列控制器(MS)控制整个处理过程。程序参数(缓存器指针、缓存器长度、站地址等)和数据缓存器包含在内部1.5KB的双口RAM中。在UART中,并行、串行数据相互转换,SPC3能自动调整波特,最大数据传输速率12Mbps;外部时钟接口24MHz或48MHz;5V直流供电。总线接口单元中断控制器方式状态寄存器看门狗定时器微序列器RAM控制器SPC3内部RAMUART空闲定时器波特率发生器DB7-0 AB7-0RXDTXD2/4输出CLK30.3.2 SPC3的内部结构和引脚定义SPC3的内部结构如图30-4所示,引脚说明如表30-1所示
16、,其封装形式位44引脚的PQFP封装。表30-1 SPC3引脚的功能引脚名称描述源/目的1XCS片选信号INTEL方式:接VDDCPUMOTORALA方式:片选信号2XWR/E-Clock写信号/E-Clock对MOTORALA总线时序CPU3DIVIDER设置CLKOUT的分频系数,低电平表示四分频,高电平表示二分频4XRD/R-W读信号/READ-WRITE MOTORALACPU5CLK时钟脉冲输入系统6VSS地7CLKOUT2/42或4分频时钟脉冲输出系统,CPU8XINT/MOT0:INTEL接口系统1:MOTORALA接口9XINT中断CPU,中断控制10AB10地址总线INTEL
17、方式:0MOTARALA方式:地址总线11DB0数据总线INTEL方式:数据/地址复用CPU,存储器12DB1MOTARALA方式:数据地址分离13DXATAEXCHPROFIBUS-DP的数据交换状态LED14XREADY/XDTACK外部CPU的准备好信号系统,CPU15DB2数据总线INTEL方式:数据/地址复用CPU,存储器16DB3MOTARALA方式:数据地址分离17VSS地18VDD电源19DB4数据总线INTEL方式:数据/地址复用CPU,存储器20DB521DB6MOTARALA方式:数据地址分离22DB723MODE0:MOTARALA数据地址分离:准备信号系统1:INTE
18、L数据/地址复用:固定时序24ALE/AS地址锁存使能INTEL方式:ALECPUMOTARALA方式:025AB9地址总线INTEL方式:0CPU,存储器MOTARALA方式:地址总线26TXD串行发送端口RS485发送器27RTS请求发送RS485发送器28VSS地29AB8地址总线INTEL方式:0CPU,存储器MOTARALA方式:地址总线30RXD串行接收端口RS485发送器31AB7地址总线系统,CPU32AB6地址总线系统,CPU33XCTS清除发送FSKMODEM34XTEST0必须接VDD35XTEST1必须接VD36RESET接CPU RESET输入37AB4地址总线系统,
19、CPU38VSS地39VDD电源40AB3地址总线系统,CPU41AB2地址总线系统,CPU42AB5地址总线系统,CPU43AB1地址总线系统,CPU44AB0地址总线系统,CPU30.3.3 SPC3的存储器组织SPC3内部有1.5KB双口RAM,按功能主要分为处理器参数锁存器/寄存器、组织参数、用户缓存三大部分。下面具体介绍每部分的具体功能。1, SPC3的存储器分配SPC3内部1.5KB双口RAM分配如表30-2所示。表30-2 SPC3内存分配地址功能000H015H处理器参数锁存器/寄存器(22个字节)016H03FH组织参数(42个字节)040H3FFHDP缓存器Data In(
20、3个) Data Out(3个) Diagnostics(2个) Parameter Setting Data(1个) Configuration Data(2个) Auxiliary Buffer(2个) SSA-Buffer(1个)内部锁存器/寄存器位于前22字节,用户可以读取或写入。一些单元只读或只写,用户不能访问的内部工作单元也位于该区域。参数锁存器/寄存器存储分配如表30-3和表30-4所示。组织参数位于16H开始的单元,这些参数影响整个缓存区的使用。另外,一般参数(站地址、标识符等)和状态信息(全局控制命令)都存储在这些单元中。组织参数说明如表30-5所示。用户缓存位于40H开始的
21、单元,所有的缓存器都开始于每个段的首地址(SPC3的整个RAM被分为192个段,每段8个字节)。表30-3 内部参数锁存器分配(读)地址(Intel/Motorola)名称 位号说明(读访问)00H01HIntReqReg 7.0中断控制寄存器01H00HIntReqReg 15.802H03HIntReq 7.003H02HIntReq 15.804H05HStatusReg 7.0状态寄存器05H04HStatusReg 15.8状态寄存器06H07HReserved保留07H06H08HDin_Buffer_SM 7.0Dp_Din_Buffer_State_Machine缓存器设置09
22、HNew_DIN_Buffer_Cmd 1.0用户在N状态下可到可用的DP Din缓存器0AHDOUT_Buffer_SM 7.0DP_Dout_Buffer_State_Machine缓存器设置0BHNext_DOUT_Buffer_Cmd 1.0用户在N状态下得到的可用DP Dout缓存器 0CHDIAG_Buffer_SM 3.0DP_Diag_Buffer_State_Machine缓存器设置0DHNew_DIAG_Buffer_Cmd 1.0SPC3中用户得到可用的DP Diag缓存器0EHUser_Prm_Data_OK 1.0用户肯定响应Set_Param报文的参数设置数据0FH
23、User_Prm_Data_NOK 1.0用户否定响应Set_Param报文的参数设置数据10HUser_Cfg_Data_OK 1.0用户肯定响应Check_Config报文的参数设置数据11HUser_Cfg_Data_NOK 1.0用户否定响应Check_Config报文的参数设置数据12H,13HReserved保留14HSSA_Bufferfreecmd用户从SSA缓存器中得到数据并重新使该缓存使能15HReserved保留表30-4 内部参数锁存器分配(写)地址(Intel/Motoroda)名称 位号说明(写访问)00H01HInt_Req_Reg 7.0中断控制寄存器01H00
24、HInt_Req_Reg 15.802H03HInt_Ack_Reg 7.003H02HInt_Ack_Reg 15.804H05HInt_Mask_Reg 7.005H04HInt_Mask_Reg 15.806H07HMode_Reg0 7.0对每位设置参数07H06HMode_Reg0_S 15.808HMode_Reg1_S 7.009HMode_Reg1_R 7.00AHWD_Baud_Ctrl_Val 7.0波特率监视基值(root value)0BHMin_sdr_Val 7.0从站响应前应该等待的最短时间0CH15HReserved保留表30-5 组织参数说明地址(Intel/
25、Motoroda)名称 位号说明16HR_TS_Adr 7.0设置SPC3相关从站地址17H保留默认为0FFH18H19HR_User_WD_Value 7.016位看门狗定时器的值,DP方式下监视用户19H18HR_User_WD_Value 15.81AHR_Len_Dout_Buf3个输出数据存储器的长度1BHR_Dout_Buf_ptr1输出数据缓存器1的段基址1CHR_Dout_Buf_ptr2输出数据缓存器2的段基址1DHR_Dout_Buf_ptr3输出数据缓存器3的段基址1EHR_Len_Din_Buf3个输入数据存储器的长度1FHR_Din_Buf_Ptr1输入数据缓存器1的
26、段基址20HR_Din_Buf_Ptr2输入数据缓存器2的段基址21HR_Din_Buf_Ptr3输入数据缓存器3的段基址22H,23H保留默认为00H24HR_Len_Diag_Buf1诊断缓存器1的长度25HR_Len_Diag_Buf2诊断缓存器2的长度26HR_Diag_Buf_Ptr1诊断缓存器1的段基值27HR_Diag_Buf_Ptr2诊断缓存器1的段基值28HR_Len_Cntrl_Buf1辅助缓存器1的长度,包括控制缓存器,如SSA_Buf、Prm_Buf、Cfg_Buf、Read_Cfg_Buf29HR_Len_Cntrl_Buf2辅助缓存器2的长度,包括控制缓存器,如SS
27、A_Buf、Prm_Buf、Cfg_Buf、Read_Cfg_Buf2AHR_Aux_Buf_SelAux_buffers1/2可被定义为可控制缓存器,如SSA_Buf、Prm_Buf、Cfg_Buf2BHR_Aux_Buf_Ptr1辅助缓存器1的段基值2CHR_Aux_Buf_Ptr2辅助缓存器2的段基值2DHR_Len_SSA_DataSet_Slave_Address_Buffer中输入数据的长度2EHR_SSA_Buf_PtrSet_Slave_Address_Buffer的段基值2FHR_Len_Prm_Data在Set_Param_Buffer中输入数据的长度30HR_Prm_Bu
28、f_PtrSet_Param_Buffer段基值31HR_Len_Cfg_Data在Check_Config_Buffer中的输入数据的长度32HR_Cfg_Buf_PtrCheck_Config_Buffer段基值33HR_Len_Read_Cfg_Data在Get_Config_Buffer中输入数据的长度34HR_Read_Cfg_Buf_PtrGet_Config_Buffer段基值35H38H保留默认00H39HR_Real_No_Add_Change这一参数规定了DP从站地址是否可改变3AHR_Ident_Low标示号低位的值3BHR_Ident_High标示号高位的值3CHR_G
29、C_Command最后接收的Global_Control_Command3DHR_Len_Spec_Prm如果设置了Spec_Prm_Buffer_Mode,这一单元定义为参数缓存器的长度2.SPC3的寄存器 SPC3的寄存器很多,本例就使用到的部分寄存器的功能重点介绍。读者应注意:对于一些寄存器,读和写时所对应的功能不同。(1) 方式寄存器0(地址06H、07H)和方式寄存器1(地址为08H或09H) 方式寄存器0是一个16位的寄存器,在离线状态下设置,当方式寄存器中所有的处理器参数、组织参数被装载后,SPC3才离开离线状态(方式寄存器1的START_SPC3=1);方式寄存器1是一个8位的
30、寄存器,可以单独被设置,(Mode_Reg_S),也可以单独被清除(Mode_Reg_R),设置或清除时必须在位地址写入逻辑1.设置时地址为008H,清除时地址为09H。 方式寄存器0的Bit0Bit13定义如表30-6所示,其余两位没有定义。表30-6方式寄存器0位功能说明Bit0DIS_START_CONTROL:在UART中监视起始位,在DP方式下Set_Param报文覆盖该单元,0=使能起始位监听,1=关闭起始位监听Bit1DIS_START_CONTROL:在UART中监听停止位,在DP方式下报文覆盖该单元,0=使能起始位监听,1=关闭起始位监听Bit2EN_FDL_DDB:0=关闭
31、FDL_DDB接收Bit3MinTSDR:复位后DP操作或combi操作的默认设置,0=纯DP操作(默认设置),1=combi操作Bit4INT_POL:中断输出的极性,0=中断输出低有效,1=中断输出高有效Bit5EARLY_RDY:准备信号前移,0=当数据有效(读)或数据接收(写)时产生准备信号,1=准备好信号前移1时钟脉冲Bit6Sync_Supported:0=不支持同步方式,1=支持同步方式Bit7Freeze_Supported:0=不支持锁定方式,1=支持锁定方式Bit8DP_MODE:DP方式使能,0=关闭DP方式,1=DP方式使能,SPC3设置所有DP_SAPsBit9EOL
32、_TIME base:中断脉冲结束的时间基值(time base)0=中断无效事件至少1us,1=中断无效时间至少1msBit10User_Tine base:User_Time_Clock_Interrupt周期的时间基值(time base),0=每1ms发生一次,1=每10ms发生一次Bit11WD_Test:看门狗定时器的测试方式,非运行方式,0=在运行方式下WD工作,1=不允许Bit12Spec_Pm_Buf_Mode:特殊参数缓存器,0=无特殊参数缓存器,1=特殊参数缓存器方式,参数数据直接存储在特殊参数缓存器Bit13Spec_Clear_Mode:特殊清除方式(故障安全模式),
33、0=不是特殊清除式,1=特殊清除方式,SPC3接收dataunit=0的数据报文 方式寄存器1的Bit0Bit5定义如表307所示,其余两位没有定义。表30-7 方式寄存器1位功能说明Bit0START_SPC3:退出离线状态,进入Passive_Idle状态,并且启动总线定时器和看门狗定时器,设置Go_Offline=0Bit1EOI:中断结束,1=中断结束,SPC3中断输出无效,并重新设置EOI=0Bit2GO_Offline:进入离线状态,1=在当前请求结束后,SPC3进入离线状态,并重新设置GO_Offline=0Bit3User_Leave_Master:要求DP_SM进入Wait_
34、Prm状态,并重新设置User_Leave_Master =0Bit4En_Chang_Cfg_Buffer:缓存器交换使能(Cfg buffer for Read Cfg Buffer)。0=通过User_Cfg_Data_Okay_Cmd只读配置缓存器,不可交换配置缓存器:1=通过User_Cfg_Data_Okay_Cmd只读配置缓存器,可以交换配置缓存器Bit5Res_User_WD:重新设置User_WD_Timer。1=SPC3重新将Res_User_WD_Timer参数化为User_WD_Value的值然后SPC3重新设Res_User_WD为0(2) 状态寄存器(只读,地址04
35、H,05H) 状态寄存器反应SPC3当前的状态并且为只读,状态寄存器各位的定义如表30-8所示。表30-8 状态寄存器位功能说明Bit0Offine/Passive-Idle:0=SPC3处于offline状态,1=SPC处于passive idle状态Bit1FDL_IND_ST:临时缓冲器中有无FDl标识(indication)0=有,1=无Bit2Diag_Flag:状态诊断缓存器,0=DP主站得到诊断缓存器的数据,1=DP主站还未得到诊断缓存器的数据Bit3RAM Access Violation:存取内存1.5kbyte,0=无地址冲突,1=如果地址大于1536bytes,从当前地址
36、中减去1024bytes然后访问这一新的地址Bit4,5DP_State1.0:DP状态机的状态,00=Wate_Prm状态,01=Wate_Cfg状态,10=Date_EX状态,11=不允许Bit6,7DP_State1.0:看门狗状态机制的状态,00=Baud_Search状态,01=Baud_Control状态,10=DP_Control状态,11=不允许Bit8,9,10,11Baud Rate30:SPC3正常工作的波特率0000=12Mbit/s0001=6Mbit/s0010=3 Mbit/s0011=1.5 Mbit/s0100=500kbit/s0101=187.5kbit/
37、s0110=93.75 kbit/s0111=45.45 kbit/s1000=19.2 kbit/s1001=9.6 kbit/s其他=不允许Bit12,13,14,15SPC3-Release30:Release no.for SPC3,0000=Release 0,其余=不允许(3) 中断控制器 通过中断控制器通知处理器各种中断信息和错误事件。中断控制器最多可存储16个中断事件。中断事件传送到共同的中断输出。 中断控制器包括中断请求寄存器(IRR)、中断屏蔽寄存器(IMR)、中断寄存器(IR)和中断响应寄存器(IAR)。 中断事件存储在IRR中,个别事件通过IMR被屏蔽,IRR中的中断输
38、入与中断屏蔽无关,在IMR没有被屏蔽的中断事件经过网络综合产生XINT中断,用户调试时可在IRR中设置各种中断。 中断处理器处理过的中断必须通过IAR(New_Prm_Data,New_DDB_Prm_Data,New_Cfg_Data除外)清除,在相应位上写入1即可清除。如果前一个已经确认的中断正在等待时,IRR中又接受到一个新的中断请求,则此中断被保留。接着处理器能使屏蔽,则确保IRR中没有以前的输入。出于安全考虑,使能屏蔽之前必须清除IRR中的位。 退出中断程序前,处理器必须在方式寄存器中设置“end of interrupt-signal(EOI)=1”,此跳变使中断线失效,如果另一个
39、中断仍保留着,则至少经过1us或12ms中断失效时间后,该中断输出将再次被激活,中断失效时间可以通过EOI_Timebase位设置,这样可以利用边沿触发的中断输入再次进入中断程序。 中断请求寄存器是一个16位的寄存器,可写、可读地址为00H、01H,各位的定义如表30-9所示。表30-9 中断请求寄存器位功能说明Bit0MAC_Reset:当处理完当前的请求,SPC3进入离线状态(通过设置Go_Offline位或由于RAM访问冲突)Bit1Go/Leave_Data_Ex状态:DP_SM进入或离开DATA_EX状态Bit2Baudrate_Detect:SPC3找到合适的波特率,并离开Band
40、_Search状态Bit3WD_DP_Control_Timeout:在DP_Control WD状态下,看门狗定时器溢出Bit4User_Timer_Clock:User_Timer_Clock的时间基值(time base)溢出(1/10ms)Bit5Bit7Res:保留Bit8New_GC_Command:SPC3接收到带有变化的GC_Command_Byte的Globle_Control报文Bit9New_SSA_Data:SPC3接收到Set_Slave_Address报文使SSA缓存器中的数据可用Bit10New_Cfg_Data:SPC3接收到Check_Cfg报文使Cfg缓存器
41、中的数据可用Bit11New_Prm_Data:SPC3接收到Set_Param报文,使Prm缓存器中的数据可用Bit12Diag_Buffer_Changed:由于New_Diag_Cmd的请求,SPC3交换诊断缓存器,并使原来的缓存器对用户可用Bit13DX_OUT:SPC3接收到Write_Read_Data报文使新的输出数据在N状态下对用户可用对于Power_on或Leave_master,SPC3清除N缓存器,并产生中断Bit14,15RES:保留 其他的中断控制寄存器各位的定义如表30-10所示,New_Prm_Data,New_CFG_Data输入不能通过中断响应寄存器清除,只能
42、通过用户确认后由状态机制来清除。表30-10 IR、IMR、IAR寄存器地址寄存器读/写复位状态说明02H/03HIR只读清除所有位04H/05HIMR可写,在操作中改变设置所有位Bit=1设置屏蔽中断失效Bit=0清除屏蔽允许中断02H/03HIAR可写,在操作中改变清除所有位Bit=1IRR位清除Bit=0IRR位未发生变化30.4 PROFIBUS-DP 现场总线智能节点的硬件设计 前面已经介绍了从站协议芯片SPC3由硬件来完成DP协议,要完成DP从站的构建除了SPC3外还需要微处理器等功能块,本设计采用AT89S52作为微处理器。 其中SPC3独立完成DP从站写一部分的工作,在开始DP
43、通信时,SPC3将会自动的设置所有的DP_SAPA(DP的服务存取点): Default SAP:Write_Read_Data,用于数据的读写; SAp53:SET_DDB_Parameter,DBB参数设置报文选择; SAP55:Set_Slave_Address,允许DP2类主站分配一个新的总线地址给一个DP从站; SAp56:Read_Inputs:读取输入数据; Sap57:Read_Outruts,读取输出数据; Sap58:Global_Control,DP主站使用此控制命令将他的运行状态告知各DP从站,并可将Sync和Freeze命令发送给从站,实现输入数据和输出数据的同步。
44、Sap59:Get_Config,用来读取DP从站的当前组态数据。 Sap60:Slaves_Diaguosis,在启动期间或循环的用户数据交换期间,读取DP从站的诊断信息。 Sap61:Set_Param,设置参数。 Sap62:Check_Config检查组态。DP主站在启动、数据传送阶段使用这两个功能发送参数集给DP从站。 所有的数据交换通过服务访问点SAp处理。各种保文信息呈现在用户面前的是1.5KB内存中不同缓冲器的内部数据,用户可以通过总线接口访问这些内部数据。因此微处理器不用参与处理器服务缓存点,主要任务就是根据SPC3产生的中断,对SPC3接收到的主站发出的输出数据转存、处理,
45、组织要通过SPC3发给主站的数据,并根据要求组织外部诊断等,微处理器将主战输出到从站的数据从SPC3存储区取出进行处理;级那个主站屋窑的数据存储到SPC3相应的数据缓存器中,为通信输入到DP主站做好准备。 该智能从站的硬件电路主要包括微处理器AT89S52与SPC3的接口电路、SPC3与RS485的接口电路数据采集电路、供电源电路几部分。30.4.1 AT89S52与SPC3的接口电路 AT89S52与SPC3的接口电路如图30-5所示。对AT89S52而言,SPC3相当于它扩展的一个外部RAM。根据选择的CPU,SPC3应工作在INTEL方式下因此XCS和MODE都接高电平。AT89S52的
46、P0口(低8为地址和数据的分时复用)接SPC3的DB0DB7(低8为地址和数据的分时复用),可以产生数据和低8位的地址总线,p2.02.3接SPC3的AB0AB3的作为高4位地址AB8AB11,P2.5P2.7接74LS138译码器的输入端,译码器的输出端Y1接SPC3的AB4作为地址线AB12,SPC3的AB5、6、7经过1K的电阻接地(即地址线AB13AB15为0),由此可以得出SPC3的内部1.5K的RAm地址为2000H25FFH,单片机通过访问外部RAm的方法来访问SPC3的寄存器。SPC3的内部译码器电路如图30-6所示。图30-5CPU与SPC3的接口电路CSAD0-AD7A11
47、-A15A8-A10AD0-AD7ALEA0-A10地址缓冲地址锁存1.5KRAMIN SPC3图30-6 SPC3的内部译码器 SPC3的CLK接有源晶振的FOUT,FOUT输出24MHZ的时钟脉冲信号,SPC3的DIVIDER引脚接高电平,内部分频器对时钟脉冲信号2分频,产生12MHZ的分频信号为AT89S52提供时钟信号,节省了电路的费用。 注意:SPC3的引脚具体定义请参考表30-1.也请读者自己写出方式寄存器、状态寄存器、中断管理寄存器的地址。30.4.2 SPC3与RS485的接口电路 SPC与RS485的接口电路如图30-7所示。PROFIBUS-DP接口数据通过RS-485传输
48、,而SPC3是UART口,因此应设计SPC3与RS485的接口电路。RS-485驱动器一端通过光电隔离器与协议芯片SPC3相连,另一端通过9针D型插头与总线相连,9针D型插头是PROFIBUS-DP总线网络专用链接器,具体信号排列与含义如表30-7.RS-485驱动器选择SN75ALS176来满足高速数据通信,采用光电隔离器6N137来增加系统的抗干扰性。图30-7 SPC3与RS485的接口电路表30-7 D型插头信号排列及含义插针号信号功能说明1shield屏蔽/保护地2M2424V输出电压地3RxD/TxD-P接收数据传送数据正极(B线)4CNTR-P中继器方向控制信号5DGND数据地6
49、VP中断电阻的供电电压7P24+24V输出电压8RxD/TxD-N接收数据传送数据负极(A线)9CNTR-N中继器方向控制信号30.4.3 数据采集电路 数据采集电路如下图30-8所示。系统采集0/420ma标准信号,通过250欧精密电阻将其转化为0/15V电压,为了提高系统的抗干扰性,经模拟隔离后的信号进入A/D转换器MAX186进行模数变换,变换后的数字信号经过6N137数字隔离后进入单片机,其中SCLK,CS,DIN,DOUT信号分别跟单片机的P1.0、P1.1、P1.2、P1.3模拟SPI总线时序,以便控制串行A/D转换器数据采集任务。图30-8 数据采集电路30.4.4 供电电源电路
50、 除了上述主要电路外还有供电电路,在智能节电的设计中,供电电源一般为+24V,而智能节点内部需要+5V电源,因此需要将+24V经过DC/DC变换产生所需电源。图30-9所示为将+24V变为+ 5V的DC/DC变换电路。图30-9 供电电源电路30.5 PROFIBUS-DP 现场总线智能节点的软件设计 本里从智能节点的软件设计采用模块化设计方法,在程序设计中用到了大量的宏,读者在阅读时要注意这些宏的定义。30.5.1 软件设计概述 从站的开发程序主要包括SPC3接口通信程序和数据采集程序,重点是SPC3的接口通信程序,它包括SPC3的初始化和SPC3中断服务程序。具体模块包括: 主程序模块是整
51、个系统管理核心,组织其他模块配合完成整个系统色数据采集和通信任务。 缓存器设置模块主要根据主站发给从站的参数报文、组态报文完成SPC3内部各缓存器的大小和及地址的理想化配置。 中断处理模块主要处理SPC3的中断请求,包括参数报文中断处理,新全局控制命令中断处理,新组态报文中断处理、看门狗超时中断处理、;用户时钟中断处理、波特率中断处理、离线中断处理等。 数据采集模块主要完成数据采集和数据处理。 看门狗程序完成程序监控。 串行通信模块完成串行通信程序,实现数据远传。 由于SPC3集成了完整的PROFIBUS-DP协议,因此AT89S52不用参与处理PROFIBUS-DP状态转换,AT89S52的
52、主要任务就是进行数据采集与处理,根据SPC3产生的中断,对SPC3接收到的主站命令书记进行转存,处理要通过SPC3发给主站的数据,并根据要求组织外部诊断等。系统的主程序流程图如图30-10所示。 系统上电后进入主程序,首先对单片机和通信协议芯片进行初始化,重点是对SPC3进行初始化,以配置各个寄存器,包括设置SPC3允许的中断,写入从站标识号和地址,设计方式寄存器、诊断缓冲区、参数缓冲区、配置缓冲区及各缓冲区的初始长度,并根据以上初始值求出各输入输出缓冲区的指针及辅助缓冲区的起始地址和范围。完成对单片机和SPC3的初始化后,启动SPC3,然后判断是否有主站输出数据,处理器输出数据,然后完成数据采集,然后写入缓存,向主站发送现场数据,此时要进行外部诊断的监控,如果有外部诊断,就向主站发送诊断信息。如果主程序在执行过程中有DP中断发生,系统就进入中断处理程序。 SPC3的初始化程序主要配置各个寄存器,动态的、最优的分配SPC3缓存使SPC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防爆配电箱租赁协议书
- 锅炉安装工程内部承包合同
- 工作室合租合同书
- 常用药店股份合作协议书
- 电话通信服务话费托收协议书
- 贵州省六盘水市2024年七年级上学期期中数学试题【附答案】
- 4.1常见地貌类型+风沙地貌-高一地理人教版(2019)必修一
- 工程项目成本风险分析及管理
- 河北省唐山一中高三下学期强化提升考试(六)英语试题
- 07陌生物质性质与制备探究(原卷版)
- QB∕T 2345-2013 脂肪烷基二甲基甜菜碱平均相对分子质量的测定气相色谱法
- 高中英语外刊-小猫钓鱼50篇
- 监理大纲工程监理方案技术标投标方案
- 《3.2认识居民身份证》道法课件
- 《园林制图》课件-曲线与曲面
- 中国移动:5G-A无源物联网典型场景技术解决方案白皮书2024
- PowerPoint培训教程课件
- 医疗绿色通道医联体协议书
- 2023-2024学年北京市八中九年级上学期期中考试物理试卷含详解
- 2024事业单位招聘考试时事政治考试题库学生专用
- 兽医病理学智慧树知到期末考试答案章节答案2024年浙江农林大学
评论
0/150
提交评论