当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:给出了通过使用MCU,ARM和FPGA芯片的配合工作,为上位冗余PROFIBUS-DP主站系统与下位非冗余PROFIBUS-PA设备系统之间提供网络转换的实现方法,该方法安全可靠。

引言

DP/PALINK模块实现上位冗余PROFIBUS-DP主站系统与下位非冗余PROFIBUS-PA设备系统之间的网络转换。对于较高级别的系统面向自动化设备),DP/PALINK是DP从站,只占用较高级别DP主站系统的一个节点;DP/PALINK是PA主站,PA总线系统中的现场设备不占用上级DP总线系统的节点地址。

1功能描述

本模块通过64针欧式连接器与底座连接,可配置为模块单机或冗余使用。通过设置底座上的终端电阻,在下级DP总线网络中可作中间节点,也可作末端节点。

1.1硬件功能框图

DP/PALINK模块的硬件电路功能框图如图1所示。可用于实现上位冗余PROFIBUS-DP主站系统与下位非冗余PROFIBUS-PA设备系统之间的网络转换。

基于STM32的DP/PA Link设计

图1中的MCU选用ST公司的STM32F100R8T6,它采用基于ARM最新架构的32位Cortex-M3内核,结合了执行Thumb-2指令的32位哈佛微体系结构和系统外设,系统时钟最高24MHz,芯片性能达1.25DMIPS/MHz,内嵌64KB的

FLASH和8KB的SRAM,片上资源丰富,功能上完全可以满足系统设计需求。

ARM选用LPC2214FBD144,表贴,TQFP封装,144引脚,Philips。集成有16KB的片内RAM及256KB的片内FLASH。

模块的DP数据转发、长发故障的判断、读取监控电源的状态、通道灯的状态显示等基本由硬件逻辑完成。硬件可编程逻辑器件选用Xilinx公司性价比相对较高的spartan-6系列的xc6slx9器件,它具有5720个LUT(查找表),9152个L(C逻辑单元),11440个FK触发器),32个BlockRAM(18KbEach),最大用户引脚102个,144-pinTQFP封装。

1.2时钟设计

本模块的时钟要求是低成本、能够正常起振、不停振、温漂小。图2给出了本模块的时钟树。下面以MCU晶体为例来进行说明。

基于STM32的DP/PA Link设计

MCU选择石英晶体。本次设计中主要从HC-49XA-G20SSA-8.000MHz和HC-49XA-C20SSA-12MHz二者中选择一个,二者都满足性能要求,在MCU内部容易倍频得到48MHz时钟频率,但是HC-49XA-G20SSA-8.000MHz为工业级,工作温度范围宽,所以选型HC-49XA-G20SSA-8.000MHz。晶体参数表如表1所列。

1.3电路元器件的选择

本电路中采用22pF±5%陶瓷电容,电路中的振荡器的增益余量用于表明振荡器是否起振。外部电阻Rext可选择904Ω,这样,就仍然能够保证正常起振。

基于STM32的DP/PA Link设计

针对选型的晶体HC-49XA-G20SSA-8.000MHz,可通过计算得到对UART波特率的影响。MCU的时钟树从引脚输入8MHz,经PLL倍频到24MHz作为系统时钟。因为UART波特率越高时钟的误差对波特率的影响越大。MCU支持的最大波特率为1.5MHz。假定在波特率为1.5MHz时,计数器的时钟为系统时钟24MHz,UART的预分频数值为16。因为每发送一个字节,都会重新检测起始位,因此,波特率的误差只存在于一个字节的发送周期内。这样可以计算发送一个字节(10位)产生的累积信号偏移+检测间隔误差的偏移量为:±(132PPM*11*16+1/32)=±5.45%。由于UART接收都是在信号中间位置捕捉信号,所以,时钟的误差对UART的性能不会产生影响。

关于时钟误差对MCU定时器的影响。因为MCU的定时器主要用于超时定时,所以对时钟的精度要求不高,即时钟误差对定时器的影响可以忽略不计。

1.4DP总线设计

DP总线通信芯片采用TI公司的SN65HVD06D,其通信速率可达10Mb/s;最小差动输出电压为2.5V(54Q负载);ESD保护超过16kV;同时带有上电、掉电保护功能,支持热插拔。图3所示是485电路的功能框图。485电路包括6部分,MCU、POWER、双网切换控制、两个485收发器、欧式连接器。

