0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用PC/104嵌入式模块与1553B总线卡实现测控系统的设计

牵手一起梦 来源:网络整理 作者:佚名 2020-01-16 10:17 次阅读

引言

随着我国航空事业的迅速发展,各种新型飞机和发控设备相继研制成功,以往一些测控设备在功能和性能上已无法满足新的要求。本测控系统就是在某型飞机的研制过程中扩展出来的一个功能比较全面的1553总线测控系统,总体上采用了PC/104结构的嵌入式系统,既可以实现1553总线数据的实时接收和发送,还可以完成多路数据的采集及负载控制。

总体概述及工作原理

本系统的主要功能是对外部的电压电流及负载I/O信号进行采集测量,并根据由1553总线传输来的飞机控制设备发送的命令字对负载进行控制,对电压电流及负载当前状态进行监控,并将当前数据反馈给控制设备。整个系统在满足实时高速传输的同时,也必须完成对负载精确的控制,测控过程要能够实时监控和显示,方便操作人员控制及发送指令。

为满足以上条件,系统主构架选用了PC/104的嵌入式模块,不仅尺寸小、功耗低,而且其堆栈式结构方便了外扩设备。总体上分为采集、处理、通讯三大部分,各部分硬件上通过PC/104总线紧密连接,由上位机通过以太网总体控制,而软件上分成独立的模块,实现各自部分的功能,在实时嵌入式操作系统VxWorks下再通过主程序的调度协调起来。

硬件设计

系统硬件总体设计以PC/104体系结构为核心,以1553B总线卡作为与飞机(或其他发控设备)通讯的主要接口ADT600负责电压电流模拟量和负载I/O信号的采集。PC/104可以外扩LCD显示器和键盘鼠标等外设,通过以太网与上位机相连可对测控系统进行有效的控制和过程监测,同时PC/104通过母板外接I/O扩展板对负载进行实时控制。系统框图如图1所示。

SCM/SuperDX是一种高度集成、自栈结构、IBM-PC/AT兼容的PC/104 CPU模块,它被设计成可以方便与其它周边设备及模块构成完整系统的核心部件,采用增强型的80486处理器作为CPU,板载有PC/AT兼容的DMA控制器、中断控制器及定时器ROM-BIOS,4M~16M字节的DRAM及键盘,网口等。本系统中,将嵌入式操作系统VxWorks下载到Campact Flash中以启动PC/104,上位机通过以太网与PC/104相连,通过网络加载将程序加载到PC/104的RAM中执行,上位机进行实时监视和程序控制,PC/104的LCD显示屏可以实时显示测试数据及数据传输状况。

采集卡选用SBS公司的ADT600,它与PC/104完全兼容,最多提供十六个模拟输入通道,通过71055的可编程外围接口(PPI)提供24路数字量I/O线。模拟量输入的量程可用跳线器选为?5~+5V,?10~+10V,0~10V,并带有+/?35V的过压保护。本系统的模拟量是电压电流信号,量程选择?5~+5V。而I/O通道通过71055的PPI设置为方式0的基本输入输出,采集卡和调理板调理电路硬件连接图如图2、3所示。

采用PC/104嵌入式模块与1553B总线卡实现测控系统的设计

电压、电流模拟量的采集应注意数字地和模拟地的分离,以减小干扰,最后通过磁珠单点相连,而I/O电路将电压/地的数字I/O信号通过转换电路转换为采集卡输入电压范围的地/开路信号。

1553B通讯卡选用SBS公司的ASF-PC104-XT-1,该卡能实现PC/104总线和1553B总线的转换,是一款智能MIL-STD-1553的板卡,支持MIL-STD-1553A和MIL-STD-1553B协议,适用于PC/104底板,可以工作在BC模式、RT模式、BM模式及并发BM模式,实现多个终端之间的快速通信。它具有以下高级结构特点:具有高速可编程逻辑装置用于以字为单位的底层1553协议的编解码;采用TI公司的DSP用于信息级和底层1553协议的处理;具有128K字节的高速静态双端口RAM用于信息缓存;配合底板接口的高速可编程逻辑电路(ASIC设计);板上提供标准的和IRIG时间码相关的高级计时电路;配套的软件接口库为1553和429设备管理提供扩展功能。

