【谁知道每天为什么会学这么多奇怪的东西之总线1553B】
【由于在工程中只用增强方式,在文章中不考虑非增强方式】
1553B的RT模式
存储结构
一共分为堆栈(存放指令字)、堆栈指针(占一个字节)、方式指令选择中断表(这是个啥)、方式指令数据()、查询表()、忙位查询表()、数据块以及指令非法表
名称 | 地址 | 定义 |
---|---|---|
堆栈 | 0000H | 描述符/指令堆栈,含块状态字/时间标识字/数据块指针和接收指令字 |
堆栈指针A | 0100H | 开始为堆栈的起始地址,在收到指令字后加4并以堆栈大小取模 |
堆栈指针B | 0104H | 堆栈大小可以用 #3.14和 #3.13指定,00为64,11为512 |
【图中地址均为偏移地址,1553B0基地址为0x40040000,RT的偏移为30000,1553B1基地址为0x40080000】
堆栈
名称 | 寄存器 | 定义 |
---|---|---|
块状态字 | 消息结束/开始,错误类型等 | |
时间标识字 | #2.7-#2.9 设定分辨率 | NMbps传输速率 |
数据块指针 | – | 消息数据块的起始地址 |
指令字 | – | 接收的指令字 |
查询表
A和B区各有一个RT查询表
名称 | 定义 |
---|---|
接收数据块指针 | 子地址0:0140H, 子地址1:0141H等 |
发送数据块指针 | 子地址0:0160H, 子地址1:0161H等 |
广播数据块指针 | 子地址0:0180H, 子地址1:0181H等,可以存放于接收子地址的数据区,当分离广播数据时,RT才需要查询广播消息的数据块指针 |
子地址控制字 | 子地址0:01A0H,子地址1:01A1H等 |
单消息存储过程:数据块指针单元保持不变
双缓冲存储过程:交替工作的数据块指针bit5相反
循环缓冲存储过程:数据指针自动更新为缓冲下一单元
子地址控制字
位 | 定义 |
---|---|
15 | 子地址全局性双缓冲使能 |
14 | 消息结束中断(发送) |
13 | 循环缓冲中断(发送) |
12-10 | 存储管理(发送)? |
9 | 消息结束中断(接收) |
8 | 循环缓冲中断(接收) |
7-5 | 存储管理(接收)? |
4-0 | 同上(广播) |
控制管理表
双缓冲使能 | 存储管理位 | 定义 |
---|---|---|
0 | 0 0 0 | 单消息存储管理 |
1 | 0 0 0 | 对接收或广播消息采用双缓冲存储管理 |
x | 0 0 1 | 128字,循环缓冲模式 |
x | 0 1 0 | 256字,循环缓冲模式 |
x | 0 1 1 | 512字,循环缓冲模式 |
x | 1 0 0 | … |
方式指令中断选择表(可能不需要?)
方式指令数据区()
固定的数据访问单元
子地址忙配置位表
RT加电时默认指令非法化使能,CFG#3.15 = ‘1’ & CFG#3.7 = ‘1’,可以进制非法化指令
指令非法表
接收非法指令时,RT块状态字的bit6“非法指令字”置位‘1’
地址编号(h) | 定义 |
---|---|
0300 | 广播接收消息,子地址0,方式指令15-0 |
0301 | 广播接收消息,子地址0,方式指令31-16 |
… | … |
0340 | 广播发送消息,子地址0,方式指令15-0 |
0341 | 广播发送消息,子地址0,方式指令31-16 |
… | … |
存储管理
共享RAM分为活跃区和非活跃区,任一时刻仅有一个堆栈指针、堆栈区、查询表和数据块指定为活跃。
发送存储管理机制:
- 单消息存储管理机制
- 循环缓冲存储管理机制
接收存储管理机制:
- 单消息存储管理机制
- 循环缓冲存储管理机制
- 双缓冲存储管理机制
双缓冲使能 | 存储管理位 | 定义 |
---|---|---|
0 | 0 0 0 | 单消息存储管理 |
1 | 0 0 0 | 对接收或广播消息采用双缓冲存储管理 |
x | 0 0 1 | 128字,循环缓冲模式 |
x | 0 1 0 | 256字,循环缓冲模式 |
x | 0 1 1 | 512字,循环缓冲模式 |
x | 1 0 0 | … |
单消息存储管理机制
1553B默认的存储管理模式,占用连续的32个字单元,每条消息后主机必须及时读取该消息数据或填写下一消息的发送数据。
注意:
- 单消息存储管理模式下,特定子地址的查询表值不变,因而处理该子地址的消息会使数据块内容反复读写;
- 单消息存储管理模式下,在初始化RT查询表时,指定每个接收子地址和发送子地址数据块的起始位置,例如子地址1的接收数据块由0141H单元中值指定,发送由0161H单元指定;
循环缓冲存储管理机制
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' |
‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" |
“Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash |
– is en-dash, — is em-dash |
创建一个自定义列表
- Markdown
- Text-to-HTML conversion tool
- Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 是通过欧拉积分
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