《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于VPX6-460的多處理器通信設計
基于VPX6-460的多處理器通信設計
來源:電子技術應用2013年第11期
吳 靜,王 洪,汪學剛
電子科技大學 電子工程學院,四川 成都611731
摘要: 介紹了一種以雙核PowerPC處理器為核心并采用VPX總線標準的信號處理卡VPX6-460。采用了千兆以太網、串行RapidIO以及PCIe等高速數據傳輸技術,滿足了現代雷達、圖像等信號處理系統對帶寬和數據處理能力的要求。結合VxWorks實時操作系統提供的內部進程通信函數庫,在Workbench集成開發平臺上實現了多處理器間的數據通信。
中圖分類號: TP316
文獻標識碼: A
文章編號: 0258-7998(2013)11-0027-03
Design of multiprocessor communication based on VPX6-460
Wu Jing,Wang Hong,Wang Xuegang
School of Electronic Engineering, University of Electronic Science and Technology of China, Chengdu 611731,China
Abstract: Signal processing card VPX6-460 with dual-core PowerPC and using the VPX bus standard is adopted. It integrates with high-speed transmission technologies, such as Gigabit Ethernet, serial RapidIO and PCIe, to satisfy the requirements of bandwidth and data processing performances for radar and image signal processing. Combined with the inter processor communication function library of VxWorks, we can achieve the data communication between multiple processors on the Workbench integrated development platform.
Key words : signal processing card VPX6-460;PowerPC processor;VxWorks operating system;communication of multiprocessor

    傳統的并行總線架構多采用VME標準,但共享總線會造成頻繁等待和沖突,大大降低了系統運行效率,不適合大規模并行數據處理系統。隨著現代雷達、圖像等信號處理應用對信號帶寬和數據傳輸速率要求的不斷提升,基于VPX串行總線標準的通用信號處理器占有較大的優勢[1-3]。本文首先介紹了基于VPX總線架構的系統設計,著重介紹了信號處理卡VPX6-460的硬件組成,并采用VxWorks實時操作系統實現了多處理器間的高速數據通信。

1 系統整體設計
    VPX定制機箱采用新型的高速串行總線標準VITA46,相對于VME總線架構而言,具有更大的數據吞吐能力和交換能力、更好的散熱性能和更高功率的插槽,充分滿足了信號處理系統對帶寬和運算處理能力的要求[4-5]。圖1所示為系統的基本框圖。整個系統主要由多通道信號采集卡、多通道數據回收卡、信號處理卡以及高性能服務器等組成。系統以千兆以太網作為平臺間的網絡互連標準,并使用串行RapidIO和PCIe作為底板總線交換網絡互連協議。VPX載板和模塊化的信號采集子卡組成了系統的前端數據采集部分,VPX載板擁有的多個高速串行接口可以將采集到的并行數據轉換成串行數據流,傳送給后端的信號處理板進行復雜的后端處理[6]。

2 硬件設計
    在整個VPX機箱中,嵌入式信號處理卡VPX6-460是一款多CPU并行處理器信號處理卡,其內部組成結構如圖2所示。板上載有4塊雙核PowerPC 8641D處理器,共有8個e600處理器核,每個處理器配有512 MB的同步動態隨機存儲器DDR2SDRAM,還配有512 MB具有寫保護的Flash和NVRAM。板上的千兆以太網交換機用來配置每個處理器的狀態;4個處理器間通過串行RapidIO交換器實現串行數據互連,每個處理器的數據輸入/輸出速率都可達到雙向12 Gb/s,同時有4路串行RapidIO連接到背板,可連接4個處理板,支持16個處理器間的全速數據交換;板上的XMC/PMC插座支持8路PCIe連接,可用于擴張外部的輸入/輸出接口。

