PCI总线的配置

发布者:HarmoniousVibes最新更新时间:2015-11-11 来源: eefocus关键字:PCI总线  配置 手机看文章 扫描二维码
随时随地手机看文章

2.4 PCI总线的配置

PCI总线定义了两类配置请求,一个是Type 00h配置请求,另一个是Type 01h配置请求。PCI总线使用这些配置请求访问PCI总线树上的设备配置空间,包括PCI桥和PCI Agent设备的配置空间。
其中HOST主桥或者PCI桥使用Type 00h配置请求,访问与HOST主桥或者PCI桥直接相连的PCI Agent设备或者PCI桥[1];而HOST主桥或者PCI桥使用Type 01h配置请求,需要至少穿越一个PCI桥,访问没有与其直接相连的PCI Agent设备或者PCI桥。如图2‑8所示,HOST主桥可以使用Type 00h配置请求访问PCI设备01,而使用Type 01h配置请求通过PCI桥1、2或者3转换为Type 00h配置请求之后,访问PCI总线树上的PCI设备11、21、22、31和32[2]
当x86处理器对CONFIG_DATA寄存器进行读写操作时,HOST主桥将决定向PCI总线发送Type 00h配置请求还是Type 01h配置请求。在PCI总线事务的地址周期中,这两种配置请求总线事务的不同反映在PCI总线的AD[31:0]信号线上。
值得注意的是,PCIe总线还可以使用ECAM(Enhanced Configuration Access Mechanism)机制访问PCIe设备的扩展配置空间,使用这种方式可以访问PCIe设备256B~4KB之间的扩展配置空间。但是本节仅介绍如何使用CONFIG_ADDRESS和CONFIG_FATA寄存器产生Type 00h和Type 01h配置请求。有关ECAM机制的详细说明见第5.3.2节。
处理器首先将目标PCI设备的ID号保存在CONFIG_ADDRESS寄存器中,之后HOST主桥根据该寄存器的Bus Number字段,决定是产生Type 00h配置请求,还是Type 01h配置请求。当Bus Number字段为0时,将产生Type 00h配置请求,因为与HOST主桥直接相连的总线号为0;大于0时,将产生Type 01h配置请求。

2.4.1 Type 01h和Type 00h配置请求

本节首先介绍Type 01h配置请求,并从PCI总线使用的信号线的角度上,讲述HOST主桥如何生成Type 01配置请求。在PCI总线中,只有PCI桥能够接收Type 01h配置请求。Type 01h配置请求不能直接发向最终的PCI Agent设备,而只能由PCI桥将其转换为Type 01h继续发向其他PCI桥,或者转换为Type 00h配置请求发向PCI Agent设备。PCI桥还可以将Type 01h配置请求转换为Special Cycle总线事务(HOST主桥也可以实现该功能),本节对这种情况不做介绍。
在地址周期中,HOST主桥使用配置读写总线事务,将CONFIG_ADDRESS寄存器的内容拷贝到PCI总线的AD[31:0]信号线中。CONFIG_ADDRESS寄存器与Type 01h配置请求的对应关系如图2‑11所示。
 

从图2‑11中可以发现,CONFIG_ADDRESS寄存器的内容基本上是原封不动的拷贝到PCI总线的AD[31:0]信号线上的[3]。其中CONFIG_ADDRESS的Enable位不被拷贝,而AD总线的第0位为必须为1,表示当前配置请求是Type 01h。
当PCI总线接收到Type 01配置请求时,将寻找合适的PCI桥[4]接收这个配置信息。如果这个配置请求是直接发向PCI桥下的PCI设备时,PCI桥将接收个Type 01配置请求,并将其转换为Type 00h配置请求;否则PCI桥将当前Type 01h配置请求原封不动的传递给下一级PCI总线。
如果HOST主桥或者PCI桥发起的是Type 00h配置请求,CONFIG_ADDRESS寄存器与AD[31:0]的转换如图2‑12所示。


 


