?

一種實用的多通道SPI接口設計*

2013-11-23 04:18
艦船電子工程 2013年4期
關鍵詞:主控板板卡寄存器

(中國船舶重工集團公司第七二二研究所 武漢 430079)

1 引言

在通信產品設計中,一般都會采用可拔插的多板卡設計,板卡分為兩類:一類為主控板,主要實現數據交換、網管代理、配置保存和下載、狀態查詢和上報等功能,設計較為復雜;另一類為接口板,主要實現數據轉換和接口適配功能,設計一般較為簡單。設備中主控板一般只有一塊(如果需要冗余設計則為兩塊),而接口板有多塊,所有板卡均插在一塊背板上。為了實現統一管理,主控板和接口板間需要增加管理通道。

對于管理通道,也有兩種實現方式:一種是主控板和接口板均配置CPU 芯片,板卡間采用HDLC 接口或以太網接口實現管理通道,這樣就需要每塊板卡都編寫軟件代碼,對于接口眾多而接口板實現簡單的設備而言,設計工作量大、成本高;另一種是僅在主控板上配置CPU 芯片,通過主控板提供并行數據/地址總線連接到各接口板上,接口板上的芯片可以直接由主控板通過總線進行控制,這樣可以簡化軟件的代碼編寫,但由于并行數據/地址總線信號數量眾多,設備背板設計將會很復雜,同時由于一組總線連接到多塊接口板卡,其可靠性會降低。

本文綜合這兩種實現方式的優點,在此基礎上提出了一種新的實現方式,即主控板通過FPGA 芯片擴展出多個通道的SPI主模式接口,而接口板通過EPLD 芯片實現SPI從模式接口,再通過背板將主控板的SPI接口與接口板的SPI接口一一對應連接,主控板即可通過SPI接口對接口板進行管理操作。

2 SPI接口簡介

