NRF24L01_学习笔记解读

NRF24L01_学习笔记解读
NRF24L01_学习笔记解读

按照如下方式在电路板上安排的管脚

8 7

6 5

4 3

2 1

各管脚如下定义:

8.IRQ 7.MISO

6.MOSI 5.SCK

4.CSN 3.CE

2.VCC 1.GND

具体说明:

3.CE 芯片的模式控制线。在CSN 为低的情况下,CE 协同NRF24L01 的CONFIG 寄存器共同决定NRF24L01 的状态(参照NRF24L01 的状态机)。

4.CSN 为芯片的片选线CSN 为低电平芯片工作

5.SCK 为芯片控制的时钟线(SPI时钟)

6.MOSI 为芯片控制数据线(Master output slave input)主输出从输入

7.MISO 芯片控制数据线(Master input slave output)master 硕士主人船长slave 从属奴隶

主输入从输出

8.IRQ 中断信号引脚。中断时变为低电平,即NRF24L01内部发生中断时IRQ 引脚从高电平变为低电平。引脚会在以下三种情况变低:Tx FIFO 发完并且收到ACK(使能ACK情况下)、Rx FIFO 收到数据、达到最大重发次数。

中断:

nRF24L01 的中断引脚(IRQ)为低电平触发,当状态寄存器中TX_DS(数据发送完成中断位)、RX_DR(接收数据中断位)或MAX_RT(达到最多次重发中断位)为高时触发中断。当MCU 给中断源写‘1’时,中断引脚被禁止。可屏蔽中断可以被IRQ 中断屏蔽。通过设置可屏蔽中断位为高,则中断响应被禁止。默认状态下所有的中断源是被禁止的。

在写寄存器之前一定要进入待机模式或掉电模式

NRF24L01有以下工作模式:

其工作模式又CE和寄存器内部PWR_UP、PRIM_RX共同控制,见下表:

NRF24L01所处模式 PWR_UP

位状态

PRIM_RX

位状态

CE引脚

电平

FIFO 寄存器状态

接收模式 1 1 1 -

发送模式 1 0 1 数据在TX FIFO 寄

存器中

发送模式 1 0 1→0 停留在发送模式,直至数据发送完

待机模式II 1 0 1 TX FIFO 为空

待机模式I 1 - 0 无数据传输

掉电模式0 - - -

PWR_UP和PRIM_RX 在配置寄存器(CONFIG)中设置,配置寄存器如下:配置寄存器:寄存器地址:00名称:CONFIG

CON FIG

配置寄存器(配置NRF24L0 1一些工作方式)第7位

第6位

(MASK_RX_

DR)

第5位

(MASK_TX_D

S)

第4位

(MASK_MAX_R

T)

第3位

(EN_CRC

)

第2位

(CRCO)

第1位

(PWR_UP

)

第0位

(PRIM_RX

保留

(未用)

(MASK_RX_

DR)可屏蔽

中断RX_RD。

1:IRQ 引脚

不显示

RX_RD 中断

0:RX_RD 中

断产生时

IRQ 引脚电

平为低

(MASK_TX_D

S)可屏蔽中

断TX_DS。

1:IRQ 引脚

不显示TX_DS

中断

0:TX_DS 中

断产生时IRQ

引脚电平为

(MASK_MAX_

RT)可屏蔽中

断MAX_RT。

1:IRQ 引脚不

显示TX_DS 中

0:MAX_RT 中

断产生时IRQ

引脚电平为低

(EN_CRC

)CRC使

能。如果

EN_AA

中任意

一位为

高则

EN_CRC

强迫为

高。

(CRCO)

CRC模

式。

‘0’-

8 位

CRC 校

‘1’-

16 位

CRC 校

(PWR_UP

)NRF24L

01上电

掉电模

式设置

位。1:上

电 0:掉

(PRIM_RX

)NRF24L01

接收、发射

模式设置

位。 1:接收

模式 0:发

射模式

STATUS

状态寄存器(反应

nrf24l01当前工作的各种状态)第

7

第6位

(RX_DR)

第5位(TX_DS)第4位

第3

第2

第1

第0位

(

)

(RX_DR)接

收数据中断

位。当接收到

有效数据后

置1。写

‘1’清除中

(TX_DS)数据发送

完成中断。当数据发送

完成后产生中断。如果

工作在自动应答模式

下,只有当接收到应答

信号后此位置1。写

‘1’清除中断。

(MAX_RT)达到

最多次重发中断。

写‘1’清除中

断。如果MAX_RT

中断产生则必须

清除后系统才能

进行通讯

(RX_P_NO)即

接收数据通道号

位。000-101:数

据通道号、110:

未使用、111:RX

FIFO 寄存器为

(TX_FULL)

TX FIFO 寄

存器满标志。

1:TX FIFO 寄

存器满。0: TX

FIFO 寄存器

未满,有可用空

间。

5.1收发模式

收发模式有Enhanced ShockBurstTM收发模式、ShockBurstTM收

发模式和直接收发模式三种,收发模式由器件配置字决定,具体配置

将在器件配置部分详细介绍。

5.1.1 Enhanced ShockBurstTM收发模式

Enhanced ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速(1Mbps)发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率。与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:

尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);

数据在空中停留时间短,抗干扰性高。

Enhanced ShockBurstTM技术同时也减小了整个系统的平均工作电流。

在Enhanced ShockBurstTM收发模式下,NRF24L01自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,在发送模式下,置CE为高,至少10us,将时发送过程完成后。

5.1.1.1 Enhanced ShockBurstTM发射流程

A. 把接收机的地址和要发送的数据按时序送入NRF24L01;

B. 配置CONFIG寄存器,使之进入发送模式。

C. 微控制器把CE置高(至少10us),激发NRF24L01进行Enhanced ShockBurstTM

发射;

D.N24L01的Enhanced ShockBurstTM发射(1) 给射频前端供电;(2)射频数据打包(加

字头、CRC校验码);(3) 高速发射数据包;(4)发射完成,NRF24L01进入空闲状态。

4.1.1.2 Enhanced ShockBurstTM接收流程

A. 配置本机地址和要接收的数据包大小;

B. 配置CONFIG寄存器,使之进入接收模式,把CE置高。

C. 130us后,NRF24L01进入监视状态,等待数据包的到来;

D.当接收到正确的数据包(正确的地址和CRC校验码),NRF2401自动把字

头、地址和CRC校验位移去;

E. NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起微

控制器中断)通知微控制器;

F. 微控制器把数据从NewMsg_RF2401 读出;

G. 所有数据读取完毕后,可以清除STATUS寄存器。NRF2401可以进入

四种主要的模式之一。

5.1.2 ShockBurstTM收发模式

ShockBurstTM收发模式可以与Nrf2401a,02,E1及E2兼容,具体表述前

看本公司的N-RF2401文档。

5.2 空闲模式

NRF24L01的空闲模式是为了减小平均工作电流而设计,其最大的优点是,实现节能的同时,缩短芯片的起动时间。在空闲模式下,部分片内晶振仍在工作,此时的工作电流跟外部晶振的频率有关。

5.4 关机模式

在关机模式下,为了得到最小的工作电流,一般此时的工作电流为900nA左右。关机模式下,配置字的内容也会被保持在NRF2401片内,这是该模式与断电状态最大的区别。

5.5增强型的ShockBurst TM 模式

增强型ShockBurst TM 典型的双链方式为:发送方要求终端设备在接收到数据后有应答信号,以便发送方检测有无数据丢失,一旦丢失则重发数据。重发数据设置在地址为04 的数据重发设置寄存器用于设置其重发次数及设置在未收到应答信号后等待重发的时间。

nRF24L01 在接收模式下可以接收6 路不同通道的数据,见下图。每一个数据通道使用不同的地址,但是共用相同的频道。也就是说6 个不同的nRF24L01 设置为发送模式后可以与同一个设置为接收模式的

