机载嵌入式PCI总线硬件设计和软件测试
发布时间:2008/6/3 0:00:00 访问次数:631
摘要:介绍机载嵌入式pci总线硬件设计、软件测试方法。在分布式系统结构设计具有典型性和实用性。内容充实,信息量大,工程实践性强。
关键词:pci总线 地址映射 主设备
pci总线起源于微型计算机,已经成为微型计算机事实上的总线标准。因其众多的功能、强大的兼容性而独领风骚。为pci局部总线设计的器件是针对pci而不是针对特定的cpu处理器,独立于处理器的升级。其目标是实现电流尽可能小的系统,功耗低。软件透明,在和pci设备之间通信时,软件驱动之间使用相同的命令集和状态定义。随着嵌入式计算机的发展,pci总线也越来越多地被引入到嵌入式系统中。本文介绍在“十五”预研项目中实现嵌入式pci总线的一些经验体会,与大家切磋。
1 pci总线概述
pci(peripheral component interconnect)总线,即外设部件互联总线。在pci应用系统中,如果某设备取得了总线控制权,就称其为“主设备”(master),而被主设备选中以进行通信的设备称为“从设备”(slave)。图1是pci总线信号汇总。
系统信号包括复位信号rst和时钟信号clk。仲裁信号有总线申请req和总线授权信号gnt。接口控制信号包括主设备启动pci交易的frame信号、主设备的交易数据有效信号irdy和目标完成本次数据交易的信号trdy等。pci没有一般数据周期的读写信号,而是采用命令编码形式定义本次pci周期的读写属性。每个pci周期由主设备启动,在第一个时钟周期,ad[31..0]信号承载地址信息,c/be[3..0]的组合代表命令,定义pci周期。第二个时钟手,ad[31..0]由提供数据一方驱动,c/be[3..0]的组合代表有效的字节。详细情况可参阅参考文献,亦即pci规范。
2 pci总线设计
目前有众多的能支持pci总线的厂家和芯片。其中以美国plx公司的pci9056功能最完备,使用简易。下面的设计以pci9056为主要模型。
2.1 pci系统时钟
pic总线的信号驱动采用反射波方式而不是传统的入射波。这样,对各设备采样时刻的偏差要求很高,亦即时钟的偏斜(skew)应尽可能小,最大的时钟偏斜≤2ns。最好整个pci系统各设备采用同一时刻;但同一时钟的驱动能力有限,不可能同步驱动所有pci设备。idt74ct3807时钟驱动器可以解决这个问题。它将一个时钟源泉转换为10个等同的时钟,各时钟之间的偏斜≤350ps。图2是pci时钟解决方案。
显然,除去中央资源,这个pci系统最多可以带9个设备,对于嵌入式系统来说已经足够了。在pci底板上,为保证时钟的偏斜率,各pci时钟必须走等长线。
2.2 中央资源和pci适配器
在pci系统总线中,必须存在一个pci主桥(host)管理整个总线。主桥提供系统信号和进行pci部迟疑不决仲裁。pci9056可以工作在host方式下,也可以作为普通pci适配器。图3是两种工作模式原理。
当hosten引脚连接地时,pci9056工作在host模式,亦即成为系统的中央资源,图3(a)就是这种情况。图3(b)工作在适配器模式。在host模式时,pci9056的局部复位lreset是输入,接收来自局部cpu等的复位,然后在rst产生pci总线复位,去复位整个pci总线上的其它设备。而工作在适配器模式下的pci9056刚好相反,rst接收来自pci总线的复位,然后通过lreset去复位pci设备内的其它器件。一般地,把主桥的pci8056设置为总线仲裁器。注意二者仲裁信号req和gnt互换连接。
pci9056作适配器时,仲裁信号使用req和gnt。当它作为总线仲裁器时,还有其它的请求应答信号对可以使用。图3中没有表示出来。
2.3 加电初始化
众所周知,pci总线的地址是可以根据系统动态调整的。各个模块在pci空间所占的地址和长度取决于内部配置寄存器。系统程序一般在加电时就检测整个系统所需的空间,分配各pci设备的基址和所需存储器空间、i/o空间。这个初始化过程可以用三个办法完成。图4是支持系统软件初初化
摘要:介绍机载嵌入式pci总线硬件设计、软件测试方法。在分布式系统结构设计具有典型性和实用性。内容充实,信息量大,工程实践性强。
关键词:pci总线 地址映射 主设备
pci总线起源于微型计算机,已经成为微型计算机事实上的总线标准。因其众多的功能、强大的兼容性而独领风骚。为pci局部总线设计的器件是针对pci而不是针对特定的cpu处理器,独立于处理器的升级。其目标是实现电流尽可能小的系统,功耗低。软件透明,在和pci设备之间通信时,软件驱动之间使用相同的命令集和状态定义。随着嵌入式计算机的发展,pci总线也越来越多地被引入到嵌入式系统中。本文介绍在“十五”预研项目中实现嵌入式pci总线的一些经验体会,与大家切磋。
1 pci总线概述
pci(peripheral component interconnect)总线,即外设部件互联总线。在pci应用系统中,如果某设备取得了总线控制权,就称其为“主设备”(master),而被主设备选中以进行通信的设备称为“从设备”(slave)。图1是pci总线信号汇总。
系统信号包括复位信号rst和时钟信号clk。仲裁信号有总线申请req和总线授权信号gnt。接口控制信号包括主设备启动pci交易的frame信号、主设备的交易数据有效信号irdy和目标完成本次数据交易的信号trdy等。pci没有一般数据周期的读写信号,而是采用命令编码形式定义本次pci周期的读写属性。每个pci周期由主设备启动,在第一个时钟周期,ad[31..0]信号承载地址信息,c/be[3..0]的组合代表命令,定义pci周期。第二个时钟手,ad[31..0]由提供数据一方驱动,c/be[3..0]的组合代表有效的字节。详细情况可参阅参考文献,亦即pci规范。
2 pci总线设计
目前有众多的能支持pci总线的厂家和芯片。其中以美国plx公司的pci9056功能最完备,使用简易。下面的设计以pci9056为主要模型。
2.1 pci系统时钟
pic总线的信号驱动采用反射波方式而不是传统的入射波。这样,对各设备采样时刻的偏差要求很高,亦即时钟的偏斜(skew)应尽可能小,最大的时钟偏斜≤2ns。最好整个pci系统各设备采用同一时刻;但同一时钟的驱动能力有限,不可能同步驱动所有pci设备。idt74ct3807时钟驱动器可以解决这个问题。它将一个时钟源泉转换为10个等同的时钟,各时钟之间的偏斜≤350ps。图2是pci时钟解决方案。
显然,除去中央资源,这个pci系统最多可以带9个设备,对于嵌入式系统来说已经足够了。在pci底板上,为保证时钟的偏斜率,各pci时钟必须走等长线。
2.2 中央资源和pci适配器
在pci系统总线中,必须存在一个pci主桥(host)管理整个总线。主桥提供系统信号和进行pci部迟疑不决仲裁。pci9056可以工作在host方式下,也可以作为普通pci适配器。图3是两种工作模式原理。
当hosten引脚连接地时,pci9056工作在host模式,亦即成为系统的中央资源,图3(a)就是这种情况。图3(b)工作在适配器模式。在host模式时,pci9056的局部复位lreset是输入,接收来自局部cpu等的复位,然后在rst产生pci总线复位,去复位整个pci总线上的其它设备。而工作在适配器模式下的pci9056刚好相反,rst接收来自pci总线的复位,然后通过lreset去复位pci设备内的其它器件。一般地,把主桥的pci8056设置为总线仲裁器。注意二者仲裁信号req和gnt互换连接。
pci9056作适配器时,仲裁信号使用req和gnt。当它作为总线仲裁器时,还有其它的请求应答信号对可以使用。图3中没有表示出来。
2.3 加电初始化
众所周知,pci总线的地址是可以根据系统动态调整的。各个模块在pci空间所占的地址和长度取决于内部配置寄存器。系统程序一般在加电时就检测整个系统所需的空间,分配各pci设备的基址和所需存储器空间、i/o空间。这个初始化过程可以用三个办法完成。图4是支持系统软件初初化