微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种新型1553B备份总线控制器设计与实现

一种新型1553B备份总线控制器设计与实现

时间:10-29 来源:互联网 点击:

2. 1 协议芯片初始化
初始化协议芯片由主机完成,主要包括协议芯片固定地址初始化及寄存器初始化,表1给出了在共享RAM为64 KB的硬件环境下,RTMT的资源分配表,其中标明“固定”的表示该地址为1553B协议芯片单独使用,且地址的值不能变更。


2.1. 1 固定地址初始化
RTMT模式中需要初始化的固定地址包括:RT命令栈指针A、监控命令栈指针A、监控数据栈指针A、方式代码选择中断表、方式代码数据、RT查询表A、忙位查询表、选择监控查询表、命令非法表。固定地址初始化步骤及方法如下:双端口RAM地址0000H-00FFH初始化为0000H,作为RT命令站空间;双端口RAM地址0100H初始化为0000H,用于设置RT命令栈指针首地址为0000H;双端口RAM地址0102H初始化为0400H,用于设置MT命令栈指针A起始地址为0400H;双端口RAM地址0103H初始化为0800H,用于设置MT数据栈指针A起始地址为0800H;设置方式代码选择中断表;双端口RAM地址0110H~013FH设置为0000H,用于初始化方式代码数据值为0000H;双端口RAM地址0240H~0247H设置为0000H,清除RT的所有子地址忙位;双端口RAM地址000H~03FFH设置为FFFFH,设置命令非法表;初始化RT查找表数据指针空间,接收缓冲区地址从0x6000开始,发送缓冲区地址从0x8000开始;每个数据块长度为40 B,开始的一个字作为消息块标志字,广播接收消息与非广播接收消息共用同一个缓冲区,具体初始化流程如下:


2.1.2 寄存器初始化
通过配置1553B协议芯片的寄存器,设置协议芯片处于不同的工作模式,RTMT工作模式下的协议芯片寄存器初始化方法及步骤如下:向启动/复位寄存器写入值0001H,复位ACE协议芯片;配置寄存器3写入8000H,使ACE协议芯片工作于增强模式;中断掩码寄存器1设置为0201 H,使能握手失败中断及消息结束中断;配置寄存器1设置为9880H,使能BUSY,SSFLAG,RTFLAG RT/BM;配置寄存器2设置为8498H,使能电平中断,256 B边界禁止,RT子地址发送/接收采用单缓冲模式;配置寄存器3设置为8D5DH,使能方式命令的相关操作,设置RT命令栈为256 B,MT命令栈为1 024 B,MT数据栈为2 048 B;配置寄存器4设置为C008H,外部BIT字使能,使能RT地址软件锁存方式;将经过奇校验RT地址写入配置寄存器5,作为备份总线控制器的RT地址;配置寄存器6设置为6172H,设置时钟频率为20 MHz,使能软件配置RT地址,使能协议芯片中断队列操作;将中断向量队列指针寄存器初始化为1000H,表明中断向量队列是从1000H开始的64 B空间;将数据栈指针寄存器初始化为080 0H,用于设置MT数据栈指针的起始地址为0800H;读取配置寄存器1的值或上0400H后写入配置寄存器1,用于清除RT忙位,使能协议芯片进行通信。

2.2 中断服务处理
共享RAM中固定地址及ACE协议芯片寄存器初始化完成后,协议芯片即工作于RTMT模式,当协议芯片接收到有效命令,将触发消息结束中断,中断服务程序完成对该条消息的处理。首先,用全局变量CurrQueuePtr记录尚未处理的中断队列指针,其初始值为中断队列的起始地址0x1000;中断向量队列指针寄存器始终存放的是下一次中断待写入的中断队列指针,读取中断向量队列指针寄存器(1F)内下一次待写入的中断队列指针NextQueuePtr,并进行如下处理:

其中Rt_Do_Msg()函数主要完成RT功能下消息接收或发送后的相关处理,如新数据标志的置位与清除等,方式命令的处理等。Mt_Do_Msg()函数主要完成MT功能,将数据从较小的MT数据栈(0x800~0x9FF)根据监控过滤位,将需要监控的消息按照特定的格式重新组织并存储到较大的MT数据缓冲区(0xA000~0xF000)内,以备用户使用。

3 应用实例及分析
某项目采用1553B总线作为主干总线,总线上共有RT 13个,RT地址分别为1~13,1个BC,1个BBC,工作于RTMT模式下,RT地址为18。系统应用的消息类型及条数见表2,系统应用要求BBC应能够与BC同时获取BC-RT及RT-BC之间的应用数据通信内容,用于同步解算。根据应用要求,若采用BBC工作于RT模式,排列出的总线消息类型及消息条数见表3,根据应用需求,共有BC-RT消息24条,为了满足BBC同时获取BC-RT消息的需求,必须增加24条BC到BBC的消息,同样,共有RT-BC的消息65条,为了满足BBC同时获取RT-BC消息的需求,必须增加65条RT-BBC的消息,BBC需排列接收消息为BC-BBC及RT-BBC的消息综合,共计92条,远远大于BBC作为RT模式,仅能接收消息30条消息的限制,且总线传输存在延迟,导致BBC不能与BC同步获取BC-RT与RT-BC的消息,因此,BBC工作于RT模式无法满足应用需求。若采用BBC工作于MT模式,则无法满足BC-BBC、BBC-BC及BBC-RT之间的数据传输要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top