nRF24L01 进行通讯,而设置为接收模式的nRF24L01 可以对这6 个发射端进行识别。数据通道0 是唯一

的一个可以配置为40 位自身地址的数据通道。1~5 数据通道都为8 位自身地址和32 位公用地址。所有的数据通道都可以设置为增强型ShockBurst 模式。

NRF24L01在确认收到数据后记录地址,并以此地址为目标地址发送应答信号,在发送端,数据通道0被用作接收应答信号,因此属通道0 的接收地址要与发送地址端地址相等,以确保接收到正确的应答信号。

当MCU 控制NRF24L01发送数据时,NRF24L01就会启动发送数据,发送完后NRF24L01就会转到接收模式并等待终端的应答信号。如果没有收到应答信号,NRF24L01就会重发数据包,知道收到应答信号,或达到重发次数寄存器设定的最大值为止,如果重发次数超过了设定值则产生MAX_RT (最大重发次数中断)(应该在该中断没有被屏蔽的情况下的时候才会发生)

只要收到确认信号,nRF24L01 就认为最后一包数据已经发送成功(接收方已经收到数据),把TX FIFO 中的数据清除掉并产生TX_DS 中断(数据发送完中断)(IRQ 引脚置高)。

增强型ShockBurstTM 发送模式: 1、 配置寄存器位PRIM_RX 为低

2、 当MCU 有数据要发送时,接收节点地址(TX_ADDR )和有效数据(TX_PLD)通过SPI 接口写入

nRF24L01。发送数据的长度以字节计数从MCU 写入TX FIFO 。当CSN 为低时数据被不断的写入。 发送端发送完数据后,将通道0 设置为接收模式来接收应答信号,其接收地址(RX_ADDR_P0)与接 收端地址(TX_ADDR)相同。

例:在上图 中数据通道5 的发送端(TX5)及接收端(RX)地址设置如下: TX5:TX_ADDR=0xB3B4B5B605 TX5:RX_ADDR_P0=0xB3B4B5B605 RX :RX_ADDR_P5=0xB3B4B5B605

3、设置CE 为高,启动发射。CE 高电平持续时间最小为10 us。

4、 nRF24L01 ShockBurstTM 模式:

无线系统上电

启动内部16MHz 时钟

无线发送数据打包(见数据包描述)

高速发送数据(由MCU 设定为1Mbps 或2Mbps)

5、如果启动了自动应答模式(自动重发计数器不等于0,ENAA_P0=1),无线芯片立即进入接收模式。

如果在有效应答时间范围内收到应答信号,则认为数据成功发送到了接收端,此时状态寄存器的

TX_DS 位置高并把数据从TX FIFO 中清除掉。如果在设定时间范围内没有接收到应答信号,则重

新发送数据。如果自动重发计数器(ARC_CNT)溢出(超过了编程设定的值),则状态寄存器的

MAX_RT 位置高。不清除TX FIFO 中的数据。当MAX_RT 或TX_DS 为高电平时IRQ 引脚产生中

断。IRQ 中断通过写状态寄存器来复位(见中断章节)。如果重发次数在达到设定的最大重发次数

时还没有收到应答信号的话,在MAX_RX 中断清除之前不会重发数据包。数据包丢失计数器

(PLOS_CNT)在每次产生MAX_RT 中断后加一。也就是说:重发计数器ARC_CNT 计算重发数据

包次数,PLOS_CNT 计算在达到最大允许重发次数时仍没有发送成功的数据包个数。

6、如果CE 置低,则系统进入待机模式I。如果不设置CE 为低,则系统会发送TX FIFO 寄存器中下

一包数据。如果TX FIFO 寄存器为空并且CE 为高则系统进入待机模式II.

7、如果系统在待机模式II,当CE 置低后系统立即进入待机模式I.

增强型ShockBurstTM 接收模式:

1、 ShockBurstTM 接收模式是通过设置寄存器中PRIM_RX 位为高来选择的。准备接收数据的通道必须

被使能(EN_RXADDR 寄存器),所有工作在增强型ShockBurstTM 模式下的数据通道的自动应答功

能是由(EN_AA 寄存器)来使能的,有效数据宽度是由RX_PW_Px 寄存器来设置的。地址的建立过

程见增强型ShockBurstTM 发送章节。

2、接收模式由设置CE 为高来启动。

3、 130us 后nRF24L01 开始检测空中信息。

4、接收到有效的数据包后(地址匹配、CRC 检验正确),数据存储在RX_FIFO 中,同时RX_DR 位

置高,并产生中断。状态寄存器中RX_P_NO 位显示数据是由哪个通道接收到的。

5、如果使能自动确认信号,则发送确认信号。

6、 MCU 设置CE 脚为低,进入待机模式I(低功耗模式)。

7、 MCU 将数据以合适的速率通过SPI 口将数据读出。

8、芯片准备好进入发送模式、接收模式或掉电模式。

两种数据双方向的通讯方式:

如果想要数据在双方向上通讯,PRIM_RX 寄存器必须紧随芯片工作模式的变化而变化。处理器必须保证PTX 和PRX 端的同步性。在RX_FIFO 和TX_FIFO 寄存器中可能同时存有数据。

数据通道:

nRF24L01 配置为接收模式时可以接收6 路不同地址相同频率的数据。每个数据通道拥有自己的地址

并且可以通过寄存器来进行分别配置。

数据通道是通过寄存器EN_RXADDR 来设置的,默认状态下只有数据通道0 和数据通道1 是开启状

态的。

每一个数据通道的地址是通过寄存器RX_ADDR_Px 来配置的。通常情况下不允许不同的数据通道设

置完全相同的地址。

数据通道0 有40 位可配置地址。数据通道1-5 的地址为:32 位共用地址+各自的地址(最低字节)。

下图所示的是数据通道1-5 的地址设置方法举例。所有数据通道可以设置为多达40 位,但是1-5 数据通

道的最低位必须不同。

当从一个数据通道接收到数据,并且此数据通道设置为应答方式的话,则nRF24L01 在收到数据后

产生应答信号,此应答信号的目标地址为接收通道地址。

寄存器配置有些是针对所有数据通道的,有些则是针对个别的。如下设置举例是针对所有数据通道的:

● CRC 使能/禁止

● CRC 计算

●接收地址宽度

●频道设置

●无线数据通信速率

● LNA 增益

●射频输出功率

数据通道1-5 的配置方式

六、NRF24L01 的SPI 配置

SPI 指令设置

用于SPI 接口的常用命令见下表。当CSN 为低时,SPI 接口开始等待一条指令,任何一条新指令均由CSN 的由高到低的转换开始

表6-1 串行接口指令设置

SPI接口指令

指令名称指令格式操作

R_REGISTER 000A AAAA 读配置寄存器。AAAAA指出读操作的寄存器地址

以下是寄存器内

容及说明:(在NRF24L01模块说明书中具体的以后有时间再补)

C 语言复合赋值语句:“a=a+b ;”可写成 “a+=b;” 而 “a=a*(b+c);” 可写成“a*=b+c ;” uchar |= MISO; 就是uchar=uchar | MISO;

NRF24L01 的接口 可以任选在单片机的 P1口或P3口,但在本人单片机实验板上(实验板型号是CCDZ-B ) P2口上数据传输不出去,或是很少情况下能够传出去 具体原因不详。根据其有一份说明NRF24L01 若要接在P0口上要接一个10K 的上拉电阻,似乎在单片机四排IO 口中数P0 的驱动能力和带负载能力最强!本人猜测这样做是为了

W_REGISTER 001A AAAA 写配置寄存器。AAAAA 指出写操作的寄存器地址只能在掉电模式或待机模式下操作

R_RX_PAYLO

AD

0110 0001 读RX 有效数据:1—32字节。读操作全部从字节0开始。

当读RX 有效数据完成后,FIFO 寄存器中有效数据被清除

