《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的CPCI系統設計與實現
基于FPGA的CPCI系統設計與實現
2018年電子技術應用第11期
魏建勇
武漢虹旭信息技術有限責任公司,湖北 武漢430074
摘要: 集成工控機箱使用CPCI接口兼容各種可插拔板卡,板卡的CPCI設計多使用專用芯片搭配FPGA實現,降低了可擴展性,增加了板卡面積和成本。為了解決上述問題,設計了一種基于FPGA的CPCI接口。介紹了使用FPGA實現的CPCI協議、仿真及外部通信總線協議、外部中斷機制、沖突避免機制,該設計在量產的各種CPCI板卡中使用,用于各種廠家的CPCI機箱。與傳統實現方案相比,該方案具有成本低、體積小、靈活性好、兼容性高等優點,在小型工控領域內具有明顯的優勢。
關鍵詞: CPCI FPGA ARM
中圖分類號: TN836
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181546
中文引用格式: 魏建勇. 基于FPGA的CPCI系統設計與實現[J].電子技術應用,2018,44(11):50-52,56.
英文引用格式: Wei Jianyong. Design and implementation of CPCI system based on FPGA[J]. Application of Electronic Technique,2018,44(11):50-52,56.
Design and implementation of CPCI system based on FPGA
Wei Jianyong
Wuhan Hongxu Information technologies Co.,Ltd,Wuhan 430074,China
Abstract: The integrated industrial control chassis is compatible with all kinds of pluggable boards using CPCI interface. The CPCI design of board card uses special chips to match the FPGA, which reduces the extensibility, and increases the area and cost of the card. In order to solve these problems, a CPCI interface based on FPGA is designed. This paper describes the CPCI protocol implemented with FPGA, simulation and external communication bus protocol, external interrupt mechanism, and conflict avoidance mechanism. This design is used in various CPCI cards produced by the mass production, and it is used in the CPCI chassis of various manufacturers. Compared with the traditional implementation scheme, the scheme has the advantages of low cost, small size, good flexibility and high compatibility. It has obvious advantages in the field of small industrial control.
Key words : CPCI;FPGA;ARM

0 引言

    目前的儀器或者工控系統多數使用集成式工控機箱,機箱背板一般通過CPCI(Compact PCI)接口連接所有的插卡,包括工控電腦和各種采集卡、控制卡等。設計板卡時需要考慮CPCI接口實現及通信機制,現有板卡多使用專用接口芯片,例如PCI9054芯片,這類芯片可擴展性不強,需要外擴FPGA芯片,使用不靈活;且直接使用FPGA的IP核實現CPCI協議占用資源多,開發成本較高,在有某些特殊需求時不便擴展。

    本文提出了一種基于FPGA的CPCI系統的設計和實現,使用廉價FPGA芯片實現CPCI通信協議,同時利用FPGA的可編程特性實現電源控制、靈活中斷、外部觸發、外部通信等特殊應用的功能,解決了CPCI協議經過CPCI橋時的沖突問題。

1 系統設計

1.1 系統框圖

    如圖1所示,本系統主要包含嵌入式板卡和CPCI工控機箱,板卡插入到CPCI機箱背板插槽。嵌入式板卡內的FPGA與CPCI插槽間使用CPCI總線和用戶IO連接,FPGA與ARM之間通過特定IO實現的總線連接,同時FPGA上連接一個三極管驅動的繼電器[1]。

ck1-t1.gif

1.2 系統功能

    FPGA和背板接口為CPCI接口,通過CPCI協議通信;ARM使用自定義總線協議將數據寫入到FPGA的RAM緩存,然后使用CPCI接口發送給主控機,反之亦然。FPGA能識別CPCI的信號給ARM產生中斷,也能夠識別ARM的信號給CPCI產生有效中斷,還可以通過繼電器控制板卡上電、下電、復位,能通過IO控制實現ARM的ISP(在線升級,僅需控制一個ARM管腳)功能并產生背板觸發信號。

    下文從FPGA設計、ARM設計和通信機制三方面進行說明。