此时处理器对CONFIG_DATA寄存器进行读写时,处理器将CONFIG_ADDRESS寄存器中的Function Number和Register Number字段拷贝到PCI的AD总线的第10~2位;将AD总线的第1~0位赋值为0b00。PCI总线在配置请求总线事务的地址周期根据AD[1:0]判断当前配置请求是Type 00h还是Type 01h,如果AD[1:0]等于0b00表示是Type 00h配置请求,如果AD[1:0]等于0b01表示是Type 01h配置请求。
而AD[31:11]与CONFIG_ADDRESS的Device Number字段有关,在Type 00h配置请求的地址周期中,AD[31:11]位有且只有一位为1,其中AD[31:11]的每一位选通一个PCI设备的配置空间。如第1.2.2节所述,PCI设备配置空间的片选信号是IDSEL,因此AD[31:11]将与PCI设备的IDSEL信号对应相连。
当以下两种请求之一满足时,HOST主桥或者PCI桥将生成Type 00h配置头,并将其发送到指定的PCI总线上。
(1)      CONFIG_ADDRESS寄存器的Bus Number字段为0时,处理器访问CONFIG_DATA寄存器时,HOST主桥将直接向PCI总线0发出Type 00h配置请求。因为与HOST主桥直接相连的PCI总线号为0,此时表示HOST主桥需要访问与其直接相连的PCI设备。
(2)      当PCI桥收到Type 01h配置头时,将检查Type 01配置头的Bus Number字段,如果这个Bus Number与PCI桥的Secondary Bus Number相同,则将这个Type 01配置头转换为Type 00h配置头,并发送到该PCI桥的Secondary总线上。

2.4.2 PCI总线配置请求的转换原则

当CONFIG_ADDRESS寄存器的Enable位为1,系统软件访问CONFIG_DATA寄存器时,HOST主桥可以产生两类PCI总线配置读写总线事务,分别为Type 00h和Type 01h配置读写总线事务。在配置读写总线事务的地址周期和数据周期中,CONFIG_ADDRESS和CONFIG_DATA寄存器中的数据将被放置到PCI总线的AD总线上。其中Type 00h和Type 01h配置读写总线事务映射到AD总线的数据并不相同。
其中Type 00h配置请求可以直接读取PCI Agent设备的配置空间,而Type 01h配置请求在通过PCI桥时,最终将被转换为Type 00h配置请求,并读取PCI Agent设备的配置寄存器。本节重点讲述PCI桥如何将Type 01h配置请求转换为Type 00h配置请求。
首先Type 00h配置请求不会被转换成Type 01h配置请求,因为Type 00h配置请求是发向最终PCI Agent设备,这些PCI Agent设备不会转发这些配置请求。
当CONFIG_ADDRESS寄存器的Bus Number字段为0时,处理器对CONFIG_DATA寄存器操作时,HOST主桥将直接产生Type 00h配置请求,挂接在PCI总线0上的某个设备将通过ID译码接收这个Type 00h配置请求,并对配置寄存器进行读写操作。如果PCI总线上没有设备接收这个Type 00h配置请求,将引发Master Abort,详情见PCI总线规范,本节对此不做进一步说明。
如果CONFIG_ADDRESS寄存器的Bus Number字段为n(n≠0),即访问的PCI设备不是直接挂接在PCI总线0上的,此时HOST主桥对CONFIG_DATA寄存器操作时,将产生Type 01h配置请求,PCI总线0将遍历所有在这条总线上的PCI桥,确定由哪个PCI桥接收这个Type 01h配置请求。
如果n大于等于某个PCI桥的Secondary Bus Number寄存器,而且小于等于Subordinate Bus number寄存器,那么这个PCI桥将接收在当前PCI总线上的Type 01配置请求,并采用以下规则进行递归处理。
(1)      开始。
(2)      遍历当前PCI总线的所有PCI桥。
(3)      如果n等于某个PCI桥的Secondary Bus Number寄存器,说明这个Type 01配置请求的目标设备直接连接在该PCI桥的Secondary bus上。此时PCI桥将Type 01配置请求转换为Type 00h配置请求,并将这个配置请求发送到PCI桥的Secondary Bus上,Secondary Bus上的某个设备将响应这个Type 00h配置请求,并与HOST主桥进行配置信息的交换,转(5)。
(4)      如果n大于PCI桥的Secondary Bus Number寄存器,而且小于等于PCI桥的Subordinate Bus number寄存器,说明这个Type 01配置请求的目标设备不与该PCI桥的Secondary Bus直接相连,但是由这个PCI桥下游总线上的某个PCI桥管理。此时PCI桥将首先认领这个Type 01配置请求,并将其转发到Secondary Bus,转(2)。
(5)      结束。
下文将举例说明PCI总线配置请求的转换原则,并以图2‑8为例说明处理器如何访问PCI设备01和PCI设备31的配置空间。PCI设备01直接与HOST主桥相连,因此HOST主桥可以使用Type 00h配置请求访问该设备。
而HOST主桥需要经过多级PCI桥才能访问PCI设备31,因此HOST主桥需要首先使用Type 01h配置请求,之后通过PCI桥1、2和3将Type 01h配置请求转换为Type 00h配置请求,最终访问PCI设备31。