应用于接收模式下

W_RX_PAYLO

AD 1010 0000

写TX 有效数据:1-32字节。写操作从字节0开始。应用于

发射模式下

FLUSH_TX

1110 0001 清除TX FIFO 寄存器,应用于发生模式下。

FLUSH_RX

1110 0010

清除RX FIFO 寄存器,应用于接收模式下。在传输应答信号过程中不应执行此指令。也就是说,若传输应答信

号过程中执行此指令的话将使得应答信号不能被完整的传输。

REUSE_TX_P

L

1110 0011 应用于发射端。重新使用上一包发射的有效数据。当CE=1

时,数据被不断重新发射。在发射数据包过程中必须禁

止数据包重利用功能

NOP

1111 1111 空操作。可用来读状态寄存器。

保护无线数传模块和单片机!具体的要翻阅单片机IO口驱动能力,和其最大输出输入电流了!

NRF24L01 Rx 和Tx 初始化配置说明

Tx 模式初始化过程

1)写Tx 节点的地址TX_ADDR

2)写Rx 节点的地址(主要是为了使能Auto Ack)RX_ADDR_P0

3)使能AUTO ACK EN_AA

4)使能PIPE 0 EN_RXADDR

5)配置自动重发次数SETUP_RETR

6)选择通信频率RF_CH

7)配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP

8 ) 选择通道0 有效数据宽度Rx_Pw_P0

9)配置24L01 的基本参数以及切换工作模式CONFIG。

详细说明:

1.写Tx 节点的地址TX_ADDR SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS,

TX_ADR_WIDTH);

2.写Rx 节点的地址(主要是为了使能Auto Ack)RX_ADDR_P0 SPI_Write_Buf(WRITE_REG +

RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); 为了应答接收设备,接收通道0地址和发送地址相同

3.使能AUTO ACK EN_AA SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);

该函数为写寄存器函数有两个参数第一个参数是写寄存器指令EN_AA是自动应答功能寄存器地址该寄存器为8位可读写寄存器0-5为ENAA_P0-ENAA_P5 数据通道自动应答允许1 为允许0为不允许6-7位为保留位未用默认为0 第二个参数即是要向寄存器写入的数值此处为0x01 即是允许接收通道0 自动应答其他的都不能

4.使能PIPE 0 EN_RXADDR

Tx 模式初始化过程

1)写Tx 节点的地址TX_ADDR

2)写Rx 节点的地址(主要是为了使能Auto Ack)RX_ADDR_P0

3)使能AUTO ACK EN_AA

4)使能PIPE 0 EN_RXADDR

5)配置自动重发次数SETUP_RETR

6)选择通信频率RF_CH

7)配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP

8 ) 选择通道0 有效数据宽度Rx_Pw_P0

9)配置24L01 的基本参数以及切换工作模式CONFIG。

详细说明:

1.写Tx 节点的地址TX_ADDR 用函数SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS,

TX_ADR_WIDTH); 函数有三个参数第一个是寄存器指令参数给出写寄存器指令并且向TX_ADDR 寄存器写入TX_ADDR寄存器是发送地址寄存器四十位寄存器装入发送地址的在增强型ShockBurstTM 模式下RX_ADDR_P0 与此地址相等。TX_ADDRESS 是一个要写入的发送地址通常设置为一个数组其长度即是地址的长度长度指定又TX_ADR_WIDTH 指定通常为40 位地址即5个16进制数组成

2. 写Rx 节点的地址(主要是为了使能Auto Ack)RX_ADDR_P0 用函数SPI_Write_Buf(WRITE_REG +

RX_ADDR_P0, TX_ADDRESS, T X_ADR_WIDTH); 该函数有三个参数第一个WRITE_REG + RX_ADDR_P0 是写寄存器命令然后就是频道0接收数据地址(RX_ADDR_P0)

3.使能AUTO ACK EN_AA 用函数SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);

该函数为写寄存器函数有两个参数第一个参数是写寄存器指令EN_AA是自动应答功能寄存器地址该寄存器为8位可读写寄存器0-5为ENAA_P0-ENAA_P5 数据通道自动应答允许1 为允许0为不允许6-7位为保留位未用默认为0 第二个参数即是要向寄存器写入的数值此处为0x01 即是允许接收通道0 自动应答其他的都不能

4.使能PIPE 0 EN_RXADDR 用函数Write_Reg(WRITE_REG + EN_RXADDR, 0x01);

该函数为写寄存器函数EN_RXADDR 为接收地址允许寄存器是8位的可读写寄存器0-5为ERX_P0-ERX_P5接收数据通道允许 1 为允许 0为不允许6-7位为保留位未用默认为0 复位值0、1 通道为1 即允许此处为0x01 即允许通道0 接收地址即允许那个通道接收数据

5.配置自动重发次数SETUP_RETR 用函数SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a); 主要操

作自动重发配置寄存器SETUP_RETR 该寄存器为8位寄存器0—3位为自动重发数值设置位自动重发计数‘0000’-禁止自动重发‘0000’-自动重发一次……‘0000’-自动重发15 次4—7位为自动重发延时设置位各位逻辑关系如下自动重发延时‘0000’-等待250+86us ‘0001’-等待500+86us ‘0010’-等待750+86us ……‘1111’-等待4000+86us(延时时间是指一包数据发送完成到下一包数据开始发射之间的时间间隔)

6.选择通信频率RF_CH 函数Write_Reg(WRITE_REG + RF_CH, 40); RF_CH 工作频率设置寄存器

8位0--6位可用第八位为保留位7位值可以设置128 个频段实际是125个频段从2400MH到2525MH 值可以任意设定但是接收发送必须一致

7.配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP 函数

Write_Reg(WRITE_REG + RF_SETUP, 0x07); RF_SETUP 为发射参数设置寄存器8位5—7位保留未用默认为000 0—4位分别是0 位为低噪声放大增益1—2位为发射功率设置00--11发射功率分别是‘00’—-18dBm ‘01’—-12dBm

‘10’—-6dBm ‘11’—0dBm 第3 位为数据传输速率设置位‘0’–1Mbps ‘1’—2 Mbps 第四位为PLL_LOCK 允许,仅应用于测试模式

8.选择接收通道有效数据宽度Rx_Pw_P0 函数Write_Reg(WRITE_REG + RX_PW_P0,

TX_PLOAD_WIDTH); Rx_Pw_P0 为数据通道0 数据宽度设置寄存器8位6—7位保留未用0—5位0 为设置不合法 1.为一字节宽度32 为32字节有效宽度相应有Rx_Pw_P1—Rx_Pw_P5 数据通道宽度寄存器设置方法类似

9.配置24L01 的基本参数以及切换工作模式CONFIG 函数Write_Reg(WRITE_REG + CONFIG, 0x0f);

CONFIG 为NRF24L01 的基本参数设置寄存器8位第0位为接收模式和发射模式选择位 1 为接收模式0 为发射模式。第1位为上电掉电模式设置位 1 为上电模式0为掉电模式。第2位为CRC校验模式设置位‘0’-8 位CRC 校验‘1’-16 位CRC 校验。第3位为CRC校验使能位 1 为使能。如果EN_AA 中任意一位为高则EN_CRC 强迫为高。第4位为可屏蔽中断MAX_RT 位1:IRQ 引脚不显示TX_DS 中断0:MAX_RT 中断产生时IRQ 引脚电平为低(此处是该中断介绍保留)。第5位为可屏蔽中断TX_DS位 1:IRQ 引脚不显示TX_DS 中断0:TX_DS 中断产生时IRQ 引脚电平为低第6位为可屏蔽中断RX_RD 位1:IRQ 引脚不显示RX_RD 中断0:RX_RD 中断产生时IRQ 引脚电平为低第7位保留未用

至此接收模式设置完毕

Rx 模式初始化过程:

