SPC3芯片在DP从站接口开发中的应用

上传人:gg****m 文档编号:213910160 上传时间:2021-11-22 格式:DOCX 页数:4 大小:63.61KB
返回 下载 相关 举报
SPC3芯片在DP从站接口开发中的应用_第1页
第1页 / 共4页
SPC3芯片在DP从站接口开发中的应用_第2页
第2页 / 共4页
SPC3芯片在DP从站接口开发中的应用_第3页
第3页 / 共4页
SPC3芯片在DP从站接口开发中的应用_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《SPC3芯片在DP从站接口开发中的应用》由会员分享,可在线阅读,更多相关《SPC3芯片在DP从站接口开发中的应用(4页珍藏版)》请在金锄头文库上搜索。

1、SPC3芯片在DP从站接口开发中的应用摘要:随着现场总线在工业领域应用的发展,越来越多的智能仪表带启PROFIBUS总线 接口。开发人员通常采用单片机与AS1C芯片和结合的方案实现设备从站接口。集成了完整 V0通信状态机制的SPC3是由西门子公司推出的可用于从站接口开发的智能芯片。熟悉 SPC3的内部结构及各个寄存器的工作机制,根据用户的需要以及相关规范对芯片内部寄存 器进行直接设置,可以使开发工作顺利进行并大大提高从站通信中的相关性能。关键词:DP从站;从站接口; SPC3;智能芯片0引言单片机附加协议芯片是常用的从站实现方案之一,与单片机附加内部软件的方案相比,用于 控制通信状态机制的内部

2、程序已经大大减少。SPC3芯片是西门子公司向用户推出的功能强大的协议芯片Z-,其通信机制是由其内部各 个寄存器完成,通常单片机处理的内部程序都用于芯片内部RAM空间分配的计算以及对 SPC3进行设HS熟悉SPC3的内部结构及各个寄存器的工作机制,掌握了芯片寄存器初始 化以及为数据交换配置通信缓冲区的方法,开发人员就可以脱离对开发包中功能强人但计算 过于繁琐的FW固件的依赖,自行根据从站的需求对SPC3芯片进行设置。1 SPC3芯片应用由于已经集成了大部分的通信状态机制,应用了 SPC3芯片的从站只需要针对数据传输部分 进行便件及内部程序的开发。SPC3芯片内部的双口 RAM可作为单片机的外部R

3、AM使用,用于与微处理器进行数据交 换。在芯片内部已经搭建了完整的SAP通信结构,用户可以直接从各个缓冲区中直接获取 报文中的相关数据。简单來说,内部程序设计的主要任务就是SPC3芯片的初始化、数据传 输、从站诊断以及中断程序的处理。在内部程序中搭建完整的SPC3芯片寄存器数据结构后, 以上问题都可以轻松解决。2芯片初始化芯片的初始化要在SPC3尚处于offline状态时完成,是从站接口的所冇程序中比较重要R繁 杂的一部分。在初始化过程中需要完成从站基本信息及功能相关寄存器的配置,SPC3内部 数据缓冲区指针的计算以及外部中断相关的各种定义。2. 1功能性设置SPC3内部寄存器中有数个字节用于

4、保存从站的ID号,地址,中断屏蔽以及硬件模式等基 本信息。通过对这些奇存器的设置,可以使从站拥有相关的功能。用户可以根据开发需要直 接对SPC3寄存器内各位进行设置。卜-面针对各个寄存器不同的功能,对如何进行设登进行 详细的介绍。2. 1. 1从站信息相关寄存器在从站上电初始化时,要确定一些与从站木身相关的信息,如从站ID号,与硬件地址等。 和这些信息有关的寄存器分别位于SPC3芯片内部RAM的3A、3B以及16H,只要将产品 ID号以及用户设定的从站地址写入相应的寄存器即町。2. 1. 2中断屏蔽寄存器SPC3智能芯片中的中断控制器由中断请求寄存器,中断屏蔽寄存器与中断响应寄存器三部 分组成

5、,具体结构如图1所示。用户可以口由选择从站所需的外部中断功能,并由中断屛蔽 奇存器使之有效。图1中断控制器结构中断屏蔽寄存器IMR占用地址04、05H,其中各位与其它寄存器不同,为逻辑0侑效。试 举例说明,根据中断屏蔽寄存器中各位的含义,一个在V0通信中支持 GO_LEAVE_DATA_EX、 WD_DP_MODE_TIMEOUT、 NEW_GC_COMMAND、 NEW_SSA_DATA、NEW_CFG_DATA、NEW_PRM_DATA、BAUDRATE_DETECT 外部中 断的从站,其中断屏蔽寄存器中应写入的值为OxFIFOo2. 1. 3模式寄存器SPC3芯片有两个内部模式寄存器mo

