当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于PC/104的1553B总线测控系统的设计与实现

引言

随着我国航空事业的迅速发展,各种新型飞机和发控设备相继研制成功,以往一些测控设备在功能和性能上已无法满足新的要求。本测控系统就是在某型飞机的研制过程中扩展出来的一个功能比较全面的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所示。

电压、电流模拟量的采集应注意数字地和模拟地的分离,以减小干扰,最后通过磁珠单点相连,而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。

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

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

首先介绍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文件中按如下设置定义设备配置信息:

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

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


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

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

任务设计

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


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

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

除了优先级的抢占外,主要任务间还通过设置信号量进行二次调度,确保任务的连续正确执行及资源的合理分配,优化程序结构。在主程序引导函数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下的软件开发过程。实际中,建立了地面最小实验系统,经过联机调试,测控系统运行正常,系统具有很好的实时性和稳定性,达到了预期效果。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