初始化步骤24L01 相关寄存器

1)写Rx 节点的地址RX_ADDR_P0

2)使能AUTO ACK EN_AA

3)使能PIPE 0 EN_RXADDR

4)选择通信频率RF_CH

5) 选择通道0 有效数据宽度Rx_Pw_P0

6)配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP

7)配置24L01 的基本参数以及切换工作模式CONFIG。

详细说明:

1.写RX节点地址,用函数SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS,

TX_ADR_WIDTH); 该函数有三个参数第一个WRITE_REG + RX_ADDR_P0 是写寄存器命令然后就是频道0接收数据地址(RX_ADDR_P0)

数据通道0 接收地址。最大长度:5 个字节(先写低字节,所写字节数量由TX_ADR_WIDTH 设定)2.使能AUTO ACK EN_AA 用函数SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);

该函数为写寄存器函数有两个参数第一个参数是写寄存器指令EN_AA是自动应答功能寄存器地址该寄存器为8位可读写寄存器0-5为ENAA_P0-ENAA_P5 数据通道自动应答允许1 为允许0为不允许6-7位为保留位未用默认为0 第二个参数即是要向寄存器写入的数值此处为0x01 即是允许接收通道0 自动应答其他的都不能

3.使能PIPE 0 EN_RXADDR 用函数Write_Reg(WRITE_REG + EN_RXADDR, 0x01);

该函数为写寄存器函数EN_RXADDR 为接收地址允许寄存器是8位的可读写寄存器0-5为ERX_P0-ERX_P5接收数据通道允许 1 为允许 0为不允许6-7位为保留位未用默认为0 复位值0、1 通道为1 即允许此处为0x01 即允许通道0 接收地址即允许那个通道接收数据

4.选择通信频率RF_CH 函数Write_Reg(WRITE_REG + RF_CH, 40); RF_CH 工作频率设置寄存器

8位0--6位可用第八位为保留位7位值可以设置128 个频段实际是125个频段从2400MH到2525MH 值可以任意设定但是接收发送必须一致

5.选择接收通道有效数据宽度Rx_Pw_P0 函数Write_Reg(WRITE_REG + RX_PW_P0,

TX_PLOAD_WIDTH); Rx_Pw_P0 为数据通道0 数据宽度设置寄存器8位6—7位保留未用0—5位0 为设置不合法 1.为一字节宽度32 为32字节有效宽度相应有Rx_Pw_P1—Rx_Pw_P5 数据通道宽度寄存器设置方法类似

6.配置发射参数(低噪放大器增益、发射功率、无线速率)RF_SETUP 函数

Write_Reg(WRITE_REG + RF_SETUP, 0x07); RF_SETUP 为发射参数设置寄存器8位5—7位保留未用默认为000 0—4位分别是0 位为低噪声放大增益1—2位为发射功率设置00--11发射功率分别是‘00’—-18dBm ‘01’—-12dBm

‘10’—-6dBm ‘11’—0dBm 第3 位为数据传输速率设置位‘0’–1Mbps ‘1’—2 Mbps 第四位为PLL_LOCK 允许,仅应用于测试模式

7.配置24L01 的基本参数以及切换工作模式CONFIG 函数Write_Reg(WRITE_REG + CONFIG, 0x0f);

CONFIG 为NRF24L01 的基本参数设置寄存器8位第0位为接收模式和发射模式选择位 1 为接收模式0 为发射模式。第1位为上电掉电模式设置位 1 为上电模式0为掉电模式。第2位为CRC校验模式设置位‘0’-8 位CRC 校验‘1’-16 位CRC 校验。第3位为CRC校验使能位 1 为使能。如果EN_AA 中任意一位为高则EN_CRC 强迫为高。第4位为可屏蔽中断MAX_RT 位1:IRQ 引脚不显示TX_DS 中断0:MAX_RT 中断产生时IRQ 引脚电平为低(此处是该中断介绍保留)。第5位为可屏蔽中断TX_DS位 1:IRQ 引脚不显示TX_DS 中断0:TX_DS 中断产生时IRQ 引脚电平为低第6位为可屏蔽中断RX_RD 位1:IRQ 引脚不显示RX_RD 中断0:RX_RD 中断产生时IRQ 引脚电平为低第7位保留未用

至此接收模式设置完毕

一些寄存器介绍:

NRF24L01地址宽度设置寄存器:(SETUP_AW)

寄存器名称:SETUP_AW 。寄存器地址:0x03。寄存器位数:8位。各位详细介绍:该寄存器为设置地址宽度寄存器针对所有数据通道0—1位为接收/发射地址宽度设置位具体是:‘00’-无效、‘01’-3 字节宽度、‘10’-4 字节宽度、‘11’-5 字节宽度2—7位为保留位未用

NRF24L01状态寄存器:(STATUS)

寄存器名称:STATUS 。寄存器地址:0x07。寄存器位数:8位。各位详细介绍:该寄存器为反映NRF24L01内部其他寄存器工作状态的寄存器第0位为TX_FULL 即TX FIFO 寄存器满标志,逻辑1:TX FIFO 寄存器满、逻辑0: TX FIFO 寄存器未满,有可用空间。第1-3位为RX_P_NO 即接收数据通道号位000-101:数据通道号、110:未使用、111:RX FIFO 寄存器为空。第4位为MAX_RT 即达到最多次重发中断写‘1’清除中断。如果MAX_RT 中断产生则必须清除后系统才能进行通讯第5位为TX_DS 数据发送完成中断。当数据发送完成后产生中断。如果工作在自动应答模式下,只有当接收到应答信号后此位置一。写‘1’清除中断。第6位RX_DR 接收数据中断位。当接收到有效数据后置一。写‘1’清除中断。第7位保留位未用

NRF24L01发送检测寄存器(OBSERVE_TX )

寄存器名称:OBSERVE_TX。寄存器地址:0x08。寄存器位数:8位。各位详细介绍:发送检测寄存器第0-3位ARC_CNT 重发计数器。发送新数据包时此寄存器复位第4-7位PLOS_CNT 数据包丢失计数器。当写RF_CH 寄存器时此寄存器复位。当丢失15 个数据包后此寄存器重启。复位值为0.

NRF24L01载波检测寄存器(CD)

寄存器名称:CD。寄存器地址:0x09。寄存器位数:8位。各位详细介绍:第0位载波检测位复位值为0 第1-7位保留位未用

NRF24L01 FIFO检测寄存器(FIFO_STATUS)

寄存器名称:FIFO_STATUS 。寄存器地址:0x17。寄存器位数:8位。各位详细介绍:FIFO 为先入先出堆栈的意思第0位RX_EMPTY RX FIFO 寄存器空标志位( RX FIFO接收先入先出堆栈寄存器)。 1:RX FIFO 寄存器空、0: RX FIFO 寄存器非空。第1位RX_FULL RX FIFO 寄存器满标志。

1:RX FIFO 寄存器满、0: RX FIFO 寄存器未满,有可用空间。第2-3位保留位未用第4位TX_EMPTY TX FIFO 寄存器空标志。1:TX FIFO 寄存器空、0: TX FIFO 寄存器非空。第5位TX_FULL TX FIFO 寄存器满标志。1:TX FIFO 寄存器满、0: TX FIFO 寄存器未满,有可用空间。第6位TX_REUES 若TX_REUSE=1 则当CE 位高电平状态时不断发送上一数据包。TX_REUSE 通过SPI 指令REUSE_TX_PL 设置,通过W_TX_PALOAD或FLUSH_TX 复位。第7位保留位未用

接收模块检查数据是否收到的方式:可以使用下列函数语句......

/**************************************************

函数:Check_ACK()

描述:检查接收设备有无接收到数据包,设定没有收到应答信号是否重发

/**************************************************/

uchar Check_ACK(bit clear)