3 軟件設計
    信號處理器的硬件部分構成了系統框架和硬件平臺,而軟件部分則用于實現各種功能,是整個系統的“靈魂”。VPX6-460是典型的“通用處理器平臺+嵌入式操作系統”結構,選用的操作系統是美國Wind River公司最新研發的VxWorks6.8,主機上的開發環境是基于Eclipse軟件架構設計的Workbench3.1,通過串口和網絡接口實現主機與目標機間的交叉編譯和交叉調試。VxWorks實時操作系統提供了專門的系統調用函數接口來連接中斷向量和中斷服務程序,內核可以自動提供有關中斷處理中所需要的堆棧切換以及寄存器保護、回復等功能。VxWorks6.8 提供的內部處理器通信IPC(Inter Pro-cessor Communication)函數庫Rel2.4.7支持多處理器間的通信,適用于底層串行RapidIO和以太網的鏈接,提供與連接無關的編程接口,從而簡化了多處理器通信的程序設計,提高了程序的可移植性。
    VPX6-460的各個處理器之間主要采用直接內存訪問DMA(Direct Memory Access)通信機制,可以同時傳輸批量數據。當DMA控制器接收到來自輸入/輸出口的DMA請求時,CPU就會轉讓總線控制權給DMA控制器,在完成數據傳輸后,DMA控制器會歸還總線控制權。整個傳輸過程由DMA控制器負責而不需要CPU的參與,有效地減少了CPU的占用時間,大大提高了系統性能[7-8]。圖3所示為VPX6-460上兩個處理器間通信的基本原理框圖。

    在本地處理器上創建由指針A0_sender指向的緩存區buffer_ab,相應的發送端口為AB_ A0_BlkPort,由函數msgBlkWrite( )將成片數據寫入到目標處理器上,由目標處理器的新建緩存區存儲接收數據,接收端口為AB_ B0_BlkPort,緩存區名也為buffer_ab,使用相同緩存名可以實現數據共享。由于DMA寫操作是異步實現的,即無論DMA請求是否已被執行,msgBlkWrite( )都會立即返回,因此本地處理器需要調用函數callBack( )返回寫操作的完成時間和狀態等信息。同時,在完成數據傳輸時,DMA控制器要釋放總線控制權,通過發送端口的寫中斷服務程序告知本地處理器已完成數據傳輸,接收端口以讀中斷服務程序告知目標處理器已完成數據接收。部分程序如下:
