分布式无线通信传输技术测试平台互联技术设计方法

文档序号:7627904阅读:467来源:国知局
专利名称:分布式无线通信传输技术测试平台互联技术设计方法
技术领域
本发明涉及一种分布式的无线通信传输技术测试平台的设计方法,尤其涉及一种利用套接字实现分布式无线通信传输技术测试平台各个处理器之间的TCP/IP网络通信技术设计方法。
背景技术
随着无线通信近年的爆炸性发展,通信和信号处理系统也变得越来越复杂。与此同时,各种新技术的发展,如快速、廉价的数字信号处理硬件、现场可编程门阵列(FPGA)、片上系统(SOC)等,开始对通信系统的实现产生重大的影响。通信系统复杂性的增加使得分析与设计所付出的时间和精力也迅速上升。在另外一方面,运用传统的方法设计诸如第三代移动通信、超三代移动通信如此庞大和复杂的电子系统,如同用一砖一瓦建造金字塔,效率低、成本高,且极容易出错。
常用的无线通信测试评估方法有公式推导、计算机仿真测试和硬件仿真测试。基于公式的方法在对系统的整体性能提供透彻了解方面是比较困难的,而且公式推导常常是在简化模型的基础上进行的,因此准确度欠佳。在设计的早期阶段,除了一些理想和过分简化的情况外,仅用分析方法评估复杂的通信系统的性能是极度困难的。根据硬件的测量数据评估性能当然是准确而可信的方法。在设计阶段后期,这种方法费钱费时,不灵活。在设计周期的早期由于设计的方案选择对象可能很多,需要针对每一种设计方案制定不同的硬件测试方案,这种方法显然是不可取的。将基于仿真的方法用于性能评估,几乎可以按要求的任意详细程度建立模型,和基于公式或硬件的方法相比,设计空间更好地得到了利用。用基于仿真的方法,可以很容易地将数学和经验的模型结合在一起,被仿真的结果也能用作参考以证实硬件的功能。
从第二代移动通信系统的研发开始至今,计算机仿真测试已经成为了移动通信研发的最有力武器。每一项新技术或每一个新系统投入商用之前都是由多家公司或者研究机构进行了长时间的仿真以检验其性能。通常的通信系统的仿真测试分为链路级仿真测试和系统级仿真测试两方面。系统级仿真测试主要是针对无线接入系统进行仿真测试。链路级仿真测试主要是对通信系统物理层的无线传输技术(如编码、交织、调制和扩频等)进行仿真,得到该技术在不同无线信道下的性能。仿真结果主要表现为在不同无线环境下的误码率(BER)或者误帧率(FER)与信噪比的关系曲线。链路级仿真主要有两个用途,一是用于检验无线传输技术的性能,二是检验无线系统的端到端性能,并为系统级仿真提供数据支持。
多输入多输出(MIMO,Multiple-Input Multiple-Output)无线通信传输技术具有很好的抗衰落和抗噪声的能力,从而可获得巨大的容量。因此,在功率带宽受限的无线信道中,多输入多输出(MIMO,Multiple-Input Multiple-Output)无线通信传输技术是实现高数据速率、提高系统容量和传输质量的重要技术之一。它的优越特性使之成为未来超三代通信系统(B3G)以及第四代通信系统中的关键技术之一。
针对多输入多输出通信系统的无线传输技术进行评估所需的运算量要比以往的单输入单输出通信系统的评估测试要大很多。如果再考虑多用户情况下的测试,其运算量是无法利用现有的单台高性能计算机实现的。