{

while(IRQ);

sta = SPI_RW(NOP); // 读状态寄存器值

if(MAX_RT) // MAX_RT 即达到最多次重发中断写‘1’清除中断。如果MAX_RT 中断产生则必

须清除后系统才能进行通讯

if(clear) // 是否清除TX FIFO,没有清除在复位MAX_RT中断标志后重发SPI_RW(FLUSH_TX); //清空发送缓冲

SPI_RW_Reg(WRITE_REG + STATUS, sta); // 清除TX_DS或MAX_RT中断标志

IRQ = 1;

if(TX_DS)

return(0x00);

else

return(0xff);

}

/**************************************************/

1、IRQ 为中断信号,IRQ 引脚会在以下三种情况变低:

Tx FIFO 发完并且收到ACK(使能ACK情况下)、Rx FIFO 收到数据、达到最大重发次数。

NRF24L01状态寄存器:(STATUS)

寄存器名称:STATUS 。寄存器地址:0x07。寄存器位数:8位。各位详细介绍:该寄存器为反映NRF24L01内部其他寄存器工作状态的寄存器第0位为TX_FULL 即TX FIFO 寄存器满标志,逻辑1:TX FIFO 寄存器满、逻辑0: TX FIFO 寄存器未满,有可用空间。第1-3位为RX_P_NO 即接收数据通道号位000-101:数据通道号、110:未使用、111:RX FIFO 寄存器为空。第4位为MAX_RT 即达到最多次重发中断写‘1’清除中断。如果MAX_RT 中断产生则必须清除后系统才能进行通讯第5位为TX_DS 数据发送完成中断。当数据发送完成后产生中断。如果工作在自动应答模式下,只有当接收到应答信号后此位置一。写‘1’清除中断。第6位RX_DR 接收数据中断位。当接收到有效数据后置一。写‘1’清除中断。第7位保留位未用

STATU S状态寄

存器(反应nrf24l01当前工作的各种状态)第7

第6位

(RX_DR)

第5位(TX_DS)第4位

第3

第2

第1

第0位

(未

用)

(RX_DR)接

收数据中断

位。当接收到

有效数据后

置1。写

‘1’清除中

(TX_DS)数据发送

完成中断。当数据发送

完成后产生中断。如果

工作在自动应答模式

下,只有当接收到应答

信号后此位置1。写

‘1’清除中断。

(MAX_RT)达到

最多次重发中断。

写‘1’清除中断。

如果MAX_RT 中断

产生则必须清除后

系统才能进行通讯

(RX_P_NO)即

接收数据通道号

位。000-101:数据

通道号、110:未使

用、111:RX FIFO

寄存器为空

(TX_FULL)

TX FIFO 寄

存器满标志。

1:TX FIFO 寄

存器满。0:TX

FIFO 寄存器

未满,有可用空

间。

配置寄存器:寄存器地址:00名称:CONFIG

CON FIG

配置寄存器(配置NRF24L0 1一些工作方式)第7位

第6位

(MASK_RX_

DR)

第5位

(MASK_TX_D

S)

第4位

(MASK_MAX_R

T)

第3位

(EN_CRC

)

第2位

(CRCO)

第1位

(PWR_UP

)

第0位

(PRIM_RX

保留

(未用)

(MASK_RX_

DR)可屏蔽

中断RX_RD。

1:IRQ 引脚

不显示

RX_RD 中断

0:RX_RD 中

断产生时

IRQ 引脚电

平为低

(MASK_TX_D

S)可屏蔽中

断TX_DS。

1:IRQ 引脚

不显示TX_DS

中断

0:TX_DS 中

断产生时IRQ

引脚电平为

(MASK_MAX_

RT)可屏蔽中

断MAX_RT。

1:IRQ 引脚不

显示TX_DS 中

0:MAX_RT 中

断产生时IRQ

引脚电平为低

(EN_CRC

)CRC使

能。如果

EN_AA

中任意

一位为

高则

EN_CRC

强迫为

高。

(CRCO)

CRC模

式。

‘0’-

8 位

CRC 校

‘1’-

16 位

CRC 校

(PWR_UP

)NRF24L

01上电

掉电模

式设置

位。1:上

电 0:掉

(PRIM_RX

)NRF24L01

接收、发射

模式设置

位。 1:接收

模式 0:发

射模式

状态寄存器:寄存器地址:07名称:STATUS

STATU第7

位第6位

(RX_DR)

第5位(TX_DS)第4位(MAX_RT)

第3

第2

第1

第0位

(TX_FULL)

S状态寄

存器(反应nrf24l01当前工作的各种状态)保

(未

用)

(RX_DR)接

收数据中断

位。当接收到

有效数据后

置1。写

‘1’清除中

(TX_DS)数据发送

完成中断。当数据发

送完成后产生中断。如

果工作在自动应答模

式下,只有当接收到应

答信号后此位置1。写

‘1’清除中断。

(MAX_RT)达到

最多次重发中断。

写‘1’清除中断。

如果MAX_RT 中断

产生则必须清除后

系统才能进行通讯

(RX_P_NO)即

接收数据通道号

位。000-101:数据

通道号、110:未使

用、111:RX FIFO

寄存器为空

(TX_FULL)

TX FIFO 寄

存器满标志。

1:TX FIFO 寄

存器满。0:TX

FIFO 寄存器

未满,有可用空

间。

NRF24L01时序信息:

nRF24L01 时序最大值最小值参数名掉电模式→待机模式 1.5ms Tpd2stby 待机模式→发送/接收模式130us Tstby2a CE 高电平保持时间10us Thce

CSN 为低电平,CE 上升沿的延迟时间4us Tpece2csn

nRF24L01 在掉电模式下转入发射模式或接收模式前必须经过1.5ms 的待机模式。注意:当关掉电源VDD 后寄存器配置内容丢失,模块上电后需重新进行配置。

数值分析典型习题

特别声明:考试时需带计 算器作辅助计算 1.2015x *=是经四舍五入得到的近似值,则其相对误差* r e ≤-31 104 ?. 2. 01(),(), ,()n l x l x l x 是以01,, ,n x x x 为节点的拉格朗日插值基函数,则 3.设(0)1(1)3(2)4(3)2f =,f =,f =,f =,[0123]f =,,,1 3 - . 4. 利用Simpson 公式求?2 1 2dx x = 7.3 5. 设求积公式1 0()d (),(1)n k k k f x x A f x n ≈≥∑?=是Gauss 型求积公式,则3 n k k k A x == ∑1 .4 6. 数值微分公式(2)(2) ()i i i f x h f x h f x h +≈ --'的截断误差为 2().O h 7. 设1101A ?? = ??? ,则A 的谱半径()A ρ= 1 ,A 的条件数1cond ()A = 4. 8. 用牛顿下山法求解方程3 03 x x -=根的迭代公式是 2 13 3(1),3n n n n x x x x x λ+-=-- 下山条件是 1()().n n f x f x +< 9.对任意初始向量(0)x 及任意向量f ,线性方程组的迭代公式(1)()(0,1,2,)k k k +=+=x Bx f ,迭代序列()k x 收敛于方程组的精确解x *的充分必要条件是()1.ρ

中国农业大学研究生数值分析考试重点及笔记

中国农业大学数值分析研究生课程重点 后面有笔者的笔记!! 第1章 1、 5个概念(绝对误差、绝对误差限、相对误差、相对误差限,有效数字)及其计算,数值运算的误差估计 2、算法稳定性的概念及算法设计的5个原则 第2章 1、牢记拉格朗日插值公式、牛顿插值公式,掌握余项推导 2、了解均差的性质 3、会用基函数和承袭性两种方法构造埃尔米特插值问题,并会推导余项 4、为何要分段低次插值?会构造分段线性和分段三次埃尔米特插值 5、三次样条插值的2种构造思路 第3章 会利用最小二乘法解决具体问题 第4章 1、机械求积公式、代数精度的概念理解和计算

2、插值型求积公式的定义和判断,插值型求积公式中求积系数有何特点?如何证明? 3、求积公式余项的推导 4、什么叫牛顿-柯特斯求积公式?总结其优缺点 5、牢记梯形公式、辛普森公式及其余项(会推导),牢记柯特斯公式 6、复化求积公式的计算 7、高斯型求积公式的定义、判断和使用,高斯型求积公式中求积系数有何特点?如何证明? 8、总结学过的数值求积公式,说明其关系 第5章 1、会用高斯消去法、高斯列主元素法、直接三角分解法、(改进)平方根法、追赶法求解线性方程组 2、会计算矩阵和向量的常用范数 3、线性方程组性态的分析 第6章 1、三种迭代法(雅可比、高斯-赛德尔、松弛法)的构造及其矩阵形式的推导 2、会构造迭代公式求方程组的解,并判断是否收敛 第7章

1、了解不动点迭代法是否收敛的判断方法 2、会判断迭代法收敛的收敛速度(收敛阶) 3、会构造不动点迭代公式求方程的根,并指明收敛阶数 4、牛顿迭代法公式推导,求单根和重根收敛性的证明 5、牛顿迭代法的优缺点及其改进 第9章 1、牢记欧拉的5个公式及其推导 2、会用三种不同方法推导欧拉显式单步公式 3、掌握局部截断误差的概念及其应用

数值分析重点公式

第一章 非线性方程和方程组的数值解法 1)二分法的基本原理,误差:~ 1 2 k b a x α+--< 2)迭代法收敛阶:1lim 0i p i i c εε+→∞ =≠,若1p =则要求01c << 3)单点迭代收敛定理: 定理一:若当[],x a b ∈时,[](),x a b ?∈且' ()1x l ?≤<,[],x a b ?∈,则迭代格式收敛 于唯一的根; 定理二:设()x ?满足:①[],x a b ∈时,[](),x a b ?∈, ②[]121212,,, ()(),01x x a b x x l x x l ???∈-≤-<<有 则对任意初值[]0,x a b ∈迭代收敛,且: 110 1 11i i i i i x x x l l x x x l αα+-≤ ---≤-- 定理三:设()x ?在α的邻域内具有连续的一阶导数,且'()1?α<,则迭代格式具有局部收敛性; 定理四:假设()x ?在根α的邻域内充分可导,则迭代格式1()i i x x ?+=是P 阶收敛的 () ()()0,1,,1,()0j P j P ? α?α==-≠ (Taylor 展开证明) 4)Newton 迭代法:1'() () i i i i f x x x f x +=-,平方收敛 5)Newton 迭代法收敛定理: 设()f x 在有根区间[],a b 上有二阶导数,且满足: ①:()()0f a f b <; ②:[]' ()0,,f x x a b ≠∈; ③:[]'' ,,f x a b ∈不变号 ④:初值[]0,x a b ∈使得'' ()()0f x f x <; 则Newton 迭代法收敛于根α。

