刘 洋,崔迎炜,韩晓红
(1.沈阳航空航天大学 电子信息工程学院,辽宁 沈阳 110136;2.北京方天长久科技有限公司 北京 100084)
近年来,随着工业控制技术的发展,在工业控制领域中,对控制系统的功能、灵活性和数据处理能力提出了更高的需求,本文从实际工程应用出发,研究并实现了一种基于CPCI总线的一体化可配置数据处理系统。
本设计利用可配置的现场可编程门阵列[1](FPGA)与具有高可靠性、高密度性的CPCI总线相结合的方法,将众多数据处理功能集成在同一个嵌入式系统板卡上,实现了系统的一体化、小型化。
本系统主要由上位机管理子系统、远程监控子系统和数据处理子系统组成,总体结构如图1所示。
图1 系统总体结构框图Fig.1 Structure diagram of the entire system
上位机管理系统主要用于显示系统工作状态并提供人机交互界面。远程监控系统通过光纤连接到距离系统1 km以外的位置,实现系统的远程监控。数据处理子系统包括CPCI-6020单板计算机和FTC-9110数据处理单板[2]两部分,CPCI-6020单板计算机用于解释上位机发送的命令并对数据处理中心进行控制。FTC-9110数据处理单板是数据处理的核心部分,也是文中介绍的重点,其整体实现结构如图2所示。
FTC-9110数据处理中心以FPGA为硬件处理核心[3],通过内部构建的ADC控制模块、DAC控制模块、FLASH模块、SDRAM存储模块、光纤通信模块、PCI总线模块实现对外围设计的A/D数据采集电路、D/A数据输出电路、FLASH存储电路、SDRAM数据存储电路、光纤通信电路以及CPCI总线接口电路的控制,通过与单板计算机的灵活配合,实现对数据的实时处理、高速传输。
系统的数据处理主要以FTC-9110为中心,利用单板计算机对FPGA内部构建的各个模块的灵活控制,实现数据的处理,其数据处理流程如下:
1)利用ADC芯片前端设计的信号调理电路,将输入的单端模拟信号转换为差分信号送入芯片的差分输入端。
图2 整体实现结构图Fig.2 Structure diagram of the whole realization
2)ADC芯片对输入的信号进行采样,并将采样所得数字信号传送至FFT算法模块。
3)利用FFT算法模块[4]对采集数据进行频域分析,分析数据的结果传送至FIR滤波模块作为滤波输入信号,滤波后输出数据传送至光纤通信模块。
4)光纤通信模块通过高速并串转换模块对滤波输出数据进行8B/10B编码,将16位的数据转换为20位的串行数据,输出速率最高可达1.5 Gbps,然后该高速串行数据进入光电转换模块,传送至远程监控系统。
5)单板计算机控制PCI9656工作在DMA传输模式,通过PCI总线模块和SDRAM存储模块将DAC输入数据写入SDRAM芯片。
6)读取SDRAM芯片数据传送至DAC控制模块,DAC芯片对输入数据进行数模转换,并通过后端设计的调理电路,使信号最终以电压形式输出。
硬件设计将重点介绍DAC电路及控制模块、PCI接口控制模块、光纤通信电路及控制模块的设计。
DAC电路由D/A转换电路和信号调理电路两部分组成。D/A转换电路采用了ADI公司的电流输出型芯片AD9717[5],在芯片输出后端设计的调理电路,将电流输出转换为电压信号输出。
FPGA通过SPI接口对DAC内部寄存器进行配置,控制其工作方式。为了方便对内部寄存器配置,FPGA内部设计了相应的寄存器,上位机可以通过对相应的寄存器设置进而改变内部寄存器的值。
SPI接口由串行时钟 (SCLK)、 串行数据输入/输出(SDIO)、芯片选择(CSB)3个配置引脚组成,配置时序如图3所示。
图3 SPI接口配置时序图Fig.3 SPIinterface configuration timing diagram
SPI接口配置时序由指令周期和数据周期两部分组成,发送的前8个数据 (R/W、N1N0、A4-A0) 为指令周期,R/W为数据读写控制位,N1N0为数据字节个数控制位,A4-A0为数据地址控制位。指令周期发送结束后是数据周期,数据方向由R/W决定,数据量由N1N0决定,写数据在SCLK上升沿有效,读数据在SCLK下降沿有效。本模块设计的关键代码如下:
always@ (ADDR or DATA or STATE)begin
case(STATE)
IDLE:begin
//R/W,N1N0,ADDRESS, DATA
DATA_REG<={1'b0,2'b0,ADDR,DATA};
CS <=1'b1;
SCLK <=1'b0;
SDO <=1'b0;
CNT <=4'b0;
STATE <=S1; end
S1:begin
CS <=1'b0;
SCLK<=1'b0;
SDO <=DATA_REG[15];
STATE<=S2; end
S2:begin
if(CNT<=4'd15) begin
SCLK <=1'b1;
DATA_REG<=DATA_REG<<1;
CNT <=CNT+1'b1;
STATE <=S1;end
else begin
CS <=1'b1;
STATE <=IDLE; end
end
endcase end
PCI桥芯片主要用于解释单板计算机发送的指令,实现相互间数据通信。本系统采用PLX公司的PCI9656芯片,工作在C模式下,局部总线[6]时序如图4所示。
图4 PCI9656局部总线时序图Fig.4 PCI9656 local bus timing diagram
其 中 LHOLD、BLAST、LA[31:2]、ADS、LW/R 等 信 号 由PCI9656 驱动,LHOLDA、LBE[3:0]、READY 信号由 FPGA 驱动。通过模块内部设计的状态机实现对局部总线的控制,具体实现过程如图5所示。
图5 状态转换图Fig.5 State transition diagrams
1)IDLE状态 系统上电或复位后,处于IDLE状态。在IDLE状态时,FPGA监测LHOLD信号,当单板计算机访问FPGA时,LHOLD信号变为高电平。FPGA监测到该高电平后,立即使LHOLDA信号为高电平,转入ADDR_S状态。
2)ADDR_S状态 在此状态下,FPGA监测ADS信号,当ADS信号变为低电平,地址信号LA[31:2]有效,同时对输入的读写信号进行判断,若为读操作,转入READ状态,若为写操作,转入WRITE状态。
3)WRITE状态 FPGA控制READY信号为低电平,以使总线上的数据有效,FPGA可以控制LBE[3:0]信号,以对传输的数据字节进行选取。并监测BLAST信号,当监测到BLAST信号为低电平时,表示传输最后一个数据,转入THE_END状态。
4)READ状态 同WRITE状态相似。
5)THE_END状态 数据传输结束,FPGA监测BLAST信号变为高电平同时将READY信号变为高电平。当LHOLD信号变为低电平后,LHOLDA信号变为低电平,转入IDLE状态,等待下一次传输。
本设计中的光纤通信电路由并串转换电路和光传输电路组成。并串转换电路采用了TI公司的TLK1501芯片,通过内部的8B/10B编码,将16位并行数据分成2个 8位数据进行编码,编码后的数据为20位,再通过并串转换发送出去;光传输电路采用FINISAR公司推出的FTLF1321S1MTL光模块,将串行数据进行光电转换输出。
光纤通信模块内部有一个状态机,上电或复位后,处于IDLE状态。模块对传送标志信号(TX_FLAG)监测,如果有传送标志(TX_FLAG=1),转入TX_READY状态。在正常传送数据前,需要对芯片进行同步操作,模块控制信号TXEN、TX-ER为 00,连续发送 3个空闲码,使 TLK1501进入同步模式,状态机转入TX_S状态。在TX_S状态下,如果发送有效数据,模块控制TX-EN、TX-ER为10,进行数据的正常发送,发送数据结束后,转入IDLE状态,等待下一次传输。在接收数据时,模块监测RX-DV,RX-ER信号,如果RX-DV,RX-ER为10,正常接收数据。模块设计的关键代码如下:
case(STATE)
IDLE:begin
if(TX_FLAG==1)
STATE<=TX_READY;
else
STATE<=IDLE;end
TX_READY:begin
if(CNT<=2’d2) begin
STATE<=TX_READY;
TX_EN<=1’b0;
TX_ER<=1’b0;
CNT<=CNT+1’b1; end
else
STATE<=TX_S; end
TX_S:begin
if(DATA_DELAY==DATA) begin
CNT<=2’d0;
TX_EN<=1’b0;
TX_ER<=1’b0;
STATE<=IDLE;end
else begin
TX_EN<=1’b1;
TX_ER<=1’b0;
TXD<=DATA;
STATE<=TX_S;end
end
endcase
本文通过对多种功能接口电路进行研究分析,最终实现了在同一块嵌入式板卡上集成光纤通信、A/D、D/A、CPCI总线、SDRAM存储、FLASH存储等功能。系统以FPGA芯片为处理核心,利用模块化的思想进行设计,使系统方便扩展、易于维护和升级。经过长期的工程实践验证,本系统运行可靠稳定,能够实现在复杂工业控制系统中对数据灵活控制、实时处理和高效传输。
[1]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2009.
[2]徐欣,孙广富,卢启中.基于FPGA的嵌入式系统设计[M].国防工业大学,2003.
[3]刘福奇.FPGA嵌入式项目开发应用实战[M].北京:电子工业出版社,2009.
[4]Sasalon I T,Perez-pascual A,Valls J.Area-efficient FPGA-based FFT processor[J].Electronics Letters, 2003,39(19):1369-1370.
[5]Analog Devices Inc.AD9717:DUAL,14-bit low power degitalto-analog converters[EB/OL].(2009-03).http://www.analog.com/static/imported-files/data_sheets/AD9714_9715_9716_9717.pdf.
[6]李贵山,陈金鹏.PCI局部总线及其应用[M].西安:西安电子科技大学出版社,2003.