2 FPGA硬件设计与实现
2.1 概述
FPGA的设计使用的是ACTEL公司的Libero IDE集成开发环境。FPGA的内部电路由A/D转换模块、PWM模块、10路PWM控制信号选择模块、PS2模块、50 Hz时钟信号产生模块、报警电路模块(FPGA实现)、LCD显示模块和Core805l模块等构成。图1给出系统电路框图。这些硬件模块搭建组成整个控制系统,其中Core 8051模块是整个FPGA内部电路的核心,所有的数据通过8051进行处理并显示。
2.2 电路模块的设计与实现
(1)A/D转换模块ACTEL FPGA中的A/D转换模块将模拟到的数字转换嵌入在FPGA中,通过软件配置来实现不同A/D转换的精度。扩散炉温控系统设计中,模拟信号输入没定为20路,分别是10路经过放大后的温度传感器电压信号和10路手动控制输入的电压信号。该模块采用分时采样的方法,对20路的模拟信号做A/D转换,将转换的结果、通道号和有效信号输送给8051的I/O端口,然后在软件中再读取所需要的通道转换的数字信号。
(2)毛刺滤除模块用逻辑分析仪测试A/D转换后的输出结果时,发现转换有效信号DATAVAIJD有毛刺,为保证8051信号输入的准确性,对有效信号必须处理,保证正确地采集到MD的转换结果,避免信号采集错误。由于DATAVALID的频率为2 MHz,用高频率10 MHz的时钟信号可以滤除毛刺。该模块的设计思想是让时钟信号为10 MHz的高频信号,经过D触发器滤除毛刺。
(3)PS2模块根据PS2的通信协议,将输入的串行数据转换为并行数据和一位转换有效的使能信号。将这些信号传输到805l,并运行软件程序处理,实现整个系统的设定数据输入,即各个通道参数的设定。由于高频时钟所产生的有效信号,其脉冲信号非常窄,在硬件电路设计时将这个信号加宽到PS2模块工作时钟周期的12倍,这样在8051程序的执行中,可采集到这个有效信号。PS2模块在系统中的连接如图2所示。
(4)10路PWM控制信号选择模块PWM模块中的复位控制信号PWMRST用于控制该通道是否开启,将这个复位信号输送到相应的PWM通道,实现该通道的通断控制。控制信号PWMDATA用来控制占空比的数据,将这个控制数据输送到相应的PWM模块。
(5)PWM模块宽度可调脉冲模块(简称PWM),用来控制可控硅的通断。该模块的输入信号包括50Hz的时钟信号和脉冲占空比控制信号,将其传输给PWM模块,从而控制输出信号的占空比,来调节加载在电炉丝两端的电压在一个时钟周期内的通断比,达到调节电炉丝加热功率的目的。该模块是一个带复位的PWM。复位信号可用作端口关闭的信号,可直接控制通道是否加热。
(6)报警电路模块报警电路模块包括:声音报警和发光二极管指示两部分。其控制信号都是由805l软核给出,控制指令一路直接输出到LED,另一路则连接到50 Hz信号的选通端,当805l给出报警数据时,LED为高电平,红灯亮,同时选通50 Hz的信号输出到蜂鸣器端,完成报警。
(7)50 Hz时钟信号产生模块PWM模块需要50 Hz的工作时钟,模块通过分频的方法产生所需的时钟,采用计数器分频的方法,将2 MHz的输入信号作为计数脉冲信号,输出脉冲是计数器的最高位,实现分频。该电路简单,占用的资源也比较少。
(8)LCD显示模块 系统设计选用640x480点阵的LCD显示屏,用MAX—EPM3128ACT CPLD做成的控制板代替LCD控制器,16个地址口、8个数据口和4个控制口的控制板与外围处理器相连接。因为不需从LCD的屏幕读取数据,4个控制口只用到了命令/数据选择控制信号CMD和写信号WR。在显示中对LCD的操作即是对一个RAM的读写,将显示的点阵信息写入到相应的RAM地址中即可。内部有两块相同的RAM模块,可对不同部分的RAM操作,这样可以增加LCD的刷新频率,显存数据可交替读写,还可以边写边显示。LCD控制器的数据/命令的选择信号就是CMD信号。图3给出LCD接口与FPGA的连接原理图。
(9)ZigBee无线传输电路选用基于MCl3192射频收发器作为ZigBee无线传输模块。模块内嵌的软件协议支持免碰撞串行通讯的功能,使多点TTL/2RS232/RS485数据流透明的传输,互不影响。从8051的串口输出端发送数据给无线传输模块。在8051串行数据输入端接收发送成功或失败的反馈信号。805l发送和接收的都是TTL电平信号。另一端ZigBee模块直接与PC机的RS232串口相连接,用来接收从8051中发送的数据。图4给出模块间的连接框图。