基于PC104(Plus)总线的数据接收存储显示系统设计
为了满足PLX9054上电启动速度的要求,其时钟应由晶振直接提供。
系统上电后,PLX9054NFPGA发出复位命令,同时由FPGA对FIFO进行复位,并完成对FIFO的初始化,以使其处于工作状态。在FP-GA接收数据时,存储数据通道和显示数据通道的数据同时进入FPGA,为了使工控机软件能够区分两路数据,可在FPGA内部根据数据同步信号分别对两路数据加上帧头,然后同时写入FIFO1的D1[0…31]和FIFO2的D2[0…31]。数据半满后,FPGA要根据两片FIFO的半满信号和对其进行读取控制。FIFO的读取控制主要由实现。在实际应用中,存储数据一般要求能够优先上传,且数据连续,而对同步显示的要求相对较低,显示数据的速率也较低,只要能够满足显示刷新率的要求即可,因此,本设计中存储数据缓冲区FIFO1的半满信号的优先级高于。具体实现方法是对进行逻辑运算,图3所示是其运算逻辑图。本文引用地址://m.amcfsurvey.com/article/202466.htm
运算后可得到化简结果,然后令;之后再在FPGA内部将、做与运算,可得到,然后判断,若为低,则FPGA向PLX9054发出中断。这样就能保证两片FIFO的数据根据优先级不断向上发送。
PLX9054响应中断后,即可通过LHOLD申请对本地总线进行控制,FPGA则通过LHOLDA作出应答,进而由PLX9054获得本地总线控制权并启动DMA传输周期。FPGA收到读信号和地址选通信号后,产生信号,并在最后一个数据传送信号有效之前一直保持有效。在此期间,FPGA将根据图3所示的运算逻辑结果,并按照优先级读取相应FIFO的数据进行上传。具体的控制及数据传输时序如图4所示。
由图4可见,当同时有效时,其FIFO1的优先级高于FIFO2,故可满足设计要求。
评论