一种用于仿真器的实时数据采集系统的制作方法_2

文档序号:9420215阅读:来源:国知局
态优先级算法进行下位机节点优先级分配给出每个节点的初始相位;完成相应的判断和数值确定后,系统将进行正常的数据传输。
[0021]本发明所取得的有益效果为:
[0022]本发明采用的是主控机节点作为系统主节点,其它节点采用单片机技术设计作为下位机节点,整个组成一个CAN总线网络的方式进行数据采集和控制。鉴于以上对于CAN总线仲裁方式分析和优先级竞争的考虑,我们设计了由主节点(带有CAN总线适配卡的上位机)来调度报文,就是由主节点通过广播报文的方式,分时分组请求CAN总线中的报文,以不同的相位进行传输。要求主节点增加一组报文用于调度报文(称这样的一组报文为基本周期报文),并将该报文作为触发报文。要求主节点有效地调度触发报文,决定何时发送触发报文以及请求哪个节点发送报文。网络中下位机各节点有权来决定是否接收请求。在符合CAN通信条件的情况下,只要依据报文优先级合理分配初始相位,就能灵活地调度报文,从而避免同一瞬间多个报文参与总线仲裁,不易造成报文猝发,有效地降低网络负载或峰值负载。在实际使用中依据节点数量的变化和波特率对系统的影响,软件设计上采用了动态更新软件的方法改变节点初始相位和总线波特率来达到解决以上问题的效果,保障了仿真系统延时的确定性。其中节点初始相位由节点优先级决定。
[0023]本发明根据标准化要求,在研制各类飞行仿真系统中逐步完善和发展的数据采集系统,成为各类飞行仿真系统中仿真座舱通用数据采集系统,已在研制的各类运输机、直升机和歼击机飞行仿真系统中得到应用,工作的可靠性和易维护的特点得到认可,同时创造了显著的经济效益。
[0024]本发明采用CAN总线技术将整个飞机模拟座舱内部信号分割成多个独立的CAN总线数据采集节点,然后通过在主控机上采用一块CAN总线通讯适配卡来完成整个座舱信号的采集和处理工作。该发明所采用的实时性控制算法,较好的解决了该套系统的网络延时确定性,为CAN总线设计的网络系统提出了相应的解决方案。
【附图说明】
[0025]图1为该开发平台整个系统结构框图,描述了系统组成和数据交互过程。其中仪表驱动节点包括同步器、直流电机等驱动方式,座舱控制节点驱动和采集的信号包括座舱内的信号灯、开关、LED等。
[0026]图2为采用CAN总线技术设计的每个控制板节点的硬件原理图。其中SJA1000为CAN总线通信控制器,82C250为CAN总线收发驱动器,80C196KB为单片机控制器。
[0027]图3为系统总体流程图。
[0028]图4为上位机程序框图和下位机引导程序的流程图。
[0029]图5为上位机更新程序流程。
[0030]图6为基于参数监测的自适应波特率计算流程图。
[0031]图7为采用事件触发机制下采用的动态优先级提升软件流程图。
【具体实施方式】
[0032]以下结合附图和实施例对本发明做进一步描述。
[0033]4.1系统组成
[0034]本发明采用CAN总线技术做为整套技术的核心,硬件设计主要包括在上位计算机上采用一块CAN总线通讯适配卡,在下位机上设计了遵循CAN2.0B总线通信协议的数据采集卡,每套系统根据座舱接口系统的接口数量和仪表系统所需使用的控制信号的数量决定下位机中数据采集卡的多少,整个组成一个完整的数据采集系统。(见附图1和附图2)
[0035]软件设计主要包括上位机应用软件设计、下位机CAN总线节点软件设计。下位机软件模块主要采用单片机技术完成座舱信号的分类采集处理,然后按照CAN2.0B的总线标准设计与座舱控制计算机的通讯软件,将数据传输给上位机或从上位机接收数据。通过动态更新软件通讯波特率及动态优先级分配的软件算法来解决由CAN总线仲裁等方式引起的实时性等问题。
[0036]4.2系统实时性软件模块设计
[0037]4.2.1动态更新软件模块
[0038]运行在上位机的应用软件,将应用程序代码通过CAN总线发送给下位机节点;运行在下位机节点的引导程序,主要是响应下载命令,接受代码,把代码写入程序存储器,弓丨导应用程序。
[0039]①引导程序是一段特定的驻留代码,专门用于接收来自上位机新的代码,将其烧写到相应的程序存储空间,完成后跳转到应用代码区去执行新的程序,代码比较少,编译生成的映像文件小于4KB,每次系统上电或重启后先执行引导程序。
[0040]②应用程序是真正实现用户功能的代码。完成CAN总线下位机节点的数据采集和控制。
[0041]③用户数据区是用于存储应用程序的一些设置和数据。
[0042]引导代码的实现流程当用户需要更新应用代码时,上位机软件通过CAN总线向各个下位机节点发送升级命令。而下位机节点开机后自动运行引导程序,引导程序会检测有没有升级命令,如果有的话,则接收应用程序代码,直到完成整个升级。如果没有,则运行应用程序。整个程序流程见附图5。
[0043]4.2.2基于参数监测的自适应波特率计算
[0044]CAN总线传输速率由内部的总线定时寄存器O (BTRO)和总线定时寄存器I (BTRl)共同决定,因此可通过修改BTRO和BTRl值实现CAN总线波特率设置。根据模拟器各节点通信速率、系统实时性、稳定性及扩展性的需求,可通过基于参数监测的CAN总线自适应波特率计算方法实时计算最优波特率值,从而可在仿真系统程序初始运行、总线错误中断、未接收中断和监控到超阈参数时,通过执行相应的自适应波特率计算程序,设置最优CAN总线波特率参数值。
[0045]CAN总线波特率可设置为125kbps、250kbps、500kbps和IM bps,需要满足节点可扩展、响应时间小于10ms、总线负载小于30%等要求。由此,基于参数监测的自适应波特率计算法流程图参见图6所示。当出现仿真系统程序初始运行、总线错误中断、未接收中断和监控到超阈参数等条件时,启动自适应波特率计算程序,在当前波特率等级下进行监测试验,启动接收中断监测功能;其中波特率的等级N设置值,N = I时,波特率为125k bps, N=2时,波特率为250k bps, N = 3时,波特率为500k bps, N = 4时,波特率为IMbps ;如果监测到总线错误中断或总线负载大于30%时,需要降低波特率等级;如果监测到节点未接收中断或相应时间大于1ms时,需要增加波特率等级;当所有中断条件和参数条件都满足的情况下,测试N+1级波特率是否满足上述条件,如果满足继续进行监测试验,如果不满足条件,则当前N值即为最优波特率参数;保存N值并将重置CAN总线波特率。
[0046]4.2.3动态优先级分配软件设计
[0047]动态优先级分配算法是基于原有CAN总线事件触发协议的基础上,随着时间的推移动态调整各个节点的优先级的一类算法,相对于原有的固定优先级,它使每个站点都有相同的权力来享受总线的带宽,避免优先级较低的站点得不到总线占有权,保证网络数据传输的实时性。
[0048]在本系统中初始条件下,每个站点的优先级各不相同,在没有发生冲突的情况下,各个站点按初始固定优先级完成数据的发送。当发生冲突后,优先级高的站点在竞争中胜出发送数据,为了能让失败的站点在下次的竞争中有更大的概率胜出,可以把竞争失败站点的优先级提高一个等级来参加下一次的竞争。如果仍然失败再进一步提高优先级等级。即使失败了若干次,但这时候该站点的优先级已经相当高了,竞争胜出的概率也会很大。需要注意的是当优先级低的站点在优先级提高的情况下获得数据发送权并发送完数据后,必须把升级的优先级降低为初始优先级,以保证网络的正常运行。
[0049]为了避免在站点优先级提高后网络中有出现两个或者多个站点具有相同的优先级,可以采用下面的方法来避免,定义在帧格式中,表示站点优先级的位数为k,可以表示的最大数为2k-l。网络中的节点数η必须满足η < k,每个站点的初始固定优先级为2k-n-a,a为[0,k-l]区间的一个值。当站点竞争失败后,优先级的增加算法是:新优先级=原站点优先级-1。这样可以避免软件优先级出现相同数值。软件流程图如附图7。
[0050]采用以上优先级分配算法后,对于系统
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1