1 PCI设备01

这种情况较易处理,当HOST处理器访问PCI设备01的配置空间时,发现PCI设备01与HOST主桥直接相连,所以将直接使用Type 00h配置请求访问该设备的配置空间,具体步骤如下。
首先HOST处理器将CONFIG_ADDRESS寄存器的Enable位置1,Bus Number号置为0,并对该寄存器的Device、Function和Register Number字段赋值。当处理器对CONFIG_DATA寄存器访问时,HOST主桥将存放在CONFIG_ADDRESS寄存器中的数值,转换为Type 00h配置请求,并发送到PCI总线0上,PCI设备01将接收这个Type 00h配置请求,并与处理器进行配置信息交换。[page]

2 PCI设备31

HOST处理器对PCI设备31进行配置读写时,需要通过HOST主桥、PCI桥1、2和3,最终到达PCI设备31。
当处理器访问PCI设备31时,首先将CONFIG_ADDRESS寄存器的Enable位置1,Bus Number字段置为3,并对Device、Function和Register Number字段赋值。之后当处理器对CONFIG_DATA寄存器进行读写访问时,HOST主桥、PCI桥1、2和3将按照以下步骤进行处理,最后PCI设备31将接收这个配置请求。
(1)      HOST主桥发现Bus Number字段的值为3,该总线号并不是与HOST主桥直接相连的PCI总线的Bus Number,所以HOST主桥将处理器对CONFIG_DATA寄存器的读写访问直接转换为Type 01h配置请求,并将这个配置请求发送到PCI总线0上。PCI总线规定Type 01h配置请求只能由PCI桥负责处理。
(2)      在PCI总线0上,PCI桥1的Secondary Bus Number为1而Subordinate Bus Number为3。而1< Bus Number <= 3,所以PCI桥1将接收来自PCI总线0的Type 01h配置请求,并将这个配置请求直接下推到PCI总线1。
(3)      在PCI总线1上,PCI桥2的Secondary Bus Number为2而Subordinate Bus Number为3。而1< Bus Number <= 3,所以PCI桥2将接收来自PCI总线0的Type 01h配置请求,并将这个配置请求直接下推到PCI总线2。
(4)      在PCI总线2上,PCI桥3的Secondary Bus Number为3,因此PCI桥3将“来自PCI总线2的Type 01h配置请求”转换为Type 00h配置请求,并将其下推到PCI总线3。PCI总线规定,如果PCI桥的Secondary Bus Number与Type 01h配置请求中包含的Bus Number相同时,该PCI桥将接收的Type 01h配置请求转换为Type 00h配置请求,然后再发向其Secondary Bus。
(5)      在PCI总线3上,有两个设备PCI设备31和PCI设备32。在这两个设备中,必然有一个设备将要响应这个Type 00h配置请求,从而完成整个配置请求周期。本篇在第2.4.1节中,讨论了究竟是PCI设备31还是PCI设备32接收这个配置请求,这个问题涉及PCI总线如何分配PCI设备使用的设备号。