发明内容
本发明的目的在于克服上述现有技术的缺点,提供一种分布式无线通信传输技术测试平台互联技术设计方法,它将整个传输技术仿真测试的运算分散到两台计算机上运行,从而提高无线通信传输技术测试评估的效率;另外,本发明将分别在两台不同的计算机中运行的发射机和接收机通过TCP/IP协议连接了起来,使得发射机和接收机真正实现了物理分离并且接收机所接收到的数据完全由第三方评估单位来决定,从而提供给测试方一个公平、公开的测试平台环境,保证了测试公平性。
本发明为解决技术问题所采用的技术方案是一种利用套接字实现分布式无线通信传输技术测试平台各个处理器之间的TCP/IP网络通信,包括以下步骤第一步,采用双线程技术,即工作线程和用户界面线程,实现分布式无线通信传输技术测试平台的主控部分,主控部分的实现包含两个流程第一个为双机通信流程,第二个为虚拟仪器控制流程;在双机通信流程中,信道输出的数据存入缓冲区后,将读写标志位即全局变量置为可读,并将这一事件作为一个消息告知用户界面线程,用户界面线程判断这一消息属性之后,调用网络通信模块进行发送操作,接收机用户界面线程的网络通信模块接收到数据之后,将读写标志位即全局变量置为可读,用以告知工作线程可以从接收机输入缓冲区读取数据并调用接收机模块;虚拟仪器控制流程则是利用临界区的方法实现虚拟仪器所处的用户界面线程与工作线程之间的线程同步;
工作线程主要用于链路的计算,而用户界面线程将用于虚拟仪器的显示和实现两个主机之间的互联通信;使用MFC(Microsoft Foundaation Class微软基础类)提供的同步对象中的临界区对象CCriticalSection保重线程间的同步;利用创建自定义消息的方法实现两个线程之间的通信;创建自定义消息的方法具体如下 首先定义全局变量const WM_SENDDATA=WM_USER+100; 在对话框类的头文件中DECLARE_MESSAGE_MAP()的前面添加下列语句afx_msg void OnSendData(); 在对话框类的实现文件中BEGIN_MESSAGE_MAP()的后面添加语句ON_MESSAGE(WM_SENDDATA,OnSendData),将消息与消息执行函数代码捆绑; 编写OnSendData()发送数据函数;工作线程中,信道处理数据完毕后,产生该消息使用语句SendMessage((HWND)pParam,WM_SENDDATA,0,0),即可向用户界面线程发送消息,用户界面线程根据自身的消息处理机制自动响应该消息,调用OnSendData()函数,发送数据;第二步,使用套接字实现分布式无线通信传输技术测试平台各主机之间的互联首先,使用客户机/服务器模型来实现各主机之间的互联;将发射主机作为服务器,接收主机作为客户机;其次,将要传送的信道输出的数据进行组包、传送,组包的数据由包头和包数据组成,包头中的内容包括包头长度;信道当前信息,亦即信道当前的状态信息,当前包是否是最后一包,包数据位于包头后面,它里面储存的是所要发送的数据;组包完成之后,利用自定义消息的方法,告知用户界面线程需要发送当前数据,用户界面线程响应该自定义消息之后,调用套接字中的发送函数将数据发送给接收主机。
使用套接字实现分布式无线通信传输技术测试平台各主机之间的互联,采用了TCP/IP协议的网络互联技术;亦即,网络传输算法;网络传输算法是将发射主机作为服务器,接收主机作为客户机;网络传输算法采用自定义消息的方法来实现工作线程与用户界面线程之间的通信;按照所测业务的不同,网络传输的负荷也不同,网络传输算法按以下步骤进行第一步,发射主机和接收主机之间建立信令规定;定义接收主机向发射主机发送“1”表示当前包处理完毕,请发下一包数据;发送“2”表示当前信噪比测试结束,要求发射机变化信噪比,进行下一个信噪比点的测试;发送“3”表示整个测试完毕;第二步,发射主机方发现信道输出缓冲区为可读,亦即信道已经将处理完的数据放入缓冲区中等待网络传输时,工作线程利用自定义消息的方法请求用户界面线程发送数据;用户界面线程收到该消息后,工作线程就将处理器的使用权交给用户界面线程,用户界面线程随即调用套接字发送函数,将信道输出缓冲区中的数据发送出去,同时,将信道输出缓冲区的读写标志置为可读,以便信道函数能够输出下一包数据;用户界面线程在完成上面的一系列操作后,再将处理器的使用权交还给工作线程。
第三步,当发射机方发送数据给接收机方后,接收主机自动响应套接字中的接收数据函数,以接收数据;由于接收机响应的消息函数存在于用户界面线程中,而在未接收数据之前,接收机一直处于工作线程内,在响应该消息函数之后将工作线程挂起,接收主机接收完数据后,将挂起的工作线程重新启动,工作线程发现接收机输入缓冲区已经存放有数据,调用接收机模块,误码判决模块进行相应运算;运算完毕之后,接收主机根据情况不同,即接收机是否需要下一包数据、是否切换信噪比、当前仿真是否结束选择不同的信令,利用网络传输,将信令反馈给发射主机,发射主机根据接收机反馈回来的信令来选择下一步操作是执行结束当前测试,或者继续进行当前信噪比下的误码率测试,或者切换到下一个信噪比再进行测试操作。
当网络传输的负荷在100-200M字节时,套接字使用CAsyncSocket类的成员函数AsyncSelect()和IOCtl()函数;将非阻塞模式的CSocket强制转换成阻塞模式。
当网络传输的负荷100-200M字节时,在发射主机和接收主机程序内设定计时器,限定某一个成功传送的时间,若在该时间内接收方已经响应消息,接收完毕数据,则返回;若在该时间内没有响应,则强行调用接收函数进行接收。
本发明的有效成果是,本发明提出了一种分布式无线通信传输技术测试平台各处理器之间互联方法,利用套接字将测试平台的各个处理器利用TCP/IP网络协议连接起来,利用TCP/IP协议能够保证数据无差错的、顺序一致的进行传送这一优点,保证了各个处理器之间数据传递的实时性和准确性,从而利用此发明构建起分布式无线通信传输技术的总体框架。


