简单记录一下

addr

name

作用

BC

RT

BM

00

Control

控制




01

Operation and Status

操作和状态




02

Current Command

当前命令




03

Interrupt Mask

中断屏蔽




04

Pending Interrupt

推迟中断




05

Interrupt Pointer

中断指针




06

Built-In Test (BIT) Register

内置测试(BIT)寄存器




07

Time Tag

时间间隔




08

Descriptor Pointer

描述符指针



09

1553B Status Word

1553B 状态字




10

Initialization Count

初始化计算

11

Monitor Command Pointer

监控命令指针


12

Monitor Data Pointer

监控数据指针


13

Monitor Block Count

监控块计数


14

Monitor Filter A

监测过滤器


15

Monitor Filter B

监测过滤器


16~17

RT Command Legalization

RT命令合法化


32

Enhanced Features

增强功能




Common Control Registers

Register 00 – Control

Control寄存器用于设置核心配置。在写入该寄存器之前,必须将STEX位置为LOW位。

EM 15693 指令 1553b指令字_stm32


Bit 15 – STEX (Start Execution)

将这个位取高开始核心操作。如果要停止操作,则可以将STEX取低。

  • BC操作:取低将在完成当前操作码后停止核心操作。在停止之前,核心确定下一个命令块指针地址,并将该值加载到寄存器8。对于EOL命令块,寄存器8不更新。

Bit 14 – SBIT (Start BIT)
核心不支持BIT,但启动核心操作时,SBIT (Start BIT)必须为Low。

Bit 13 – SRST (Software Reset)
当SRST取HIGH时,岩心立即复位。SRST将清除所有内部寄存器。核心会在重置时自动清除这部分。

Bit 12 – BAEN (Bus A Enable)
仅RT操作(被BC和BM实现忽略):采用BAEN HIGH启用总线A。设置LOW,核心将忽略所有通过总线A发送的命令。

Bit 11 – BBEN (Bus B Enable)
仅RT操作(被BC和BM实现忽略):采用BBEN HIGH启用总线B。设置LOW,核心将忽略所有通过总线B发送的命令。

Bit 10 – ETCE (External Timer Clock Enable)

  • ETCE的断言将迫使核心使用外部定时器时钟源。
  • RT和BM操作:ETCE控制内部Time Tag计数器的时钟源。
  • BC操作:ETCE控制用于次要帧定时的时钟源。
  • 注意:时钟频率必须在启动核心操作之前设定。

Bit 9 – MSGTO (Message Timeout)

  • BC和BM操作:MSGTO设置RT无响应超时时间。在MIL-STD-1553B操作期间,当分别设置LOW或HIGH时,可编程超时在14 μs或30 μs发生。在MIL-STD-1553A模式下,当分别设置为LOW或HIGH时,超时在9 μs或21 μs发生。
  • RT操作:当启用乒乓缓冲模式(位2)时,位9 set HIGH向主机确认乒乓模式已启用;如果设置为LOW,则表示此模式已被禁用。

Bits 8:7 – BUFM[1:0] (Buffer Mode)

仅RT操作:BUFM设置核心将使用标准缓冲区模式还是循环缓冲区模式(参见第46页的“循环缓冲区”了解更多细节)。BUFM位设置如表8-2所示(注意位顺序颠倒)。

EM 15693 指令 1553b指令字_stm32_02

Bit 6
Not used.

Bit 5 – BMC (Bus Monitor Control)

  • 仅BM操作:如果BMC设置为LOW,核心将监控总线上的所有RTs。如果设置为HIGH,核心将只监控在monitor Filter寄存器14和15中指定的RTs。

Bit 4 – BCEN (Broadcast Enable)
设置bcenhigh使能1553广播模式。设置BCEN LOW保留RT地址31 (11111b)作为RT地址使用。

Bit 3 – DYNBC (Dynamic Bus Control Acceptance)
只允许RT操作:设置DYNBC HIGH允许核心响应具有状态字位18 set HIGH的动态总线控制模式代码。当设置为LOW时,核心将不会在状态字中设置动态总线接受位。