由于SCM/SuperDX提供的I/O资源有限,因此,采集卡ADT600和1553B通讯卡的I/O地址的合理选择就十分重要,以避免冲突以及在调试时产生不必要的麻烦,SCM/SuperDX的I/O地址分配如表1所示。ADT600模块要占据十二个连续的I/O口的位置,基地址由DIP开关选择,而ASF-PC/104卡需要主机为其分配未经使用的8块连续的地址寄存器,考虑以上因素,选取ADT600的基地址为300h,ASF-PC/104为390h。

采用PC/104嵌入式模块与1553B总线卡实现测控系统的设计

软件设计

软件设计的重点主要包括底层设备驱动的编写、系统任务的划分及优先级的设定。操作系统选用VxWorks,以充分满足1553B实时通讯的要求,系统总体软件主流程图如图4所示。系统启动之后执行主程序进行自检测和AD/1553板卡的初始化,若失败则报错,将错误信息显示在显示屏上,成功后创建主任务并执行,包括数据的采集、发送和接受及解析命令控制字并执行,主程序将循环执行,直到上位机发送停止程序的控制命令。

底层设备驱动配置

驱动程序为硬件平台和应用软件间提供一个固定接口的软件层,应用程序必须通过驱动程序才能与硬件进行数据通信。而驱动程序的编写又与操作系统密切相关,具体的操作系统对驱动的要求有所不同,本设计的底层驱动和操作系统VxWorks及任务关系图如图5所示。根据本系统的实际需要,编写了与VxWorks系统密切相关的底层设备驱动。

采用PC/104嵌入式模块与1553B总线卡实现测控系统的设计

首先介绍1553B通讯卡的驱动配置。本系统选用的1553B通讯卡有两种板卡访问方式:内存映射和I/O访问。I/O寻址采用专门的指令,编程缺乏灵活性,并且每次只能传送单个字节;而内存映射方式指令丰富,编程方便、硬件节省,便于实现快速交换数据。故选用内存映射方式,PC/104可以映射的空间为0xC8000~0xEFFFF,选取内存映射基地址为0xD0000。同时INT引脚通过跳线选择IRQ9。软件设置如下:

1)调用setup_fw.c将固件库源文件F002p.dat生成与ASF-P104卡匹配的Firmware.h(固件数据结构)文件,为板卡硬件提供匹配的接口定义信息;

2)在sbs_sys.h文件中添加#define VXWORKS和#define NO_FILE_SYSTEM语句行,设置操作系统信息;

3)在dev_cfg.h文件中按如下设置定义设备配置信息:

采用PC/104嵌入式模块与1553B总线卡实现测控系统的设计

配置好软件设置后就是1553驱动程序的实现,即完成设备驱动函数的编写。在编写函数之前,需要定义驱动号以及设备的描述符,这在头文件中实现,如下所示:

采用PC/104嵌入式模块与1553B总线卡实现测控系统的设计

}M1553_DEV; /*1553设备描述符*/

头文件定义完毕就可以编写函数了,以编写M1553Drv( )函数为例。M1553Drv( )函数调用iosDrvInstall( )安装设备的驱动例程。它在设备驱动程序表中为设备分配一个条目,并在其中填入此设备xxCreate( ),xxDelete( ),xxOpen( ),xxClose( ),xxRead( ),xxW rite ( )和xxIoctl( )等函数的地址。函数实体如下:

采用PC/104嵌入式模块与1553B总线卡实现测控系统的设计

一一编写其他的1553设备驱动函数M1553DevCreate( ),M1553Open( ),M1553Read( )和M1553Write( )以及中断服务程序M1553Int( )。

