技术咨询 我要提问

RT 如果主动给BC发送数据?矢量字使用问题?

1553中所有的消息控制都是通过BC端控制的。BC端可以发出BCRT、RTBC、ModeCode、RTRT类型消息。实际应用中经常会出现RT需要主动给BC端上报信息,这种情况下可以通过发送矢量字来实现(Mode Code 16)。

具体流程:

1)        BC端周期性发送 Mode Code 16 消息(发送矢量字),RT端周期的接收矢量字指令。RT端默认发送的矢量字设为0,BC端检测到RT发送的矢量字是0的时候,不做任何操作。

2)        如果RT端需要主动发送数据给BC,RT端先准备好数据,然后将矢量字对应位置位(对应位写1)。

3)        BC端检测到RT端发送过来的矢量字有位为1,BC根据事先约定的对应关系,发送对应的指令(比如RTBC指令)。

4)        RT接到RTBC指令后,发送数据给BC,数据发送消息结束后,RT端将矢量字对应位清0。

5)        如果RT有新的数据要发送给BC,重复2)到4)。

矢量字对应位和RT 子地址常用的对应关系如下表所示。

表 矢量字对应位和RT子地址常用对应关系表

SA1对应矢量字第0

如果BC端检测到矢量字第0位置1,发送对应SA1RTBC指令

SA2对应矢量字第1

如果BC端检测到矢量字第1位置1,发送对应SA2RTBC指令

SA3对应矢量字第2

如果BC端检测到矢量字第2位置1,发送对应SA3RTBC指令

SA4对应矢量字第3

-----------------

SA5对应矢量字第4

-----------------

SA6对应矢量字第5

-----------------

SA7对应矢量字第6

-----------------

SA8对应矢量字第7

-----------------

SA9对应矢量字第8

-----------------

SA10对应矢量字第9

-----------------

SA11对应矢量字第10

-----------------

SA12对应矢量字第11

-----------------

SA13对应矢量字第12

-----------------

SA14对应矢量字第13

-----------------

SA15对应矢量字第14

如果BC端检测到矢量字第14位置1,发送对应SA15RTBC指令

SA16对应矢量字第15

如果BC端检测到矢量字第15位置1,发送对应SA16RTBC指令

注:上表只是一般常用的对应的关系,用户应根据实际需要使用矢量字功能。矢量字和RT SA对应关系是BC端和RT端通信之前双方约定好的,不限于RTBC指令。


         针对我们石竹公司的板卡,BC有两种模式,子帧模式和消息模式。子帧模式下每个子帧中的消息周期和子帧周期相同,消息模式下每条消息可以单独的设置周期。

子帧模式和消息模式都可以通过条件消息自动判断RT端发送过来的矢量字是否满足条件(矢量字对应位置1),如果满足条件,BC端发送对应的控制命令(比如RTBC指令)。

消息模式下除支持条件消息判断外,还支持BC自动判断接收到的矢量字,发送对应SA1-SA16的非周期消息(见例程example_bc8.c)。

RT端支持硬件自动清除矢量字(见例程example_rt1c_2.c),RT设置了自动清除矢量字后,如果硬件检测到对应子地址的数据发送数据完成之后,自动将矢量字的对应位清0。

注:BC端自动判断矢量字和RT端自动清除矢量字都是针对表1中的对应关系,如果是用户自定义的对应关系,不能用硬件BC自动判断适量字和RT自动清除矢量字功能。


光盘中对应矢量字操作的例程如下。

1)         example_bc6b1.c:另一个使用多条条件消息的例程。通过设置的矢量字决定运行哪些消息。

2)         example_bc7b_2.c:  example_bc7.c的扩展,主要演示BC消息模式下,周期消息发送,非周期消息发送,配置条件消息检测矢量字的值并根据矢量字的值自动发送对应SA的RT->BC消息、采用软件查询中断的方式获取RT发送到BC的数据、定期和不定期更新周期消息发送的数据。

3)         example_bc7b_1.c:  example_bc7.c的扩展,主要演示BC消息模式下,周期消息发送,非周期消息发送,配置硬件自动检测矢量字并根据矢量字的值自动发送对应SA的RT->BC消息、采用软件查询中断的方式获取RT发送到BC的数据、定期和不定期更新周期消息发送的数据。

4)         example_bc8.c: 演示BC消息周期发送模式下,BC自动判断接收到的矢量字,发送对应SA1-SA16的非周期消息。

5)         example_rt1c.c:Example_rt1.c的扩展,分配了响应模式代码发送矢量字的内存。

6)         example_rt1c_2.c:example_rt1c.c的扩展,演示了RT 硬件自动清除矢量字的对应位。


2021-10-23

管理员   回答2021-10-23