微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于VxWorks的多路高速串口的通信方法设计

基于VxWorks的多路高速串口的通信方法设计

时间:08-14 来源: 点击:


图1(a)和图1(b)的分组长度不同,但之间的到达间隔都很小。计算得出图1(b)单位时间的吞吐率明显要比图1(a)小,但如果图1(b)采用中断方式,就要频繁地响应中断,效率将大大降低。图1(d)的分组很长,一次接收中接收到的数据非常多,但之间的到达间隔很长,如果计算吞吐率选择的单位时间正好为数据接收时间,在这一段时间内吞吐率很大,则误认为数据量很大,选择轮询方式接收。相比之下,图1(c)和图1(d)选用中断方式更为理想。

根据以上分析可以发现,用数据到达的时间间隔可以近似地表示数据量的大小。如果数据到达间隔很小,且频繁到达,则认为负载很大,选择轮询方式;如果数据到达间隔很大,则认为负载很小,选择中断方式。在轮询方式中,如果根据已知的到达时间,推算出下一数据的到达时间,根据计算出的结果来设定轮询周期,则轮询效率更加提升。

2.2 门限的计算

上述计算到达间隔判断切换时机的方式,不能体现数据到达间隔的变化规律。可选用平均到达时间的均方根和均值的比值作为判断切换的标准,这个比值系数代表了平均到达时间的变化程度。当比值小时表明预测的值与平均值偏差很小,数据到达的间隔时间是有规律的,可以预测。这种情况显然要应用轮询方式,把轮询周期设为平均到达间隔时间。

平均到达间隔时间的计算方法如下式:

式中:D为最后一个数据到达的间隔时间;α为平均到达间隔时间的加权系数,α控制着D相对于以往的到达时间间隔历史所占的比重。用这种方法,平均到达间隔时间就可以积累到达间隔时间了。
平均到达时间的方差用下式估计:

式中:β为到达间隔时间的方差加权系数,且控制估计器的记忆性。σ2开方就得到平均到达间隔时间的均方根σ了。
下式表明了切换到轮询时的门限:

式中:γ为预测门限,为系统可容忍的最大轮询周期,在本系统中为满足上层的应用,为20 ms。表明数据到达间隔规律;表明平均到达间隔小于系统所能忍受的最小间隔。数据到达不频繁,认为满足以上两个条件时切换到轮询模式;当满足的条件相反时,切换到中断方式。

3 实例分析

在可接收10路空中信号的多串口系统中对该算法进行实现,系统结构如图2。该系统可将数据信息(主要为语音数据)接收后转换为以太网数据包,通过10MHz以太网口送出。同时,它从以太网口接收来自控制台的各类指令,完成相应的处理任务。


信号经过1:10功分器,分给10个RF接收模块,完成RF接收,输出串行信号,每路串口为串行信号的最大速率115.2kbps,RF接收模块每20ms发一个数据包,一个数据包最大为30bit。之后串行信号经过3片OX16C954(每片有4路UART)转换成并行总线信号,输出给MPC860T(CPU)。每片OX16C954设置有128B的环形缓冲区,所以经过时间缓冲区就会被写满。为了保证不丢失数据,应该在8.8ms内完成对10个终端接收模块进行一次接收。OX16C954中断门限设为64B,当接收缓冲超过64B时,OX16C954产生接收中断。在OX16C954还设置有超时中断,当从接收最后一个停止位中心开始计时,在四个符号周期内没有接收新的信息,即就产生超时中断。批中断的应用如图3。多个串口通过CPLD共享一个中断源,在中断频繁,多个串口同时产生中断的情况下,实现了批中断,节约了中断资源,提高了中断效率。

本系统的设计基于VxWorks操作系统。VxWorks操作系统提供对多种处理器的广泛支持,具有完善的开发环境、开放的软件接口、优异的实时性能和全面可靠的网络功能及良好的可裁剪性,适用于各种嵌入式环境的开发。

程序实现过程:系统加电待操作系统启动之后,应用程序首先根据主控和PC机的IP地址,得到它们的MAC地址,为以后进行UDP数据传送做准备;初始化MPC860T的Port C口,把PC12、PC15初始化为数据输出口,分别用于点亮运行时的状态灯和设置/清除硬件看门狗;初始化OX16C954,打开10路串口,接收终端模块的数据;同时向终端模块发送数据,初始化UDP协议栈;最后,进入无限循环中,从各个串口收集数据,解开数据包,以UDP的方式,把话音包发给PC机,把非话音包发给主控;同时,从网络上接收来自主控的UDP数据,根据端口号,把数据转发给各个终端模块。PC机不直接向DPM发送UDP数据,只有主控向各个终端发送数据,故由DPM至PC机的数据为单向。管理看门狗,每循环一次,开关一次看门狗,处理一次状态灯。整个程序的流程如图4所示。

在10路都没有数据的极限情况下测量轮询开销VP。在这种极限情况下,应用全中断的方式,10路串口没有数据不会产生中断,中断开销为0;应用全轮询的方式,CPU每次只查询外部寄

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top