以上为1553B卡的底层驱动编写,ADT600与之类似,只是头文件有差异,同理编写设备函数ADC_InitializeBoardSettings(),ADC_DigitalToSBS(),ADC_SetChannel(),ADC_StartConversion(),ADC_ConversionDone()和ADC_ReadData()。至此,设备驱动配置完成,将驱动程序加载至应用程序,上层程序代码就可以直接调用这些底层驱动函数进行编程。

采用PC/104嵌入式模块与1553B总线卡实现测控系统的设计

任务设计

VxWorks是一个实时多任务操作系统,因此根据系统的功能模块要求,将应用程序分割成若干个独立的任务,使CPU通过操作系统来调度多个任务,轮番服务于一系列任务中的一个,使得应用程序的设计大大简化,并使程序的结构模块化、层次化。同时,使用了实时内核,所有时间要求苛刻的事件都可以尽可能快地得到处理。

任务划分的好坏直接影响到系统的性能。将一个实时应用问题分解为多个任务,可以加快执行速度,且有效地利用系统资源。但是,过度地分解任务,将会使系统中有大量的任务,需频繁地进行任务的切换,任务之间还要进行很多同步和互斥控制,将增加系统服务工作,降低系统的速度和有效性。因此,划分任务时必须进行各种综合平衡和折衷,有时将两个操作合并在一起处理效果好些,但有时必须分开处理。这都依赖于实时应用的特性。

根据系统功能需求,主任务划分如下,任务间总体上采用优先级抢占机制进行调度,各任务功能及优先级的划分如表2所示。PC/104优先接受来自飞机控制设备的命令字,然后执行负载控制任务,等待控制任务释放信号量后,程序就执行数据采集及发送任务,通讯监控任务对数据的接发进行实时监控,确保无信息的丢失,更重要的是,第一时间传递发控设备的控制命令,若启动重发机制之后仍然接受不到信息则会报错。而硬件初始化及自检测任务只是在主程序开始时调用,由于优先级的限制,只有等待再次软启动之后才会再次执行。

采用PC/104嵌入式模块与1553B总线卡实现测控系统的设计

除了优先级的抢占外,主要任务间还通过设置信号量进行二次调度,确保任务的连续正确执行及资源的合理分配,优化程序结构。在主程序引导函数ProgStart( )中,建立了2个二进制信号量和1个互斥信号量:semCON,semSEND,currNodeSemId。semCON信号量用于数据接收任务和监控任务的信息传递,主要是数据的超时重发机制监控;semSEND信号量用于数据采集任务和数据发送任务的信息传递;currNodeSemId信号量用于数据采集监控任务中数据采集的完整性而设立的信号量,避免通讯任务抢占临界资源以及调用不合理而产生“死锁”现象。其中,2个二进制信号量创建时为空(SEM_EMPTY),处于不可用状态,高优先级任务执行semGive()释放后变为满(SEM_FULL),变为可用状态,供低优先级任务执行semTake()使用。互斥信号量currNodeSemId创建时,为了避免优先级倒置的情况以及为任务提供删除安全,联合使用了SEM_Q_PRIORITY、SEM_INVERSION_SAFE、SEM_DELETE_SAFE选项联合使用,使用按位或操作,程序代码如下:

currNodeSemId=semMCreate(SEM_Q_PRIORITY|SEM_INVERSION_SAFE|SEM_DELETE_SAFE)

程序最后执行ProgStop()结束主程序,删除创建的任务并释放信号量资源。因为程序中使用了互斥信号量,并启动了互斥信号量的任务删除保护功能,所以在删除任务之前,必须先成功占有互斥信号量。先删除任务,再删除信号量。

结束语

