0引言
CPCI總線[1]是由PCI總線發(fā)展而來的一種緊湊型32/64 bit局部總線,最高帶寬可達(dá)512 MB/s。因其具有高開放性、高可靠性、可熱插拔等優(yōu)點(diǎn),被廣泛應(yīng)用于航空航天、信息通信、工業(yè)控制、數(shù)據(jù)采集等領(lǐng)域。相對(duì)于傳統(tǒng)的以單片機(jī)、MCU為核心的數(shù)據(jù)處理系統(tǒng),現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,FPGA)以其高速、靈活、高集成度、高性能、抗干擾、現(xiàn)場(chǎng)可編程等優(yōu)點(diǎn),在上述領(lǐng)域中得到了廣泛應(yīng)用[2]。本設(shè)計(jì)將CPCI總線技術(shù)與FPGA技術(shù)巧妙結(jié)合,以Altera公司的高性能芯片EP3C40F324I7為核心處理器,根據(jù)應(yīng)用需求,研制開發(fā)了一款實(shí)時(shí)性強(qiáng)、可靠性高的多功能通信卡。
1 多功能通信卡總體方案
FPGA核心處理器EP3C40F324I7通過CPCI總線與主機(jī)進(jìn)行信息交互,主要實(shí)現(xiàn)各模塊信號(hào)采集、處理、傳輸?shù)裙δ?。主機(jī)通過CPCI總線發(fā)送命令、數(shù)據(jù),F(xiàn)PGA微處理器接到指令后,對(duì)相關(guān)信號(hào)進(jìn)行處理,將處理結(jié)果通過CPCI總線反饋給主機(jī),并通過標(biāo)準(zhǔn)的通信接口外接引出,從而進(jìn)行分析、計(jì)算。該多功能通信卡總體方案如圖1所示。
2 硬件設(shè)計(jì)
2.1 FPGA芯片選型與設(shè)計(jì)
本設(shè)計(jì)中FPGA微處理器通過CPCI總線實(shí)現(xiàn)RS232串行通信、RS422串行通信、脈沖計(jì)數(shù)、數(shù)字輸出等多種功能,綜合考慮FPGA內(nèi)部存儲(chǔ)單元數(shù)量、I/O引腳數(shù)量等因素,選擇Altera公司的EP3C40F324用于功能模塊開發(fā)。EP3C40F324為FPGA封裝,內(nèi)部LE 39 600個(gè),M9K 126個(gè),RAM總量為1 161 216 bit,18×18的乘法器126個(gè),鎖相環(huán)4個(gè),全局時(shí)鐘網(wǎng)絡(luò)20個(gè),可用I/O口195個(gè),可用差分通道61個(gè),可以滿足系統(tǒng)開發(fā)需求。
EP3C40F324需3種供電電壓,I/O供電電壓為+3.3 V,PLL的模擬供電電壓為+2.5 V,內(nèi)核及PLL的數(shù)字供電電壓均為+1.2 V。其中,+3.3 V由背板經(jīng)CPCI J1直接供給,+2.5 V通過電源芯片LT1963AES8由+3.3 V轉(zhuǎn)換而得,+1.2 V通過電源芯片TPS74401由+3.3 V轉(zhuǎn)換而得。設(shè)計(jì)中,充分考慮到芯片功耗問題,內(nèi)核及PLL的數(shù)字供電特采用TI公司的TPS74401電源芯片將+3.3 V轉(zhuǎn)換為+1.2 V,其輸出電流為3 A,保證了電源功率。
FPGA的輸入時(shí)鐘由背板經(jīng)CPCI J1提供,使CPCI總線頻率穩(wěn)定在33 MHz。FPGA的上電復(fù)位模式選擇AS Standard POR。采用增強(qiáng)型配置芯片EPCS16對(duì)FPGA進(jìn)行了主動(dòng)串行(AS)配置,同時(shí)利用微處理器本身進(jìn)行了基于JTAG的配置。兩種配置方案,保證了FPGA程序燒錄的可靠性、穩(wěn)定性。FPGA芯片設(shè)計(jì)如圖2所示。
2.2 總線接口設(shè)計(jì)
本設(shè)計(jì)中采用32 bit/33 MHz CPCI總線接口,其傳輸率可達(dá)133 MB/s,實(shí)現(xiàn)了設(shè)備之間的高速通信。通過CPCI連接器,CPCI總線信號(hào)與FPGA的I/O口互連。
FPGA微處理器通過地址和數(shù)據(jù)信號(hào)AD[31..00]、總線命令和字節(jié)使能信號(hào)C/BE[3..0]#與主機(jī)進(jìn)行I/O地址的選擇,以及數(shù)據(jù)、命令的傳輸。FRAME#、TRDY#、IRDY#、STOP#、DEVSEL#、IDSEL等接口控制信號(hào)用于設(shè)備選擇、讀寫控制。FPGA微處理器如需占用總線,則需向主機(jī)發(fā)出總線占用請(qǐng)求信號(hào)REQ#,主機(jī)收到總線占用請(qǐng)求信號(hào)后,通過仲裁向FPGA微處理器發(fā)送總線占用允許信號(hào)GNT#。由于總線上沒有掛接其他設(shè)備,故總線的使用由FPGA微處理器獨(dú)占。INTA#用于向總線進(jìn)行中斷請(qǐng)求,以實(shí)現(xiàn)中斷功能。通信過程中如有錯(cuò)誤發(fā)生,則FPGA微處理器通過PERR#、SERR#與主機(jī)進(jìn)行錯(cuò)誤報(bào)告,以保證數(shù)據(jù)傳輸可靠、完整[3]。
2.3 脈沖信號(hào)處理電路設(shè)計(jì)
被測(cè)設(shè)備的脈沖信號(hào)通過CPCI J4連接器進(jìn)入板卡。利用光電耦合器GH137對(duì)脈沖進(jìn)行光電隔離,以減少板上其他信號(hào)的干擾,提高脈沖數(shù)字信號(hào)的抗干擾能力。經(jīng)過光耦隔離的脈沖數(shù)字信號(hào),由TI公司的SN54AHC14W進(jìn)行波形整形。SN54AHC14W是帶有施密特觸發(fā)的6路反相器。施密特觸發(fā)器是脈沖波形變換中經(jīng)常使用的一種電路,不僅能將邊沿變化緩慢的信號(hào)波形整形為邊沿陡峭的矩形波,而且可以將疊加在矩形脈沖高、低電平上的噪聲有效地清除。故經(jīng)過SN54AHC14W整形的脈沖數(shù)字信號(hào)波形更加理想,易于FPGA微處理器進(jìn)行處理、計(jì)數(shù)。
高穩(wěn)定度溫度補(bǔ)償晶體振蕩器Osc-TCXO4產(chǎn)生的1 024 kHz時(shí)鐘脈沖,經(jīng)SN54AHC14W整形后送入FPGA,供脈沖計(jì)數(shù)使用。由于本板卡應(yīng)用于軍工、國防領(lǐng)域,需要非常穩(wěn)定的晶振,故采用溫度補(bǔ)償晶體振蕩器。TCXO溫度補(bǔ)償通過改變振蕩回路中負(fù)載電容,使其隨溫度變化來補(bǔ)償由于環(huán)境溫度變化產(chǎn)生的頻率漂移,從而產(chǎn)生精度非常高的時(shí)鐘,提高脈沖計(jì)數(shù)精度。脈沖信號(hào)處理電路如圖3所示。
2.4 差分接口設(shè)計(jì)
本設(shè)計(jì)中有2路RS232串口,4路RS422串口,最高傳輸率分別為115.2 kb/s、921.6 kb/s。由于應(yīng)用條件嚴(yán)苛,設(shè)計(jì)中選用了電磁隔離器件,大大提高了通信的可靠性。RS232收發(fā)器選用AD公司的ADM3251E,其數(shù)據(jù)傳輸率最高可達(dá)460 kb/s。RS422收發(fā)器選用AD公司的ADM2582E,其數(shù)據(jù)傳輸率最高可達(dá)16 Mb/s。二者均在器件內(nèi)部集成了DC-DC轉(zhuǎn)換器,有效地降低了干擾,且其傳輸速率也滿足使用需求。同時(shí),由于主機(jī)串口傳輸率為9 600 b/s,故選擇22.118 4 MHz的晶振為串行通信提供穩(wěn)定時(shí)鐘。
被測(cè)設(shè)備將周期5 ms和10 ms的時(shí)鐘信號(hào)輸出給板卡,作為測(cè)試儀周期中斷信號(hào)。時(shí)鐘接口電路采用422差分協(xié)議,電平采用422電平。時(shí)鐘信號(hào)經(jīng)CPCI J5連接器進(jìn)入板卡,接收器采用NS公司的4路差分接收器DS26LS32,以滿足422電平標(biāo)準(zhǔn)。調(diào)理之后的422電平信號(hào)經(jīng)光電耦合器GH137加以隔離,以減少其他信號(hào)的干擾。
由于DS26LS32、GH137內(nèi)部未集成DC-DC轉(zhuǎn)換功能,故需要有單獨(dú)的DC-DC電源模塊將板上電源進(jìn)行隔離,以給二者供電。此處選用了TI公司的DCR01系列芯片完成隔離電源供電的功能。測(cè)試儀周期中斷信號(hào)電路設(shè)計(jì)如圖4所示。
測(cè)試儀向被測(cè)設(shè)備發(fā)送RS422差分信號(hào)作為被測(cè)設(shè)備同步信號(hào)。同步信號(hào)接口電路采用422差分協(xié)議,電平采用422電平。同步脈沖從FPGA微處理器送出后,經(jīng)光電耦合器GH137隔離,進(jìn)入MAXIM公司的MAX3491收發(fā)器。MAX3491的數(shù)據(jù)傳輸速率可達(dá)10 Mb/s,滿足傳輸要求。信號(hào)經(jīng)CPCI J5連接器外送至被測(cè)設(shè)備,以校準(zhǔn)時(shí)差,實(shí)現(xiàn)被測(cè)設(shè)備同步功能。
同時(shí),為減少其他信號(hào)的干擾,將對(duì)時(shí)脈沖采取隔離措施,由TI公司的DCR01系列電源芯片單獨(dú)供電。由于MAX3491與GH137的供電電壓不同,故通過二極管串聯(lián)電壓鉗位的方式獲得合適的供電電壓為GH137供電,有效解決了隔離供電問題。被測(cè)設(shè)備同步信號(hào)電路設(shè)計(jì)如圖5所示。
2.5 數(shù)字輸出電路設(shè)計(jì)
測(cè)試儀的I/O功能由數(shù)字輸出量來實(shí)現(xiàn)。FPGA通過設(shè)置寄存器方式向外輸出高低電平,以實(shí)現(xiàn)復(fù)位、控制等功能。高低電平從FPGA發(fā)出,經(jīng)光電耦合器GH137隔離,提高信號(hào)抗干擾性能。經(jīng)隔離的信號(hào)進(jìn)入FAIRCHILD公司的FDS9945作為電平控制信號(hào)。
FDS9945內(nèi)部為N溝道MOSFET,電平控制信號(hào)連接于場(chǎng)效應(yīng)管的柵極G(Gate),場(chǎng)效應(yīng)管的源極S(Source)接隔離地,漏極D(Drain)的輸出可作為復(fù)位、控制信號(hào)。漏極D的輸出電平經(jīng)CPCI J5連接器外送至被控制的對(duì)象。利用MOS管的開關(guān)特性,通過改變柵極G的電平來控制場(chǎng)效應(yīng)管源極S、漏極D的通斷,從而實(shí)現(xiàn)復(fù)位、控制等功能[4]。數(shù)字輸出電路設(shè)計(jì)如圖6所示。
3 FPGA程序設(shè)計(jì)
本采集卡FPGA邏輯設(shè)計(jì)采用Verilog代碼[5]實(shí)現(xiàn),主要實(shí)現(xiàn)數(shù)據(jù)采集、存儲(chǔ)、讀寫等命令控制,其主流程圖如圖7所示。FPGA主要實(shí)現(xiàn)CPCI接口到RS232、RS422等接口轉(zhuǎn)換,以及422電平輸入輸出、數(shù)字輸出、脈沖計(jì)數(shù)等功能。PCI BAR0映射為8 KB IO空間,BAR1映射為1 MB Memory空間。PCI采用中斷復(fù)用,通過使能中斷寄存器而觸發(fā)不同協(xié)議的中斷,如RS232、RS422通信等,從而分別調(diào)用相應(yīng)的中斷服務(wù)程序完成通信任務(wù)。
4 結(jié)果分析
圖8為串口內(nèi)部數(shù)據(jù)收發(fā)仿真,圖9為總線上數(shù)據(jù)收發(fā)仿真,圖10為數(shù)字輸出仿真。由實(shí)驗(yàn)結(jié)果可知,該I/O卡在進(jìn)行數(shù)據(jù)通信時(shí),無論是串口內(nèi)部的環(huán)回通信,還是PCI總線上的通信,讀寫信息一致,沒有產(chǎn)生通信錯(cuò)誤。同時(shí),6路數(shù)字輸出量也有由默認(rèn)低電平到輸出高電平的跳變,完成了相應(yīng)的數(shù)字控制功能??梢?,該I/O通信卡成功實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時(shí)采集、處理、上傳等功能,目前已投入實(shí)際應(yīng)用之中,具有較高的使用價(jià)值。
參考文獻(xiàn)
[1] PICMG. Compact PCI specification 2.0 R3.0[S]. 1999.
[2] 羅苑棠.CPLD/FPGA常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2007.
[3] 李貴山,陳金鵬.PCI局部總線及其應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2003.
[4] 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,2004.
[5] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2009.
編輯:jq
-
FPGA
+關(guān)注
關(guān)注
1630文章
21802瀏覽量
606415 -
CPCI總線
+關(guān)注
關(guān)注
0文章
28瀏覽量
13560 -
通信
+關(guān)注
關(guān)注
18文章
6077瀏覽量
136487
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
XMC 轉(zhuǎn) CPCI 載板轉(zhuǎn)接卡
CPCI轉(zhuǎn)PCI載板轉(zhuǎn)接卡 PCI2CPCI
![<b class='flag-5'>CPCI</b>轉(zhuǎn)PCI載板轉(zhuǎn)接<b class='flag-5'>卡</b> PCI2<b class='flag-5'>CPCI</b>](https://file1.elecfans.com/web1/M00/F2/95/wKgaoWcGLd-AejGIAAC4paG334Q265.png)
解析XMC轉(zhuǎn)CPCI載板轉(zhuǎn)接卡:連接不同接口的關(guān)鍵紐帶
pmc轉(zhuǎn)cpci載板轉(zhuǎn)接卡
CPCI 接口反射內(nèi)存卡
![<b class='flag-5'>CPCI</b> 接口反射內(nèi)存<b class='flag-5'>卡</b>](https://file1.elecfans.com/web2/M00/06/53/wKgaombZfGyAeNHyAABvrhnf3HI673.png)
簡述計(jì)算機(jī)總線的分類
全國產(chǎn)T3+FPGA的SPI與I2C通信方案分享
國產(chǎn)RK3568J基于FSPI的ARM+FPGA通信方案分享
TCA5013支持1張用戶卡和3張SAM卡的多功能智能卡接口IC數(shù)據(jù)表
![TCA5013支持1張用戶<b class='flag-5'>卡</b>和3張SAM<b class='flag-5'>卡</b>的<b class='flag-5'>多功能</b>智能<b class='flag-5'>卡</b>接口IC數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
FPGA中的單總線協(xié)議設(shè)計(jì)(附示例代碼)
![<b class='flag-5'>FPGA</b>中的單<b class='flag-5'>總線</b>協(xié)議設(shè)計(jì)(附示例代碼)](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
什么是多功能傳感器 多功能傳感器的功能介紹
![什么是<b class='flag-5'>多功能</b>傳感器 <b class='flag-5'>多功能</b>傳感器的<b class='flag-5'>功能</b>介紹](https://file1.elecfans.com/web2/M00/C7/65/wKgaomYKO5OAYwI7AAAZg1XTW6Y798.jpg)
CPCI設(shè)計(jì)與制造:提高可制造性的關(guān)鍵要素
![<b class='flag-5'>CPCI</b>設(shè)計(jì)與制造:提高可制造性的關(guān)鍵要素](https://file1.elecfans.com//web2/M00/C5/D7/wKgZomYCpK2AdO9cAACM6I_udiY147.png)
評(píng)論