[VIP专享]聚类分析案例研究

聚类分析案例—我国各地区普通高等教育发展状况分析 聚类分析又称群分析,是对多个样本(或指标)进行定量分类的一种多元统计分析 方法。对样本进行分类称为Q型聚类分析,对指标进行分类称为R型聚类分析。本案例 运用Q型和R型聚类分析方法对我国各地区普通高等教育的发展状况进行分析。 1.案例研究背景 近年来,我国普通高等教育得到了迅速发展,为国家培养了大批人才。但由于我国 各地区经济发展水平不均衡,加之高等院校原有布局使各地区高等教育发展的起点不一致,因而各地区普通高等教育的发展水平存在一定的差异,不同的地区具有不同的特点。对我国各地区普通高等教育的发展状况进行聚类分析,明确各类地区普通高等教育发展 状况的差异与特点,有利于管理和决策部门从宏观上把握我国普通高等教育的整体发展 现状,分类制定相关政策,更好的指导和规划我国高教事业的整体健康发展。 -592- 2.案例研究过程 (1)建立综合评价指标体系 高等教育是依赖高等院校进行的,高等教育的发展状况主要体现在高等院校的相 关方面。遵循可比性原则,从高等教育的五个方面选取十项评价指标,具体如图4。(2)数据资料 指标的原始数据取自《中国统计年鉴,1995》和《中国教育统计年鉴,1995》除以 各地区相应的人口数得到十项指标值见表6。其中: 1 x 为每百万人口高等院校数; 2 x 为 每十万人口高等院校毕业生数; 3 x 为每十万人口高等院校招生数; 4 x 为每十万人口高等院校在校生数; 5 x 为每十万人口高等院校教职工数; 6 x 为每十万人口高等院校专职教师数;7 x 为高级职称占专职教师的比例;8 x 为平均每所高等院校的在校生数;9 x 为 国家财政预算内普通高教经费占国内生产总值的比重;10 x 为生均教育经费。 图4 高等教育的十项评价指标

数值分析典型例题