2.4.3 PCI总线树Bus号的初始化

在一个处理器系统中,每一个HOST主桥都推出一颗PCI总线树。在一颗PCI总线树中有多少个PCI桥(包括HOST主桥),就含有多少条PCI总线。系统软件在遍历当前PCI总线树时,需要首先对这些PCI总线进行编号,即初始化PCI桥的Primary、Secondary和Subordinate Bus Number寄存器。
在一个处理器系统中,一般将与HOST主桥直接相连的PCI总线被命名为PCI总线0。然后系统软件使用DFS(Depth First Search)算法,依次对其他PCI总线进行编号。值得注意的是,与HOST主桥直接相连的PCI总线,其编号都为0,因此当处理器系统中存在多个HOST主桥时,将有多个编号为0的PCI总线,但是这些编号为0的PCI总线分属不同的PCI总线域,其含义并不相同。
在一个处理器系统中,PCI总线树的结构如图2‑13所示。当然在一个实际的处理器系统中,很少会出现这样复杂的PCI总线树结构,本节采用这个结构的目的是便于说明PCI总线号的分配过程。
在PCI总线中,系统软件使用深度优先DFS算法对PCI总线树进行遍历,DFS算法和广度优先BFS(Breadth First Search)算法是遍历树型结构的常用算法。与BFS算法相比,DFS算法的空间复杂度较低,因此绝大多数系统系统在遍历PCI总线树时,都使用DFS算法而不是BFS算法。
DFS是搜索算法的一种,其实现机制是沿着一颗树的深度遍历各个节点,并尽可能深地搜索树的分支,DFS的算法为线性时间复杂度,适合对拓扑结构未知的树进行遍历。在一个处理器系统的初始化阶段,PCI总线树的拓扑结构是未知的,适合使用DFS算法进行遍历。下文以图2‑13为例,说明系统软件如何使用DFS算法,分配PCI总线号,并初始化PCI桥中的Primary Bus Number、Secondary Bus Number和Subordinate Bus number寄存器。所谓DFS算法是指按照深度优先的原则遍历PCI胖树,其步骤如下。
(1)      HOST主桥扫描PCI总线0上的设备。系统软件首先忽略所有这条总线上的PCI Agent设备,因为在这些设备之下不会挂接新的PCI总线。例如PCI设备01下不可能挂接新的PCI总线。
(2)      HOST主桥首先发现PCI桥1,并将PCI桥1的Secondary Bus命名为PCI总线1。系统软件将初始化PCI桥1的配置空间,将PCI桥1的Primary Bus Number寄存器赋值为0,而将Secondary Bus Number寄存器赋值为1,即PCI桥1的上游PCI总线号为0,而下游PCI总线号为1。
(3)      扫描PCI总线1,发现PCI桥2,并将PCI桥2的Secondary Bus命名为PCI总线2。系统软件将初始化PCI桥2的配置空间,将PCI桥2的Primary Bus Number寄存器赋值为1,而将Secondary Bus Number寄存器赋值为2。
(4)      扫描PCI总线2,发现PCI桥3,并将PCI桥3的Secondary Bus命名为PCI总线3。系统软件将初始化PCI桥3的配置空间,将PCI桥3的Primary Bus Number寄存器赋值为2,而将Secondary Bus Number寄存器赋值为3。
(5)      扫描PCI总线3,没有发现任何PCI桥,这表示PCI总线3下不可能有新的总线,此时系统软件将PCI桥3的Subordinate Bus number寄存器赋值为3。系统软件在完成PCI总线3的扫描后,将回退到PCI总线3的上一级总线,即PCI总线2,继续进行扫描。
(6)      在重新扫描PCI总线2时,系统软件发现PCI总线2上除了PCI桥3之外没有发现新的PCI桥,而PCI桥3之下的所有设备已经完成了扫描过程,此时系统软件将PCI桥2的Subordinate Bus number寄存器赋值为3。继续回退到PCI总线1。
(7)      PCI总线1上除了PCI桥2外,没有其他桥片,于是继续回退到PCI总线0,并将PCI桥1的Subordinate Bus number寄存器赋值为3。
(8)      在PCI总线0上,系统软件扫描到PCI桥4,则首先将PCI桥4的Primary Bus Number寄存器赋值为0,而将Secondary Bus Number寄存器赋值为4,即PCI桥1的上游PCI总线号为0,而下游PCI总线号为4。
(9)      系统软件发现PCI总线4上没有任何PCI桥,将结束对PCI总线4的扫描,并将PCI桥4的Subordinate Bus number寄存器赋值为4,之后回退到PCI总线4的上游总线,即PCI总线0继续进行扫描。
(10)  系统软件发现在PCI总线0上的两个桥片PCI总线0和PCI总线4都已完成扫描后,将结束对PCI总线的DFS遍历全过程。
从以上算法可以看出,PCI桥的Primary Bus和Secondary Bus号的分配在遍历PCI总线树的过程中从上向下分配,而Subordinate Bus号是从下向上分配的,因为只有确定了一个PCI桥之下究竟有多少条PCI总线后,才能初始化该PCI桥的Subordinate Bus号。

