精华内容
下载资源
问答
  • 保持寄存器 输入寄存器 让我们深入了解寄存器。 寄存器是处理器用来更有效地处理数据的内部存储器存储位置。 如果不是寄存器,则处理器在想从内存中读取或写入数据时都将被迫与控制总线进行交互。 寄存器与...

    保持寄存器 输入寄存器

    让我们深入了解寄存器。

    寄存器是处理器用来更有效地处理数据的内部存储器存储位置。 如果不是寄存器,则处理器在想从内存中读取或写入数据时都将被迫与控制总线进行交互。

    寄存器与变量相似,不同之处在于在任何给定的体系结构上都有固定数量的寄存器。 寄存器存储要处理的数据元素,而不必深入研究和访问内存。 更具体地说,每个寄存器都是CPU中存储单个数据的特殊位置。 通常,寄存器包含引用内存中其他位置的指针-寄存器之间的值移动非常常见。 32位IA-32体系结构中有十个不同的寄存器。 寄存器分为三类。

    1. 通用寄存器
    2. 控制寄存器比较和数学计算
    3. 段寄存器存储不同段(代码,数据和堆栈)的起始地址

    通用寄存器可以进一步分为以下子组:

    • 数据寄存器-算术,逻辑和其他运算
    • 指针寄存器指向堆栈上和内存中的位置
    • 索引寄存器索引寻址

    最常见的32位寄存器是EAX,EBX,ECX和EDX。

    寄存器有效利用空间。 实际上,下半部分的32位寄存器可用作16或8位寄存器。

    例如,AX是主累加器寄存器。 它通常用于输入/输出和大多数算术指令。 例如,在一个乘法运算中,一个操作数根据大小或特定操作数存储在EAX或AX或AL寄存器中。

    一个特别重要的通用寄存器是eax寄存器。 Eax有两种常见用途,用于存储函数的返回值和作为某些计算的特殊寄存器。 Eax是所谓的易失性寄存器。 也就是说,一旦函数返回,就不能保证保留其值。 这意味着在函数返回后,处理器可以使用该寄存器空间来存储另一段数据。 但是,在函数范围内,eax在返回之前被设置为函数的返回值。 这是一个设置为返回3的函数:

    return 3;  // Return the value 3

    这是汇编中的相同代码:

    mov eax, 3 ; Set eax (the return value) to 3
    ret ; Return

    另一个重要的通用寄存器是esp寄存器。 esp寄存器存储指向堆栈顶部的指针。 请注意,堆栈在虚拟内存中朝堆的方向向下增长。

    希望您对寄存器更加满意。 简而言之,它们只是CPU中为特定类型的数据保留的特殊位置。 当函数求值并最终终止时,值会不断变化。

    翻译自: https://hackernoon.com/demystifying-registers-23dea1e83702

    保持寄存器 输入寄存器

    展开全文
  • 2.3 读保持寄存器 03H 1) 说明 读保持寄存器。可读取单个或多个保持寄存器。 2) 查询 从机地址为11H。保持寄存器的起始地址为006BH,结束地址为006DH。该次查询总共访问3个保持寄存器。 表2.3.1 读保持寄存器-查询 ...

    2.3 读保持寄存器 03H

    1) 说明

    读保持寄存器。可读取单个或多个保持寄存器。

    2) 查询

    从机地址为11H。保持寄存器的起始地址为006BH,结束地址为006DH。该次查询总共访问3个保持寄存器。

    表2.3.1 读保持寄存器-查询

     

    Hex

    从机地址

    11

    功能码

    03

    寄存器地址高字节

    00

    寄存器地址低字节

    6B

    寄存器数量高字节

    00

    寄存器数量低字节

    03

    CRC高字节

    76

    CRC低字节

    87


     

    3) 响应

    保持寄存器的长度为2个字节。对于单个保持寄存器而言,寄存器高字节数据先被传输,低字节数据后被传输。保持寄存器之间,低地址寄存器先被传输,高地址寄存器后被传输。

    表2.3.2 读保持寄存器-响应

     

    Hex

    从机地址

    11

    功能码

    03

    字节数

    06

    数据1高字节(006BH)

    00

    数据1低字节(006BH)

    6B

    数据2高字节(006CH)

    00

    数据2 低字节(006CH)

    13

    数据3高字节(006DH)

    00

    数据3低字节(006DH)

    00

    CRC高字节

    38

    CRC低字节

    B9

     

    表2.3.3 保持寄存器006BH到006DH结果

    006BH

    高字节

    006BH

    低字节

    006CH

    高字节

    006CH

    低字节

    006DH

    高字节

    006DH

    低字节

    00

    6B

    00

    13

    00

    00

     

     


    2.4 读输入寄存器 04H

    1) 说明

    读输入寄存器命令。该命令支持单个寄存器访问也支持多个寄存器访问。

    2) 查询

    从机地址为11H。输入寄存器的起始地址为0008H,寄存器的结束地址为0009H。本次访问访问2个输入寄存器。

    表2.4.1 读输入寄存器-查询

     

    Hex格式

    从机地址

    11

    功能码

    04

    寄存器起始地址高字节

    00

    寄存器起始地址低字节

    08

    寄存器个数高字节

    00

    寄存器个数低字节

    02

    CRC高字节

    F2

    CRC低字节

    99


     

    3) 响应

    输入寄存器长度为2个字节。对于单个输入寄存器而言,寄存器高字节数据先被传输,低字节数据后被传输。输入寄存器之间,低地址寄存器先被传输,高地址寄存器后被传输。

    表2.4.2 读寄存器-响应

     

    Hex格式

    从机地址

    11

    功能码

    04

    字节数

    04

    数据1高字节(0008H)

    00

    数据1低字节(0008H)

    0A

    数据2高字节(0009H)

    00

    数据2低字节(0009H)

    0B

    CRC高字节

    8B

    CRC低字节

    80

    表2.4.3 输入寄存器0008H到0009H结果

    006BH

    高字节

    006BH

    低字节

    006CH

    高字节

    006CH

    低字节

    00

    0A

    00

    0B


    展开全文
  • 1.功能码:功能码在modbus协议用于表示信息帧的功能,常用的功能码有03,04,06,16等,其中03功能码的作用是读保持寄存器内容,04功能码的作用是读输入寄存器内容(输入寄存器和保持寄存器区别看下文),06功能
    在大家通读Modbus协议时,总是会碰到一些容易混淆的名词,从而导致对于协议的解读出现问题,在本文中,我们对于Modbus协议中可能会给大家造成困惑的名词作相关的解释。


    1.功能码:功能码在modbus协议用于表示信息帧的功能,常用的功能码有03,04,06,16等,其中03功能码的作用是读保持寄存器内容,04功能码的作用是读输入寄存器内容(输入寄存器和保持寄存器的区别看下文),06功能码的内容是预置单个保持寄存器,16功能码的内容则是预置多个保持寄存器。


    2.输入寄存器和保持寄存器:04功能码的作用就是读输入寄存器,而03功能码的作用则是读保持寄存器,很多人在看到这两个功能码的时候总是希望找到这两个功能码的区别,保持寄存器和输入寄存器到底是什么区别,modbus协议最开始是用来解决PLC的通信协议问题的,主要用于输入输出数字量信号以及模拟量信号,所谓的输入寄存器就是从模拟量信号输入引申出来的,即输入寄存器只能从模拟量信号输入端改变寄存器,而主机则不能通过下发指令改变输入寄存器的数据,而保持寄存器则是用于输出模拟量信号的,主机是可以改变寄存器数据,也就是说对于主机而言,输入寄存器是只读的,而保持寄存器是可以读写的,当主机用06,16功能码的指令去预置输入寄存器的时候,设备会返回一个代码为0x81的错误代码,即企图写只读寄存器。


    3.Modbus中的数据地址格式:在Modbus协议中,经常会出现类似于3xxxx,4xxxx寄存器,这个表示的是寄存器支持的数据类型。我们用列表来说明,还有Modbus数据地址格式是从0开始,比如以下一个寄存器40009,即表示保持寄存器,寄存器地址为00 08,类似的数据地址格式经常在组态软件以及PLC系统中用到。



    4.Modbus RTU/ASCII/TCP:Modbus协议最开始是用于可编程逻辑控制器(PLC)之间的通讯,由于其具有的开放性,大量的用于现场智能仪表。Modbus协议有多个变种,其中最著名的是Modbus RTU/Modbus ASCII和Modbus TCP通信协议。其中RTU/ASCII协议是基于串行口通信,而TCP协议则是基于以太网通信。他们之间的区别和联系请参考本站其他页面内容:Modbus RTU/TCP协议解析以及Modbus RTU/ASCII通信协议异同点。



    5.Modbus错误代码表,modbus有功能码,校验码,异常功能码和错误代码,其中异常功能码和错误代码非常容易混淆,一般来说异常功能码指的是某个功能码执行的时候出现的相应异常功能码,一般都是在功能码的基础上加上0x80,比如03功能码出现的异常码是0x83异常功能码,16功能码对应出现的异常功能码则是0x90,而错误代码则是表示出现错误的具体情况,比如寄存器地址不存在,不管是读还是写,如果该寄存器地址不存在的话,错误代码为02。具体情况请参阅本站其他页面文章。
    展开全文
  • 由于定义了输入寄存器和保持寄存器为全局变量,输入在前,保持在后,所以在RAM内部是自动顺延排序,而定义输入寄存器的个数少了一个,所以再向输入寄存器的最后一个寄存器写的时候,直接写入到了保持寄存器中,这个...
    由于定义了输入寄存器和保持寄存器为全局变量,输入在前,保持在后,所以在RAM内部是自动顺延排序,而定义输入寄存器的个数少了一个,所以再向输入寄存器的最后一个寄存器写的时候,直接写入到了保持寄存器中,这个问题很难找到原因,直到逐步添加调试钩子函数,才发现问题。
    
    展开全文
  • <p>RT项目要求寄存器里存各类数据 我刚接触这个 看保持寄存器数据类型是uint16 里面可以存中文的字符串么</p>
  • 寄存器

    千次阅读 2020-12-18 13:03:51
    1. 寄存器 集成8位寄存器【74HC/HCT374】 功能表 2. 移位寄存器 (1) 基本的移位寄存器 (2) 多功能双向移位寄存器 工作原理 典型的多功能4位双向移位寄存器
  • 寄存器和存储器

    万次阅读 多人点赞 2018-04-12 12:43:48
    内核的分类可分为单内核双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分,附一张内核体系结构照片 可以看到内核所处的位置: CPU 中央处理器(CPU,Central Proce...
  • 寄存器的建立时间和保持时间详解

    千次阅读 2020-03-30 23:11:27
    建立时间——寄存器触发沿来临...光看定义可能不太清楚,我们就从寄存器的结构来分析所谓的建立时间和保持时间。 先上图寄存器的建立时间和保持时间详解 寄存器的建立时间和保持时间详解 上图为一种D触发器结构图,...
  • 2.5 写单个线圈寄存器 05H 1) 说明 写单个线圈寄存器。FF00H值请求线圈处于ON状态,0000H值请求线圈处于OFF状态。05H指令设置单个线圈的状态,15H指令可以设置多个线圈的状态,两个指令虽然都设定线圈的ON/OFF状态...
  • 最近程序中使用到了—用寄存器配置GPIOx的输入输出模式,简单记录一下,方便今后自己参考。 // An highlighted block //IO方向设置 #define DHT11_1_IO_IN() {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|= 8<&...
  • 寄存器和内存

    2019-09-30 23:04:34
    我们拿一个OR门,把输入连回输出,如果把A变成1,1or 0输出0,所以看到两个输出都是1,将A改为0输出仍为0,所以电路能记录1.这是永久的,无论如何都不会变为0 与之相反,and门可记录0 为了能做出有用存储,我们把两...
  • 寄存器PLC地址与寄存器modbus协议地址

    万次阅读 多人点赞 2017-10-24 22:25:28
    第一位数字和寄存器类型的对应关系如表1所示。PLC地址例如40001、30002等。 寄存器modbus协议地址指通信时使用的寄存器地址,在实际编程中,由于寄存器PLC地址前缀的区分作用,所以只需说明后4位数...
  • 寄存器 存储器

    2019-08-10 17:55:14
    一、计算机硬件 ...先说内核:内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且...内核的分类可分为单内核双内核以及微内核。严格地说,内...
  • STM32F4的每组通用I/O端口包括4个32位配置寄存器(MODER,OTYPER,OSPEEDRPUPDR),2个32位数据寄存器(IDRODR),1个32位置位/复位寄存器(BSRR),1个32位锁定寄存器(LCKR)2个32位复用功能选择寄存器(AFRH...
  • 2.1 读线圈寄存器01H 1) 描述: 读MODBUS从机线圈寄存器当前状态。 2) 查询: 例如从机地址为11H,线圈寄存器的起始地址为0013H,结束地址为0037H。该次查询总共访问37个线圈寄存器。 表2.1.1 读线圈寄存器-查询 ...
  • 锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。 锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号...
  • 指令寄存器和程序计数器的区别

    万次阅读 2014-02-21 14:26:39
    1、程序存储器(program storage) ...指令划分为操作码地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器
  • 寄存器和内存的关系

    千次阅读 2012-07-20 11:12:38
    寄存器和内存的关系 标签:寄存器和内存 it 分类:计算机  中央处理器(CPU)由两个主要部分———控制器及运算器组成。其中程序计数器、指令寄存器、指令译码器、时序产生器操作控制器等组成了控制器。它是对...
  • 一、锁存器锁存器(latch)---对脉冲电平敏感,在时钟脉冲的电平作用下改变状态锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据...
  • 移位寄存器

    2013-06-21 00:34:47
    该移位寄存器具有左移、右移、并行输入数据、保持及异步清零5种功能。其中A、B、C、D为并行数据输入端,QA、QB、QC、QD为并行数据输出端;SRSI为右移串行数据输入端,SLSI为左移串行数据输入端;S1、S0为模式控制端...
  • 寄存器 SRAM DRAM存储单元区别

    千次阅读 2019-11-21 11:37:09
    寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,...
  • CPU 寄存器

    2019-09-27 01:41:10
    寄存器是中央处理器内的组成部分,是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)程序计数器(PC)。  寄存器是集成电路中非常重要的一...
  • STM32跑马灯实验_库函数版GPIO工作原理相关寄存器GPIO的模式GPIO寄存器说明: 每组GPIO端口的寄存器包括10个,共70个寄存器跑马灯实验代码 GPIO工作原理相关寄存器 STM32f407共有7组GPIO(GPIO ~ AGPIOA),每组...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,882
精华内容 17,952
关键字:

保持寄存器和输入寄存器的区别