6、deeg 0/1,分别占用了 06,07H与08,09H四个字节的 空间。位于06, 07H的模式寄存器()只能在SPC3芯片的offline状态下设置。各种选择性功能以 及用户时基都应在模式寄存器0中进行定义。一个支持同步冻结功能,中断优先级为低,并 要求用户WD吋基为10 ms的简单从站I/O的模式寄存器内应写入数值为0xC005o与其它 可选择性的功能设置不同,DP_MODE这一位始终要求置为逻辑1,表示支持DP通信。与模式寄存器0不同,位于08, 09H的模式寄存器1中的各控制位都可以独立的进行设直 或解除,不仅限于offline状态才可以设置。SPC3芯片完成初始化之后,山offli

7、ne至 passive-idle状态Z间的转换就是通过将模式寄存器1中的START-SPC3位置为逻辑1而实 现的。其它各位的设置,如重置看门狗定时器Res user WD等等,都可以根据从站的需要灵 活应用。2. 2内部空间分配计算完成DP通信设置相关的初始化之后,开始进行DP通信数据缓冲区的相关设置。主站与从 站Z间的交换数据并不一定会占用芯片内部所冇的空间。但是,当所盂传输的数据氏度过氏 时(如,输入输出各244字节,过大的用户参数),可能会出现1.5K的内部RAM无法满足 通信需要的情况。这种情况是不允许的,要求用户在初始化时就根据各个报文传输数据的长 度进行相关的空间计算,以排除类似

8、的错误。空间占用数据总长度的计算十分容易,其公式如下:数据总长度=(输出缓冲区+输入缓冲区)X3 +诊断缓冲区X2 +配置缓冲区X2 +站地址 改变缓冲区+参数化缓冲器+AUX 1+AUX 2需要注意的是,SPC3芯片是将数据进行分段存储的。1.5K的空间被分为192段,每段为8 个字节。因此,一个标准长度为7字节的参数化报文,它在SPC3内部实际占用的字节长度 为:(7 + 7) &0xf8 = 8个字节,也即占用了 SPC3芯片中1段共8字节的空间。参见图1中的SAP结构可以发现,各个缓冲区的长度即为相关报文中DU部分在SPC3芯 片内占用的段空间长度。但是,两个辅助缓冲区AUX 1/2的

9、长度设定稍有特殊。AUX 1/2 两个寄存器用于暂存获得的配置,参数化数据(如果支持站地址改变,还应加入SSA数据), 它们所需的长度耍保证数据传输的完整性,同时也应最大限度的节省空间。因此在配置长 度时对参数化报文和配置报文的DU部分长度进行反复比较,将最小值赋给AUX1,最人值 赋给AUX2o这样,辅助缓冲区的长度计算就会出现两种情况:参数化数据长度与配置数据长度不相同。如,用户参数化数据48字节,配置数据6字节, 不支持站地址改变的从站AUX辅助缓冲区长度设置为:AUX1缓冲器长度8字节,而AUX2 实占48字节。当出现参数化和配置数据在SPC3内部占用段空间札I同时,实际利用的AUX寄

10、存器只有 一个,也即AUX1长度设置,而将AUX2配置为0,在通信中并不使用。如,参数化数据 长度为7,配置数据长度为6的情况下,AUX1的长度为8,而AUX2设置为0。为了设置不同的功能,某些从诂可能会定义很长的用户参数。如果想利用辅助寄存器完整的 转移这些用户参数,则需要SPC3从内部RAM中为具留出不小的空间,这样可能会造成空 间不足。这种情况下建议在模式寄存器0中(07H, bit 12)设置Spcc_Prm_Puf_Modc,使 得参数化数据不通过辅助寄存器,而是肓接写入参数化缓冲区中。这样可以保证辅助寄存器 的简洁,最大限度的节省空间。根据以上的说明进行举例计算,一个48字节输入输

11、出,无用户参数,不支持站地址改变, 不使用spec_prm的从站需要在SPC3内部占用的空间长度为8X3 + 8+8X2+104X3 = 360 个字节,即SPC3应为从站DP通信留卜至少360个字节的空间大小。2. 3通信缓冲区相关设置在计算完实际占用内部空间长度,并判断未超出SPC3内部RAM后,将DP通信相关的缓 冲区长度和指针信息存入相应的寄存器中。根据用户规定从站的输入输出数据,川户参数等 各相关长度的不同,相应的指向各个缓冲区首地址的段地址指针也会随之改变。因此,在 SPC3脱离offline状态进入passive-idle状态Z前,应该对占用空间分配进彳亍计算。SPC3的用户数据