2.4.4 PCI总线Device号的分配

一条PCI总线会挂接各种各样的PCI设备,而每一个PCI设备在PCI总线下具有唯一的设备号。系统软件通过总线号和设备号定位一个PCI设备之后,才能访问这个PCI设备的配置寄存器。值得注意的是,系统软件使用“地址寻址方式”访问PCI设备的存储器和I/O地址空间,这与访问配置空间使用的“ID寻址方式”不同。
PCI设备的IDSEL信号与PCI总线的AD[31:0]信号的连接关系决定了该设备在这条PCI总线的设备号。如上文所述,每一个PCI设备都使用独立的IDSEL信号,该信号将与PCI总线的AD[31:0]信号连接,IDSEL信号的含义见第1.2.2节。
在此我们简要回顾PCI的配置读写事务使用的时序。如图1‑3所示,PCI总线事务由一个地址周期加若干个数据周期组成。在进行配置读写请求总线事务时,C/BE#信号线的值在地址周期中为0x1010或者为0x1011,表示当前总线事务为配置读或者配置写请求。此时出现在AD[31:0]总线上的值并不是目标设备的PCI总线地址,而是目标设备的ID号,这与PCI总线进行I/O或者存储器请求时不同,因为PCI总线使用ID号而不是PCI总线地址对配置空间进行访问。
如图2‑12所示,在配置读写总线事务的地址周期中,AD[10:0]信号已经被Function Number和Register Number使用,因此PCI设备的IDSEL只能与AD[31:11]信号连接。
认真的读者一定可以发现在CONFIG_ADDRESS寄存器中Device Number字段一共有5位可以表示32个设备,而AD[31:11]只有21位,显然在这两者之间无法建立一一对应的映射关系。因此在一条PCI总线上如果有21个以上的PCI设备,那么总是有几个设备无法与AD[31:11]信号线连接,从而PCI总线无法访问这些设备。因为PCI总线在配置请求的地址周期中,只能使用第31~11这些AD信号,所以在一条总线上最多也只能挂接21个PCI设备。这21个设备可能是从0到20,也可能是从11到31排列。从而系统软件在遍历PCI总线时,还是需要从0到31遍历整条PCI总线。
在实际的应用中,一条PCI总线能够挂接21个设备已经足够了,实际上由于PCI总线的负载能力有限,即便总线频率为33MHz的情况下,在一条PCI总线中最多也只能挂接10个负载,一条PCI总线所能挂接的负载详见表1‑1。AD信号线与PCI设备IDSEL线的连接关系如图2‑14所示。

