基于PCI总线模块的多通道串行数据采集系统设计
2.2 PCI T32兆核函数的内部结构及外围信号
PCI Compiler提供的四种PCI IP包括PCI_M64/32、64/32位的主模式接口和PCI_T64/32、64/32位的从模式接口。本系统通过PCI接口与PC机传输32位数据,并由上位机应用程序控制系统工作。故该系统工作于32位从模式,即本系统的PCI接口使用PCI_T32模块来实现,该模块的内部功能及外围信号如图1所示。

参数配置寄存器(Parameterizde Configuration Registers)是符合PCI规范的所有配置的寄存器,可用于识别设备、控制PCI总线功能、提供PCI总线状态等,PCI侧从模式控制模块(PCI Target Control)用于控制PCI_T32与PCI总线的各种操作,而用户侧从模式控制模块(Local Target Control)则用于控制PCI_T32与用户逻辑的各种操作。
PCI_T32上PCI总线一侧的信号是符合PCI协议的标准信号,该信号Local侧的信号为Altera PCI IP特有的与用户逻辑接口的信号,起着关键作用。其中:
l_adi[31:0]为地址/数据输入信号;
l_dato[31:0]为数据输出信号;
l_adro [31:0]为地址输出信号,读操作时,可将PCI侧地址/数据信号AD[31:0]上的第一个有效周期(即地址期)的数据输出;
l_emdo[3:0]为命令输出信号,其位定义及时序符合PCI规范,其为0010时为I/O读操作,为0011时为I/O写操作、为0110时为内存读操作。为0111时为内存写操作,为1010时为配置空间读,为1011时为配置空间写,用户对这组信号进行译码可知其当前PCI总线上设备的操作情况;
l_IRqn为用户中断请求信号,由于PCI总线为低电平中断,所以,用户逻辑若要发出PCI中断请求,就必须将低脉冲送入l_irqn。实验证明,低脉冲持续时间须在4~8μs之间,持续时间过短会出现丢失中断现象,而时间过长时,操作系统又会重复响应同一个中断请求;
l_tsr[11:0]可用于控制local目标设备状态寄存器,其中D0~D5位分别对应BAR0~BAR5,哪位有效代表哪个BAR被选中;
l_dxfrn为输出信号,表示local目标设备数据传输成功。
2.3 FAGA逻辑设计
一个数据采集系统若要稳定可靠地采集数据,都需要设置合适的数据缓冲区,本系统的数据缓冲区由FPGA内部IP核实现。图2所示为FPGA内部的PCI接口及数据缓冲区框图。

同步串行通信对时钟的同步要求非常严格,设计时应该注意收/发两方必须使用同一时钟来控制数据的传输。另外,PCI_T32内存读写分为单周期模式和突发模式。突发模式即在给出首地址后主设备连续读写多个数据,这在FPGA中需要用户端地址每周期自动增1的操作。
评论