基于SOPC的空调智能温度控制器的设计

基于SOPC的空调智能温度控制器的设计,第1张

  1 引言

  智能控制是控制界新兴的研究领域,是一门边缘交叉学科。智能控制的一种定义为:应用人工智能的理论和技术及运筹学的优化方法同控制理论方法与技术结合,在未知环境下,仿效人类的智能,实现对系统的控制。微电子技术界各大芯片生产厂家均推出了专用的神经网络芯片和模糊芯片,采用这种高速的专用芯片,大大方便了智能控制应用系统的实现。本文采用现场可编程门阵列(FPGA)技术,对智能控制器的设计和实现进行研究。

  2 控制器硬件设计

  基于SOPC的空调智能温度控制器的设计,硬件体系结构,第2张

  图1 硬件体系结构

  2.1 Nios软核处理器

  NIOS CPU是一种采用流水线技术,单指令流的RISC处理器,具有分离的指令和数据存储器端口(Harvard存储器结构)。本文处理器主频为33.333MHz。NIOS CPU中的内部寄存器包括:一个通用寄存器文件,多个内部控制寄存器,一个程序计数器,以及一个用于前缀指令的K寄存器。

  NIOS3.0 CPU允许用户取消对陷阱指令、硬中断或内部异常的支持,以把NIOS系统配置成一个最简单的控制系统(不运行复杂软件)。NIOS处理器有一个可选的片上JTAG调试模块,用于实现调试工具和NIOS CPU的通讯。调试模块含有First Silicon SoluTIon (FS2)公司设计的IP核。在NIOS CPU中,此调试模块被称作NIOS OCI调试模块。NIOS OCI调试模块可以实现运行控制、硬件断点和软件跟踪。

  2.2 UART串口通信

  UART外围硬件电路调用ALTERA公司集成到其开发环境中的NIOS系统IP库模块,其功能描述如下。NIOS UART用于在Altera的FPGA中实现简单的RS-232异步发送和接收逻辑。UART通过两个外部引脚(TxD和RxD)发送和接收串口数据。为了与RS232的电压信号相匹配,在RxD/TxD输入输出引脚与相应的外部RS232连接之间需要有电平转换芯片。

  UART传送逻辑含有一个7位、8位或9位的txdata保持寄存器。传送移位寄存器直接连接到TxD数据引脚,数据的LSB首先移出到TxD。传送逻辑可以自动根据RS232通信协议在连续的TxD数据流中插入正确的开始位、停止位和奇偶校验位。UART接收逻辑含有一个7位、8位或9位的接收移位寄存器,以及一个7位、8位或9位的rxdata保持寄存器。可以通过软件直接读取rxdata保持寄存器。接收逻辑根据RS232通信协议在连续的RxD数据流中自动检测正确的开始位、停止位和奇偶校验位。

  UART产生一个IRQ输出信号作为其Avalon总线接口的一部分。当一个或多个内部条件发生,并且对应的control寄存器的中断允许位也为1时,UART发出一个中断请求。在复位时,所有的中断允许位设置为0。因此,只有软件将一个或多个中断允许位设置为1时,UART才能发出中断请求。UART模块与总线接口如图2所示。其中,address为相对地址,irq为中断请求信号,chipselect为片选信号,dataavaliable为接收数据线有效信号,readyfordata为接收数据字准备完毕信号,begintransfer为开始发送数据信号。

  基于SOPC的空调智能温度控制器的设计, UART模块与总线接口图,第3张

  图2 UART模块与总线接口图

  2.3 AVALON总线与用户自定义逻辑控制算法模块

  AVALON总线主要用于连接片内处理器与外设,以构成可编程单芯片上系统(SOPC)。它描述了主从构件间的端口连接关系,以及构件间通信的时序关系。AVALON总线拥有多种传输模式,以适应不同外设的要求。AVALON总线的基本传输模式是在一个主外设和一个从外设之间进行单个字节、半字或字的传输。当一次传输结束后,不论新的传输过程是否还是在同样的外设之间进行,AVALON总线总是可以在下一个时钟周期立即开始另一次传输。AVALON总线支持多个总线主外设,允许单个总线事务中在外设之间传输多个数据单元。这一多主设备结构为构建SOPC系统提供了极大的灵活性,并且能适应高带宽的外设。AVALON总线是为SOPC环境而设计,互连逻辑由PLD内部的逻辑单元构成。

  AVALON总线还包括许多其他用以支持SOPC Builder软件自动生成系统、总线和外设的特性和约定。如,最大4GB的地址空间,内置地址译码,多主设备总线结构,采用向导帮助用户配置系统,动态地址对齐等。

  为了实现快速实时系统,控制器神经网络控制算法采用硬件电路实现,作为用户自定义的IP组件以外围算法加速的形式连接到系统总线上。并行输入输出(PIO)模块是1至32位的并行输入/输出模块。采用PIO作为软件和用户自定义逻辑之间的存储器映像接口。控制字控制算法模块的运行,状态字0表示控制算法模块正在运行,状态字1表示输入寄存器有否新的输入,状态字2表示输出寄存器有新的输出,当控制器有新的输出结果时,置为高。输入寄存器,包含用户温度给定值和检测到的系统输出值,软件可写入寄存器,同时置状态字1高;输出寄存器,为控制输出,软件可读出其值,同时置状态字2低。

  2.4 定时器

  SOPC Builder能自动生成定时器模块的源码以及相应的软件接口子程序,系统集成方便。NIOS定时器模块是32位的内部定时器。软件可以通过写控制寄存器来 *** 作定时器,还可以读取内部计数器值。定时器模块可以生成中断请求信号,也可以用内部控制位进行中断屏蔽。

  软件可以通过以下方式控制定时器:预置periodl和periodh寄存器设定定时器周期,设置control寄存器的start和stop位来允许或禁止中断,通过设置control寄存器的ito位来允许或禁止中断,通过设置control寄存器中的cont位设定定时器的工作模式(定时器还是计数器)。NIOS定时器由系统主时钟(clk)驱动,NIOS CPU和其他外设也使用该时钟信号。该时钟同时驱动软件接口寄存器和内部计数器。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2498494.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存