PCI总线推荐了一种Device Number字段与AD[31:16]之间的映射关系。其中PCI设备0与Device Number字段的0b00000对应;PCI设备1与Device Number字段的0b00001对应,并以此类推,PCI设备15与Device Number字段的0b01111对应。
在这种映射关系之下,一条PCI总线中,与信号线AD16相连的PCI设备其设备号为0;与信号线AD17相连的PCI设备其设备号为1;以此类推,与信号线AD31相连的PCI设备其设备号为15。在Type 00h配置请求中,设备号并没有像Function Number和Register Number那样以编码的形式出现在AD总线上,而是与AD信号一一对应,如图2‑12所示。
这里有一个原则需要读者注意,就是对PCI设备的配置寄存器进行访问时,一定要有确定的Bus Number、Device Number、Function Number和Register Number,这“四元组”缺一不可。在Type 00h配置请求中,Device Number由AD[31:11]信号线与PCI设备IDSEL信号的连接关系确定;Function Number保存在AD[10:8]字段中;而Register Number保存在AD[7:0]字段中;在Type 01h配置请求中,也有完整的四元组信息。


[1] 此时PCI桥作为一个PCI设备,接收访问其配置空间的读写请求。
[2] 最终Type 01h配置请求将会被转换为Type 00h配置请求,然后访问PCI Agent设备。
[3] Type 01h配置头信息存在于PCI总线事务的地址周期中。
[4] PCI桥根据Subordinate Bus Number和Secondary Bus Number寄存器,决定是否接收当前配置请求

关键字:PCI总线  配置 引用地址:PCI总线的配置

上一篇:工业以太网与现场总线相比
下一篇:EIB总线介绍(2)

推荐阅读最新更新时间:2024-05-03 00:05