Bit 2 – PPEN (Ping Pong Enable)

  • RT操作:如果将PPEN设置为HIGH,则启用乒乓缓冲模式;采用PPEN LOW启用消息索引功能。
  • BC操作:如果将PPEN设置为HIGH,内核将在消息重试时在总线A和总线B之间交替进行。如果设置为LOW,核心将只在命令块控制字中定义的编程总线上重试。

乒乓启用/禁用握手:启用/禁用握手允许用户使用Register_00[2]命令在不活跃的主缓冲区上关闭乒乓服务,而不需要停止核心缓冲区或将其设置为INDEX模式。但是,它必须在消息间隔和命令字处理时间过去之前输入,否则主缓冲区中接收到的数据将被覆盖。此外,必须在后续消息覆盖辅助缓冲区中的数据之前退出它。手册第9节中的远程终端乒乓操作部分还解释了如何使用命令字的第3位来确定数据是否被覆盖

Bit 1 – INEN (Interrupt Log List Enable)
当INEN设置为HIGH时,将启用中断日志记录。

Bit 0 – XMTSW (Transmit Word Status)

  • 仅RT操作:设置XMTSW高使核心在MIL-STD-1553A模式下执行传输状态字模式代码。

Register 01 – Operation and Status

操作和状态寄存器(图8-2)反映了内核的相关状态信息。 该寄存器不会在RSTINn上清除,但会反映施加到输入引脚RTA [4:01 RTPTY,MSEL 1:01,A / B STD和LOCKn上的实际激励。 将LOCKn设为LOW可以防止写入远程终端地址,模式选择以及A或B标准位。 当内核工作时(STEX = 1),无法写入该寄存器。

EM 15693 指令 1553b指令字_学习_03


Bits 15:11 – RTA[4:0] (Remote Terminal Address)

仅限于RT操作:将这些位置1即可确定内核的RT地址。 当LOCKn有效时,这些位是只读的

Bit 10 – RTPTY (RT Address Parity)
仅RT操作:设置该位是为了为RTA [4:0]中设置的RT地址提供奇校验,这是正确内核操作所必需的。 当LOCKn有效时,该位为只读。 该位值锁存在RSTINn的上升沿。

Bit 9:8 – MSEL[1:0] (Mode Select)

MSEL用于设置内核BC,RT,BM或BM / RT的工作模式。 设置如表8-3所示。

EM 15693 指令 1553b指令字_EM 15693 指令_04


Bit 7 – A/B STD (1553A or 1553B Support)

对于MIL-STD-1553B操作,将A / B STD设置为LOW,对于MIL-STD-1553A,将A / B STD设置为HIGH。 当LOCKn有效时,该位为只读。 该位值锁存在RSTINn的上升沿。 仅限于RT操作:将此位置1以进行MIL-STD-1553A操作,还可以使用XMTSW(寄存器0,位0)。

Bit 6 – LOCK (LOCK Status)
LOCK是一个只读位,指示输入信号LOCKn的反相状态,即,当内核被锁定时,LOCK = 1,而当内核被解锁时,LOCK = 0。 该位值锁存在RSTINn的上升沿。

Bit 5
Not used.

Bit 4 – SSYSF (SSYSF Status)
仅RT操作:SSYSF是只读位,指示输入信号SSYSFn的反相状态

Bit 3 – EX (Core Executing)
EX是一个只读位,指示内核的运行状态:HIGH,内核正在执行; LOW,内核处于空闲状态。

Bit 2 – TAPF (RT Address Parity Fail)
仅RT操作:当该只读位为HIGH时,表明该寄存器的15:11位和10位之间存在奇偶校验错误。

Bit 1 – READY (READY Status)
READY是只读位,指示输出信号READYn的反相状态。 复位时清除该位值。

Bit 0 – TERACT (Terminal Active)
TERACT是只读位,指示输出信号ACTIVE的反相状态,指示内核当前正在处理消息。 复位时清除该位值。

Register 02 – Current Command

如图8-3所示,该只读寄存器包含内核接收或发送的当前命令。

EM 15693 指令 1553b指令字_学习_05

Bits 15:0 – CC[15:0] (Current Command)
RT和BM操作:该寄存器包含内核接收的最后一个有效命令。
BC操作:开始发送命令字时,该寄存器包含内核正在发送的命令。 该值随着每个命令块的执行而更新。 在RT到RT的传输期间,该寄存器将反映最后收到的有效命令。

Register 03 – Interrupt Mask

Core1553BRM体系结构允许屏蔽所有中断。 如果该寄存器的对应位(图8-4)设置为LOW,则中断被屏蔽,从而允许主机或子系统暂时禁用中断服务。 被屏蔽时,不会发生中断通知。 事件发生后取消屏蔽中断不会为该事件生成中断。 (有关中断定义的更多详细信息,请参见第69页的“寄存器04-待处理的中断”。)

EM 15693 指令 1553b指令字_EM 15693 指令_06


Bit 15 – DMAF (DMA Fail Interrupt)

适用于所有操作模式.

Bit 14 – WRAPF (Wrap Fail Interrupt)

仅适用于BC和RT工作模式。

Bit 13 – TAPF (Terminal Address Parity Fail Interrupt)

仅适用于RT工作模式。

Bit 12 – BITF (BIT Fail Interrupt)

适用于所有操作模式。

Bit 11 – MERR (Message Error Interrupt)

适用于所有操作模式。

Bit 10 – SUBAD (Subaddress Accessed Interrupt)

仅适用于RT工作模式。

Bit 9 – BDRCV (Broadcast Command Received Interrupt)

仅适用于RT工作模式。

Bit 8 – IXEQ0 (Index Equal Zero Interrupt)

仅适用于RT工作模式。

Bit 7 – ILLCMD (Illegal Command Interrupt)

仅适用于RT工作模式。

Bit 6

Not used.

Bit 5 – EOL (End of List Interrupt)

仅适用于BC运行模式。

Bit 4 – ILLCMD (Illogical Command Interrupt)

仅适用于BC运行模式。

Bit 3 – ILLOP (Illogical Opcode Interrupt)

仅适用于BC运行模式。

Bit 2 – RTF (Retry Fail Interrupt)

仅适用于BC运行模式。

Bit 1 – CBA (Command Block Accessed Interrupt)

仅适用于BC运行模式。

Bit 0 – MBC (Monitor Block Counter Interrupt)

仅适用于BM工作模式。

Register 04 – Pending Interrupt

该寄存器(图8-5)标识中断事件。 在读取或写入任何其他内核寄存器结束时,将清除待处理中断寄存器。 如果设置了15:12范围内的一位,则信号INTOUTH被驱动为高电平。 如果设置的范围为11:0,则信号INTOUTM被驱动为高电平(有关中断的更多详细信息,请参见第79页的“中断”)。

EM 15693 指令 1553b指令字_EM 15693 指令_07


Bit 15 – DMAF (DMA Fail Interrupt)

所有工作模式:为了允许内核在1553总线上正确发送和接收,所有内存访问必须在指定时间内完成。 核心数据表详细介绍了存储器访问要求。 当内核访问内存时,将启动一个内部计时器。 如果在计数器减为0时内存访问未完成,则会生成此中断。 如果发生DMAF,则当前命令处理结束,并且内核将保持在线状态。 在RT操作期间:当前周期终止,并释放总线。

Bit 14 – WRAPF (Wrap Fail Interrupt)

仅限BC和RT工作模式:内核通过连续环回功能自动将发送的字(编码器字)与反射的解码器字进行比较。 如果编码器字和反射字不匹配,则在此处和内置测试(寄存器6,位14)中均将WRAPF位置1。

Bit 13 – TAPF (Terminal Address Parity Fail Interrupt)

仅限RT工作模式:该位置1表示高电平,表示RT地址奇偶校验错误。 当发生奇偶校验错误时,内核将不会开始运行(STEX位被强制为LOW),并且总线A和B未启用。 TAPF位也在内置测试(寄存器6,位13)中置1。

Bit 12

Not used.

Bit 11 – MERR (Message Error Interrupt)

所有操作模式:如果内核在曼彻斯特,同步字段,字数(太多或太少),MIL-STD-1553字奇偶校验,位数(太多或太少)或协议中检测到错误,则该位置1 。 在RT操作期间:当内核声明状态字的第9位(例如,非法命令,无效的数据字等)时,该位置1。.

Bit 10 – SUBAD (Subaddress Accessed Interrupt)

仅限RT操作模式:当预选的子地址已处理消息时,将设置SUBAD。 要预选子地址,需将子地址控制字中的IWA位(位6)置1。 主机必须查询中断日志的中断地址字(IAW),以确定哪个子地址产生了中断。

Bit 9 – BDRCV (Broadcast Command Received Interrupt)

仅限于RT工作模式:当内核接收到有效的广播命令时,将设置BDRCV,并且内核禁止状态字传输。

Bit 8 – IXEQ0 (Index Equal Zero Interrupt)

仅限RT操作模式:内核设置IXEQ0来指示内核已完成预定义数量的命令。 当子地址控制字中的INDX值从1减小到0时,或者在循环缓冲区模式下,缓冲区返回到起始位置时,将在索引模式下生成此中断。 发生此中断时,主机或子系统必须更新子地址描述符块,以防止潜在的数据丢失。

Bit 7 – ILLCMD (Illegal Command Interrupt)

仅限RT操作模式:当内核接收到非法命令时,将设置ILLCMD并仅以状态字响应。 状态字的第9位被置位。 命令由合法化寄存器(寄存器16到31)确定是合法还是非法。

Bit 6

Not used.

Bit 5 – EOL (End Of List Interrupt)

仅限BC工作模式:当核心到达“结束列表”命令时,将设置EOL。

Bit 4 – ILLCMD (Illogical Command Interrupt)

仅适用于BC工作模式:内核检查RT–RT终端地址字段匹配,RT–RT发送/接收位不匹配和正确顺序以及广播发送命令。 当检测到此类错误时,内核将设置该位并停止执行。

Bit 3 – ILLOP (Illogical Opcode Interrupt)

仅适用于BC工作模式:如果命令块中发生保留的操作码,则内核将设置该位并暂停操作。

Bit 2 – RTF (Retry Fail Interrupt)

仅适用于BC工作模式:当所有编程的重试均失败时,内核将该位置1。

Bit 1 – CBA (Command Block Accessed Interrupt)

仅限BC工作模式:访问命令块时,核心设置CBA(操作码1010b)。

Bit 0 – MBC (Monitor Block Counter Interrupt)

仅适用于BM工作模式:当内核的监控块计数器达到0时,将设置MBC。

注意:核心不会区分有无错误的消息。

Register 05 – Interrupt Pointer

中断指针寄存器(图8-6)包含系统内存的64 k个字中的中断日志列表的起始基地址和指针位置。 中断日志列表是一个32字的环形缓冲区,其中包含处理中断所必需的信息。 最高有效的11位指定了环形缓冲区的基地址(出现在32字边界上,即主机必须将五个最低有效位初始化为00000b)。 内核控制五个最低有效位以指示指针位置。 主机或子系统读取这五个位,以确定“中断日志列表”中中断的位置和数量。

EM 15693 指令 1553b指令字_单片机_08

Bits 15:0 – INTA[15:0] (Interrupt Pointer)

中断日志列表的基地址和位置指针。

Register 06 – Built-In Test Register

BIT寄存器(图8-7)包含Core1553BRM的自动运行状况监视状态。 内核不支持控制寄存器BIT功能(寄存器0,位14)。 CPU写入BIT寄存器可以设置和清除所有位。

EM 15693 指令 1553b指令字_寄存器_09


CPU可以读取和写入位7:0。 在使用版本号初始化上电复位位7:0后,它们的值将在RT传输时包含在BIT字中。 核心发行说明中提供了版本号。

Bit 15 – DMAF (DMA Fail Interrupt)

所有工作模式:为了允许内核在1553总线上正确发送和接收,所有内存访问必须在指定时间内完成。 核心数据表详细介绍了存储器访问要求。 当内核访问内存时,将启动一个内部计时器。 如果在计数器减为0时内存访问未完成,则会生成此中断。

Bit 14 – WRAPF (Wrap Fail Interrupt)

仅限BC和RT工作模式:内核通过连续环回功能自动将发送的字(编码器字)与反射的解码器字进行比较。 如果编码器字和反射字不匹配,则WRAPF位置1。

Bit 13 – TAPF (Terminal Address Parity Fail Interrupt)

仅限RT工作模式:该位置1表示高电平,表示RT地址奇偶校验错误。 当发生奇偶校验错误时,内核将不会开始运行(STEX位被强制为LOW),并且总线A和B未启用。

Bit 12

Not used.

Bit 11 – CHAF (Channel A Failure)

当总线A上发生发送器超时时,将设置CHAF。

Bit 10 – CHBF (Channel B Failure)

当总线B上发生发送器超时时,将设置CHBF。Register 32 – Enhanced Features Register

该寄存器如图8-8所示,可启用Core1553BRM的各种附加功能。

EM 15693 指令 1553b指令字_寄存器_10


Bits 15:8 – VERSION

这些位指示内核的版本号。 核心随附的发行说明详细说明了当前使用的值。

Bits 7 – Reserved

该位保留用于控制将来可能对内核进行的增强。 可以将其设置为LOW,但不得写入HIGH来确保与将来的内核发行版兼容。 复位时该位设置为低电平。

Bit 6 – LOOPBACK (Loopback Enable)

置位时,该位将环回1553总线。 接收数据输入将连接到发送数据输出,并且外部发送数据输出将保持不活动状态。 如果将核心配置为BC,并且已发送广播传输数据消息,则核心应传输并验证其传输,并且不报告任何错误; 如果使用正常的发送数据命令,则内核应报告无响应错误情况。 复位时该位为低电平。

Bit 5 - ASYNCMSG (Enabled Asynchronous Message)

置位时,此位将启用BC GOTO指令上的异步消息选项(请参见第80页的“总线控制器GOTO增强功能”)。 复位时该位为低电平

Bit 4 – FASTIMG (Fast Inter-Message Gap)

仅限BC操作:设置为LOW时,内核以28μs的最小消息间间隙运行。 设置为高电平时,最小消息间间隙减小为6μs。 如果后端逻辑延迟断言MEMGNTn信号,则消息间间隙可能会更长。 复位时该位设置为低电平。

Bit 3 – FORCEORUN (Force Overrun)

设置后,内核将传输32个以上的数据字(实际上是消息字数加32),从而导致内部传输溢出定时器触发。 该位在复位时设置为低电平,在正常操作中不应设置为高电平。 旨在允许测试传输计时器。

Bit 2 – USEXTOK (Use External Verification)

仅RT操作:设置为LOW时,内核使用内部寄存器设置来验证命令字。 当设置为高电平时,内核使用外部命令字验证逻辑输入CMDOK。

Bits 1:0 – CLKFREQ (Clock Frequency)

CLKFREQ设置内核工作频率,可以选择为12、16、20或24 MHz(表8-4)。 寄存器的复位值由INITFREQ参数设置。 如果设置了LOCKFREQ参数,则不能更改这些位。

Bus Controller–Specific Registers

除了7个常用的控制寄存器外,Core1553BRM在实现BC时,还有3个寄存器用于控制其功能。这些是寄存器7,8和10。

Register 07 – Minor Frame Timer Register

这个只读寄存器,如图8-9所示,是通过次要帧定时器(MFT)操作码(1110b)加载的。对于用户自定义的分辨率,使用TCLK。当操作停止时,该寄存器将重置为零。

EM 15693 指令 1553b指令字_单片机_11


Bits 15:0 – MFT[15:0] (Minor Frame Timer)

这些位包含次要帧计时器的值。

Register 08 – Command Block Pointer

这个寄存器(图8-10)包含启动命令块的位置。在执行开始后,这个寄存器自动更新为下一个块的地址。

EM 15693 指令 1553b指令字_EM 15693 指令_12


Bits 15:0 – CBA[15:0] (Command Block Address)

这些位包含命令块的起始地址。

Register 10 – Not Implemented

Remote Terminal–Specific Registers

除了七个公共控制寄存器之外,Core1553BRM在实现远程终端时,还具有三个用于控制的寄存器(7、8和9)和16个用于命令合法化的寄存器(16:31)。

Register 07 – Time Tag Register

该寄存器(图8-11)包含内核中包含的16位自由运行计数器的当前值。 该定时器的默认分辨率为64 us / bit,或者用户可以通过输入信号TCLK更改此分辨率。 在发生以下事件之一后,计时器将在RSTINn的上升沿或64 us内开始计数:

•收到有效的“重置远程终端”模式代码

•接收有效的“有/无数据模式”代码同步

当内核收到有效的没有数据模式的同步代码时,计时器将自动重置。 如果内核接收到有效的“与数据同步”模式代码,则将相关数据加载到时间标签寄存器中。 如果应该暂停内核(STEX = 0),则计时器将继续运行。 时间标签值是在命令字验证时捕获的。

EM 15693 指令 1553b指令字_EM 15693 指令_13


Bits 15:0 – TT[15:0] (Time Tag)

这些位包含时间标记计数器的值。

Register 08 – Descriptor Pointer

每个1553B RT在存储器中都有一个保留位置,用于存储有关如何处理各种子地址和模式代码的信息。 该存储空间称为描述符表。 描述符指针寄存器(图8-12)包含指向该保留存储空间顶部的地址。

内核使用T / R位,子地址/模式代码字段和模式代码在描述符表中选择一个块,以进行消息处理。 在消息处理期间,描述符指针寄存器的值保持静态。

EM 15693 指令 1553b指令字_stm32_14


Bits 15:0 – DP[15:0] (Descriptor Pointer)

这些位包含描述符指针的值。

Register 09 – 1553A/B Status Word Register

对于MIL-STD-1553A和B应用,此寄存器(图8-13和图8-14)包含状态字的值。 主机或子系统访问该寄存器以通过设置各种状态位来控制传出的MIL-STD-1553状态字。 如果启用了立即清除功能(通过IMCLR,第15位),则在发送状态字后将自动清除状态位。 立即清除功能不会改变发送状态字和发送最后命令字模式代码的操作。

EM 15693 指令 1553b指令字_学习_15


Bit 15 – IMCLR (Immediate Clear Enable)

将该位置1会启用立即清除功能,其中在消息完成后立即清除INS,BUSY,TF,SRQ和/或SUBF位。

Bits 14:10

Not used.

Bit 9 – INS (Instrumentation)

将该位置1会置位状态字位10(仪器位)。

Bit 8 – SRQ (Service Request)

将该位置1会置位状态字位11(服务请求位)。

Bits 7:4

Not used.

Bit 3 – BUSY (Busy)

将该位置1会置位状态字位16(繁忙位)。 将该位置1可防止访问存储器。

Bit 2 – SSYSF (Subsystem Flag)

将该位置1会置位状态字位17(子系统标志位)。 也可以通过SSYSF输入引脚设置该位。

Bit 1

Not used.

Bit 0 – TF (Terminal Flag)

将该位置1会置位状态字位19(端子标志位)。 禁止终端标志模式代码可防止主机或子系统声明。

Bit 15 – IMCLR (Immediate Clear Enable)

设置该位将启用立即清除功能,其中状态字传输后立即清除状态字位19:10。

Note: 使用该位时要格外小心,一旦将其置位,它将保持置位状态(启用立即清除功能),直到将其清除为止。

Bits 14:10

Not used.

Bits 9:0 – SB(10:19)

将1553A状态字位设置为10:19。

Bus Monitor–Specific Registers

EM 15693 指令 1553b指令字_寄存器_16


EM 15693 指令 1553b指令字_单片机_17


EM 15693 指令 1553b指令字_单片机_18


EM 15693 指令 1553b指令字_单片机_19


EM 15693 指令 1553b指令字_学习_20