基于eipc的tcf通信方法及設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)軟件技術(shù)領(lǐng)域的通信協(xié)議,具體地,涉及一種基于EIPC的TCF通信方法及設(shè)備。
【背景技術(shù)】
[0002]在國防領(lǐng)域,存在著一類計算密集型的應(yīng)用,如信息情報、雷達(dá)信號處理以及電子戰(zhàn)等,為了應(yīng)對戰(zhàn)場的復(fù)雜情況并快速的作出反應(yīng),這些應(yīng)用都要求有一個高性能、高可靠、高穩(wěn)定的計算機(jī),以能夠幫助它們分析和處理數(shù)據(jù)。而且,隨著信息化技術(shù)的不斷發(fā)展,未來戰(zhàn)場已不再是單一裝備、單一兵種的對抗,為了打贏高度信息化下的局部戰(zhàn)爭,必須協(xié)同各種裝備,各兵種,統(tǒng)一決策。由此,國防領(lǐng)域迎來了大數(shù)據(jù)時代。為了能夠?qū)Υ髷?shù)據(jù)進(jìn)行高速處理,高性能嵌入式計算(HPEC)應(yīng)運(yùn)而生,它的出現(xiàn)為計算密集型的國防和航空領(lǐng)域應(yīng)用帶來了非常強(qiáng)大的處理能力。
[0003]HPEC常采用多個機(jī)柜的形式將很多的計算資源組織起來,每個機(jī)柜有多個機(jī)箱,每個機(jī)箱里有多塊處理板,每塊處理板又包含多塊處理芯片。當(dāng)這么多硬件資源整合在一起的時候,一個能夠管理所有硬件資源的管理軟件對用戶來說意義很大,用戶只需在他們自己的電腦上安裝一個監(jiān)控軟件,即可管理所有的硬件資源。
[0004]為了解決上述問題,美國風(fēng)河公司(windriver)開發(fā)出了一套目標(biāo)通信框架(TCF)軟件,這套軟件分為客戶端(client端)和代理端(agent端),客戶端代碼通常運(yùn)行于通用計算機(jī)上(如PC機(jī)上),也即上位機(jī)上,它一方面提供給用戶可視化的操作界面,另一方面它將代理端傳來的數(shù)據(jù)以可視化的方式呈現(xiàn)給用戶;代理端代碼可運(yùn)行在多個平臺上(如x86,ppc,dsp等),也即下位機(jī)上,用于接收客戶端傳來的請求,并作出響應(yīng)。
[0005]在通信方式上,TCF采用TCP/IP協(xié)議,TCF同時也支持通過管道和Unix Socket這兩種方式。這些通信方式對于支持網(wǎng)絡(luò)通信,且運(yùn)行通用操作系統(tǒng)的下位機(jī)來說,是非常方便且有用的,TCF可不加修改的移植上去。但是,在高性能嵌入式領(lǐng)域,所用的操作系統(tǒng)都是實(shí)時操作系統(tǒng),是不支持管道和Unix Socket這兩種方法的,而且如果采用AMP這種架構(gòu),即操作系統(tǒng)部署到核,對于多個核的CPU,如果不是特別設(shè)計,并不是每個核都有IP,一般情況下,只有核O有IP,其它核通過核O來加載系統(tǒng)。這時,如果利用TCF來管理系統(tǒng),則只能將TCF代理端部署到核O,其它核的信息需要核O去收集,這樣,又必須得在其它核實(shí)現(xiàn)一個收集信息的任務(wù),同時核O要有一個能夠接收其它核傳來的信息的任務(wù),無形中增加了很多的工作量。
【發(fā)明內(nèi)容】
[0006]針對現(xiàn)有技術(shù)中存在的上述不足,本發(fā)明提出了一種利用rapid1通信來解決CPU核與上位機(jī)之間通信的基于EIPC(Embedded Intelligent Platform of Control,嵌入式智能控制平臺)的TCF通信方法及設(shè)備,利用高性能嵌入式領(lǐng)域中同一CPU的核間以及不同CPU的核間能夠通過rapid1來通信,再結(jié)合TCF的重定向功能,解決了其它核如何通過TCF來管理以及如何與上位機(jī)進(jìn)行通信的問題。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的。
[0008]根據(jù)本發(fā)明的一個方面,提供了一種基于EIPC的TCF通信方法,包括如下步驟:
[0009]步驟A.初始化發(fā)送和接收句柄:
[0010]TCF客戶端和TCF代理端分別調(diào)用EIPC的msgOpen函數(shù)生成發(fā)送和接收句柄;
[0011]步驟B.TCF代理端進(jìn)入accept狀態(tài),TCF客戶端進(jìn)入connect狀態(tài):
[0012]完成步驟A后,TCF代理端發(fā)出異步請求事件IPCAsyncReqAccept,并創(chuàng)建一個線程來響應(yīng)這個IPCAsyncReqAccept事件,考慮到EIPC的接口函數(shù)中沒有類似于網(wǎng)絡(luò)編程的accept函數(shù),但是EIPC的接收函數(shù)是可阻塞的,因此,TCF代理端利用EIPC接收函數(shù)的阻塞功能實(shí)現(xiàn)accept功能;同樣,TCF客戶端發(fā)出異步請求事件IPCAsyncReqConnect,同時創(chuàng)建一個線程來響應(yīng)這個IPCAsyncReqConnect事件,考慮到EIPC的接口函數(shù)中沒有類似于網(wǎng)絡(luò)編程的connect函數(shù),但是只要客戶端向代理端發(fā)送數(shù)據(jù),代理端的EIPC接收函數(shù)接收,代理端的程序就能繼續(xù)往下走,因此,TCF客戶端利用EIPC的發(fā)送函數(shù)實(shí)現(xiàn)connect功能;
[0013]步驟C.初始化EIPC通信通道:
[0014]首先,完成輸入輸出流的讀寫函數(shù)、通道關(guān)閉函數(shù)、接收和發(fā)送緩沖區(qū)的初始化工作;然后,TCF代理端和TCF客戶端均進(jìn)入接收等待狀態(tài),TCF客戶端新建一個線程發(fā)送握手信號,TCF代理端收到握手信號后,進(jìn)入發(fā)送狀態(tài),并發(fā)送響應(yīng)給TCF客戶端,同時TCF代理端設(shè)置通道為連接狀態(tài),客戶端收到信息后同樣設(shè)置通道為連接狀態(tài),之后,TCF客戶端和TCF代理端即進(jìn)入通信狀態(tài),EIPC通信通道初始化完成。
[0015]根據(jù)本發(fā)明的另一個方面,提供了一種基于EIPC的TCF通信設(shè)備,包括上位機(jī)端和下位機(jī)端,其中,上位機(jī)端運(yùn)行有TCF客戶端,下位機(jī)端設(shè)有多個CPU,每一個CPU均設(shè)有多個核,每一個核上均運(yùn)行有TCF代理端,任一個TCF客戶端與任一個TCF代理端之間設(shè)置有EIPC通信通道。
[0016]本發(fā)明提供的基于EIPC的TCF通信方法及設(shè)備,基于EIPC通信,通過TCF客戶端和TCF代理端,實(shí)現(xiàn)了下位機(jī)端其他核通過TCF的管理以及與上位機(jī)端的通信。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果:
[0018]1、本發(fā)明是基于EIPC通信實(shí)現(xiàn)的,只需使用數(shù)量很少的一些函數(shù),就可以實(shí)現(xiàn)多處理器間、多任務(wù)間的消息通信和大塊數(shù)據(jù)傳輸,具有可靠、基于優(yōu)先級、實(shí)時嵌入的特點(diǎn);
[0019]2、EIPC通信是基于rapid1實(shí)現(xiàn)的,接口統(tǒng)一,方便設(shè)置;
[0020]3、本發(fā)明不僅能夠?qū)崿F(xiàn)同一 CPU內(nèi)的核間通信,還能夠?qū)崿F(xiàn)不同CPU的核間通信,有效完成各處理器之間的互聯(lián);
[0021 ] 4、本發(fā)明能夠?qū)CF代理端部署到CPU的所有核;
[0022]5、本發(fā)明可以將沒有IP的核也通過TCF代理端來監(jiān)控。
【附圖說明】
[0023]通過閱讀參照以下附圖對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:
[0024]圖1為本發(fā)明基于EIPC的TCF通信設(shè)備的結(jié)構(gòu)示意圖;
[0025]圖2為EIPC通信通道在基于EIPC的TCF通信設(shè)備中的位置圖;
[0026]圖3為本發(fā)明基于EIPC的TCF通信方法的過程圖。
【具體實(shí)施方式】
[0027]下面對本發(fā)明的實(shí)施例作詳細(xì)說明:本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程。應(yīng)當(dāng)指出的是,對本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。
[0028]實(shí)施例1
[0029]本實(shí)施例提供了一種基于EIPC的TCF通信方法,包括如下步驟:
[0030]步驟A:初始化發(fā)送和接收句柄:
[0031 ] TCF客戶端和TCF代理端