基于STM32的DP/PA Link设计

Power部分主要为MCU、双网切换控制器和485收发器提供电源。MCU是485电路的控制器,主要发送串行数据、接收串行数据、诊断485电路故障、切换网络和切断故障等功能。表2所列是双网切换控制器的真值表。

模块的DP双网采用双UART来实现。发送数据时,MCU通过CTRA、CTRB信号分别控制两路485收发器的发送使能。发送数据时,MCU通过SEL控制双网控制器选择MCU的TXDA或TXDB与TXD相连,这样UARTA或者

UARTB会向两个485收发器同时发送数据。发送侧双网选择的真值表如表2所示。RXDA和RXDB为接收端口,它接入MCU的UARTA和UARTB。这样双网的数据同时进入两个UART,由MCU内部诊断及切换逻辑选择其中一个UART的数据进行处理。

485收发器是完成485差分信号到串行通信的转换,由485芯片、外围上下拉电路和防护电路组成。485收发器的差分信号通过欧式连接器连接到RS485总线上,进行通信。

2读取站地址、CPU类型和模块类型设计

基于STM32的DP/PA Link设计

模块读取位于模块上的开关电路及底座上的跳线来获得站地址。站地址开关电路如图4所示。

基于STM32的DP/PA Link设计

模块的站地址需要两列排针,每列上有一对针插入短路器,可将I。模块站地址设置为10~109号。一列排针表示站地址十位上的数字1~10,另一列排针表示站地址个位上的数字0~9。图5所示是站地址原理矩阵图。

基于STM32的DP/PA Link设计

图5中,COM1〜COM2组成十位数行,NO.1〜NO.5组成列,共可以构成10种状态,COM3~COM4组成个位数行,NO.1〜NO.5组成列也可以构成10种状态,所以可以表示

100种地址。图6所示是本系统的站地址逻辑图。

读取站地址时,首先在MCU初始化时,将/OE_MCU_MOUDE,/OE_STATION_ADDR、/OE_ST_ADDR_COM信号初始化为高电平,将LE_ST_ADDR_COM信号初始化为低电平。

读取站地址个位0~4,假设图6中,短路器把4号地址短路,MCU弓|脚/OE_ST_ADDR_COM发出低电平信号,即片选74LVC573芯片。数据总线[DB0:DB4]输出0x1E。然后MCU通过引脚LE_ST_ADDR_COM发出高电平,锁存数据总线DB[0:4]数据,0x1E。由于三态门74LVTH125每一路片选和数据端连接在一起,当输入为低电平时,才输出低电平;当输入为高电平时,输出为三态。这样74LVTH125输出端COM1为低电平,COM2、COM3和COM4为三态。这样通过底座上的跳线可以读取个位0~4范围内的站地址。然后MCU发出高电平的/OE_ST_ADDR_COM信号,和低电平的/OE_STATION_ADDR信号,片选读站地址74LVT245芯片。由于短路器把4号地址短路,COM1能把低电平信号通过跳线传送到数据线DB0上。由于其他地址为未有短路器,保持为上拉的高电平。这样MCU数据总线上的数据位0x0F。

MCU通过读取数据总线DB[0:4]获取个位0~4范围内的站地址,然后MCU发出高电平的/OE_STATION_ADDR信号,完成读取。

读取站地址个位5~9,读取过程与读取个位0~4范围的站地址相似。

读取站地址十位1~5和读取站地址十位6~10,读取过程与读取个位0~4范围的站地址相似。

当跳线个位或十位同时存在多余一个短路器时,MCU将认为存在故障,无法读取站地址。当跳线个位和十位上都不存在短路器时,MCU将认为存在故障,无法读取站地址。

由于在站地址电路的74器件需要提高热插拔等级,所以选用LVT逻辑器件,支持二级热插拔。由于74LVC573抗静电和热插拔防护等级不高,不支持三态,所以在74LVC573后附加一个支持二级热插拔等级的74LVTH125,并在输出电路上增加嵌位二极管,防护静电。74LVT245和防护电路能够抗静电和支持热插拔。

3冗余电路的设计

PA模块支持切换式冗余方式,模块自行完成切换并告知主控I/O自身的主从状态。互锁机制是保证只有一个主机的关键逻辑,主从机互锁电路如下图7所示。图8所示是主从机互锁时序图。

