尽管数字信号处理器(DSP)的性能越来越强,基于] 本文采用]
在实时系统中,如果系统的运行不能满足响应时间的要求,将会导致整个系统的崩溃。因此,分布式系统各组件之间的通信和协调工作是实现系统各组件并发处理、系统资源共享、均衡系统各组件的负载、提高整个系统的吞吐量、保证系统可靠工作的关键。 ]本文重点讨论了各子系统之间的通信方式、系统的任务分配和系统的协调工作机制。 ]1、系统的构成 1.1]CAN(Controller Area Network)属于总线式串行通信网络。CAN 总线有效地支持安全可靠的分布式实时控制系统,通信方式灵活、抗干扰能力强、可靠性高,直接通信距离最远可达 10km(传输率 5kbps 以下),通信速率最高达 1Mbps(通信距离 40m 以内),网上节点数可达 110 个。CAN 总线为多主工作方式,可以方便地构成多机备份系统。 ]1.2 数字信号处理器 TMS320F2812] 1.3]基于 TMSF2812 DSP 的嵌入式子系统(见图 1)是为满足实时多任务而设计的,硬件、软件可根据需要进行裁剪,可靠性高、响应速度快、自动化程度高。 ]三个子系统的硬件设计完全相同,除 DSP 片上资源外,每个子系统都扩展了非易失性存储器(E2PROM 或铁电随机存储器)、SRAM、四路 RS422 接口(两路 RS232 可选)、实时时钟等辅助模块。 ] ]1.4 系统的体系结构 该系统是由三个基于] 三个子系统之间主要通过] 2、分布式系统的协同工作 分布式系统的资源位于不同的位置,系统需要不断监视各组件的状态,检查资源的使用情况。当一个处理器出现故障时,系统应该立即响应,重新调配资源,规划任务分配方案,确定任务分配策略,重构系统,必要时牺牲系统的某些性能,以保证系统正常工作。 ]2.1 系统状态监视 系统状态包括每个子系统各个模块的工作状态(CPU、UART] 分布式系统中,各子系统难以确定系统的状态。为此,网络上的每个子系统应定时向其他子系统广播,将各自的状态通知其他子系统(见图] 图] 不失一般性,令三个子系统的状态的集合为] SS=ρ(SA∪SB∪SC) ={Si|0≤i≤N} (1) 其中:ρ(A)表示] 2.2]一般情况下,多处理机任务分配问题是 NP- 完全的,通常是根据具体应用需求,确定一个可行的、比较满意的任务分配策略。任务分配的目的是合理配置系统资源,设法减少系统中各处理器间的通信开销和执行模块所需的开销。均衡负载是将系统承担的任务合理地分配给系统中各处理机,最大限度地提高系统的吞吐量。一般来说,减少系统的通信量和均衡负载是相互矛盾的。因此,任务分配策略也就是最大限度地减少系统中各子系统间的通信量,同时均衡各子系统的负载,以此提高整个系统的性能。 ]系统的任务分配有两种方式:自动方式和人工方式。自动分配方式是根据系统状态和各子系统任务量的估计确定任务分配策略,通过软件自动为各子系统分配任务。人工分配方式是测控中心通过指令为子系统分配任务。 ]不妨假设系统是由 N 个组件构成的一个分布式系统,承担的任务为 T,则: ] ]在实际应用中,任务分配策略受多种因素的制约和影响,如空间限制、信号干扰、通信距离等,所以,只能在一定条件下最大限度地满足负载均衡、任务间最小通信量等任务分配原则。 ]在该系统的具体应用中,考虑到信号干扰和数据传输的要求,将系统承担的任务主要分为信号的采集 / 预处理(SP)、信号运算(SC)、过程控制(SO)。SP 任务主要承担 23 路模拟信号的采集、AD 转换、信号滤波等;SC 任务主要承担各类信号的运算;SO 任务主要承担过程控制的参数计算、控制信号输出、与测控中心实时交互等。经过测试,CPU 对于 SP、SC、SO 任务的负载基本均衡,三个子系统之间的通信量基本相同。将承担 SP 任务的子系统尽量放置在信号源附近,将承担 SO 任务的子系统尽量放置在控制部件附近,可以减小信号的干扰,同时也能减少数据的通信量。基于以上因素的考虑,根据系统状态,确定如表 1 所示的任务分配策略。 ] ]2.3 系统的协同工作 系统协同工作包括系统资源的统一调配(CPU、各类存储器、事件管理器、GPIO] 2.4]系统由三个子系统构成,每个子系统有四路 RS422 串口,记作 Ai、Bi、Ci(i=1、2、3、4)。根据任务的需求,Ai、Bi、Ci 连接在一起,分别完成信息采集、子系统之间辅助通信、与测控中心交互的任务。 ] ]与测控中心实时交互的目的是:一方面将系统状态和各种参数传送到测控中心;另一方面,测控中心可以发送指令,完成指定的任务。 ]测控中心实时监视系统的工作状态。当 CAN 总线工作正常时,系统自动完成任务分配等任务;当 CAN 总线出现断路或其他线路故障时,测控中心发送指令给系统,人工分配任务,保证系统正常工作。 ]根据任务的需求,三个子系统的串口 Ai、Bi、Ci(i=1、2、3、4)连接在一起发送数据时会发生冲突,因此,系统应根据各串口的工作状态确定线路状态,根据线路状态决定对串口的读写。 ]本文介绍了由三个 DSP 嵌入式子系统构成的基于 CAN 总线的分布式系统的软、硬件设计方案,着重分析了各子系统之间协同工作的方式。该系统充分利用了分布式系统的并发性和可靠性等特点,在满足多路信号实时处理、多个过程控制、与测控中心实时交互等要求的基础上,采用自动分配任务和指令分配任务相结合的方式,有效地提高了系统的可靠性。实验仿真和现场测试表明,该系统不仅满足了任务要求,而且还具有很高的稳定性和可靠性。
|