I/O扩展电路GM8166在嵌入式锅炉系统中的应用
发布时间:2010-9-21 20:24
发布者:eetech
1 引言 锅炉控制系统是一个典型的大惯性、大滞后、多变量的过程控制系统,涉及到压力、温度、水位等多个物理参数的检测与控制,需要同时控制循环泵、补水泵、加热装置、自动排除故障等。该系统有32路数字输入信号、32路数字输出信号、ll路模拟量输入信号和8路模拟量输出信号,因此所需要的硬件电路多,控制复杂,笔者以Atmel公司的AT91RM9200为处理器设计出了一款具有32位高速数据处理能力,处理速度可达200 MI/s,并配有LCD、触摸屏、SD卡、CPLD、音频、网络、USB及串行接口等多项功能的嵌入式工业锅炉控制系统。 在系统设计过程中,遇到了I/O口严重不足的问题。虽然AT91RM9200具有122个通用I/O口,但嵌入式系统本身的各项功能实现占用了大量的I/O口,剩下用于锅炉控制的已不多,所以需要进行I/O口扩展。一般采用的解决方案是利用74HC573、74LS164、74LS165、82C55等电路来实现I/O扩展,但使用上述器件存在PCB面积增大、成本高等缺点。这里笔者采用两个成都国腾微电子有限公司开发的GM8166电路,通过串行输入并行输出、并行输入串行输出转换即可完成锅炉32路数字输入和32路数字输出控制的I/O口扩展。 2 GM8166的主要特点 GM8166通过串行输入并行输出、并行输入串行输出、并入并出转换完成I/O口的扩展。最高工作频率为10 MHz,用于配合MCU完成对多个外围电路的控制和信号采集工作。同时可接入SPI总线,满足了更多需求。设计时充分考虑了工作温度范围要求和抗电磁干扰能力,完全适用于工业领域。 CM8166的主要特性如下:
3 GM8166的系统结构和引脚功能 3.1 系统结构 GM8166由控制模块、移位寄存器模块和I/O口模块组成。图1为GM8166的系统结构框图。 ![]() 3.2 引脚功能 GM8166采用QFP52和SDIP52两种封装形式。 用户可根据需要进行选择。GM8166的引脚功能说明如下:
4 GM8166在嵌入式锅炉中的应用 4.1 硬件电路设计 GM8166共有三大功能,满足三种不同应用。申并/并串转换功能为并行口比较紧张的系统通过串口扩展32位并行口;并行口切换功能可以将l组8位并行口扩展成3组8位并行口,通过控制信号在3组并口中切换完成输入/输出功能;SPI总线功能使该器件可以接入SPI总线中作为从设备进行数据收/发,同样完成串并转换的功能。这里笔者采用两个GM8166器件分别实现32位数据的并行输入串行输出转换和32位数据的串行输入并行输出转换,扩展为64位I/O口,从而实现对锅炉控制系统数字量输入输出信号的控制与传输。GM8166与AT9lRM9200的硬件原理图如图2。 ![]() 如图2所示AT91RM9200的PA口与GM8166连接。GM8166-l设为32位数据串行输入并行输出模式:AT91RM9200通过PA0口连续发送32位数据到GM8166-1。在该模式下,当Reset信号为‘1’时,GM8166移位寄存器复位.即所有的寄存器的值都为‘0’;当CSN为‘O’,Reset为‘0’,同时有时钟输入时,GM8166对移位寄存器进行移位,32个时钟信号后,32位数据全部输出到寄存器输出口,由LE和OC/EN控制PDATA[31:0]的输出状态,从而实现对锅炉的控制。 GM8166-2设为32位数据并行输入串行输出模式:AT91RM9200通过PAl2口连续接收32位数据。在该模式下,当Reset信号为‘1’时,GM8166移位寄存器复位,即所有寄存器的值都为‘0’;当CSN为‘0’,Reset为‘0’,OC/EN信号为‘O’时,同时来一个时钟上升沿,GM8166将输入端口(32位)数据并行保存到移位寄存器中;当Reset为‘O’和OC/EN信号为‘1’时,GM8166对移位寄存器进行移位,从而实现对锅炉信号的采集。 4.2 软件设计 本系统软件均采用C语言编写。软件示例如下。 4.2.1 32位数据串行输入并行输出转换 ![]() ![]() 4.2.2 32位数据并行输入串行输出转换 ![]() ![]() 如图2所示,用PAl作为GM8166-l的CLK,用PA0作SDATA,用PAll作为GM8166-2的CLK,用PAl2作SDATA,用软件模拟产生串行接口的传输过程。编程时,应注意GM8166的内部移位寄存器都是在CLK的上升沿移位的,所以读入时应在CLK的上升沿之后读入SDATA的状态,写出时应在CLK上升沿之前置SDATA相应电平。 5 结束语 嵌入式锅炉控制器中使用了两个GM8166器件,实现了锅炉中22个温度、压力、水位、燃烧机、风机等状态的检测和10个手动按键的输入;32个水泵、变频器、燃烧机、风机的启停以及轻重油选择、报警等开关量的输出,解决了使用8255等通用并行I/O电路所带来的成本高、功耗大和占用电路板面积大等系统结构设计与安装方面的问题。 |
网友评论