探讨基于DSP的1553B总线系统的设计与实现

2019-08-04 18:43发布

线,其传输速度为1Mb/s,字长为20b,数据有效长度为16b,信息量最大的长度为32个字。其信息格式有总线控制器BC(Bus Controller)到远程终端RT(Remote Terminal),RT到RC,RT到RT,广播式和系统控制式。MIL-STD-1553B总线协议已经发展成为国际公认的数据总线标准,广泛地应用于航空电子综合系统中,目前国内外开发的各种1553B总线采集卡,大多采用的是美国DDC公司生产的BU-6150接口芯片,但是该芯片价格比较昂贵,开发成本较高,另许多商家望而兴叹。  本文介绍的基于DSP的1553B总线通讯模块的设计,采用TI公司TMS320F206DSP芯片进行数字信号处理,用FPGA进行现场反复编程,降低了设计成本,满足了1553B通讯模块的开发需求  1 1553B总线  该1553B总线通讯模块的DSP采用TI公司的TMS320F206,用来实现1553B总线协议的主体部分,实现字和消息的处理等功能TMS320F206是TI公司近年来推出的一种性价比较高的定点DSP芯片,采用静态CMOS集成电路工艺制造而成,DSP芯片先进的哈佛结构允许程序存储器和数据存储器独立编址、独立访问,两条总线可允许数据与指令的读取同时进行,从而使数据的吞吐率提高了一倍;专用的指令集提供了功能强大的信号处理操作。  1553B总线是一种时分制指令/响应式多路传输数据总线,具有很高的可靠性和良好的实时性。1553B总线由4种基本硬件组成:传输介质、总线控制器(BC)、远程终端(RT)、总线监视器(MT)。  1553B总线采用异步、半双工方式传输,传输速率1 MB/s。1553B总线传输协议规定的传输过程为:BC向某一终端发送一个接收/发送指令,RT在规定的响应时间内发回一个状态字并执行消息的接收/发送。1553B采用双冗余总线,有2个传输通道,保证了良好的容错性和故障隔离。如果当前总线的数据传输出现错误或故障,数据可以自动从冗余总线上传输。1553B总线的传输介质为屏蔽双绞线。其总线结构简图如图l所示。  2 系统设计方案  该系统以F2812为控制核心,与外围辅助电路构成微计算机系统;由BU-64843协议芯片完成1553B总线的功能。BU-64843提供了丰富的资源。为软件的设计提供了极大的灵活性和可靠性;控制和译码信号利用FPGA实现,FPGA器件电路连接简单,使用方便,使用功能强大的VerilogHDL语言编程,可提高系统的维护性和扩展性。  F2812负责消息的读取、处理、写入和BU-64843协议芯片的初始化。接口卡在BC模式下实现1553B总线消息的接收,BU-64843协议芯片每接收完一个消息,就向F2812发送一次中断申请,由F2812响应中断并从相应的RAM区读取接收到的消息进行相应处理,F2812同时完成与上位机的通讯,并把接收到的数据发送出去。与上位机的通讯是利用F2812的串行通信接口(SCI),本系统采用MAX485实现的。  3 接口电路的硬件设计  系统的硬件电路主要包括:DSP模块、1553B总线接口模块、逻辑综合模块。系统的结构框图如图2所示。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
gygp
2019-08-05 06:11
 4.1 初始化模块设计  在驱动程序编制中,初始化模块作为整个程序的入口,初始化模块完成整个接口卡的初始配制,该模块主要功能为:  1)完成对F2812初始化,设置其相关寄存器,主要是设置有关中断和串口的寄存器,包括中断标志寄存器(IFR)、中断使能寄存器(IER)、中断控制寄存器(ICR)、SCI控制寄存器l(SCICTL1)、波特率设置寄存器(SCIBAUD)等,以确定中断源和串口的波特率、停止位等。其具体操作为:①使IFR=Ox0000。IER=Ox0000,关闭所有的中断;②使IER=OxO101,开启中断SCITXRXINT和中断XINTl;③使ICR=0x001F,将中断模式设置为下降沿触发中断XINTl;④使SCICCR=0x0007;设置发送和接收中使用1 bit停止位,8 bit字符长度;⑤使SCICTL1=0x0003;使能发送器TX、接收器RX;⑥使SCIBAUD=Ox01E7,系统时钟SYSCLK的频率为150 MHz,低速外设时钟频率LSPCLOCK为37.5 MHz时,异步串行口数据传送波特率为9 600 b/s,BRR的数值可由公式得到。⑦SCICTL1=0x0023,使SCI退出复位。  2)完成对BU-64843协议芯片内部寄存器的初始化设置,使其能够正确实现BC模式的功能。BU-64843工作在BC模式下的有关寄存器的配置顺序如下:①将开始,复位寄存器配置为0x0001,即可对BU-64843进行软件复位;②如果用到BU-64843增强模式,将配置寄存器3配置为Ox8000;③将中断屏蔽寄存器设置为Ox0001,使消息完成中断使能;④将配置寄存器1设置为BC模式;⑤将配置寄存器2设置为0x0008,使中断方式为低电平中断;⑥将开始/复位寄存器配置为Ox0002,启动BC传输模式。  通过对以上寄存器的配置。即可完成BC模式的操作。其初始化流程图如图4所示。  4.2 自检模块  自检模块主要完成对BU-64843的4 kB RAM空间的检查,看是否出现错误。实现方法是向该内存空间写入连续的数据,然后读出来比较看是否相等,若不相等则表示有错,记录下所有的错误数并把这个错误数通过串行口发送给上位机。  4.3 中断模块  驱动程序的中断模块分为2部分:1)用于接收1553B总线到来的数据,响应1553B总线数据的中断。利用F2812的XINTl,XINTl采用脉冲下降沿触发中断方式;2)用于接收上位机向DSP发送的命令,接收上位机的命令是通过F2812的串行通信接口(SCI)来进行的,利用F2812的SCIT-XRXINT中断。在XINTl中断服务子程序中设置“读总线数据标志”,在异步串口中断服务子程序中设置“读串口数据命令标志”。  4.4 查询模块  在查询模块中,当“读总线数据标志位”有效时,F2812就从BU-64843的命令堆栈相应地址处开始依次读4个地址单元的内容。分别为数据块状态字、时间标志字、数据块指针和接收到的命令字,根据命令字和数据块指针到数据堆栈读取总线数据,然后将接收到的总线上的数据转发出去。  当“读串口数据命令标志位”有效时,RX接收上位机的命令,根据不同的命令实现相应的功能。为了能够保证与上位机实现可靠的握手,在查询程序中设置了一个数据缓冲区,看是否收到一帧完整的命令。若收到一帧完整的命令,则根据不同的命令设置系统的启动、停止、自检等相应标志,并将缓冲区中的数据依次向前移动一帧,数据指针也向前移动一帧。

一周热门 更多>