图3 fpga的a/d控制信号时序图3 对数字量的控制与管理在图2系统中,假定要对16个负载进行管理,每个负载包括1个控制输出量和2个状态返回量,因此共有16路的数字量输出,32路的数字量输入。fpga对数字量的管理软件结构:fpga对数字量的控制管理也设置了三个16位的指令寄存器组。这三个指令寄存器的内部地址为03h、04h和05h.03h为开关量输出允许寄存器(kger);04h为跳闸闭合寄存器(kgcr);05h为开关量开闭寄存器(kgir)。来自负载的总共32个状态反馈信号(din00、din01……din31)分成16组,分别接到fpga的16个信号量dini上(i=1,2,…,15)。dini是长度为2的位矢量std_logic_vector(1 downto 0),分别对应于1个负载的两个状态反馈位。fpga用16个进程process(din1)、process(din1)……process(din15)来对输入数字量敏感。当dini的载位电平发生变化时,进程启动,fpga结合mcu发送的控制指令,判断负载的状态,并记录在输出数据缓冲区中。输出数据缓冲区包括16个数据存储器,这16