《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于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網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲视频999| 久久亚洲风情| 亚洲国产精品va在线看黑人动漫| 亚洲网友自拍| 一区二区三区视频在线| 日韩视频第一页| 亚洲精品一区在线| 亚洲精品极品| 亚洲人成人一区二区三区| 亚洲第一精品夜夜躁人人爽| 狠狠入ady亚洲精品| 国产一区二区三区奇米久涩| 国产亚洲激情| 国内精品视频在线观看| 国产亚洲精品自拍| 国产一区二区三区自拍| 国内久久精品| 在线成人av.com| 在线精品国精品国产尤物884a| 黄色一区二区三区| 在线精品视频一区二区三四| 伊人色综合久久天天| 亚洲第一狼人社区| 亚洲欧洲日韩女同| 99视频精品免费观看| 正在播放欧美视频| 亚洲欧美日韩在线不卡| 欧美在线视频不卡| 亚洲国产精品高清久久久| 亚洲精品视频免费| 亚洲小视频在线观看| 性色av香蕉一区二区| 久久精品久久99精品久久| 久久噜噜噜精品国产亚洲综合| 噜噜噜噜噜久久久久久91| 欧美成人精品福利| 欧美色网在线| 国产欧美精品日韩| 亚洲福利免费| 一区二区三区视频免费在线观看| 亚洲综合国产激情另类一区| 欧美中文字幕在线| 亚洲精选视频在线| 欧美亚洲三区| 免费成人黄色av| 欧美视频在线视频| 国产偷久久久精品专区| 亚洲国产精品成人久久综合一区| 日韩一区二区久久| 性色av一区二区三区红粉影视| 亚洲国产精品成人综合| 国产精品99久久久久久宅男 | 亚洲国产精品久久久久秋霞不卡| 日韩图片一区| 欧美亚洲一级| 日韩一区二区精品视频| 欧美一区二区视频网站| 欧美韩国在线| 国产一区自拍视频| 一区二区三区四区五区视频 | 国产精品中文字幕欧美| 亚洲国产成人久久综合一区| 亚洲视频免费观看| 亚洲黄色一区| 香蕉久久一区二区不卡无毒影院| 老司机亚洲精品| 国产精品激情电影| 亚洲高清视频中文字幕| 亚洲欧美另类国产| 99精品热视频| 久久青草欧美一区二区三区| 欧美日韩一视频区二区| 激情欧美丁香| 亚洲一区精品在线| 日韩视频欧美视频| 久久久噜久噜久久综合| 欧美视频官网| 亚洲高清电影| 欧美在线日韩在线| 午夜精品婷婷| 欧美日韩欧美一区二区| 在线不卡视频| 久久不见久久见免费视频1| 亚洲一区二区欧美| 欧美经典一区二区三区| 韩国在线一区| 欧美一区二区女人| 亚洲免费网站| 欧美日韩亚洲一区二区三区四区| 伊人精品视频| 欧美怡红院视频| 亚洲欧美日韩一区二区| 欧美精品免费在线| 亚洲成人在线网站| 亚洲动漫精品| 久久久久久久久久久成人| 国产精品国产三级国产a| 亚洲精品美女久久久久| 91久久久久久久久久久久久| 久久青青草原一区二区| 国产日韩欧美黄色| 亚洲尤物精选| 香蕉成人啪国产精品视频综合网| 欧美三级乱码| 日韩一区二区精品在线观看| 亚洲精品乱码久久久久久按摩观| 久久综合影视| 尤妮丝一区二区裸体视频| 久久国产精品久久久久久电车| 欧美一区二区精品在线| 国产精品影音先锋| 亚洲欧美另类综合偷拍| 亚洲欧美视频在线观看视频| 国产精品第一区| 国产精品99久久久久久有的能看| 一区二区三区鲁丝不卡| 欧美日韩卡一卡二| 一本久久精品一区二区| 这里是久久伊人| 国产精品yjizz| 亚洲视频久久| 性色av香蕉一区二区| 国产欧美精品国产国产专区| 午夜久久美女| 久久人体大胆视频| 极品裸体白嫩激情啪啪国产精品| 亚洲第一狼人社区| 欧美成年人在线观看| 亚洲欧洲精品一区二区三区不卡| 99热精品在线| 国产精品多人| 欧美亚洲综合在线| 久久婷婷国产综合国色天香| 国外视频精品毛片| 亚洲精品国产拍免费91在线| 欧美精品一线| 中文一区二区| 久久精品午夜| 在线视频国内自拍亚洲视频| 日韩午夜激情| 国产精品久久久久毛片软件 | 久久久噜噜噜久久久| 黄色精品一区| 日韩视频免费在线| 欧美午夜精品理论片a级按摩| 亚洲夜间福利| 久久这里只精品最新地址| 亚洲第一福利视频| 亚洲午夜91| 国产一区成人| 亚洲精品影视| 国产精品美女久久久久久2018| 午夜精品久久久久久久白皮肤 | 久久国产精品久久久久久久久久| 黑丝一区二区| 一本色道久久综合亚洲精品小说 | 国产精品a久久久久久| 性久久久久久久久| 欧美电影免费观看| 亚洲性xxxx| 蜜月aⅴ免费一区二区三区| 一本色道久久加勒比精品| 久久久www成人免费毛片麻豆| 亚洲丰满在线| 午夜精品久久久久久久蜜桃app| 国内精品久久久久影院 日本资源| 亚洲美女视频在线观看| 国产精品羞羞答答xxdd| 最新热久久免费视频| 国产精品国色综合久久| 亚洲第一福利在线观看| 欧美日韩免费在线| 久久精品国产精品亚洲综合| 欧美日韩成人在线视频| 先锋影音国产一区| 欧美精品日韩综合在线| 亚洲欧美日韩一区二区| 欧美精品激情在线观看| 亚洲欧美日韩国产一区二区三区| 欧美大片在线看| 亚洲综合国产| 欧美精品手机在线| 欧美在线一级视频| 国产精品av久久久久久麻豆网 | 99pao成人国产永久免费视频| 国产精品制服诱惑| av不卡免费看| 韩国成人福利片在线播放| 亚洲欧美电影院| 亚洲国产一区二区三区青草影视| 亚久久调教视频| 亚洲美女精品一区| 牛夜精品久久久久久久99黑人 | 久久久蜜桃精品| 亚洲网在线观看| 欧美理论在线| 亚洲国产精品一区二区久 | 一本久久知道综合久久| 欧美aⅴ99久久黑人专区| 午夜久久电影网|