首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于CPLD的PLC背板总线协议接口芯片设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于CPLD的PLC背板总线协议接口芯片设计
发短消息
加为好友
porereading
当前离线
UID
863084
帖子
7183
精华
0
积分
3592
阅读权限
90
在线时间
209 小时
注册时间
2011-11-30
最后登录
2019-8-28
论坛元老
UID
863084
1
#
打印
字体大小:
t
T
porereading
发表于 2014-7-27 15:56
|
只看该作者
基于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芯片中进行协议芯片功能验证测试。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议