O 引言
Profibus是开放的、与制造商无关、无知识产权保护的标准。因此世界上任何人都可以获得该标准并设计各自的软硬件解决方案。Pro-fibus-DP通信接口的开发有两种方案选择:单片机+软件;单片机+Profibus通信芯片ASIC。
方案2中Profibus-DP协议完全由Profibus通信ASIC来实现,单片机主要处理用户程序。因此方案2开发周期相对少很多,本文将采用单片机+Profibus通信ASIC来实现Profibus通信接口的设计。
1 Profibus-DP基本特性
Profibus包括三个兼容系列:Profibus-FMS,Profibus-DP,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可实现并行数据流和串行数据流的相互转换。微顺序控制器控制整个工作过程。空闲定时器直接控制串行总线的时序。
考虑到Profibus对速率的要求本文选用高速率,低功耗的16位MSP430单片机,采用Intel工作方式。CPU与SPC3接口电路如图3所示。对于MSP430单片机而言,SPC3相当于它扩张的一个外部RAM。单片机可以通过访问外部RAM的方法访问SPC3的寄存器。RS 485驱动器的一端与SPC3相连,另一端通过9针D型插头与总线相连。RS 485驱动器选择SN75SLS176来满足高速的数据通信。
3 通信接口软件设计
软件设计是开发Profibus-DP通信接口的一个重要环节。由于SPC3集成了完整的DP协议,因此在进行通信时,MSP430单片机不用参与处理DP状态机。主要任务是根据SPC3产生的中断,对SPC3接收到数据转存,组织要通过SPC3发给的数据,并根据要求组织外部诊断。
主程序流程图如图4所示,在SPC3正常工作之前,需要进行初始化,以配置需要的寄存器,包括设置协议芯片的中断允许,写入从站识别号和地址,设置SPC3方式寄存器,设置诊断缓冲区,配置缓冲区,地址缓冲区,初始化长度,并根据以上初始值得出各个缓冲区的指针和辅助缓冲区的指针。根据确定输出缓冲区、输入缓冲区及指针,初始化流程图如图5所示,初始化包括:SPC3硬件复位、硬件模式、设置SPC3中断屏蔽寄存器、SPC3内部看门狗、设备标识号、缓冲区初始化。
中断程序流程图如图6所示,在Profibus-DP中最主要处理以下的中断事件:新的参数报文事件,全局控制命令报文事件,进入或退出数据交换状态事件,新的配置报文事件,新的地址设置报文事件,检测到波特率事件,看门狗事件。
4 结语
选用的MSP430单片机具有高速率、低功耗的特点,SPC3芯片则集成了Profibus-DP全部协议内容,整系统功能相对完善,使用方法简单。本方案用于Profibus-DP通信接口的开发,可以减少开发周期,实现开发的简化。
关键字:MSP430单片机 Profibus-DP 通信接口
引用地址:
基于MSP430单片机的Profibus-DP通信接口的开发
推荐阅读最新更新时间:2024-03-16 12:40
MSP430单片机Timer_B和Timer_A的异同
Timer_B和Timer_A共同的特征 1 4种工作模式 2 具有可选,可配置的计数器输入时钟源 3 有多个独立可配置捕获/比较模块 4 有多个具有8种输出模式的可配置输出单元 5 DMA使能 6 中断功能强大,中断可能源自于计数器的溢出,也可能源自于各捕获/比较模块上发生的捕获事件或比较事件。 Timer_B与Timer_A不同之处 1 Timer_B计数长度为8位,10位,12位和16位可编程,而Timer_A的计数长度固定为16位。 2 lTimer_B中没有实现Timer_A中的SCCI寄存器位的功能。 3Timer_B在比较模式下的捕获/比较寄存器功能与Timer_A不同,增加了
[单片机]
基于PROFIBUS-DP现场总线的恒温控制系统
1 引 言 在香烟过滤嘴生产线上,包含纸加热、预加热、缝喷嘴、胶水容器温度等6路温度信号。它们对温度的要求很高,要求温度保持在140℃左右的恒温状态。实践表明,常规的PID控制器因为超调量过大、易受环境的影响,不能满足实际要求。经过不断研究,人们提出了自校正PID控制器和基于模糊推理的自校正PID控制器设计方法。前一种方法需要在线辨识过程模型,计算量大;后一种方法的参数可校正范围过小。在该文中提出了一种新型PID控制算法。该算法计算量小,易于软件实现,在实践中取得了良好的控制效果。 2 系统介绍 系统由1台上位机和3台下位机组成。上位机使用KINGVIEW软件进行编程,实现了实时数据更新、历史曲线和实时曲
[工业控制]
msp430单片机:Timer_A捕获模式
Timer_A捕获模式(以msp430f149为例) 一、捕获模式的介绍 1、捕获模式是在应用中很常用的一种模式,可以进行脉冲计数,侧量脉宽,可以用作小球计数、频率计、超声波测距等应用中。 2、捕获模式可以捕捉上升沿,也可以捕捉下降沿。需要对寄存器进行具体设置。 3、捕获模式的实质就是在捕获上升沿或者下降沿的同时进入捕获中断,执行中断服务函数,同时把TAR计数的值赋给 TACCR0或TACCR1、TACCR2(要看具体用的是哪个引脚的捕获),从而捕获到当前TAR(计数器)的值。 4、捕获模式类似于51单片机的计数器,但是又与计数器工作原理有很大差别,功能也比计数器强大。它既可以脉冲计数也可以计算一个脉冲宽度(也就是高电平的
[单片机]
Profibus-DP现场总线技术在水电厂监控中的应用
1 现场总线技术概述
现场总线是安装在生产过程区域的现场设备/仪表与控制室内的自动控制装置/系统之间的一种串行、数字式、多点、双向通信的数据总线。其中“生产过程”包括断续生产过程和连续生产过程两类。或者说,现场总线是以单个分散的数字化智能化的测量和控制设备作为网络节点,用总线相连接,实现相互交换信息,共同完成自动控制功能的网络系统与控制系统。Profibus支持Type3现场总线是一种国际化、开放式、不依赖于设备生产商的现场总线标准,用于工厂自动化系统三级网络中的底层,即车间级监控和现场设备层数据通信与控制,适用于分散的、具有通讯接口的现场受控设备对底层设备有较高的数据集成和远程诊断、故障报警及数字化要求的系统。
[嵌入式]
MSP430单片机对智能小车的硬件控制设计
智能小车涉及到高级计算机控制、电子机械、自动化等诸多学科,随着科技的不断进步,智能电子产品发展步骤不断加快,各种应用层次的机器人等大量出现,目前应用在智能小车或机器人的微控制器主要是8/16单片机或ARM和数字信号处理器DSP等。本设计采用TI公司生产的功耗低运行速度快且价格便宜的MSP430F2274为核心,避障检测采用测距精准的超声波传感器,该传感器采集小车周围的环境信息并传递给MSP430进行程序判断处理,从而达到控制小车自动避障的目的。 1 系统的总体结构框图 该系统主要由MSP430控制器,超声波避障模块,电机驱动,测速,语音模块,温度模块,小车的机械运动部分采用四轮差速转向式结构,前2个轮是驱动轮,分别由电机控制其
[单片机]
MSP430单片机控制IO口操作-LED灯闪烁
//******************************************************************************* // D13x Demo - 在上一节基础上改变系统时钟,观察LED灯的闪烁频率 // // 描述:通过改变系统时钟,来改变闪烁频率;通过 P1 异或 来取反 P1.5;软件循环延时 // ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k // // MSP430F13x // ----------------- // /|\| XIN|- // | | | // --|RST XOUT|- // | | // | P1.5|-- L
[单片机]
MSP430单片机对片内FLASH的读写操作程序范例
MSP430 单片机对片内 FLASH 的读写操作程序范例 // 参数: wAddr 为地址 , 范围 0x1000~0xFFFF void ReadFlash(U16 wAddr,U8 *bBuf,U8 bLen) { while (bLen--) *bBuf++=*(U8 *)wAddr++; return; } void WriteFlash(U16 wAddr,U8 *bBuf,U8 bLen) { U8 reg1,reg2; reg1=_BIC_SR(GIE); reg2=IE1;IE1=0; // 保护原来中断标志,并关闭有关中断。 // 写一个字节数据到指定 flash 地址 while (bLen--) { whi
[单片机]
S5PV210串行通信接口详解-3
1、串行通信与中断的关系 (1)、串口通信分为发送 / 接收2部分。发送方一般不需要(也可以使用)中断即可完成发送,接收方必须(一般来说必须,也可以轮询方式接收就是CPU一直盯着收)使用中断来接收。 (2)、发送方可以选择使用中断,也可以选择不使用中断。使用中断的工作情景是:发送方先设置好中断并绑定一个中断处理程序,然后发送方丢一帧数据给transmitter,transmitter发送耗费一段时间来发送这一帧数据,这段时间内我们的发送方CPU可以去做别的事情,等transmitter发送完成后会产生一个TXD中断,该中断会导致事先绑定的中断处理程序执行,在这个中断处理程序中CPU会切换回来继续给transmitter放一帧数据,
[单片机]