《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
国产日韩高清一区二区三区在线| 亚洲国产网站| 欧美成人精品福利| 久久精品视频在线看| 午夜精品在线视频| 亚洲在线一区| 亚洲在线一区| 亚洲欧美日韩精品久久久| 在线视频欧美一区| 亚洲丝袜av一区| 亚洲桃色在线一区| 一区二区三区四区国产| 一区二区三区日韩精品视频| 一区二区三区国产精品| 亚洲色图制服丝袜| 亚洲一区二区三区精品视频| 亚洲视频在线观看免费| 亚洲一区二区视频在线观看| 亚洲在线免费| 欧美中文字幕| 久久久久久尹人网香蕉| 久久久久久久尹人综合网亚洲 | 亚洲欧美视频在线观看视频| 亚洲女人天堂成人av在线| 亚洲欧美日韩精品一区二区| 小黄鸭精品aⅴ导航网站入口| 亚洲欧美在线播放| 久久av免费一区| 久久性天堂网| 欧美高清视频一区二区三区在线观看| 欧美成人嫩草网站| 欧美人在线观看| 欧美视频官网| 国产精品一二三视频| 国产亚洲一区在线播放| 狠狠爱综合网| 亚洲激情第一页| aa日韩免费精品视频一| 亚洲小说欧美另类社区| 欧美一区二区三区日韩| 亚洲精品国产品国语在线app | 欧美一区久久| 久久综合九色欧美综合狠狠| 欧美国产精品中文字幕| 欧美视频在线观看一区| 国产日韩综合一区二区性色av| 在线观看视频日韩| 99精品视频免费在线观看| 亚洲欧美视频在线观看视频| 亚洲国产91色在线| 一本久久知道综合久久| 亚洲你懂的在线视频| 久久久成人精品| 欧美激情中文不卡| 国产精品视区| 亚洲高清不卡在线| 亚洲视频网在线直播| 欧美在线视频二区| 日韩网站在线| 欧美一区二区视频在线观看2020 | 国产精品久久一区二区三区| 韩国v欧美v日本v亚洲v| 亚洲精品影视在线观看| 香蕉久久夜色精品国产| 亚洲麻豆av| 久久精品国产91精品亚洲| 欧美人牲a欧美精品| 国产日韩一区二区三区在线| 亚洲区一区二区三区| 欧美一级理论性理论a| 99riav1国产精品视频| 久久精品亚洲精品| 欧美视频在线免费| 激情久久综合| 亚洲一区二区在线免费观看| 亚洲人www| 性欧美video另类hd性玩具| 欧美成人免费小视频| 国产欧美日韩在线视频| 亚洲精选成人| 亚洲第一精品夜夜躁人人躁 | 亚洲欧美三级伦理| 欧美肥婆在线| 国产亚洲综合在线| 一区二区三区回区在观看免费视频| 久久精品九九| 欧美亚洲色图校园春色| 欧美日韩国产成人高清视频| 激情欧美一区| 亚洲欧美清纯在线制服| 一本色道久久88精品综合| 久久在线视频| 国产精品综合视频| 在线一区欧美| 亚洲美女中出| 美女爽到呻吟久久久久| 国产在线观看精品一区二区三区| 亚洲伊人网站| 亚洲小少妇裸体bbw| 欧美国产日韩一区二区在线观看| 国产在线精品一区二区中文| 亚洲欧美日韩一区二区在线 | 欧美日韩国产丝袜另类| 一区福利视频| 久久高清国产| 久久精品噜噜噜成人av农村| 国产精品日日摸夜夜摸av| 日韩写真在线| 野花国产精品入口| 欧美成人情趣视频| 亚洲高清视频的网址| 亚洲国产精品日韩| 久久综合狠狠| 黄网站免费久久| 欧美伊人影院| 久久久激情视频| 国产一区二区日韩精品| 亚洲欧美中文日韩v在线观看| 午夜精品久久久久久99热软件| 欧美午夜视频一区二区| 日韩一二三在线视频播| 正在播放亚洲一区| 欧美日韩在线免费| 在线亚洲激情| 亚洲欧美中文日韩在线| 国产精品网站在线播放| 亚洲自拍偷拍色片视频| 性欧美暴力猛交69hd| 国产精品自拍三区| 午夜一区二区三视频在线观看| 欧美亚洲综合网| 国产日产欧产精品推荐色 | 久久久最新网址| 红桃视频成人| 亚洲国产精品999| 牛牛国产精品| 亚洲韩国精品一区| 一区二区三区四区五区在线 | 国产精品高清在线观看| 亚洲新中文字幕| 午夜亚洲影视| 国产亚洲欧洲997久久综合| 久久精品国产99精品国产亚洲性色| 久久一日本道色综合久久| 在线免费不卡视频| 夜夜嗨av一区二区三区网页| 欧美日韩在线精品| 亚洲欧美日韩精品久久| 久久久久久欧美| 亚洲国产欧美日韩| 一区二区久久| 国产九色精品成人porny| 亚洲第一精品福利| 欧美裸体一区二区三区| 亚洲网站视频| 久久久久九九九九| 亚洲国产经典视频| 亚洲永久字幕| 国产亚洲午夜| 亚洲精品一区二区三区99| 欧美日韩一区在线视频| 亚洲免费在线观看| 葵司免费一区二区三区四区五区| 亚洲精品极品| 欧美在线免费视屏| 亚洲国产裸拍裸体视频在线观看乱了 | 禁久久精品乱码| 一本大道久久精品懂色aⅴ| 国产精品视频不卡| 亚洲国产三级网| 欧美精品一区二区蜜臀亚洲| 亚洲欧美日韩一区在线观看| 欧美jjzz| 亚洲免费一级电影| 欧美国产日韩一区| 亚洲欧美激情视频| 欧美激情二区三区| 亚洲欧美电影院| 免费欧美电影| 亚洲私人影院| 免费一区二区三区| 亚洲影视在线播放| 欧美精品一卡二卡| 欧美一区二区三区四区高清| 欧美精品在线一区| 亚洲欧美精品| 欧美韩日亚洲| 午夜日韩激情| 欧美日韩亚洲一区| 亚洲成色777777在线观看影院| 国产精品福利在线观看| 亚洲国产欧美日韩另类综合| 国产精品欧美风情| 9l国产精品久久久久麻豆| 国产亚洲免费的视频看| 亚洲一区久久| 亚洲人成欧美中文字幕| 久久久亚洲国产天美传媒修理工| 亚洲视频自拍偷拍| 欧美精品激情|