图1是本发明分布式无线传输技术仿真测试平台的模块组成示意图;
图2是本发明分布式无线传输技术仿真测试平台数据交换接口的基本设置示意图;图3是本发明双线程在分布式无线传输技术仿真测试平台的工作流程示意图;图4是数据通过互联技术进行网络传输时数据封装的结构示意图;图5是网络算法流程示意图;图6是分布式无线传输技术测试平台的发射主机的界面示意图;图7是分布式无线传输技术测试平台的接收主机的界面示意图。
下面结合附图对本发明的内容作进一步详细说明。
具体实施例方式
参照图1所示,整个测试平台由两台通过网络连接的处理器,即发射主机和接收主机组成。其中发射主机实现信源、发射模块和信道三个模块所完成的功能,而接收主机实现接收模块和统计模块的功能。并利用以太局域网,采用互联网常用的TCP/IP协议将这两部分组织起来,从而构成一条完整的无线通信链路。另外,两个主机都配备有虚拟仪器,用以观察各种统计指标。比如接收主机的虚拟仪器可以观察误码率曲线、星座图。发射主机的虚拟仪器可以观察被测模块的频谱利用率、星座图以及功率直方图。而统一性检测是为了对TDD(时分双工)以及FDD(频分双工)两种不同制式的双工方式加以统一的模块。这样便于对两种不同制式的双工方式进行公平的评估。
参照图2所示,测试平台的主控程序提供了5个公共数据交换区,分别用A,B,C,D,E表示,用于前一级模块与后一级模块之间的数据传递,或用于虚拟仪器显示其输出的数据。每个数据交换区均是系统分配的连续存储空间。其中A、B、C三个数据交换区由发射主机开辟,经由双机通信将C交换区的数据传送到接收主机的D交换区作为接收模块的输入,亦即C和D两个交换区中的数据完全相同(B和C两个交换区的仿真粒度相同)。
参照图3所示,根据其给出的工作流程图对整个系统进行架构。它主要包含两类流程第一类为双机通信流程,第二类为虚拟仪器控制流程。在第一个流程中,信道输出的数据存入缓冲区后,将读写标志位(全局变量)置为可读,并将这一事件作为一个消息告知用户界面线程,用户界面线程判断这一消息属性之后,调用网络通信模块进行发送操作,接收机用户界面线程的网络通信模块接收到数据之后,将读写标志位(全局变量)置为可读,用以告知工作线程可以从该缓冲区读取数据并进行相应的操作。第二类工作流程则是利用临界区的方法实现虚拟仪器与工作线程之间的线程同步。
为了避免虚拟仪器从各个接口的缓冲区读取数据时,用户界面线程与工作线程中的链路计算程序冲突这种线程间的同步问题,利用MFC(MicrosoftFoundation Class微软基础类)提供的同步对象中的临界区对象(CCriticalSection)来解决线程间的同步。
首先定义一个CCriticalSection的对象CriticalBuffer。然后在线程中可能产生冲突的区域前(即访问共享资源之前)调用CriticalBuffer.lock()函数,将当前共享资源封锁仅为当前线程所用,访问完当前共享资源之后再调用CriticalBuffer.unlock()函数,释放当前线程对该共享缓冲区的操作权,让其它线程使用。
其次,由于在Visual C++中,只有用户界面线程中才能使用MFC(MicrosoftFoundation Class微软基础类)类库中的类和函数。而双机通信所要使用的CSocket属于MFC(Microsoft Foundation Class微软基础类)类库,所以必须将双机通信模块放到用户界面线程中去。这就需要线程之间进行通信,亦即工作线程如何告诉用户界面线程需要发送或者接收数据,用户界面线程不可能通过全局变量来循环等待工作线程请求发送数据,所以采用了自定义消息的方法来实现工作线程与用户界面线程的通信。这样,一旦信道已经输出数据完毕,产生消息,用户界面线程响应消息调用发送函数,将数据发送出去。同样,接收数据时,由于接收数据的消息CSocket本身就有,所以只需要判断当前要写入的缓冲区是否可写。若可写,则写入数据。创建自定义消息的方法具体如下 首先定义全局变量const WM_SENDDATA=WM_USER+100; 在对话框类的头文件中DECLARE_MESSAGE_MAP()的前面添加下列语句afx_msg void OnS endData(); 在对话框类的实现文件中BEGIN_MESSAGE_MAP()的后面添加语句ON_MESSAGE(WM_SENDDATA,OnSendData),将消息与消息执行函数代码捆绑。
编写OnSendData()发送数据函数。
工作线程中,信道处理数据完毕后,产生该消息使用语句SendMessage((HWND)pParam,WM_SENDDATA,0,0),即可向用户界面线程发送消息,用户界面线程根据自身的消息处理机制自动响应该消息,调用OnSendData()函数,发送数据。
参照图4所示,我们对发射主机所要发送的数据进行组包。这样才能使接收主机能够确认数据包的顺序、大小,保证传输的正确性。其中包头中的内容包括包头长度;信道当前信息,亦即信道当前的状态信息,当前包是否是最后一包;还有所要发送的数据长度。
参照图5所示,使用套接字实现基于TCP/IP协议的网络互联技术。亦即,网络传输算法。分布式无线通信传输技术测试平台采用的是客户机/服务器模型来实现各主机之间的互联,客户机/服务器模型是分布式应用程序的最常用的范例。我们将发射主机作为服务器,接收主机作为客户机。由于测试平台的发射主机和接收主机都是由工作进程和用户界面进程组成的,其中用户界面进程不仅仅负责软件界面和虚拟仪器,还负责网络传输的任务,因此网络传输算法要涉及到工作线程与用户界面线程之间的通信。具体的流程如下所述发射主机方面,在工作线程中,当信道输出缓冲区为可读(亦即信道已经将处理完的数据放入缓冲区中等待网络传输)时,工作线程利用自定义消息的方法请求用户界面线程发送数据。用户界面线程收到该消息后,工作线程就将处理器的使用权交给用户界面线程,用户界面线程随即调用网络通信函数,将信道输出缓冲区中的数据发送出去。同时,将信道输出缓冲区的读写标志置为可读,以便信道函数能够输出下一包数据。用户界面线程在完成上面的一系列操作后,再将处理器的使用权交还给工作线程。工作线程一直工作,直到发射主机接收到由接收主机反馈回来的信令。发射主机根据该信令的具体内容来判断是否还要向接收主机发送数据,是否应该切换信噪比,是否应该停止测试等。
接收主机方面当发射机方发送数据给接收机方时,接收主机会自动响应CSocket类中的消息函数Onreceive(),去接收数据。由于接收机响应的消息函数存在于用户界面线程中,而在未接收数据之前,接收机一直处于工作线程内,为了保护现场,要在响应该消息函数之后将工作线程挂起。接收主机接收完数据后,将挂起的工作线程重新启动,工作线程发现接收机输入缓冲区已经存放有数据,于是调用接收机模块,误码判决模块进行相应运算。运算完毕之后,接收主机根据情况不同(接收机是否需要下一包数据、是否切换信噪比、当前仿真是否结束),选择不同的信令利用网络传输,将信令发送给发射主机,然后等待发射主机按照信令执行下一步的操作。以上所述就是网络传输流程,具体可以参考图5所示。总之,如何控制好发射主机与接收主机之间的协同工作,如何处理工作线程与用户界面线程之间的通信是利用TCP/IP实现整个测试系统双机通信的关键之所在。
虽然链路级测试仅仅是单向测试,包括上行链路测试和下行链路测试。每一种情况的测试,数据的流向都是单向的。即数据总是由发射主机到接收主机。但为了能够使发射主机和接收主机之间协同工作,保证接收主机所接收到的数据在未处理完之前不会被下一包数据冲掉,必须要在发射主机和接收主机之间建立信令规定。比如我们定义接收主机向发射主机发送“1”表示当前包处理完毕,请发下一包数据。发送“2”表示当前信噪比测试结束,要求发射机变化信噪比,进行下一个信噪比点的测试。发送“3”表示整个测试完毕。
套接字有同步阻塞方式和异步非阻塞方式两种使用方法,同步和异步往往都是针对一个函数来说的,所谓“同步(阻塞)”就是指函数直到其要执行的功能全部完成时才返回;而“异步(非阻塞)”则是函数仅仅做一些简单的工作,然后马上返回,而它所要实现的功能留给别的线程或者函数去完成。为了能够保证链路测试主控流程顺序执行,保证网络传输数据的次序,防止冲掉数据,在平台网络传输中使用的是MFC(Microsoft Foundation Class微软基础类)中的CSocket类,CSocket是MFC(Microsoft Foundation Class微软基础类)在CAsyncSocket基类上派生的一个同步阻塞Socket的封装类。虽然是同步阻塞Socket类,但是CSocket类是由CAsyncSocket类派生出来的。CAsyncSocket是异步非阻塞模式的,它的派生类CSocket归根结底还是异步非阻塞模式的。只是MFC(Microsoft Foundation Class微软基础类)利用循环,将其强行置成同步阻塞模式。在程序调试过程中,发现如果采用CSocket的模拟同步阻塞模式会出现这样的问题当网络传输数据的频率较高时,比如在8K语音业务测试时,发射机和接收机要处理的数据较少,需要频繁调用网络传输模块传送数据。或者一次网络传输的数据量很大时,比如在两小区两用户100M数据业务测试时,传送的数据量最大。在这两种情况下,经常会出现双机死锁的现象,亦即接收主机虽然响应消息,去接收数据,但是由于数据量过大或有延时,无法按程序员规定的数据量大小去接收,由于MFC(Microsoft Foundation Class微软基础类)将CSocket强制设为死循环来模拟同步阻塞模式,接收方接收不到所规定的数据量就只好死循环。而发送主机方此时在不停的给接收方发送数据,接收方无法清空缓冲区,这就导致发送方无法继续发送数据,导致死锁。这样发送主机和接收主机全部进入死循环,链路测试无法继续进行。在程序调试时,采用了以下两种方法解决死锁问题1.设定计时器,采取超时催收机制。当网络传输的负荷较高时,往往会出现发送主机已经开始发送数据,但接收主机并没有响应消息,导致当前数据包传送失败。在这种情况下,某项操作可能永远不能成功完成,程序为了等待其完成就得永远循环下去。在程序中,我们限定某一个成功传送的时间,如果在该时间内接收方已经响应消息,接收完毕数据,则返回。若在该时间内没有响应,则强行调用接收函数进行接收。
2.使用CAsyncSocket类的成员函数AsyncSelect()和IOCtl()函数。将非阻塞模式的CSocket强制转换成阻塞模式。IOCtl()是用来控制Socket模式的函数。它可以得到或设置任何状态下,当前Socket的参数、协议、通信子系统。AsyncSelect()函数用于确定使用了MFC(Microsoft Foundation Class微软基础类)中的哪个回复通知函数(callback notification function)。而AsyncSelect()函数会自动将Socket设置为非阻塞模式。
选择BOOL IOCtl(long ICommand,DWORD*IpArgument)函数的形参ICommand为FIONBIO,FIONBIO是禁止还是使能非阻塞模式的参数。IpArgument指向一个DWORD型变量的指针,该变量为零则禁止非阻塞模式,将当前Socket置为阻塞模式。在调用IOCtl之前,必须禁止AsyncSelect()函数,否则调用IOCtl()将会出错。具体的代码如下DWORD d=0;//定义DWORD型变量dm_clientsock.AsyncSelect(0);//禁止AsyncSelect函数m_clientsock.IOCtl(FIONBIO,&d);//调用IOCtl函数将当前Sokcet置为阻塞模式。
参照图6所示,图中上侧两个深色区域显示的是被测方的无线传输技术方案用测试平台在特定信道条件下所测得的频谱利用情况。
参照图7所示,图中上侧两个深色区域显示的是被测方的无线传输技术方案在特定信道条件下采用测试平台所测得的误码率性能。
权利要求
1.分布式无线通信传输技术测试平台互联技术设计方法,其特征在于,按以下步骤进行第一步,采用双线程技术,即工作线程和用户界面线程,实现分布式无线通信传输技术测试平台的主控部分,主控部分的实现包含两个流程第一个为双机通信流程,第二个为虚拟仪器控制流程;在双机通信流程中,信道输出的数据存入缓冲区后,将读写标志位即全局变量置为可读,并将这一事件作为一个消息告知用户界面线程,用户界面线程判断这一消息属性之后,调用网络通信模块进行发送操作,接收机用户界面线程的网络通信模块接收到数据之后,将读写标志位即全局变量置为可读,用以告知工作线程可以从接收机输入缓冲区读取数据并调用接收机模块;虚拟仪器控制流程则是利用临界区的方法实现虚拟仪器所处的用户界面线程与工作线程之间的线程同步;工作线程主要用于链路的计算,而用户界面线程将用于虚拟仪器的显示和实现两个主机之间的互联通信;使用MFC(Microsoft Foundation Class微软基础类)提供的同步对象中的临界区对象CCriticalSection保重线程间的同步;利用创建自定义消息的方法实现两个线程之间的通信;创建自定义消息的方法具体如下 首先定义全局变量const WM_SENDDATA=WM_USER+100; 在对话框类的头文件中DECLARE_MESSAGE_MAP()的前面添加下列语句afx_msg void OnSendData(); 在对话框类的实现文件中BEGIN_MESSAGE_MAP()的后面添加语句ON_MESSAGE(WM_SENDDATA,OnSendData),将消息与消息执行函数代码捆绑; 编写OnSendData()发送数据函数;工作线程中,信道处理数据完毕后,产生该消息使用语句SendMessage((HWND)pParam,WM_SENDDATA,0,0),即可向用户界面线程发送消息,用户界面线程根据自身的消息处理机制自动响应该消息,调用OnSendData()函数,发送数据;第二步,使用套接字实现分布式无线通信传输技术测试平台各主机之间的互联首先,使用客户机/服务器模型来实现各主机之间的互联;将发射主机作为服务器,接收主机作为客户机;其次,将要传送的信道输出的数据进行组包、传送,组包的数据由包头和包数据组成,包头中的内容包括包头长度;信道当前信息,亦即信道当前的状态信息,当前包是否是最后一包,包数据位于包头后面,它里面储存的是所要发送的数据;组包完成之后,利用自定义消息的方法,告知用户界面线程需要发送当前数据,用户界面线程响应该自定义消息之后,调用套接字中的发送函数将数据发送给接收主机。
2.根据权利要求1所述的分布式无线通信传输技术测试平台互联技术设计方法,其特征在于,使用套接字实现分布式无线通信传输技术测试平台各主机之间的互联,采用了TCP/IP协议的网络互联技术;亦即,网络传输算法;网络传输算法是将发射主机作为服务器,接收主机作为客户机;网络传输算法采用自定义消息的方法来实现工作线程与用户界面线程之间的通信;网络传输算法按以下步骤进行第一步,发射主机和接收主机之间建立信令规定;定义接收主机向发射主机发送“1”表示当前包处理完毕,请发下一包数据;发送“2”表示当前信噪比测试结束,要求发射机变化信噪比,进行下一个信噪比点的测试;发送“3”表示整个测试完毕;第二步,发射主机方发现信道输出缓冲区为可读,亦即信道已经将处理完的数据放入缓冲区中等待网络传输时,工作线程利用自定义消息的方法请求用户界面线程发送数据;用户界面线程收到该消息后,工作线程就将处理器的使用权交给用户界面线程,用户界面线程随即调用套接字发送函数,将信道输出缓冲区中的数据发送出去,同时,将信道输出缓冲区的读写标志置为可读,以便信道函数能够输出下一包数据;用户界面线程在完成上面的一系列操作后,再将处理器的使用权交还给工作线程;第三步,当发射机方发送数据给接收机方后,接收主机自动响应套接字中的接收数据函数,以接收数据;由于接收机响应的消息函数存在于用户界面线程中,而在未接收数据之前,接收机一直处于工作线程内,在响应该消息函数之后将工作线程挂起,接收主机接收完数据后,将挂起的工作线程重新启动,工作线程发现接收机输入缓冲区已经存放有数据,调用接收机模块,误码判决模块进行相应运算;运算完毕之后,接收主机根据情况不同,即接收机是否需要下一包数据、是否切换信噪比、当前仿真是否结束选择不同的信令,利用网络传输,将信令反馈给发射主机,发射主机根据接收机反馈回来的信令来选择下一步操作是执行结束当前测试,或者继续进行当前信噪比下的误码率测试,或者切换到下一个信噪比再进行测试操作。
3.根据权利要求1所述的分布式无线通信传输技术测试平台互联技术设计方法,其特征在于,当网络传输的负荷在100-200M字节时,套接字使用CAsyncSocket类的成员函数AsyncSelect()和IOCtl()函数;将非阻塞模式的CSocket强制转换成阻塞模式。
4.根据权利要求1所述的分布式无线通信传输技术测试平台互联技术设计方法,其特征在于,当网络传输的负荷在100-200M字节时,在发射主机和接收主机程序内设定计时器,限定任一个成功传送的时间,若在该时间内接收方已经响应消息,接收完毕数据,则返回;若在该时间内没有响应,则强行调用接收函数进行接收。
全文摘要
本发明公开了一种分布式无线通信传输技术测试平台的互联技术,利用套接字实现测试平台各个处理器之间的TCP/IP网络通信,解决了采用传统的单个计算机所建立的无线通信测试平台无法处理具有更大运算量的多输入多输出(MIMO)通信系统无线传输技术,该方法利用多线程技术将测试平台分为用户界面线程和工作线程,便于处理用户产生的事件和消息,且在用户界面线程中利用套接字实现基于TCP/IP协议的网络互联技术。使用该方法将两个独立并行运算的处理器相互联接起来,进而构建起分布式的无线通信传输技术测试平台,同时也为具有“网格计算”能力的无线通信传输技术测试平台提供了基本思路。
文档编号H04L12/26GK1791036SQ200510124599
公开日2006年6月21日 申请日期2005年12月22日 优先权日2005年12月22日
发明者种稚萌, 任品毅, 朱世华, 车恒志 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1