第一章典型例题 例3 ln2=0.…,精确到10-3的近似值是多少 解 精确到10-3=,即绝对误差限是=, 故至少要保留小数点后三位才可以。ln2 第二章典型例题 例1 用顺序消去法解线性方程组 ??? ??1 -=4+2+4=+2+31 -=4++2321 321321x x x x x x x x x 解 顺序消元 ?? ?? ??????---???→???????????---????→???????????--=-?+-?+-?+1717005.555.00141 25.025.105.555.001412142141231412]b A [)3()2/1()2/3(231312r r r r r r M 于是有同解方程组 ?? ? ??-==--=++17175.555.0142332321x x x x x x 回代得解 x 3=-1, x 2=1,x 1=1,原线性方程组的解为X =(1,1,-1)T 例2 取初始向量X (0)=(0,0,0)T ,用雅可比迭代法求解线性方程组 ??? ??5 =+2+23=++1=2-2+321 321321x x x x x x x x x 解 建立迭代格式 ???????+--=+--=++-=+++5223122) (2)(1)1(3 ) (3)(1)1(2 ) (3)(2)1(1k k k k k k k k k x x x x x x x x x (k =1,2,3,…)

第1次迭代,k =0 X (0)=0,得到X (1)=(1,3,5)T 第2次迭代,k =1 ???????-=+?-?-=-=+--==+?+?-=3 532123 351515232)2(3) 2(2)2(1x x x X (2)=(5,-3,-3)T 第3次迭代,k =2 ???????=+-?-?-==+---==+-?+-?-=1 5)3(2521 3)3(511)3(2)3(2)2(3) 3(2)3(1x x x X (3)=(1,1,1)T 第4次迭代,k =3 ???????=+?-?-==+--==+?+?-=1 512121 311111212)2(3) 2(2)2(1x x x X (4)=(1,1,1)T 例4 证明例2的线性方程组,雅可比迭代法收敛,而高斯-赛德尔迭代法发散。 证明 例2中线性方程组的系数矩阵为 A =?? ?? ? ?????-122111221 于是 D =?? ?? ??????100010001 D -1=D ??????????=022001000L ~ ????? ?????-=000100220U ~ 雅可比迭代矩阵为

数值分析心得体会

数值分析心得体会 篇一:学习数值分析的经验 数值分析实验的经验、感受、收获、建议班级:计算131 学号:XX014302 姓名:曾欢欢 数值分析实验主要就是学习MATLAB的使用以及对数值分析类容的应用,可以使学生更加理解和记忆数值分析学得类容,也巩固了MATLAB的学习,有利于以后这个软件我们的使用。在做实验中,我们需要具备较好的编程能力、明白MATLAB软件的使用以及掌握数值分析的思想,才能让我们独立自主的完成该作业,如果是上述能力有限的同学,需要借助MATLAB的书以及网络来完成实验。数值分析实验对于我来说还是有一定难度,所以我课下先复习了MATLAB的使用方法以及编写程序的基本类容,借助互联网和同学老师资源完成了数值分析得实验的内容。在实验书写中,我复习了各种知识,所以我认为这门课程是有必要且是有用处的,特别是需要处理大量实验数据的人员,很有必要深入了解学习它,这样在以后的工作学习里面就减少了很多计算问题也提高了实验结果的精确度。 学习数值分析的经验、感受、收获、建议数值分析的内容包括插值与逼近,数值微分与数值积分,非线性方程与线性方程组的数值解法,矩阵的特征值与特征向量计算,常微分方程数值解等。

首先我们必须明白数值分析的用途。通常所学的其他数学类学科都是由公式定理开始,从研究他们的定义,性质再到证明与应用。但实际上,尤其是工程,物理,化学等其它具体的学科。往往我们拿到 手的只是通过实验得到的数据。如果是验证性试验,需要代回到公式 进行分析,验证。但往往更多面对的是研究性或试探性试验,无具体 公式定理可代。那就必须通过插值,拟合等计算方法进行数据处理以得到一个相对可用的一般公式。还有许多计算公式理论上非常复杂,在工程中不实用,所以必须根据实际情况把它转化成多项式近似表 示。学习数值分析,不应盲目记公式,因为公事通常很长且很乏味。其次,应从公式所面临的问题以及用途出发。比如插值方法,就 是就是把实验所得的数据看成是公式的解,由这些解反推出一个近似公式,可以具有局部一般性。再比如说拟合,在插值的基础上考虑实 验误差,通过拟合能将误差尽可能缩小,之后目的也是得到一个具有 一定条件下的一般性的公式。。建议学习本门课程要结合知识与实际,比如在物理实验里面很多

数值分析典型习题资料

数值分析典型习题

特别声明:考试时需带计 算器作辅助计算 1.2015x *=是经四舍五入得到的近似值,则其相对误差* r e ≤ -31 104 ?. 2. 01(),(),,()n l x l x l x L 是以01,,,n x x x L 为节点的拉格朗日插值基函数,则 3.设(0)1(1)3(2)4(3)2f =,f =,f =,f =,[0123]f =,,,1 3 - . 4. 利用Simpson 公式求?2 1 2dx x = 7.3 5. 设求积公式1 0()d (),(1)n k k k f x x A f x n ≈≥∑?=是Gauss 型求积公式,则3 n k k k A x == ∑1 .4 6. 数值微分公式(2)(2) ()i i i f x h f x h f x h +≈ --'的截断误差为 2().O h 7. 设1101A ?? = ??? ,则A 的谱半径()A ρ= 1 ,A 的条件数1cond ()A = 4. 8. 用牛顿下山法求解方程3 03 x x -=根的迭代公式是 2 13 3(1),3n n n n x x x x x λ+-=-- 下山条件是 1()().n n f x f x +< 9.对任意初始向量(0)x 及任意向量f ,线性方程组的迭代公式(1)()(0,1,2,)k k k +=+=L x Bx f ,迭代序列()k x 收敛于方程组的精确解x *的充分必要条件是()1.ρ

数值计算方法学习心得

数值计算方法学习心得 ------一个代码的方法是很重要,一个算法的思想也很重要,但 在我看来,更重要的是解决问题的方法,就像爱因斯坦说的内容比 思维本身更重要。 我上去讲的那次其实做了挺充分的准备,程序的运行,pdf文档,算法公式的推导,程序伪代码,不过有一点缺陷的地方,很多细节 没有讲的很清楚吧,下来之后也是更清楚了这个问题。 然后一学期下来,总的来说,看其他同学的分享,我也学习到 许多东西,并非只是代码的方法,更多的是章胜同学的口才,攀忠 的排版,小冯的深入挖掘…都是对我而言比算法更加值得珍惜的东西,又骄傲地回想一下,曾同为一个项目组的我们也更加感到做项 目对自己发展的巨大帮助了。 同时从这些次的实验中我发现以前学到的很多知识都非常有用。 比如说,以前做项目的时候,项目导师一直要求对于要上传的 文件尽量用pdf格式,不管是ppt还是文档,这便算是对产权的一种 保护。 再比如代码分享,最基础的要求便是——其他人拿到你的代码 也能运行出来,其次是代码分享的规范性,像我们可以用轻量级Ubuntu Pastebin,以前做过一小段时间acm,集训队里对于代码的分享都是推荐用这个,像数值计算实验我觉得用这个也差不多了,其 次项目级代码还是推荐github(被微软收购了),它的又是可能更 多在于个人代码平台的搭建,当然像readme文档及必要的一些数据 集放在上面都更方便一些。

然后在实验中,发现debug能力的重要性,对于代码错误点的 正确分析,以及一些与他人交流的“正规”途径,讨论算法可能出 错的地方以及要注意的细节等,比如acm比赛都是以三人为一小组,讨论过后,讲了一遍会发现自己对算法理解更加深刻。 然后学习算法,做项目做算法一般的正常流程是看论文,尽量 看英文文献,一般就是第一手资料,然后根据论文对算法的描述, 就是如同课上的流程一样,对算法进一步理解,然后进行复现,最 后就是尝试自己改进。比如知网查询牛顿法相关论文,会找到大量 可以参考的文献。 最后的最后,想说一下,计算机专业的同学看这个数值分析, 不一定行云流水,但肯定不至于看不懂写不出来,所以我们还是要 提高自己的核心竞争力,就是利用我们的优势,对于这种算法方面 的编程,至少比他们用的更加熟练,至少面对一个问题,我们能思 考出对应问题的最佳算法是哪一个更合适解决问题。 附记: 对课程的一些小建议: 1. debug的能力不容忽视,比如给一个关于代码实现已知错误的代码给同学们,让同学们自己思考一下,然后分享各自的debug方法,一步一步的去修改代码,最后集全班的力量完成代码的debug,这往往更能提升同学们的代码能力。 2. 课堂上的效率其实是有点低的,可能会给学生带来一些负反馈,降低学习热情。 3. 总的来说还是从这门课程中学到许多东西。 数值分析学习心得体会

数值分析典型例题

第一章典型例题 例3…,精确到10-3的近似值是多少? 解 精确到10-3=,即绝对误差限是?=, 故至少要保留小数点后三位才 可以。ln2? 第二章典型例题 例1 用顺序消去法解线性方程组 解 顺序消元 于是有同解方程组 回代得解 x 3=-1, x 2=1,x 1=1,原线性方程组的解为X =(1,1,-1)T 例2 取初始向量X (0)=(0,0,0)T ,用雅可比迭代法求解线性方程组 解 建立迭代格式 ??? ????+--=+--=++-=+++5223122)(2)(1)1(3) (3)(1)1(2 )(3)(2)1(1k k k k k k k k k x x x x x x x x x (k =1,2,3,…) 第1次迭代,k =0 X (0)=0,得到X (1)=(1,3,5)T 第2次迭代,k =1 X (2)=(5,-3,-3)T 第3次迭代,k =2 X (3)=(1,1,1)T 第4次迭代,k =3

X (4)=(1,1,1)T 例4 证明例2的线性方程组,雅可比迭代法收敛,而高斯-赛德尔迭 代法发散。 证明 例2中线性方程组的系数矩阵为 A =?? ?? ? ?????-122111221 于是 D =?? ?? ??????100010001 D -1 =D ?? ?? ? ?????=022001000L ~ ?? ?? ? ?????-=000100220U ~ 雅可比迭代矩阵为 B 0=?? ?? ? ?????--=??????????-??????????-=+--022101220022101220100010001)U ~L ~(D 1 得到矩阵B 0的特征根03,2,1=λ,根据迭代基本定理4,雅可比迭代法收敛。 高斯-赛德尔迭代矩阵为 G =-U ~ )L ~D (1-+ =-?? ?? ??????----=??????????-??????????---=??????????-??????????-2003202200001002201200110010001002201220110011 解得特征根为?1=0,?2,3=2。由迭代基本定理4知,高斯-赛德尔迭代发散。 例5 填空选择题: 1. 用高斯列主元消去法解线性方程组 作第1次消元后的第2,3个方程分别为 。

油藏数值模拟学习心得

通过了几节课的“油藏数值模拟课”的学习,我知道了“油藏数值模拟”是应用计算机研究油气藏中多相流体渗流规律的数值计算方法,它能够解决油气藏开发过程中难以解析求解的极为复杂的渗流及工程问题,是评价和优化油气藏开发方案的有力工具。它主要是让我们石油石油工程专业的学生掌握一些基本的油藏数值模拟技术和技巧,学习基本的油藏渗流数学模型及其解法、计算方法和应用方法,培养我们用计算机解决油藏开发问题的能力。 “油藏数值模拟”涉及的学科较多,利用数学知识和计算机知识较多,我认为是非常难的。虽然教师教的很认真也很耐心,我仍然不能跟着老师的节奏。因为一开始就知道这个软件很有实际应用价值,所以我也就特别的想好好的学习它。可惜现在我面临着考研这座大山,我实在是没有充分的时间课下来好好的温习与研究老师上课所讲的东西。很遗憾,后来老师讲的东西我有些就不会了。好在前三四节课讲的内容还学会了,学会了模拟三层的油层概况。也许这点知识对我以后的再次学习会有不错的基础作用吧!总之还是很感谢老师的耐心教导。 在学习的过程中,我觉得油藏原始参数,如渗透率、孔隙度等的收集,以及油藏原始数据是否齐全准确非常重要,尤其是一开始填date时的单位的选择,这些都关系到数值模拟的效果。如果原始资料很少,数值模拟的效果就不可能好。数值模拟方法越复杂,所需的原始资料也越多。收集资料时,如发现必需的资料不够或不准确,应采取补救措施。通常要求准备的参数包括:①油藏地质参数。产层构造图,油、气、水分布图,油层厚度、孔隙度、渗透率、原始含油饱和度的等值图等。②流体物理性质参数。地面性质和地层状态下的物性数据,原始压力和地层温度数据,对凝析气田还需要相图和相平衡的资料。③专项岩心分析资料。油水相渗透率曲线,油气相渗透率曲线,油层润湿性,吸入和排驱毛细管压力曲线;对碳酸盐岩孔隙裂缝双重介质储层,还需渗吸曲线。④单井和分层分区的生产数据和有关测试资料。⑤油田建设和经济分析的有关数据。 将收集的油藏地质资料进行系统整理后,要将油藏的地质特征模式化,以充分反映油藏的构造特征和沉积特征,如油层物理性质参数的分布、油气水的分布、油气水在地面和地下的性质、驱油动力、压力系统和地温梯度等。油藏地质模型是否符合实际情况,直接影响数值模拟成果的准确性。 由于人们对油田实际地质条件的认识有一定的限度,计算时所用的参数也就有一定的局限性,因此,第一次模拟计算的结果,如压力、产量、气油比、含水率等与油田实际生产状况常有较大的出入。必须进行分析,修改相关的计算参数,重新进行计算。通常,经过多次修改可使计算结果与实际生产历史基本相符,误差在允许范围以内。从工程应用的角度看,可认为此时所应用的计算参数,反映了油田地下的实际状况,使用这些参数来计算和预测油田未来的动态,能够达到较高的精度。在油田开采过程中这类历史拟合要进行多次,使油田的模型逐步更接近实际而得到更适用的结果。

数值分析知识点

第一章绪论(1-4) 一、误差来源及分类 二、误差的基本概念 1.绝对误差及绝对误差限 2.相对误差及相对误差限 3.有效数字 三、数值计算的误差估计 1.函数值的误差估计 2.四则运算的误差估计 四、数值计算的误差分析原则 第二章插值(1.2.4-8) 一、插值问题的提法(定义)、插值条件、插值多项式的存在唯一性 二、拉格朗日插值 1.拉格朗日插值基函数的定义、性质 2.用拉格朗日基函数求拉格朗日多项式 3.拉格朗日插值余项(误差估计) 三、牛顿插值 1.插商的定义、性质 2.插商表的计算 3.学会用插商求牛顿插值多项式 四、等距节点的牛顿插值 1.差分定义、性质及计算(向前、向后和中心) 2.学会用差分求等距节点下的牛顿插值公式 五、学会求低次的hermite插值多项式 六、分段插值 1.分段线性插值 2.分段三次hermite插值 3.样条插值 第三章函数逼近与计算(1-6) 一、函数逼近与计算的提法(定义)、常用两种度量标准(一范数、二范数\平方逼近) 二、基本概念 连续函数空间、最佳一次逼近、最佳平方逼近、内积、内积空间、偏差与最小偏差、偏差点、交错点值、平方误差 三、学会用chebyshev定理求一次最佳一致逼近多项式,并估计误差(最大偏差) 四、学会在给定子空间上通过解方程组求最佳平方逼近,并估计误差(平方误差) 五、正交多项式(两种)定义、性质,并学会用chebyshev多项式性质求特殊函数的(降阶)最佳一次逼近多项式 六、函数按正交多项式展开求最佳平方逼近多项式,并估计误差 七、一般最小二乘法(多项式拟合)求线性拟合问题 第四章数值分析(1-4) 一、数值求积的基本思想及其机械求积公式

数值分析典型例题

数值分析典型例题 例1 对下列各数写出具有5位有效数字的近似值。236.478, 0.00234711, 9.000024, 9.0000343 10?. 解:按照定义,以上各数具有5位有效数字的近似值分别为:236.478, 0.0023471, 9.0000, 9.0000310?。 注意: *x =9.000024的5位有效数字是9.0000而不是9,因为9 是1位有效数字。 例2 指出下列各数具有几位有效数字。2.0004, -0.00200, -9000, 9310?, 23 10-?。 解:按照定义,以上各数的有效数字位数分别为5, 3, 4,1,1 例3 已测得某物体行程* s 的近似值s=800m ,所需时间* s 的近似值为t=35s ,若已知m s s s t t 5.0||,05.0||**≤-≤-,试求平均速度v 的绝对误差和相对误差限。 解:因为t s v /=,所以)()(1)()()(2t e t s s e t t e t v s e s v v e -=??+??≈ 从 而 05.00469.035 800 5.0351|)(||||)(|1|)(|22≤≈+?≤+≤t e t s s e t v e 同样v v e v e r )()(≈)()()()(t e s e t e v t t v s e v s s v r r r -=??+??= 所以00205.035 05 .08005.0|)(||)(||)(|≈+≤+≤t e s e v e r r r 因此绝对误差限和相对误差限分别为0.05和0.00205。 例4试建立积分20,,1,05 =+=n dx x x I n n 的递推关系,并研究它的误差 传递。 解:151 --= n n I n I ……………………………………………..…...(1) 5ln 6ln 0-=I ,计算出0I 后可通过(1)依次递推计算出1I ,…,20I 。 但是计算0I 时有误差0e ,由此计算出的1I ,…,20I 也有误差,由(1)可 知近似值之间的递推关系为 151 --= n n I n I ……………………………………………….…..(2) (1)-(2)可得 01)5(5e e e n n n -=-=-,由0I 计算n I 时误差被放大了n 5倍。所以(1)不稳 定。 (1) 可以改写为 n I I n n 51 511+ -=- ……………………………………… (3) 如果能先求出20I ,则依次可以求出19I ,…,0I ,计算20I 时有误差,这样根据(3)计算19I ,…,0I 就有误差,误差传播为 n n n e e ?? ? ??-=-511 ,误差依次减少。 例5 用二分法求解方程012)(23=+--=x x x x f 在区间[0,1]内的1个实根,要求有3为有效数字。 解:因为0)1()0(

相关文档
最新文档