PCI9054芯片接口设计中若干问题的深入研究
时间:01-18
来源:电子技术应用 作者:童 鹏 吴新建
点击:
4 DMA和突发数据传输
在《PCI9054-DataBook》中,每种工作模式都将DMA和突发数据传输的时序图放在一起,这并不意味着DMA和突发数据传输是等同的,这是两个不同的概念。事实上,既可利用一周期的总线操作也可以利用DMA方式进行数据传输。
DMA和突发数据传输的作用是不同的。PCI9054中有两个DMA通道,可以独立工作,互不干扰。采用DMA方式传输数据,可以节省CPU资源;采用突发方式传输数据可以提高数据的传输率,充分发挥PCI总线数据传输率高的优点。因此,在高速大容量数据传输和处理系统中,将DMA和突发数据传输方式结合在一起是比较理想的,一方面可以充分发挥PCI总线的性能,另一方面可以将节省出的CPU资源对数据处理算法进行优化。图3是PCI9054在C模式正气突发数据传输方式的时序图。
从图1和图3可以看出,用状态机实现该控制逻辑是比较理想的。图4是PCI9054在C模式下采用单一周期和突发相结合的总线访问状态转换图。用该状态转换图设计出的逻辑电路既可满足单一周期总线访问的需要,又可以满足突发方式传输数据的需要,具有很大的实用价值。
使用DMA和突发方式相结合进行数据传输时,驱动程序要作为如下设置:
(1)调用驱动程序中相应的API函数,找到PC机的物理地址;
(2)在设备驱动程序中使能突发寄存器;
(3)在设备驱动程序中使能总线位宽寄存器;
(4)在设备驱动程序中使能相应的寄存器,指明DMA传输的方向是PCI→LOCAL还是LOCAL→PCI;
(5)在设备驱动程序中指明本次DMA传输需要传输的字节数。
完成上述设置后,即可在突发方式下进行DMA传输,否则DMA传输会失败。
5 PCI中断
PCI总线采用的是中断共享机制,所有的PCI扩展板在PCM插槽上共用一根信号线INTA#,通过电平触发方式响应PCI中断。每块PCI扩展板上的PCI9054提供的中断使能寄存器和中断状态寄存器能识别相应板卡上十几种类开的PCI中断。
当PCI插槽上只有一块PCI扩展板,而系统需要使用某种PCI中断时,则在主程序中将相应的中断使能寄存器置位,当相应的中断源中断信号到来时,与主板相连的信号线INTA#置一段时间低电平后,中断状态寄存器中的相应位被置位。当这两个寄存器的相应位都有效时,计算机响应相应的PCI中断,执行中断服务子程序。在《PCI9054-DataBool》中,INTA#信号为11个本地总线时钟周期,该时序图给不少设计人员带来了很多困惑。根据笔者的应用经验,INTA#信号在7μs左右是比较理想的,这与在Windows下PCI总线每秒钟可以响应十几万次中断的相关资料是相符的。
当PCI插槽上有多块PCI扩展板需要用到中断功能时,其工作过程与一块PCI扩展板差不多。唯一不同的是,首先驱动程序要利用一系列设备寄存器对扩展板进行设备识别,然后利用中断使能寄存器和中断状态寄存器对中断类型进行识别,最后响应相应的中断服务子程序。
在网上经常看到一些应用PCI9054的设计人员被以上讨论的问题所困扰,笔者在近两年从事PCI9054芯片应用设计中,也曾被这些问题困扰过。本文从这些方面对PCI9054芯片的应用进行了深入的探讨和总结,提出的所有技术解决方案都经过实验验证是可行的,这些内容在以往公开发表的论文中一般比较可见。本文探讨的内容对从事PCI9054芯片应用设计的人员应该会有一定的参考价值。
在《PCI9054-DataBook》中,每种工作模式都将DMA和突发数据传输的时序图放在一起,这并不意味着DMA和突发数据传输是等同的,这是两个不同的概念。事实上,既可利用一周期的总线操作也可以利用DMA方式进行数据传输。
DMA和突发数据传输的作用是不同的。PCI9054中有两个DMA通道,可以独立工作,互不干扰。采用DMA方式传输数据,可以节省CPU资源;采用突发方式传输数据可以提高数据的传输率,充分发挥PCI总线数据传输率高的优点。因此,在高速大容量数据传输和处理系统中,将DMA和突发数据传输方式结合在一起是比较理想的,一方面可以充分发挥PCI总线的性能,另一方面可以将节省出的CPU资源对数据处理算法进行优化。图3是PCI9054在C模式正气突发数据传输方式的时序图。
从图1和图3可以看出,用状态机实现该控制逻辑是比较理想的。图4是PCI9054在C模式下采用单一周期和突发相结合的总线访问状态转换图。用该状态转换图设计出的逻辑电路既可满足单一周期总线访问的需要,又可以满足突发方式传输数据的需要,具有很大的实用价值。
使用DMA和突发方式相结合进行数据传输时,驱动程序要作为如下设置:
(1)调用驱动程序中相应的API函数,找到PC机的物理地址;
(2)在设备驱动程序中使能突发寄存器;
(3)在设备驱动程序中使能总线位宽寄存器;
(4)在设备驱动程序中使能相应的寄存器,指明DMA传输的方向是PCI→LOCAL还是LOCAL→PCI;
(5)在设备驱动程序中指明本次DMA传输需要传输的字节数。
完成上述设置后,即可在突发方式下进行DMA传输,否则DMA传输会失败。
5 PCI中断
PCI总线采用的是中断共享机制,所有的PCI扩展板在PCM插槽上共用一根信号线INTA#,通过电平触发方式响应PCI中断。每块PCI扩展板上的PCI9054提供的中断使能寄存器和中断状态寄存器能识别相应板卡上十几种类开的PCI中断。
当PCI插槽上只有一块PCI扩展板,而系统需要使用某种PCI中断时,则在主程序中将相应的中断使能寄存器置位,当相应的中断源中断信号到来时,与主板相连的信号线INTA#置一段时间低电平后,中断状态寄存器中的相应位被置位。当这两个寄存器的相应位都有效时,计算机响应相应的PCI中断,执行中断服务子程序。在《PCI9054-DataBool》中,INTA#信号为11个本地总线时钟周期,该时序图给不少设计人员带来了很多困惑。根据笔者的应用经验,INTA#信号在7μs左右是比较理想的,这与在Windows下PCI总线每秒钟可以响应十几万次中断的相关资料是相符的。
当PCI插槽上有多块PCI扩展板需要用到中断功能时,其工作过程与一块PCI扩展板差不多。唯一不同的是,首先驱动程序要利用一系列设备寄存器对扩展板进行设备识别,然后利用中断使能寄存器和中断状态寄存器对中断类型进行识别,最后响应相应的中断服务子程序。
在网上经常看到一些应用PCI9054的设计人员被以上讨论的问题所困扰,笔者在近两年从事PCI9054芯片应用设计中,也曾被这些问题困扰过。本文从这些方面对PCI9054芯片的应用进行了深入的探讨和总结,提出的所有技术解决方案都经过实验验证是可行的,这些内容在以往公开发表的论文中一般比较可见。本文探讨的内容对从事PCI9054芯片应用设计的人员应该会有一定的参考价值。
- 基于PCI9054的接口卡(08-08)
- 基于PCI总线的塔康视频信号产生电路设计 (08-15)
- 用于下一代移动电话的电源管理划分(08-28)
- WCDMA分布式基站低噪声放大器电路设计(09-12)
- DC-DC电源驱动PA提高WCDMA手机发送效率(11-01)
- 散列DMA设计的高速串口驱动技术(05-07)