PCI设备的访问方法(三)--硬件访问方法

一、硬件结构

在这里插入图片描述
图中的Processor是CPU,addr cpu是cpu的内存空间,cpu发出地址可以到达cache,内存DRAM,或者GPIO,再或者PCI设备,再访问PCI设备时需要经过Bridge桥,将addr cpu转换成addr PCI。但是PCI总线上挂载了很多设备,这些设备是怎样响应的呢?
cpu会去扫描这些PCI设备,每个设备都有配置寄存器,都这个配置寄存器我可以知道,这是哪类设备,是网卡,还是串口,我可以知道申请的资源,想申请多大的空间;当我知道你需要多大的空间之后,我就会在内存中分配相应的地址空间,然后将这块空间的地址范围及地址写入配置寄存器。
当我的PCI设备插到PCI总线的卡槽上时,我会声明我需要多大的空间,驱动来初始化时会来扫描这些设备,就会执行上面的步骤。
当桥把CPU地址转换成PCI地址后,如果这个pci地址属于PCI dev1,这个PCIdev1就会响应。

二、信号定义 Signal Definition

1.地址线与数据线
地址线和数据线是复用的,区分是用FRAME信号区分的,如下图:
在这里插入图片描述
FRAME为低电平是传输ADDRESS,高电平传输DATA。
在这里插入图片描述
规格书的描述(PCI3.0规范)
在这里插入图片描述
一开始的地址PCI总线上的设备都还没有自己的地址空间,那么怎样去选中某一个PCI设备呢?
在这里插入图片描述
BUS0和BUS1都是PCI总线,可以使用AD线来选择对应的设备。

三、配置空间 Configuration Space

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

<( ̄︶ ̄)Okay.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值