msgBlkPort  AB_A0_BlkPort;
msgBlkStatsInfo  AB_A0_BlkInfo;
AB_A0_BlkPort=msgBlkOpen(BUFAB_NAME,8,0);  
if (AB_A0_BlkPort==0)
{
  printf(“start_test: msgBlkOpen() failed”);
  return  -1;
}  /*打開發送緩存區,返回輸出端口地址,能允許的最大
DMA請求數為8 */
status=msgBlkIoctl(AB_A0_Port,MSGIOCTL_FLOELVLV_
PRIORITY,MSGIOCTL_FLOWLVLV_HIGH);
if (status!=0)
{
printf(“Error invalid priority flow setting\n”);
}  /*設置數據傳輸的優先級*/
while(1)
{
msgBlkIoctl(AB_A0_BlkPort,MSGIOCTL_GET_STATS,(long)
&AB_A0_blk Info);
if (AB_A0_BlkInfo.isconnected!=0)
{
printf (“start_test:\”%s” connected to proc 0 x%x, length %
ld\n”, AB_A0_BlkInfo.name, AB_A0_ BlkInfo.peerProc,
AB_A0_BlkInfo.size);
break;
}
else
 taskDelay(1);
}  /*設置端口信息,判斷發送端口是否已正確連接到目標
處理器*/
AB_msgBlkWriteInProgress=1;
status=msgBlkWrite(AB_A0_BlkPort,A0_sender,Buffer_size,0,
MSGBLK_OPTION_SIGNAL,0,A0_msgBlkWriteDoneISR,0);
/*寫函數包括了本地處理器需要返回調用的參數信息,
同時含有寫中斷函數信息*/
if (status)
{
printf(“start_test: msgBlkWrite() returned 0x%x \n”, status);
return -1;
}  /*將本地緩存數據正確傳送到目標處理器上,實現了處
理器間的數據傳輸*/
while(AB_msgBlkWriteInProgress)
taskDelay(1);
printf(“Data transferred ”);
msgBlkClose(AB_A0_BlkPort);    
return 1;
static void A0_msgBlkWriteDoneISR (msgBlkP ort port, void
*pParam, long status)
{  
 AB_msgBlkWriteInProgress=0;
}  /*寫中斷服務子程序,告知本地處理器已完成數據傳輸*/
int B0_receive(void)
{
int i,j;
int status;
msgBlkPort AB_B0_BlkPort;
msgBlkPort BC_B0_BlkPort;
msgBlkInfo BC_B0_BlkInfo;
if (NULL==B0_receiver)
{
B0_receiver=cacheDmaMalloc(BUFFER_SIZE);
if (!B0_receiver)
{
printf(“B0_receive:cacheDmaMalloc(0x%x)\n failed”,
BUFFER_SIZE);
return -1;
}  /*在目標處理器上建立接收緩存區*/
AB_B0_BlkPort=msgBlkCreate(BUFAB_NAME,B0_receiver,
BUFFER_SIZE,MSGBLK_OPTION_SIGNAL);
/*接收緩存區與發送緩存區有相同的緩存區名“buffer_ab”,
以實現數據共享*/
if (AB_B0_BlkPort==0)
{
printf (“B0_receive:msgBlkCreate() failed\n”);
return -1;
}
AB_msgBlkReadInProgress=1;
msgBlkSigConnect(AB_B0_BlkPort,B0_msgBlkReadDoneISR,
(void*)0x1234);
msgBlkSigEnable(AB_B0_BlkPort);    
/*確認接收端口已連接到目標處理器,
并由讀中斷服務子程序告知已正確完成接收*/

 


    本文在介紹了VPX6-460硬件組成的基礎上,結合VxWorks操作系統的特點以及系統所支持的通信機制,詳細分析了不同處理器間的數據傳輸方式,并給出了具體的軟件實現方法。該程序的高度可移植性使其具有很高的應用價值。
參考文獻
[1] 杜文鳳,王博文.基于嵌入式的實時通信協議棧研究與設計[J].電子技術應用,2013,(39)1:29-31.
[2] 劉昊昱.一種基于VxWorks技術的通用信號處理平臺設計[J].電子技術應用,2003,(29)6:13-15.
[3] 宋秀蘭,吳曉波.多處理器通信設計[J].浙江工業大學學報,2010,38(4):426-429.
[4] 廖明燕.基于MSP430的多處理器通用技術研究[J].微處理機,2006,2(1):86-91.
[5] 何先波,李薇.嵌入式系統軟件開發技術基礎[M].北京:清華大學出版社,2011.
[6] 史鴻聲.基于PowerPC的雷達通用處理器設計[J].雷達科學與技術,2011,9(2):140-144.
[7] 李世光,孟強強.基于多串口的熱量表系數修正軟件的設計[J].微型機與應用,2012,31(18):1-4.
[8] 翁省輝,喻武龍.Liunx下SANE Driver自動化測試工具的設計與實現[J].微型機與應用,2012,31(1):4-6.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 色婷婷色综合激情国产日韩 | 久久久久久久久久久视频国内精品视频 | 亚洲精品黄色 | 国产亚洲一级精品久久 | 亚洲成人免费视频 | 日本特黄乱人伦片 | 农村寡妇特一级毛片 | 亚洲男人天堂久久 | 一级一毛片a级毛片欧美 | 国产成人精品免费 | 99爱视频精品免视看 | 久久欧美精品 | 久久精品国产99国产精品免费看 | 久久性妇女精品免费 | 国产一区二区三区欧美精品 | 国产成视频 | 亚洲精选在线观看 | 真正国产乱子伦高清对白 | 国产精品偷伦费观看 | 欧美视频区 | 精品久久久久久中文字幕一区 | av中文字幕网免费观看 | 亚洲另类视频 | 欧美激情综合亚洲五月蜜桃 | 亚洲看黄| 国产永久在线观看 | 永久精品免费影院在线观看网站 | 特黄特级a级黄毛片免费观看多人 | 在线视频一区二区三区 | 亚洲精品国产精品国自产 | 看一级特黄a大片日本片 | 亚洲在线日韩 | 亚洲精品欧洲久久婷婷99 | 韩国美女一级片 | 成人一级片 | 天堂影院jav成人天堂免费观看 | www伊人| 日黄网站| 国产高清在线精品一区a | 国产午夜a理论毛片在线影院 | 在线 中文字幕 日韩 欧美 |