首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于CPLD的PLC背板总线协议接口芯片设计

基于CPLD的PLC背板总线协议接口芯片设计

设计了一组基于CPLD的PLC背板总线协议接口芯片,协议芯片可以区分PLC的背板总线的周期性数据和非周期性数据。详细介绍了通过Verilog HDL语言设计状态机、协议帧控制器、FIFO控制器的过程,25MHz下背板总线工作稳定的试验结果验证了协议芯片设计的可行性。

可编程逻辑控制器(PLC)主机是通过背板总线支持扩展模块的连接,背板总线是PLC主机同I/O扩展模块之间的高速数据通路,支持主机和扩展模块之间的I/O数据刷新。背板总线的技术水平决定了PLC产品的I/O扩展能力,是PLC设计制造的核心技术。目前,PLC大多采用串行通信技术实现背板总线,串行总线引线少、硬件成本低,跟并行总线相比不容易受干扰,串行总线可以提高在恶劣的工厂和工业环境下自动化设备的可靠性。用于串行通信技术的可选类型包括I2C、UART、SPI、USB和以太网等,一般来说,很多作为PLC主芯片的单片机自身都集成了这些外设部件。但是单片机内部集成的I2C、UART、SPI外设通信速率太慢,根本不能满足底板总线的通信速度要求。USB和以太网的通信速度虽然很快但由于它们都是通用的接口,在通信协议处理时需要单片机的干预,单片机处理数据速度较慢,因此整体通信速度仍然很慢。一台大型的PLC采集上千点I/O数据的时间一般不到1ms,要满足如此高速的通信要求必须设计专门的背板总线。

1背板总线工作原理

如图1所示,基于背板总线的数据通信流程如下:

(1)PLC主机的命令通过主机协议芯片发送到背板总线;(2)从机协议芯片把接收到的命令给扩展模块的单片机,某一个扩展模块的单片机做出应答,通过从机协议芯片把应答数据送往背板总线;(3)主机协议芯片收到应答数据,并送往PLC主机的单片机。


图1背板总线通信框图

PLC主机发往背板总线的数据可以分成两类:一类是I/O刷新数据,具有周期性,数据交换非常频繁;另一类是诊断性数据,具有非周期性,出现机会较少。

2协议芯片设计

本设计定义背板总线采用类似SPI串行通信的规格,用于通信的引线共4根,包括时钟信号SCLK、片选信号SSEL、写数据引线MISO和读数据引线MOSI;支持主机和从机同时收发数据,数据位格式如图2所示,数据帧在SSEL信号为低电平时传输。


图2背板总线数据规格

信号包括数据/地址信号、复位信号Reset、中断信号INT.

主机和从机协议芯片的内部结构框图相同,如图3所示。

协议芯片内部有状态机控制器、帧控制器、移位寄存器、接收/发送FIFO和读写缓存。单片机发送的周期性、非周期性数据帧,首先都写到写缓存,在发送FIFO中进行排队发送,在SPI时钟SCLK的驱动下数据帧被转换为串行数据发送到背板总线;在SPI时钟的作用下,接收来自背板总线上的串行数据;在状态机和帧控制器的协调下,接收FIFO中的有效数据帧被提取并放进读缓存区,等待单片机来读取,如果是非周期性数据则发中断信号通知单片机来取数据。读缓存中的周期性数据是可以覆盖的,新接收到的周期性数据直接覆盖旧的周期性数据,而非周期性数据是单独存放的,不能覆盖,由单片机读取并清除。


图3协议芯片内部结构框图

协议芯片使得外接的单片机可以在空闲的情况下访问读缓存和写缓存,单片机不必频繁地通过中断技术处理周期性数据,也使得PLC主机可以无等待地访问从机的周期性数据。

3基于CPLD的协议芯片实现

3.1 CPLD芯片选型。

本设计选用lattice公司的MachXO系列芯片,该系列CPLD集成了部分FPGA的功能,除了内置丰富的LUT资源以外,还有大量分布式的SRAM位和嵌入式的专用于FIFO设计的SRAM块,并有模拟锁相环(PLL)支持时钟信号的倍频、分频等,I/O引脚可配置成1.2/1.5/1.8/3.3V电平兼容。

3.2基于Verilog HDL语言的硬件程序设计

本设计采用Verilog HDL语言进行协议芯片的程序设计,Verilog HDL语言是一种硬件描述语言,设计数字芯片时可以按照层次描述,并可以进行时序建模。本设计采用混合设计模式,主要设计的模块有状态机、协议帧检测、FIFO控制器设计等。

1)状态机设计。

协议芯片的顶层模块是状态控制器部分,协议芯片共有四个状态,分别处理基于Verilog HDL程序语言的状态机描述伪代码如下:

2)协议帧检测。

本协议芯片的帧校验和采用简单的加和形式进行,在接收一方,如果数据帧中有用数据的加和同后续的校验和字节相同,则协议是正确的,否则丢弃该帧。协议帧校验和计算的代码如下:

3)FIFO设计。

FIFO利用了MachXO系列CPLD的嵌入式SRAM块的资源,Lattice公司的ispLEVER 7.0软件提供了可配置的IP软核,该软核可以采用基于嵌入式SRAM块实现,也可以使用查找表实现,FIFO的IP核框图如图4所示,FIFO的可配置参数包括FIFO字节深度、EmptyFull、AlmostEmpty和AlmostFull触发字节深度、数据宽度、大小端模式等。


图4可配置FIFO控制器IP软核框图

用Verilog HDL语言实现的发送和接收FIFO控制器的实例代码如下:

3.3协议芯片综合

Verilog HDL程序通过Lattice公司的CPLD开发软件ispLEVER 7.0进行编译、综合,多次尝试后最终选择了Lattice公司MachXO系列CPLD中的MachXO2280芯片,综合后的主机协议芯片占用CPLD资源的60%左右,从机协议芯片占用CPLD资源的45%左右,FIFO控制器充分利用了MachXO2280芯片内部的嵌入式RAM块,同时利用了锁相环实现高频率的时钟工作。最后通过LSC ispVM(R)System烧写软件经JTAG口下载到CPLD芯片中进行协议芯片功能验证测试。4结语

本文设计的背板总线协议芯片在背板串行总线时钟频率为25MHz、信号电平为LVTTL,底板引线长度为40cm,1台主机连接3台扩展模块的情况下工作稳定并通过了群脉冲试验,验证了这一组协议芯片的设计是成功的。由于该组协议芯片是针对PLC的周期性和非周期性数据传送专门设计的,硬件实现的协议帧控制器支持高速率通信、支持数据帧检验功能,避免了数据传送的错误,大大降低了外围单片机的软件开销,增强了可靠性,是一组非常适合用于PLC背板总线或者需要多模块协同工作的背板总线系统协议芯片。
返回列表