摘 要: 介绍了在大型工业模拟仿真系统中,利用FPGA和软IP核实现数据采集及收发控制的方案,并对其进行设计实现。重点阐述了在发送指令和采集接收两种数据流模式下,该IP核的控制处理逻辑及工作状态机的设计及实现。同时,设计仿真测试对其进行验证。经测试验证,该IP核能实现对前端模拟仿真设备状态实时采集并控制的功能,达到了设计目的。
关键词: FPGA;IP核;模拟仿真;数据采集控制
现代模拟仿真技术[1]广泛应用在系统设计、系统分析以及教育训练中。在模拟过程中,存在大量向前端模拟装置或仿真模块发送指令数据,以及从模拟工作设备上读取状态参量的情况。在对大型工业设备和系统进行模拟仿真时,数据采集控制的复杂程度愈加恶劣[2]。通过改进数据采集控制器的结构,提高数据采集控制器的自动化和集成化程度,可以有效地提高大型模拟仿真设备数据采集和控制的效率。
FPGA及SoPC技术的发展为此提供了新的解决方案。IP核(IP Core)是具有特定电路功能的硬件描述语言程序,可较方便地进行修改和定制,以提高设计效率[3]。本文研究了基于FPGA的数据采集控制器IP 核的设计方案和实现方法,该IP核既可以应用在独立IC芯片上,还可作为合成系统的子模块直接调用,实现IP核的复用。
1 系统结构
数据采集控制器主要分为发送机制和接收机制两部分。在传统的模拟仿真系统[4]中,发送机制负责将模拟仿真系统主机控制程序模拟运算的数据传给事先定义的变量,通过专用接口卡将其放在绝对内存地址单元中,再借助智能双端口的工控机将数据发至前端,以驱动前端设备(如仪表、显示灯等)进行显示,或使前端设备(如开关、阀门、步进电机等)进行动作;接收机制与之相反,即实时地将从前端工控机采集的模拟设备的动作量和状态量(包括模拟实际情况的温度量、压力量等)读到计算机内存地址单元中,并通过专写程序把这些变量值转换成主控程序所需要的数据。
前端设备种类繁多,因此实际中需有针对性地进行设计,以实现工控机对前端设备的控制。此外,工控机与主机之间还必须通过专用接口进行通信,如图1所示。其结构复杂,不利于设计和调试,同时降低了模拟仿真系统的实时性和效率。
本文设计的IP 核将传统结构中工控机和接口卡两级的数据采集控制系统结合起来,设计了一个集成的控制器,由其完全承担主机与前端设备的数据交换与通信任务。这样,主机仅负责对整个系统的监控以及对模拟仿真模型的规格运算,而不再分出资源来管理前端模拟设备的控制和数据采集,从而降低了系统的复杂度。结构如图2所示。
2 系统设计
基于前述数据采集控制过程,本IP核分发送数据和采集数据两种处理机制进行设计。相应地,将本IP核内部划分为IP核控制逻辑模块、数据模式转换模块、网络通信模块、寄存器模块、总线模块以及时钟模块六部分。其相互关系如图3所示。
主要模块功能及其特征描述如下:
(1)IP核控制逻辑模块:负责整个IP核的控制与运行,当接收到主机发来的工作命令后,该模块根据命令的种类(发送数据或采集数据)向相应的模块发送控制命令;出现异常时,本模块根据事先定义好的规则对异常情况进行处理;
(2)数据模式转换模块:该模块在接收到IP核控制逻辑模块发来的工作命令后,启动数字信号——模拟信号的转换;
(3)网络通信模块:采用专用的快速以太网控制器,利用其内部集成的控制器及协议栈,可以方便地与前端模拟设备连接通信;同时利用其支持10/100 M全双工传输模式的性能,实现快速收发数据的目的;
(4)寄存器模块:包括寄存器访问和寄存器单元两部分。寄存器访问部分的作用在于,当寄存器访问程序被IP核控制逻辑选中调用时,IP核控制逻辑可通过其对寄存器单元进行读或写操作访问;寄存器单元部分作为发送或采集机制流水线工作时,数据流动的中间暂存介质。基于本系统的设计目标,选择SDRAM作为寄存器单元的硬件支撑,因其读写时序较复杂,需在本系统中集成专用的SDRAM控制器IP 核与其对接[5];
(5)总线模块:负责各模块之间信息的传输,如提供Avalon接口供寄存器访问时使用,它使用Avalon必需的信号来访问寄存器,并支持任务逻辑传输类型[6];
(6)时钟模块:产生相应频率的时钟供给IP核,时钟的频率由系统时钟频率分频所得。
3 系统实现
本IP 核功能逻辑的设计基于其任务逻辑定制的基本功能和技术指标。本设计的任务逻辑主要完成对模拟仿真系统前端模拟设备发送指令以及采集前端模拟设备状态量数据。其功能逻辑也基于发送指令和接收数据两个数据流来设计,如图4所示。
为避免高速、高频系统时序中常存在的竞争、毛刺危险以及建立与保持时间相抵触等问题,本IP核采用同步设计的方案。同时,为解决实际中仍会经常出现系统产生毛刺和时钟偏斜等问题。本IP核中拟将时钟控制改为触发器输入允许,将时钟选择改为独立的时钟分析[7]。
为加快本设计的运行速度及处理效率,本IP核的设计以功能逻辑处理机制为基础,分别对发送流程和接收流程设计状态机并实现[8]。
在发送流程的状态转换过程中,共有6个状态,如图5所示。IP核的控制逻辑判断来自主机的发送数据命令后,首先检查其各功能模块的准备情况,如果准备好,即开始发送数据,从寄存器单元中取出待发送数据并送至网络通信模块,由其发送至前端模拟设备。在此过程中,不断检测发送完成标志位DataEND,如果该标志位变为有效则表示发送成功,将此信息反馈给主机并进入下一工作周期等待状态;如果超时该标志位仍未变化,则反馈回主机发送失败的信息,并请求重发。
相应地,如图6所示,接收流程的状态转换过程有7个状态。其工作大致与发送流程相同,只是接收数据从寄存器单元读出后,要先经过数据模式的转换后,再发送给主机使用。
4 仿真与验证
本文选用Altera公司的Cyclone系列的EP1C12240C8器件,并在Quartus7.2环境下采用VHDL语言实现前述IP 核的方案设计。IP核设计完成后,利用SoPC Builder对其进行功能仿真和时序分析。在仿真测试中,以按键模拟实际开关动作;以数码显示器数值变化模拟实际仪器仪表或传感器动作,分别对该IP核的发送和接收功能进行仿真测试。
本IP核发送功能仿真测试所得波形如图7所示。系统的时钟允许信号ClockEna有效后,系统寄存器有效信号MemoEna及寄存器读信号MemoRd相继变为有效,系统在IP 核处理逻辑给出发送信号SdEna之后开始发送寄存器中读出的数据。在此过程中,不断检测发送完成信号DataEND及超时控制信号Timechip,如DataEND有效则停止发送,如前述两信号同时有效或直到Timechip信号变为有效,则停止本次发送,向IP 核处理逻辑反馈重发信号Retry。同理,IP 核接收功能仿真测试所得波形如图8所示。通过分析波形可以得出,IP 核处理过程与前述功能逻辑设计一致。
本文提出了一种数据采集与控制系统软IP核的设计方案,对其采用VHDL语言描述实现,并进行了功能仿真测试。经测试证明,该方案能满足设计要求,且成本较低,处理逻辑简单,可方便地移植到多种大型的工业模拟仿真系统中,应用前景广泛。
参考文献
[1] 郭齐胜,董志明,单家元.系统仿真[M].北京:国防工业出版社,2006:24-26.
[2] ZHANG L,LIN Q,GAY R,et al.An autonomous decentralized multi-server framework for large scale collaborative virtual environment[J].International Journal of Image and Graphics. 2007,7(2):353-375.
[3] 葛晨阳.基于IP核开发模式的高校集成电路设计发展策略研究[J].中国集成电路,2008(8):22-26.
[4] LUO Y B,ONG S K,CHEN D F,et al.An internet-enabled image and model based virtual machining system[J]. International Journal of Production Research,2002,40(10):2269-2288.
[5] 吴婷,王敏,周程,等.基于SoPC技术的核信息远程采集系统[J].电子技术应用,2006,32(3):87-89.
[6] 谭华,古天龙.Avalon片上总线协议的形式化建模与模型检验分析[J].桂林电子科技大学学报,2009,29(2):96-100.
[7] 廖艳,陈利学,赖春红,等.基于FPGA的等精度频率计IP Core设计[J].电子技术应用,2007,33(12):21-23.
[8] 章世华,邹丽丽,董湘麟,等.智能卡控制器IP核的设计与实现[J].电子技术应用,2009,35(2):46-48.