基于STM32的DP/PA Link设计

基于STM32的DP/PA Link设计

基于STM32的DP/PA Link设计

经过主从切换后,B机最终将变为主机,其工作原理如下:未启动状态,上电之后,双机的本板升主使能信号均为逻辑0状态,因此经过与非门之后,双机均处于逻辑1状态(备机状态),双机的本机状态输出同时通过上拉电阻保持在高电平状态。

双机启动后,先启动的模块(A或B自由竞争)通过自诊断发现本机正常,置本机升主使能信号为1,本机随即将主从状态输出为0。后启动的模块发现自身自诊断正常,也置本机升主使能信号为1,但是与非门的输入信号-对板主从信号已率先输出为0,导致本机主从状态输出被锁定,因此本机主从状态输出始终为1。

主机通过自诊断发现本机有故障,置本机升主使能信号为0进行主动降从,从机升主。

主从机进行切换后,当前从机通过自诊断发现本机无卡件致命故障,恢复置本机升主使能信号为1,但是与非门的输入信号-对板主从信号已被置为0,导致本机主从状态输出被锁定,因此本机主从状态输出始终为1。通过这种方式实现了A和B两者只能有一个主状态,可以同时为从状态,即实现了主从机互锁机制。

4结语

本次设计通过使用MCU、ARM和FPGA芯片的配合工作,能为上位冗余PROFIBUS-DP主站系统与下位非冗余PROFIBUS-PA设备系统之间的网络转换提供一个安全可靠的转换方案。

20211119_6197c9d9f36ae__基于STM32的DP

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

串口作为单片机开发的一个常用的外设,应用范围非常广。大部分时候,串口需要接收处理的数据长度是不定的。那么怎么才能判断一帧数据是否结束呢,今天就以STM32单片机为例,介绍几种接收不定长数据的方法。

关键字: 单片机 串口 STM32

脉冲宽度调制(PWM) 是一种数字信号,最常用于控制电路。该信号在预定义的时间和速度中设置为高(5v或3.3v)和低(0v)。通常,我们将PWM的高电平称为1,低电平为0。

关键字: STM32 PWM 控制

摘要:随着计算机技术与电子科技的快速发展,人工智能、云计算等技术的不断进步,智能家居新型产业模式也得到了巨大的发展,至今国内智能家居市场投资达到了2396亿元,市场规模占比不断增大,未来十年内家居智能化将实现大规模应用。...

关键字: STM32 嵌入式 人工智能

​GD32作为国产MCU里的佼佼者,产品线也比较丰富,是替代STM32的一个很好的选择。前段时间有个项目用到GD32的单片机,今天来说说使用的一些体会。

关键字: 国产MCU STM32 单片机

STM32 用户界面设计环境新增屏幕旋转和纹理映射功能,支持性能强大的Neochrom图形加速器

关键字: 意法半导体 STM32 MCU

意法半导体(ST)发布了STM32Cube.AIversion7.2.0,这是微控制器厂商推出的首款支持超高效深度量化神经网络的人工智能(AI)开发工具。

关键字: 意法半导体 STM32

2022年是意法半导体STM32家族问世15周年。在全球疫情阻止人们面对面沟通交流的当下,7月18-22日,意法半导体举办首届暨2022年STM32中国线上技术周,庆祝与生态合作伙伴共同创新的十五载。 在这个为期五天的线...

关键字: 意法半导体 STM32

摘要:“高起始响应"励磁系统,即励磁系统输出电压响应时间小于或等于0.1s的系统。无刷励磁机因为自身励磁绕组电感的延迟作用,时间常数偏大,在机组需要快速强励时响应时间较长。现对某型无刷励磁机实现“高起始响应&q...

关键字: 高起始响应 电压响应时间 实现方法

展示与STM32生态伙伴的十五年创新成就

关键字: 意法半导体 STM32

摘要:根据四旋翼飞行器工作原理,以STM32控制器为基础,对四旋翼飞行器飞行控制系统的软硬件设计进行了分析,可有效调整四旋翼飞行器飞行姿态与飞行位置,实现了控制模块与地面站的有效联系。

关键字: STM32 控制系统 软件设计

《物联网技术》杂志

2510 篇文章

关注

发布文章

编辑精选

技术子站

关闭