1引言锅炉控制系统是一个典型的大惯性、大滞后、多变量的过程控制系统,涉及到压力、温度、水位等多个物理参数的检测与控制,需要同时控制循环泵、补水泵、加热装置、自动排除故障等。该系统有32路数字输入信号、32路数字输出信号、11路模拟量输入信号和8路模拟量输出信号,因此所需要的硬件电路多,控制复杂,笔者以Atmel公司的AT91RM9200为处理器设计出了一款具有32位高速数据处理能力,处理速度可达200MI/s,并配有LCD、触摸屏
1 引言
锅炉控制系统是一个典型的大惯性、大滞后、多变量的过程控制系统,涉及到压力、温度、水位等多个物理参数的检测与控制,需要同时控制循环泵、补水泵、加热装置、自动排除故障等。该系统有32路数字输入信号、32路数字输出信号、11路模拟量输入信号和8路模拟量输出信号,因此所需要的硬件电路多,控制复杂,笔者以Atmel公司的AT91RM9200为处理器设计出了一款具有32位高速数据处理能力,处理速度可达200MI/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口的扩展,最高工作频率为10MHz,用于配合MCU完成对多个外围电路的控制和信号采集工作。同时可接入SPI总线,满足了更多需求,设计时充分考虑了工作温度范围要求和抗电磁干扰能力,完全适用于工业领域。
CM8166的主要特性如下:
提供32位并行数据I/O口,可通过模式选择实现8位、16位、24位、32位的数据转换,也可通过普通I/O口模拟串口实现0-32任意位数据转换;
既可实现串并/并串转换,又可实现并行口切换输入/输出功能;
所有I/O口均内接上拉电阻;
锁存输出,有输出锁存控制端;
有级联输入/输出端,方便实现级联;
具备SPI总线接口,可方便地接入SPI总线;
与TTL兼容;
工作电压为2.7V-6.5V;
最大输出电流为10mA,最高工作频率为10MHz;
工作环境温度范围为-40℃-85℃,满足工业级标准。
3 GM8166的系统结构和引脚功能
3.1 系统结构
GM8166由控制模块、移位寄存器模块和I/O口模块组成,图1为GM8166的系统结构框图。
3.2 引脚功能
GM8166采用QFP52和SDIP52两种封装形式。用户可根据需要进行选择。GM8166的引脚功能说明如下:
Reset:复位信号,高电平复位。
CLK:时钟信号,上升沿有效。
CSN:片选信号,低电平有效。
OC/EN:串行输入并行输出转换或并行口转换输入/输出时做并行输出允许控制信号:OC/EN=0:并行输出允许;OC/EN=1:并行输出禁止。并入串行输出模式下作为并行输入置数和串行移位控制信号:OC/EN=0:允许并行输入置数,OC/EN=1:串行移位,禁止并行输入。
LE:并行输出数据锁存信号,LE=0表示并行输出数据锁存;LE=1表示并行输出数据不锁存。
SEL:接入SPI总线控制信号,接入SPI总线时,SEL引脚固定接地,不需要接入SPI总线时,SEL引脚接固定电源。
MODSEL:并串/串并转换模式和并行口转换模式选择信号,MODSEL=0;选择并串/串并转换模式;MODSEL=1;选择并行口切换模式。
SP/MUX:并串和串并转换选择信号,SP/MUX=0;选择并行输入串行输出模式,SP/MUX=1:选择串行输出并行输出模式,并行口切换模式下兼做1路输入3路输出和3路输入1路输出选择信号,SP/MUX=0:选择1路输出3路输出模式;SP/MUX=1:选择3路输入1路输出模式。
M0、M1:工作方式控制信号,M0M1为00时为8位数据传输模式,01时为16位数据传输模式,10时为24位传输模式,11时为32位数据传输模式。
PDATA:32位输入/输出数据口。
SDATA:(MOSI):串行数据输入/输出口;SPI总线工作模式下做为MOSI口。
CDATA:输入/输出级联数据口,并行输入串行输出模式下为输入口,串行输入并行输出模式下为输出口。
4 GM8166在嵌入式锅炉中的应用
4.1 硬件电路设计
GM8166共有三大功能,满足三种不同应用。串并/并串转换功能为并行口比较紧张的系统通过串口扩展32位并行口;并行口切换功能可以将1组8位并行口扩展成3组8位并行口,通过控制信号在3组并口中切换完成输入/输出功能;SPI总线功能使该器件可以接入SPI总线中作为从设备进行数据收/发,同样完成串并转换的功能,这里笔者采用两个GM8166器件分别实现32数据并行输入串行输出转换和32数据的串行输入并行输出转换,扩展为64位I/O口,从而实现对锅炉控制系统数字量输入输出信号的控制与传输,GM8166与AT91RM9200的硬件原理图如图2。
如图2所示,AT91RM9200的PA口与GM8166连接。GM8166-1设为32位数据串行输入并行输出模式:AT91RM9200通过PA0口连续发送32位数据到GM8166-1,在该模式下,当Reset信号为“1”时,GM8166移位寄存器复位,即所有的寄存器的值都为0;当CSN为0,Reset为0,同时有时钟输入时,GM8166对移位寄存器进行移位,32个时钟信号后,32位数据全部输出到寄存器输出口,由LE和OC/EN控制PDATA[31:0]的输出状态,从而实现对锅炉的控制。
GM8166-2设为32数据并行输入串行输出模式:AT91RM9200通过PA12口连续接收32位数据,在该模式下,当Reset信号为1时,GM8166移寄存器复位,即所有寄存器的值都为0;当CSN为0,Reset为0,OC/EN信号为0时,同时来一个时钟上升沿,GM8166将输入端口(32位)数据并行保存到寄存器中;当Reset为0和OC/EN信号为1时,GM8166对移位寄存器进行移位,从而实现对锅炉信号的采集。
4.2 软件设计
本系统软件均采用C语言编写。软件示例如下。
4.2.1 32位数据串行输入并行输出转换
4.2.2 32位数据并行输入串行输出转换
如图2所示,用PA1作为GM8166-1的CLK,用PA0作SDATA,用PA11作为GM8166-2的CLK,用PA12作SDATA,用软件模拟产生串行接口的传输过程,编程时,应注意GM8166的内部移位寄存器都是在 CLK的上升沿移位时,所以读入时应在CLK的上升沿之后读入SDATA的状态,写出时应在CLK上升沿之前置SDATA相应电平。
5 结束语
嵌入式锅炉控制器中使用了两个GM8166器件,实现了锅炉中22个温度、压力、水位、燃烧机、风机等状态的检测和10个手动按键的输入;32个水泵、变频器、燃烧机、风机的启停以及轻重油选择、报警等开关量的输出,解决了使用8255等通用并行I/O电路所带来的成本高,功耗大和占用电路板面积大等系统结果设计与安装方面的问题。