2 FPGA設計

    如圖2所示,FPGA內部主要包括CPCI協議、IO_MEM、ARM解碼、讀中斷產生、CPCI中斷產生、電源控制等模塊[2-3]。FPGA芯片根據使用資源和成本選擇Xilinx公司的XC2S100,最后使用387個Slice寄存器(占比16%)、882個LUTs(占比36%)。

ck1-t2.gif

2.1 CPCI協議模塊

2.1.1 協議

    CPCI協議兼容PCI2.2協議,擴展了部分用戶接口,所以模塊按照標準PCI2.2協議完成,實現配置空間管理、IO讀寫、Memory單字讀寫、Memory突發讀寫、仲裁和中斷等功能。協議細節參看文獻[4]、[5]。

2.1.2 FPGA仿真

    對ISE布線后的文件用ModelSimXE進行時序后仿真,下面給出通過CPCI總線進行Memory突發讀寫的仿真,因IO讀寫和Memory單字讀寫時序與Memory突發讀寫類似,在此不再贅述[6-8]。

    圖3上半部分是Memory突發寫的時序過程,在地址0xd000處連續寫入10個依次遞增的32 bit數據,起始數據為0x15896345。下半部分是寫完之后的Memory突發讀時序,可見從0xd000讀出的連續若干32 bit數據,與寫入完全一致。

ck1-t3.gif

    此CPCI板卡在插入實際機箱槽位時出現這樣的問題:某些廠家的機箱特定槽位插入會死機。該問題使用市面上的成品CPCI板卡也會遇到,經過分析,修改了CPCI板卡協議里的一個關于CPCI橋的接口,死機情況不再發生。

2.2 IO_MEM模塊

    本模塊由3個雙口RAM組成,在CPCI系統中命名為BA0、BAR1、BAR2,BAR0和BAR2是16 B的IO空間,僅支持單個字讀取,BAR1為2 048 B的MEM空間,支持單字讀寫和突發讀寫。其中BAR1僅支持1 B的空間訪問,只用來進行電源控制和ISP,不可通過其他外設訪問。

2.3 ARM解碼模塊

    本模塊實現FPGA與ARM之間IO和Memory接口時序,因兩者時序基本相同,以Memory時序為例說明,定義如圖4和圖5所示。硬件接口由時鐘、使能、RAM選擇、讀寫選擇、地址數據總線(8根)組成。特別需要注意的是,時鐘線必須連接到FPGA的全局時鐘管腳上。

ck1-t4.gif

ck1-t5.gif

    Memory讀/寫時序必須保證在地址A有效之后的第2個時鐘周期開始接收/輸入數據,32 bit數據由4 B組成,按低位字節到高位字節的順序輸出/輸入,數據組合/拆分由ARM完成。接收/寫入不同地址段的數據必須先使en_arm無效,然后再使能。

2.4 ARM讀中斷

    當FPGA內部的BAR0寫有效時使能int_arm,該信號會觸發ARM的外部IO中斷。通過CPCI接口往BAR0寫入任何數據均可產生一個脈沖觸發信號,可以使用此信號去中斷ARM。

2.5 CPCI中斷

    ARM需要給CPCI產生中斷,機制如下:

    (1)ARM給IO0空間偏移地址2寫入0x01,在INTA#上出現低電平觸發信號;

    (2)主控機檢測到此電平觸發中斷,馬上禁止中斷,往IO1空間偏移地址0寫入0xfb,之后INTA#被拉高,此時ARM無法通過步驟(1)再次發送中斷,也就是說,INTA#無法被ARM拉低;

    (3)主控機處理完臨界代碼之后,往IO1空間偏移地址0寫入0xfa,允許ARM產生中斷,也即,ARM可以通過步驟(1)再次產生中斷。