粗粒度可配置计算结构的研究与发展
摘要:论述了粗粒度可配置计算结构的特点、发展现状和未来发展方向。 关键词:粗粒度 配置 并行计算 可配置计算又称为自适应计算。它是由多个具有可重配置功能的功能单元(PE)和可以配置不同数据传递方向的连续线路一起构成的计算机结构,如图1所示。现在,可重配置计算分为两类:细粒度配置和粗粒度配置。细粒度配置计算主要体现在FPGA(现场可编程逻辑阵列),它在数字逻辑芯片开发和系统设计等方面应用非常广泛,但由于细粒度的原因,其实际逻辑单元仅占实际芯片面积的10%,其余被开关、RAM、布线网络所占有,功耗和工作频率都不是非常理想,在处理一些规则运算,如乘法时效率不高。相对的,粗粒度配置计算的粒度一般为4、8、16、32位,非常适合进行算
[应用]
PIC24HJ系列入门: 配置位及时钟配置
1、下载MPLAB X IDE   在MPLAB x 官网下载对应系统的mplab x IDE 并安装。如果是采用C语言编辑 还需要安装相对应的xc compiler编辑器。 楼主使用的是pic24hj256GP206A 所以用的是xc16或者c30。 2、MPLAB X 操作简介 导入低版本工程 step 1、 在文件下找到import,进入子菜单选择MPLAB IDE v8项目。 step 2:    点击浏览后在弹出的文件框里找到需要导入的项目文件。在项目文件内找到.mcp文件双击,或者点击打开。然后点击下一步。 step3:    选择对应的芯片器件,下载器(或仿真器),编译器。 step4: 最后点击
[单片机]
PIC24HJ系列入门: <font color='red'>配置</font>位及时钟<font color='red'>配置</font>
MSP432P401R TI Drivers 库函数学习笔记(三)认识任务的创建及图形化配置
平台:Code Composer Studio 10.4.0 MSP432P401R SimpleLink™ 微控制器 LaunchPad™ 开发套件 (MSP-EXP432P401R) 任务的简单创建 根据上篇机翻的函数作用,及观察本例程模板,可总结出使用默认参数初始化线程任务的函数: 三个参数分别是线程任务名,优先级和堆栈大小 void My_Task_Init(void (*TaskName)(void *arg), int priority, size_t stacksize) { pthread_t thread; pthread_attr_t attrs; struct sched_p
[单片机]
MSP432P401R TI Drivers 库函数学习笔记(三)认识任务的创建及图形化<font color='red'>配置</font>
基层医用设备配置之争竞赛帷幕刚刚拉开
  在前不及结束的第62届中国国际医疗器械博览会(以下简称成都医博会)上,依然能看到春季会上引人注目的极为廉价的“全身DR”。这款DR标志性的红色纸袋上,广告词已经换了,从“59万的全身DR”改为了“全身DR,每月只需一万元”。当然,廉价和物美并不冲突。而知情人士透露,每月1万元的分期付款方式,一方面减轻了医院的一次性付款负担,一方面也考验着企业回款周期的压力。一位来自陕西某县医院的负责人说:“便宜固然好,但对于大型设备我们考虑更多的是质量和售后服务,不会因为手头紧张就盲目购进。”在器械行业的各种展会上,越来越多的基层医疗机构频频试水中高端设备。他们纷纷表示,对医院来说,重要的是如何选择适合自己的设备,购进之后如何提高使用和维护的
[医疗电子]
基于PCI总线的通用网络协议实验平台
摘要:介绍了一种利用以太网专用芯片在Linux操作系统下构建基于PCI总线的通用网络协议实验平台。通过修改该平台的软件部分,可以在实验平台上运行私有网络协议,测试协议性能,从而避免了针对每一种私有网络协议搭建专门的实验平台,节约了成本,缩短了开发时间。 关键词:PCI设备 Linux 通用网络实验设备 在网络技术快速发展的今天,根据用户特殊的需求,有时需要研发特殊的私有网络协议,以使网络的性能得到优化。研究新的网络协议,必须进行仿真以验证性能,但是网络结构复杂,性能指标多样,并且不同的协议需要的具体测试环境不同,因此很难用纯软件的方式(如NS2、OPNET)给出网络协议运行性能的有效描述。另一方面,如果针对每一种网络协议搭建
[网络通信]
STM32的GPIO操作配置和使用方法
一、前言 本篇开始对STM32的GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO的相关理论基础知识包括基本结构,工作模式和寄存器原理。 了解过STM32的GPIO相关的理论知识,这样在应用GPIO开发过程中,能更好的理解GPIO的特点,应用起来会更加的得心应手。 后续将从以下图1中所示的几个方面对GPIO应用设计中的步骤展开介绍。本篇先介绍GPIO的基本API函数定义,配置初始化的流程,以及使用技巧;针对将GPIO的引脚用于外部中断的功能将作为单独的一篇进行详细的讨论介绍。 图1 GPIO应用设计 二、API函数 STM32有多种类型的库,本节所介绍的STM32的GPIO函
[单片机]
STM32的GPIO操作<font color='red'>配置</font>和使用方法
STM32CubeMX配置硬件CRC
实验目的: 通过STM32CubeMX进行简单配置生成HAL库实现硬件CRC32校验的功能。 一、STM32CubeMX配置如下: 二、生成的HAL库源码如下: 三、Debug结果如下: 对字符串 DA0000000000 进行CRC32计算结果如下: 四、在线工具CRC校验结果如下: 完美,收工!
[单片机]
STM32CubeMX<font color='red'>配置</font>硬件CRC
微软展示Win 8平板电脑 配置四核ARM芯片
北京时间8月28日消息,据国外媒体报道,在上周五的“Tech Ed 2011新西兰”会议上,微软展示了名为Windows Slate、配置四核ARM芯片的平板电脑。 微软企业技术架构师帕特里克·赫维西(Patrick Hevesi)表示,该公司的目标是向企业用户提供iPad之外的其他选择。他说,微软正在与OEM合作伙伴合作生产更符合企业用户需求的新一代平板电脑,“我们发现,许多iPad用户同时配备了蓝牙键盘、鼠标、专用笔等”,微软的目标“是在一种混合产品中整合这些设备,使之更符合企业用户需求”。 赫维西指出,例如,微软在与部分合作伙伴合作,为新一代Windows平板电脑增添PC的“即时开机”(instant on)功能
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved