Abstract: For the needs of high accuracy, high reliability and multifunction of a weighting control system, the software and hardware design methods of a SOPC based on multiple Nios II Embedded softcore CPUs are given. Weighing senor,A/D converter AD7730, the mean filter algorithm which can remove extreme values and the predictive control algorithm are used to implement the high precision measurement and the automatic pack control of the pulverized material. The system has the advantages of low cost, high stability, short development period and good extensibility and so on. The field test result indicates that the weighting error of the system is less than 0.2%.???? Key words: SOPC;Nios II softcore processor;FPGA;AD7730;dynamic weighing
1引 言
在化工、水泥、粮食、饲料等行业的生产过程中,需要对物料进行定量称重控制,完成自动称重包装。物料可以划分为颗粒、粉末、液体等类型。采用人工进行的定量称重包装不但效率低,而且计量精度低。全自动定量称重控制系统不但满足很高的计量精度,而且具有很强的稳定性,且具有精度高、功能强大、操作简便等特点。
随着嵌入式系统和微电子技术的发展,全自动定量称重控制系统的实现技术也在不断地发展。可编程片上系统(SOPC)是一种灵活高效的SOC设计方式,它根据系统设计的需要将CPU、存储器、I/O等各种IP核集成到一个可编程逻辑芯片(FPGA)上,构成一个可编程的片上系统。采用SOPC设计方式可以很容易对已有的设计进行修改,灵活性高[1]。
本文设计的定量称重控制系统采用Altera公司的SOPC解决方案,它基于嵌入式软核Nios II多核结构, Nios II软核是一个32位RISC嵌入式处理器,性能超过200MIP,在性能上Nios II可满足当前的大部分嵌入式产品的设计。Altera公司提供了完整的开发套件:Quartus II 、SOPC builder、Nios II IDE和仿真工具等软件,并将它们无缝地集成在一起,这为当前嵌入式系统设计提供了新方法,并带来了巨大的便利,可轻松实现从底层的硬件设计到上层的软件开发,缩短开发周期,降低开发的复杂性。
2 系统总体设计
本系统要求称重测量误差小于0.2%,且系统的功能比较复杂,既要实时处理采集过来的数据,还要实现控制、显示、存储以及与上位机通讯等功能,同时还要实现复杂的称重预测控制算法[2],一般在几秒中之内要完成物料的动态称重测量和包装,特别地,系统若要控制多路称重传感器的测量和包装,采用单CPU来控制的话,势必会影响到系统的速度,很难实现高精度的称重测量和控制需求。可以考虑采用多CPU系统来实现。传统的SOC多处理器系统使系统结构复杂,可靠性降低,且增加了系统的开发难度。
采用SOPC的实现方案,很好地解决了系统实现功能复杂性和系统设计复杂性的矛盾,Nios II 5.0及以上版本支持多处理器系统的创建和调试。多个Nios II处理器能够有效地共享系统资源,由于SOPC builder允许用户轻松添加多个处理器到系统中,建立多处理器系统的难点已不再是硬件的排列和连接,而在于多个处理器的软件的设计,使它们正常操作,相互之间不产生冲突。
为防止多个处理器的相互干扰,在Nios II开发套件中包含一个硬件互斥核(mutex core)。这个硬件互斥核允许不同的处理器在某一时间段声明对共享资源的所有权。一个处理器对资源的临时所有权防止共享资源被其他处理器破坏。在Nios II IDE中,对多处理器系统的调试也比较容易[2]。
采用多处理器系统实现的全自动称重控制系统,CPU功能划分如下:CPU1完成键盘参数输入、数据显示、打印、与上位机通讯等功能,CPU2,CPU3,…,CPUn分别完成每路的物料的动态称重测量和控制,具体包括数据采集、数据滤波,称重预测控制算法软件或硬件实现以及自动包装控制等功能。图1给出了包含2个Nios II CPU 的系统硬件结构图。CPU各自运行独立的软件,之间通过片上存储器实现数据的共享。
图1? 称重控制系统结构图
3 系统硬件设计与实现
本设计采用Altera 公司的新一代低成本FPGA —Cyclone II实现SOPC设计,系统硬件主要包括FPGA上的Nios II处理器系统和FPGA外的接口和外设两部分。Nios II处理器系统主要由基于Avalon bus 的Nios II CPU1、串行接口、PIO、存储器控制器;Nios II CPU2、定时器、PIO控制器以及片上RAM、互斥核等IP组成。与FPGA相连的外设包括串行配置器件、Flash、SDRAM、键盘、LCD显示器、打印机、AD7330、料位、料门开关等,称重传感器与AD7330直接相连,通过定时器提供系统的定时时钟和定时中断请求信号;串口通过RS485总线与上位机通讯,实现多Nios II系统的上位机监控。通过PIO可实现对AD7330、料门开关、键盘、LCD显示器、打印机等外设的控制,存储器控制器分别与片外SDRAM和Flash连接,实现对存储器的访问。
本控制系统硬件设计与实现的步骤如下:
首先在SOPC builder中,使用Altera公司提供的IP Core,对Nios II CPU和各外设模块的特性、参数大小及在系统中地址分配等进行设定;然后启动SOPC builder中的Generate,使之生成用于综合和仿真的文件;最后,使用Quartus II软件锁定端口引脚,对生成的Nios II系统进行仿真、综合、适配、下载和FPGA 配置。这样即实现了如图1所示的SOPC硬件系统。
3.1 数据采集及其处理
数据采集及其处理由称重传感器、模数转换AD7730和CPU2完成,AD7730的数据采集电路如图2所示。图中,由桥式压力传感器输出电压信号进入到输入通道AIN+和AIN-,经过模数转换,再经过AD7730中的数字滤波器进行滤波,滤波后的数据通过SCLK、DIN、DOUT等信号通过中断的方式送给Nios II进行相应的处理,得到期望的精确数据。