2.6 外圍控制

    電源控制和觸發信號都是通過ARM或者主控機給CPCI的特定空間寫入預定信息,檢測信息之后做出相應的處理[6]。

    (1)主控機向BAR2空間的0偏移寫入0xff、0xfe、0xfd、0xfc實現上電、掉電、復位、ISP功能;

    (2)主控機往BAR2空間的0偏移寫入一個小于128的數,此數值是給背板產生的觸發脈沖個數;

    (3)ARM往BAR0空間的1偏移寫入一個小于256的數,此數值是給背板產生的觸發脈沖個數,ARM能產生的觸發脈沖比主控機多一倍。

3 ARM設計

    在本系統中,ARM和FPGA的總線連接使用IO口模擬實現。按照前面描述的時序,ARM中接口相關功能有:

    (1)響應中斷信號,讀取、執行IO命令;

    (2)讀取IO數據;

    (3)讀寫Memory數據。

    因接口時序的ARM代碼實現較簡單,在此不再贅述,具體的實現機制可參看后續的通信機制設計。

4 通信機制設計

    從CPCI的角度看,ARM和主控機為主設備,FPGA為從設備。對于FPGA來說,CPCI接口和ARM接口完全獨立,但是兩者都可以對RAM進行讀寫,如果沒有一個協調機制,很可能發生讀寫沖突,必須有一個規則來協調數據的傳送[9-10]。因為CPCI為標準接口,所以需要定義的是FPGA和ARM的接口和主控機驅動讀寫規則,下面介紹FPGA和ARM的接口和主控機讀寫規則。

主控機與ARM需要交互的數據全部放在FPGA的RAM中進行緩沖。實現規則如下:

    (1)IO空間只分配1 B,存放主控機發送的命令;

    (2)Memory中讀寫空間分開,偏移0~999為主控機寫、ARM讀數據空間,1 000~2 048為主控機讀、ARM寫數據空間。

    圖6描述了ARM、CPCI和主控機的數據流向和讀寫流程。為避免系統讀寫沖突,需按照如下規則執行操作:

ck1-t6.gif

    (1)ARM讀寫CPCI的Memory空間之前,使write_acc或read_acc無效,讀寫完畢使之有效。

    (2)主控機讀Memory時首先讀read_acc,如果有效,開始讀所需內存,否則等待一段時間重試;寫Memory時首先讀write_acc,如果有效,開始往指定內存寫數據,否則等待一段時間重試;主控機對IO的寫不需要讀write_acc。

    (3)主控機寫Memory一般過程為:先根據所需命令確定需要將數據寫入哪些空間,然后將配置數據寫入Memory中,最后把控制命令寫入IO空間;讀Memory則直接讀取數據。

    本方案用于數據采集卡、數字基帶模擬卡、本振信號發生卡、中頻變頻接收卡等多種功能應用,兼容研華、凌華等幾大廠家的工控機箱。

5 結束語

    本文給出了一種基于FPGA的CPCI系統設計方案,介紹了實施基本框架、CPCI協議、自定義總線通信協議和通信沖突避免機制,按照設計方案實現了低成本、高密度、易擴展的CPCI通信系統,在工程上便于實現,能廣泛應用于工控和測量領域,對類似設計提供了參考。

參考文獻

[1] 任勇峰,彭巧君,劉占峰.基于FPGA的CPCI高速讀數接口設計[J].電子器件,2015(1):148-151.

[2] 田源,王立德,嚴翔,等.基于FPGA+CPCI的WTB通信板設計[J].機車電傳動,2014(4):28-32,56.

[3] 王銳,張友方,陳延云,等.基于FPGA的數據采集卡的CPCI接口設計[J].電子技術,2010,37(2):35-37.

[4] PICMG2.0R3.0,CompactPCI Specification[Z].1999.

[5] PCI Local Bus Specification(Revision 2.3)[Z].PCI Local Bus,2001.

[6] 劉青,馬天乙.CPCI數據總線接口的設計與實現[J].電子科技,2011,24(6):95-96,100.