本文主要讲述了1553B总线测控系统的设计及其在VxWorks下的软件开发过程。实际中,建立了地面最小实验系统,经过联机调试,测控系统运行正常,系统具有很好的实时性和稳定性,达到了预期效果。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288391
  • 操作系统
    +关注

    关注

    37

    文章

    6284

    浏览量

    121874
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87206
收藏 人收藏

    评论

    相关推荐

    [推荐]基于USB接口1553B总线设备检测系统设计

    实现1553B总线设备的通信。同时采用DriveStudio开发环境,开发USB设备驱动程序,设计了1553B设备检测
    发表于 01-09 10:15

    MIL-STD-1553B入门视频教程 1553B总线资料课件

    本帖最后由 eehome 于 2013-1-5 10:11 编辑 MIL-STD-1553B入门视频教程 1553B总线资料课件 MIL-STD-1553B入门视频教程,详细介绍
    发表于 02-13 00:16

    基于8051/89s52 单片机 1553B 总线系统设计教程

    、实用的原则。也可以作为产品开发原型的验证板。我们希望通过这套开发板能把大家带进1553B总线开发与设计的精彩世界里,这套开发板又是一把我们打开1553B 总线
    发表于 08-01 09:39

    便携1553B协议测试仪

    完全符合1553B标准,适合现场或室外操作。 采用触摸屏技术及网络技术,通过触摸液晶屏一键完成所有检测,可保存80次历史测试结果,并能直接输出测试报告(txt、word格式)。手持1553B
    发表于 01-20 15:54

    1553B\429\422便携多协议分析仪

    ;◇ VGA接口:1路;◇ 扩展槽:内部留有PC104/PC104+扩展总线接口各1个(可扩展2块PC104或1块PC104+和1块
    发表于 02-18 09:21

    1553b总线

    采用双冗余系统,有两个传输通道,保证了良好的容错性和故障隔离。综合起来1553B总线有以下几个特点:一是实时性好,1553B
    发表于 04-16 08:59

    1553B总线

    采用双冗余系统,有两个传输通道,保证了良好的容错性和故障隔离。综合起来1553B总线有以下几个特点:一是实时性好,1553B
    发表于 10-13 17:58

    基于1553B总线的61580RAM存储详解

    地面指令下发PCU响应指令并执行,PCU将实时的状态数据上传给地面监测。 BC端主要是地面上位机系统,上位机通过1553B总线将遥控指令下发给PCU下位机,上位机通过1553B
    发表于 05-24 07:35

    采用DSP实现1553B总线接口电路设计

    过程中更加稳定、高速、可靠。本文旨在探讨采用DSP与相应接口芯片BU-61864,设计相关电路来实现机载火控数据的采集。1 1553B数据总线MIL_STD_
    发表于 06-13 05:00

    1553B总线在武器通信中有什么应用?

    1553B总线是什么?1553B总线在武器通信中有什么应用?
    发表于 05-28 06:36

    请问怎样去设计一种1553B总线测控系统

    一种基于PC/1041553B总线测控系统的设计方案
    发表于 06-01 06:22

    基于ARM的1553B总线应用

    1553B 总线是一种应用广泛的高可靠实时总线。本文提出了基于ARM7TDMI 内核的32 位微处理器和高可靠1553B 控制器DDC64843 的
    发表于 09-03 14:37 48次下载

    基于VxWorks的1553B总线通信系统的设计与实现

    在介绍1553B数据总线和VxWorks实时操作系统的基础上,分别从软件和硬件两方面论述了在VxWorks下建立1553B总线通信
    发表于 10-15 09:56 55次下载

    1553B总线

    什么是1553B总线 一、1553B总线简介     1553B
    发表于 04-19 21:40 5423次阅读

    基于DSP的1553B总线系统设计解析

    摘要:在研究1553B总线协议特点的基础上,提出了一种基于DSP的1553B总线接口设计方案.详细描述了硬件电路的实现及软件驱动程序的编写。
    发表于 10-31 16:15 7次下载
    基于DSP的<b class='flag-5'>1553B</b><b class='flag-5'>总线</b><b class='flag-5'>系统</b>设计解析