12、区从40H开始,即真正用于数据交换的段地址从8开始。以40H为起始地 址,Z后依次为输入输出D、N、U各三个缓冲区,诊断D、U两个缓冲区,配置缓冲区,配直数据读取缓冲区,AUXI/2缓冲区,以及SSA缓冲区。根据缓冲区内所存数据的长度计算各个首地址指针:spc3.r_dout_buf_ptr 1 (1BH) = & spc3.r_dout_buf_ptr2 (1CH) =8+ (48+7) &0xf8) 3) =14; spc3.r_dout_buf_ptr3 (1DH) = 14+ (48+7) &0xf8) 3) =20;依此递推,输入数据缓冲区的三个指针指向的段地址分别为26, 32,

13、38。同样,之后的各个缓冲区的指针也以此方法计算出来,并存入相应的寄存器中,在此不再赘述。3外部中断在经过初始化之后,SPC3芯片中已经有了和主站进行正常通信的能力。作为从诂智能芯片, 在SPC3中集成了 V()通信所有的状态机制,阳实现这种机制的手段则是外部中断。与外部 中断相关的中断控制器已经略有介绍,理论上SPC3芯片可以支持16种外部中断,选用何 种小断由开发人员决定并通过中断屏蔽寄存器的设査实现。而外部中断的触发则由位于02, 03H的中断寄存器IR决定。IR寄存器中各个位的含义少IMR的含义相同,逻辑1有效。 当中断处理程序由IR寄存器中读取到中断条件后,会完成单片机对芯片信号的响

14、应,处理 SPC3芯片发主的各种中断事件。其中包扌舌了参数化事件,全局控制事件,进入或退出数据 交换状态事件,配置事件,地址改变事件,监测波特率事件和看门狗溢出事件。在为实现通 信状态机制而必需的中断程序中,用户可以完成在各种不同状态下所盂的处理,以及一些从 站所需的特殊功能。4数据交换DATA-EX在与主站通信,经过参数化、组态配置以及诊断之后,从站会依据状态机制进入数据交换状 态。使用了 SPC3智能芯片的从站接口支持两种数据交换:查询方式及中断方式。不管使用 哪种方式进行数据交换,从站的数据交换都是由输入输出数据在D,N,U三个缓冲区之间的 转换实现的。在输入输出缓冲区中,D缓冲区都是用

15、于存储主站报文中的输出数据以及从站 报文中的输入数据,数据在D缓冲区与N缓冲区Z间的转换由SPC3芯片口动完成,从站 接口单片机需要处理的只是将数据存储至当前U缓冲区中。在处理输出数据的接收时,SPC3芯片占动将数据写入了当前输出指针指向的D缓冲区中, 并最终转移到N缓冲区。用户所要做的只是在中断产生时,通过交换N、U两个缓冲区中 的数据,以得到实时输出数据。同样,在从站接口向主站发送输出数据时,用户只需要取得 当前输入缓冲区的指针,并将要发送的数据存入。为了完成以上工作,在每一个数据交换周期处理新的输入输出数据时,都应先根据SPC3内 部T作单元中next_dout / din_buf_cm

16、d提供的信息确定当前U缓冲区的首地址指针。开发 人员只需在接口中将U指针指向的缓冲区中的输出数据取出,或者将输入数据转入此缓冲 区即町,剩余的工作由SPC3芯片口动完成。5结论SPC3智能协议芯片结构完善,功能强大,非常适用于PROFIBUS DP从站接口的开发并可 以使开发工作简单化,节省了工作人员大量的时间。为了更方便用八対智能芯片进行设置, 西门子公司提供了一套完整的开发包FW固件。但为了保证对于各种功能及报文格式都有很 好的通用性,FW固件中的相关宏定义与通信相关计算綾为繁琐,各种通信参数及缓冲器 指针的计算占用了大部分的运算时间。相对于依赖开发包进行从站接口的开发,由用户口主对SPC3芯片进行设置则稍为复杂,但 同时也冇明显的优势。木文介绍了在SPC3芯片中通信必需的寄存器的设置方法,用户可以 根据从站功能以及传输数据的长度对SPC3直接设

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号