[7] SHANLEY T,ANDERSON D.PCI系統結構[M].北京:電子工業出版社,2000.

[8] 李貴山,戚德虎.PCI局部總線開發者指南[M].西安:西安電子科技大學出版社,1997.

[9] 巫幪,蘇濤,史佳歡.通用信號處理板卡的CPCI總線接口設計和驅動開發[J].國外電子元器件,2007(2):26-30.

[10] 郭立俊,譚劍波.一種基于FPGA的CPCI總線接口設計方法[J].合肥工業大學學報(自然科學版),2014(5):596-599.



作者信息:

魏建勇

(武漢虹旭信息技術有限責任公司,湖北 武漢430074)

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久亚裔精品欧美| 国产伦精品一区二区三区免费| 国产精品一区二区三区久久久| 99亚洲伊人久久精品影院红桃| 久久久欧美一区二区| 亚洲精品在线免费| 久久av一区二区| 欧美成人黑人xx视频免费观看| 一区精品久久| 极品av少妇一区二区| 在线一区免费观看| 99re6热在线精品视频播放速度| 欧美一区二粉嫩精品国产一线天| 久久伊人亚洲| 91久久香蕉国产日韩欧美9色| 国产日韩欧美一区在线| 欧美在线啊v| 久久久久国产一区二区三区| 亚洲欧美日韩视频二区| 亚洲直播在线一区| 久久成人精品一区二区三区| 国产欧美日韩综合一区在线观看| 欧美色欧美亚洲高清在线视频| 亚洲色图制服丝袜| 亚洲国产欧美日韩另类综合| 亚洲国产裸拍裸体视频在线观看乱了中文| 国产精品美女久久久久aⅴ国产馆| 久久一区二区三区超碰国产精品| 久久精品日韩一区二区三区| 国内精品写真在线观看| 国产精品美女久久久久av超清| 亚洲人成人99网站| 欧美日韩二区三区| 国产精品一区免费在线观看| 国产精品午夜电影| 极品av少妇一区二区| 欧美精品久久久久久久免费观看| 久久久97精品| 国产亚洲综合性久久久影院| 亚洲激情视频| 亚洲国产精品国自产拍av秋霞| 国内外成人在线| 亚洲一区二区三区中文字幕在线| 国产一区二区三区自拍| 国产乱码精品一区二区三区不卡| 久久精品在线播放| 一区二区三区久久精品| 国产色婷婷国产综合在线理论片a| 欧美亚洲在线视频| 国产欧美韩日| 欧美亚洲一区二区在线观看| 欧美一区二区三区播放老司机| 国产一区二区三区在线观看免费视频| 国产日韩一区欧美| 国产精品亚洲网站| 久久综合亚州| 欧美国产91| 国产亚洲欧美另类一区二区三区| 国产在线乱码一区二区三区| 日韩视频精品| 国产午夜精品视频免费不卡69堂| 国产在线精品成人一区二区三区| 中文久久精品| 亚洲一区自拍| 国产美女一区| 国产农村妇女毛片精品久久莱园子| 尤物yw午夜国产精品视频| 国产精品激情| 欧美一级理论性理论a| 91久久视频| 欧美精品一区在线观看| 久久久久久久久久久久久女国产乱| 国内外成人免费视频| 午夜性色一区二区三区免费视频| 亚洲欧美综合v| 在线亚洲免费视频| 久久综合久久综合这里只有精品| 亚洲私人黄色宅男| 亚洲专区在线| 国内精品写真在线观看| 欧美va亚洲va日韩∨a综合色| 麻豆免费精品视频| 午夜精品福利电影| 欲香欲色天天天综合和网| 国产麻豆精品视频| 久久国产精品99久久久久久老狼| 99热精品在线| 久久成人一区二区| 欧美成人自拍| 欧美视频在线观看| 欧美日韩国产综合视频在线观看| 精品动漫3d一区二区三区| 久久精品亚洲精品国产欧美kt∨| 精品999久久久| 欧美69wwwcom| 在线日韩中文| 欧美日韩亚洲激情| 亚洲破处大片| 国产精品永久免费| 久久精品国产成人| 亚洲美女精品一区| 国产日本欧美一区二区三区在线| 欧美日韩亚洲国产一区| 开元免费观看欧美电视剧网站| 亚洲影院色在线观看免费| 欧美一区二区三区成人| 欧美看片网站| 性色一区二区三区| 亚洲丶国产丶欧美一区二区三区| 欧美日韩视频在线第一区| 久久另类ts人妖一区二区| 欧美精品久久久久久久久老牛影院| 欧美激情一区二区三区四区| 亚洲午夜久久久久久久久电影院| 国产精品美女| 精品成人久久| 国产一二三精品| 国产一区二区你懂的| 91久久精品网| 久久一区二区三区av| 一本一本大道香蕉久在线精品| 欧美图区在线视频| 亚洲视频高清| 葵司免费一区二区三区四区五区| 久久裸体艺术| 亚洲欧美视频| 欧美日韩一区二区视频在线| 亚洲片国产一区一级在线观看| 欧美日韩另类在线| 永久555www成人免费| 亚洲午夜精品久久久久久app| 亚洲欧美在线播放| 国产精品久久久久久超碰| 亚洲欧美在线免费观看| 久久精品国产亚洲aⅴ| 国产精品美女久久久久久久| 欧美a级片一区| 欧美日韩中文字幕日韩欧美| 国产精品一区二区三区四区| 一区二区精品| 欧美伊人久久大香线蕉综合69| 国产亚洲欧美日韩一区二区| 欧美在线观看你懂的| 亚洲一区二区三区免费观看| 国产精品亚洲美女av网站| 欧美午夜大胆人体| 欧美日韩国产探花| 国产精品一区二区三区免费观看| 午夜精品久久久久久| 美女脱光内衣内裤视频久久影院| 亚洲一区二区三区四区五区黄| 欧美日韩专区在线| 性久久久久久久久久久久| 亚洲第一福利社区| 久久精品国产亚洲一区二区三区| 一本色道久久综合精品竹菊| 国产精品av久久久久久麻豆网| 国产一区二区三区在线观看免费| 欧美一区亚洲一区| 国内精品免费午夜毛片| 久久综合九色综合久99| 国产精品久久久一区麻豆最新章节| 国产视频一区二区三区在线观看| 欧美激情四色| 久久久久久国产精品mv| 久久免费少妇高潮久久精品99| 国产精品永久入口久久久| 欧美精品色网| 永久域名在线精品| 亚洲深爱激情| 久久综合一区二区三区| 欧美本精品男人aⅴ天堂| 亚洲一级黄色| 欧美一区二区视频观看视频| 久久久久女教师免费一区| 久久久久久久久久码影片| 国产欧美日韩一区| 欧美日本高清一区| 欧美日韩精品中文字幕| 久久久久久夜| 久久一二三四| 国产精品免费一区二区三区观看| 欧美日产国产成人免费图片| 狠狠久久亚洲欧美专区| 欧美亚韩一区| 欧美激情成人在线| 久久九九精品99国产精品| 亚洲精品国产精品乱码不99按摩| 欧美日产国产成人免费图片| 亚洲激情av| 亚洲韩国日本中文字幕| 日韩视频欧美视频| 91久久香蕉国产日韩欧美9色| 久久噜噜噜精品国产亚洲综合| 欧美有码视频| 久久久国产一区二区| 亚洲第一精品电影| 亚洲国产成人在线播放| 亚洲精品一区二| 在线视频国内自拍亚洲视频| 国产精品日日做人人爱| 乱人伦精品视频在线观看| 一区二区亚洲| 国产色产综合产在线视频| 久久九九全国免费精品观看| 欧美日韩一区二区三区高清| 国产精品久久久久久久电影| 亚洲观看高清完整版在线观看| 欧美一区观看| 免费成人黄色av| 久久国产色av| 国产日韩欧美高清| 国产一区欧美日韩| 久久人人爽人人爽| 国产乱码精品一区二区三区忘忧草| 国产精品一区二区你懂的| 午夜精品免费| 久久精品中文字幕一区| 久久久夜精品| 西西人体一区二区| 91久久久久久久久久久久久| 99精品免费| 国产精品综合av一区二区国产馆| 亚洲第一免费播放区| 欧美午夜免费电影| 久久精品99无色码中文字幕| 国产精品美女久久久浪潮软件| 欧美在线观看www| 亚洲一区不卡| 亚洲精品国产系列| 亚洲国产日韩综合一区| 国产伦精品一区二区三区在线观看| 99精品国产在热久久婷婷| 欧美性生交xxxxx久久久| 99国产精品99久久久久久| 亚洲精品国产系列| 夜夜嗨av一区二区三区中文字幕| 老牛国产精品一区的观看方式| 午夜精彩国产免费不卡不顿大片| 久久久精品午夜少妇| 欧美 日韩 国产在线| 欧美视频中文在线看| 久久久亚洲国产天美传媒修理工| 在线观看91久久久久久| 国产日本欧美在线观看| 99在线观看免费视频精品观看| 另类专区欧美制服同性| 在线电影欧美日韩一区二区私密| 一区二区三区精密机械公司| 亚洲一区成人| 悠悠资源网亚洲青| 亚洲午夜精品| 久久综合中文字幕| 欧美视频在线观看视频极品| 欧美精品综合| 麻豆国产精品777777在线| 国产精品v一区二区三区| 亚洲精品永久免费| 国产精品自拍小视频| 亚洲图片你懂的| 欧美视频在线观看免费| 午夜亚洲性色福利视频| 国产精品国产三级国产专播精品人| 欧美一区二区三区另类| 欧美日韩在线播放一区| 欧美激情中文不卡| 免费亚洲电影在线| 黑丝一区二区| 免费影视亚洲| 在线视频亚洲一区| 亚洲日本电影| 日韩视频免费观看| 亚洲激情网站免费观看| 亚洲精品视频中文字幕| 欧美一区国产在线| 亚洲免费在线播放| 激情综合色综合久久| 狠狠狠色丁香婷婷综合久久五月| 亚洲欧美日韩专区| 国产精品永久在线| 亚洲国产成人精品视频| 性xx色xx综合久久久xx| 国产一区二区三区奇米久涩| 久久精品国产一区二区三区免费看| 欧美午夜电影在线观看| 亚洲国产美女精品久久久久∴| 99热免费精品| 欧美日韩麻豆| 国产精品成人免费| 欧美成人免费va影院高清| 欧美日韩国产在线一区| 亚洲国产另类 国产精品国产免费| 国产精品分类| 亚洲免费av片| 欧美电影在线免费观看网站| 免费一级欧美在线大片| 亚洲国产成人在线播放| 久久综合久久美利坚合众国| 狠狠色伊人亚洲综合成人| 国产区精品在线观看| 亚洲视频一区| 狠狠综合久久av一区二区老牛| 免费的成人av| 欧美日韩在线高清| 免播放器亚洲| 国产精品99久久久久久www| 一区二区免费看| 亚洲欧美国产77777| 亚洲一区欧美一区| 国产精品久久影院| 国产精品久久久久久久久| 欧美体内she精视频在线观看| 亚洲欧洲在线观看| 国产精品每日更新在线播放网址| 亚洲欧美区自拍先锋| 国产精品亚洲激情| 久久精品视频在线观看| 欧美日韩一区二区三区在线| 久久久精品性| 欧美激情一区二区三级高清视频| 欧美影院在线| 亚洲人线精品午夜| 欧美岛国在线观看| 亚洲精品在线电影| 亚洲少妇中出一区| 亚洲高清视频的网址| 国产手机视频一区二区| 免费日韩av|