SPI(Serial Peripheral Interface—串行外設接口)總線是一種同步串行外設接口,它可以使MCU 與各種外圍設備以串行方式進行通信以交換信息。該接口一般使用四條線:串行時鐘線(SCLK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線SS。SPI接口傳輸的數據一般為八位,在主器件產生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在后。

3 FPGA 芯片介紹

本方案中采用的FPGA 芯片是Xilinx公司的Spartan-6系列[4]。該系列由13 個成員組成,可提供的密度從3,840 個邏輯單元到147,443 個邏輯單元不等。Spartan-6系列采用成熟的45nm 低功耗銅制程技術制造,與上一代Spartan 系列相比,該系列功耗僅為其50%,且速度更快、連接功能更豐富全面。Spartan-6FPGA 具備堅實的可編程芯片基礎,且成本低,非常適用于可提供集成軟硬件組件的目標設計平臺。

4 多通道SPI接口方案設計

圖1 方案設計框圖

本方案中采用FPGA 芯片實現16路SPI主模式接口,同時采用EPLD 芯片實現單路SPI從模式接口,具體框圖如圖1所示。

由于需要擴展16路SPI主模式接口,所采用的邏輯資源較多,所以FPGA 芯片采用了Spartan-6 系列的XC6SLX9型號,該型號具備9152個邏輯單元和102 個可用IO 口管腳,且功耗很小,EPLD 芯片則采用了Altera公司的MAX II系列的EPM240芯片,也同樣具備成本低和功耗小的特點。

4.1 SPI接口時序

本方案由于SPI接口的主從模式均由邏輯實現,為統一設計,規范SPI接口的時序如下:

寫操作時,SPI主模式接口在片選有效后,從時鐘上升沿先輸出地址,再輸出數據,高位在前,低位在后;讀操作時,SPI主模式接口同樣先輸出地址,然后由SPI從模式接口在時鐘上升沿輸出數據,也是高位在前,低位在后。地址的最高位bit作為讀寫指示信號,bit為0時表示本次操作是讀操作,bit為1時表示是寫操作。

圖2 SPI接口的寫時序

圖3 SPI接口的讀時序

4.2 SPI主模式接口設計

根據設計框圖,為了實現多通道SPI接口,需要在FPGA 芯片內部擴展多組寄存器,CPU 通過并行數據/地址總線對寄存器進行訪問,以控制每個通道SPI接口的讀寫操作。每組寄存器對應一個SPI接口,寄存器包括控制寄存器、地址寄存器,寫數據寄存器和讀數據寄存器。其中控制寄存器的bit0用于啟動讀寫操作,置1表示啟動讀寫操作,清0則表示停止操作;bit7為只讀bit,讀出為1表示本次操作尚未結束,為0則表示操作已完成。

SPI主模式接口的主要邏輯實現代碼如下:

4.3 SPI從模式接口設計

由于接口板的接口芯片存在不同類型,而不同類型的接口芯片其CPU 接口的時序要求也可能不同。為了靈活適配,在接口板的EPLD 中擴展了四個寄存器:并行接口控制寄存器、并行接口地址寄存器、并行接口寫數據寄存器和并行接口讀數據寄存器。主控板可以通過SPI接口對這些寄存器進行訪問,以控制EPLD 的并行數據/地址總線的讀寫時序。其中并行接口控制寄存器的bit0表示是否使能操作,1表示使能讀寫操作,0表示禁止;bit1表示當前操作類型,0表示讀操作,1表示寫操作;bit7表示當前操作是否結束,1表示操作尚未結束,0表示操作已結束。

由于SPI從模式接口的邏輯代碼較長,無法一一列舉,這里將流程框圖描述如圖4:

圖4 SPI從模式設計流程

5 結語

本文對不同設備內的板卡管理通道進行了分析,提出了采用SPI接口作為板卡間管理通道的設計方案。該方案采用FPGA+EPLD芯片實現SPI接口,可以根據項目需求靈活增加接口數量,同時也可以很方便地調整CPU 接口的訪問時序。在實際的設備應用中,SPI接口作為管理通道運行穩定良好,有效地提高了設備的開發效率。

另外,本文中應用的SPI接口是8位數據和8位地址,如果實際使用有新的需求,完全可以將SPI接口的位寬擴展到16位或更多,而不會對整體設計架構有任何影響。

[1]田耘,徐文波.Xilinx FPGA 開發實用教程[M].北京:清華大學出版社,2008.

[2]EDA 先鋒工作室.Altera FPGA/CPLD設計(基礎篇)[M].第2版.北京:人民郵電出版社,2011.

[3]夏宇聞.Verilog數字系統設計教程[M].第2版.北京:北京航空航天大學出版社,2008.

[4]Xilinx,Inc.Spartan-6Family Overview,2011:1-2.http://www.xilinx.com.

[5]Xilinx,Inc.Spartan-6 FPGA Data Sheet,2011.http://www.xilinx.com.

[6]Xilinx,Inc.Spartan-6 FPGA Clocking Resources User Guide,2011.http://www.xilinx.com.

[7]Altera Corporation.MAX II Device Handbook,2009.http://www.altera.com.cn.

[8]麻志鵬,沈小林.PCI總線接口的FPGA 設計與實現[J].計算機與數字工程,2011(2).

猜你喜歡
主控板板卡寄存器
一種快速可靠的主控冗余及切換機制的設計與實現
Lite寄存器模型的設計與實現
壁掛爐主控板工裝測試系統設計
車載控制器CVRE板卡顯紅故障分析及處理
重慶軌道交通閘機三桿機芯主控板的技術自主化探究
二進制翻譯中動靜結合的寄存器分配優化方法
移位寄存器及算術運算應用
新型食堂點菜結算裝置的設計研究
基于組態王軟件和泓格PIO-D64 板卡的流水燈控制
一種基于光纖數據傳輸的多板卡軟件程序燒寫技術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合