基于MSP430单片机的Profibus-DP通信接口的开发
时间:2023-09-29 10:35来源: 作者: 点击: 次Profibus是开放的、与制造商无关、无知识产权保护的标准。因此世界上任何人都可以获得该标准并设计各自的软硬件解决方案。Pro-fibus-DP的有两种方案选择:+软件;+Profibus芯片ASIC。
方案2中协议完全由ProfibusASIC来实现,主要处理用户程序。因此方案2周期相对少很多,本文将采用单片机+Profibus通信ASIC来实现Profibus通信的设计。
1 基本特性
Profibus包括三个兼容系列:Profibus-FMS,,Profibus-PA。FMS提供大量的通信服务用于完成以中等传输速度进行的循环和非循环的通信服务;DP是一种经过优化的高速廉价的通信连接,适用于实时性要求较高的场合,主要用于自动控制与分散式外设之间的通信;PA是专为过程自动化而设计,具有本质安全性,用于安全性要求较高的场合及总线供电的站点。
1.1 协议结构
Profibus-DP协议采用了ISO/OSI模型的第1层(物理层)、第2层(数据链路层),除去了3~7层,并自定义了用户层,这种协议结构保证了数据传输的快速有效。
1.2 报文结构
Profibus-DP数据编码采用异步不归零制,传输线的空载电平为“1”。为了避免数据传输中发生冲突而导致数据丢失,在每个请求报文发送前必须保证33位(同步时间)的空载状态。在单个字符间所有数据传送时没有间隙,即无缝。各种报文的格式如图1所示。
1.3 Profibus-DP从站状态机
图2为DP从站状态机的简单图示。各种椭圆表示不同的状态,带箭头的连线表示状态间的转换,连线上的文字表示状态转换所需满足的条件。
只有在Power_on状态,从站可以接收来自二类主站的“Set_Slave_Address报文,从而改变从站地址,从站应具有非易失性存储器来存储从站地址。内部启动后,从站进入wait_Prm状态,等待“Wait_Prm”报文。参数化报文由用户组态时给定,包括一些标准的信息,如识别号、同步锁定能力,还包括了一些用户特别定义的数据,另外,在此状态从站还可以接收“Get_Cfg”报文、“Slave_Diag”报文,但拒绝处理其他报文,不能进行数据通信。如果Set_Prm正确,从站进入wait_Cfg状态,等待“Check_Cfg”报文,该报文规定主站对它的配置信息,即数据交换中的输入输出字节数。此外,也可接收“Get_Cfg”报文、“Slave_Diag”的报文。当参数化与配置正确通信,在此状态,从站可以接收以下报文:Data_Exchange_Ok、Writing_outputs,Reading_Inputs,Global_Control,Slave_Diag,Get_Cfg等。从站接收主站的状态请求后,以高优先级的诊断报文作为应答。诊断信息包括了标准诊断信息和与用户有关的信息。
2 通信接口硬件设计
本文选用的Profibus-DP的通信协议芯片为SPC3。SPC3集成了全部的Profibus-DP协议。SPC3在DP方式下将完成所有DP-SAP的设置。SPC3内部集成了1.5 KB的双口RAM,包括参数寄存器、方式寄存器、状态寄存器,中断控制器等。SPC3内部集成的看门狗定时器有3种工作状态:波特率检测、波特率控制和从站控制。内部的USART可实现并行数据流和串行数据流的相互转换。微顺序控制器控制整个工作过程。空闲定时器直接控制串行总线的时序。