熊建新+王元+鄭鵬
摘 要:文章提出并論證了在光傳輸設(shè)備中利用SPI總線替代并行地址數(shù)據(jù)總線的設(shè)計(jì),利用SPI總線實(shí)現(xiàn)設(shè)備板卡間通信,極大地簡(jiǎn)化了設(shè)備的背板及各單元板的硬件設(shè)計(jì),是一種簡(jiǎn)易、可靠、穩(wěn)定的傳輸方式。
關(guān)鍵詞:SPI;并行總線;光傳輸
傳統(tǒng)的光傳輸設(shè)備中多采用背板和板卡的結(jié)構(gòu),根據(jù)各功能模塊各板卡具有不同的功能,如SDH光傳輸設(shè)備采用的控制板、光板、以太網(wǎng)板、2 M板等各單元電路板,均通過背板進(jìn)行總線連接。因?yàn)楦鲉卧娐凡捎昧藢?duì)應(yīng)的專用集成電路,控制盤對(duì)各單元板業(yè)務(wù)功能的初始化及功能控制是采用并行控制總線來完成的,這些總線包括各板卡間的地址、數(shù)據(jù)總線和控制信號(hào)等,由此帶來背板的布局連線極為困難復(fù)雜。采用SPI總線替代8位、16位或32位的并行控制總線后大大簡(jiǎn)化了背板的設(shè)計(jì)難度,并在一定程度上增加了設(shè)備的可靠性和穩(wěn)定性[1]。
1 系統(tǒng)總線設(shè)計(jì)
控制板CPU與各業(yè)務(wù)板之間通過4根信號(hào)線連接,總線設(shè)計(jì)如圖1所示。控制板CPU通過4根SPI串行總線與各業(yè)務(wù)板連接,其中MISO,MOSI,SCLK共用,通過片選信號(hào)CS將各業(yè)務(wù)板區(qū)分開來,各業(yè)務(wù)板通過SPI總線與控制板CPU通信,并將各總線命令進(jìn)行串并轉(zhuǎn)換,與業(yè)務(wù)板專用芯片進(jìn)行實(shí)時(shí)控制管理。由圖可知控制板CPU作為SPI總線的主機(jī),各業(yè)務(wù)板FPGA作為SPI總線的從機(jī)。SPI信號(hào)線詳細(xì)定義如表1所示。
2 控制板CPU總線設(shè)計(jì)
控制板CPU選用NXP公司的LPC1768,LPC1768是一款基于ARM Cortex-M3內(nèi)核的微控制器,操作頻率可達(dá)100 MHz,具有三級(jí)流水線和哈弗結(jié)構(gòu)[2]??刂瓢錍PU SPI管腳分布為:P0.16為控制板CPU的CS信號(hào),直連控制板的FPGA IO管腳;P0.15為共用的SCLK管腳,P0.17為共用的MISO,P0.18為共用的MOSI,再選用LPC1768的其他幾個(gè)IO口作為其他幾個(gè)業(yè)務(wù)板的CS片選信號(hào),分別作為每一塊板的讀寫控制。
控制板CPU定義SPI總線時(shí)序如圖2所示。
1次片選有效的讀/寫周期內(nèi),有32個(gè)時(shí)鐘。前16個(gè)時(shí)鐘為操作+地址,后16個(gè)時(shí)鐘為數(shù)據(jù)。每個(gè)16 bit中,MSB在前,LSB在后。每次讀寫操作之間CPU在給完地址信息后預(yù)留1 ms的間隔時(shí)間,用來給FPGA完成緩存讀寫使能信號(hào)、地址信號(hào),CPU數(shù)據(jù)給出后,F(xiàn)PGA繼續(xù)緩存上面保存的地址信號(hào)的數(shù)據(jù),最后由FPGA全部給出到專用芯片。詳細(xì)定義如表2所示。
為避免SPI總線競(jìng)爭(zhēng),使用互斥信號(hào)量對(duì)SPI總線進(jìn)行保護(hù)操作,在CPU訪問SPI總線之前,首先獲取互斥信號(hào)量,操作完畢之后再釋放互斥信號(hào)量。內(nèi)部接口具體函數(shù)如表3所示。
3 業(yè)務(wù)板FPGA總線設(shè)計(jì)
本設(shè)計(jì)中業(yè)務(wù)板采用XILINX公司目前主流通用的Spartan6系列芯片XC6SLX100-FGG676實(shí)現(xiàn)SPI轉(zhuǎn)并行總線的功能,已通過板級(jí)驗(yàn)證。編程語言采用業(yè)內(nèi)共用的VHDL硬件邏輯語言[3]。
業(yè)務(wù)板主要功能是通過背板接收控制板CPU的SPI讀寫信號(hào),實(shí)時(shí)地轉(zhuǎn)換為對(duì)本電路板的專用芯片的讀寫控制。具體設(shè)計(jì)流程為:FPGA在SPI時(shí)鐘信號(hào)SCLK上升沿下對(duì)CS進(jìn)行判斷,當(dāng)CS為0時(shí),緩存MOSI信號(hào),最高位為地址信號(hào)的第16位,判斷CPU是讀或?qū)懖僮鳌?/p>
當(dāng)最高位為0,CPU對(duì)業(yè)務(wù)板進(jìn)行讀操作。FPGA先緩存SPI的15位地址總線ADDR,然后在SPI地址總線和數(shù)據(jù)總線的1 ms間隔周期內(nèi)對(duì)專用芯片進(jìn)行讀操作,讀出該芯片地址ADDR的數(shù)據(jù),在SPI數(shù)據(jù)位到來的時(shí)候依次給出16位數(shù)據(jù),注意MSB先給出,LSB后給出。
當(dāng)最高位為1,CPU對(duì)業(yè)務(wù)板進(jìn)行寫操作。FPGA先將CPU給過來的地址數(shù)據(jù)總線全部緩存,然后在CPU寫操作完成后對(duì)專用芯片進(jìn)行寫指令,將緩存的地址、數(shù)據(jù)依次寫入專用芯片。業(yè)務(wù)板FPGA總線設(shè)計(jì)如圖3所示。
4 結(jié)語
本文針對(duì)常用的光傳輸設(shè)備設(shè)計(jì)過程中背板控制總線的處理,提出了一種采用SPI串行總線替代并行總線的設(shè)計(jì),并對(duì)設(shè)計(jì)過程進(jìn)行了詳細(xì)的闡述和論證。事實(shí)證明假設(shè)設(shè)備共有6塊業(yè)務(wù)板,每塊業(yè)務(wù)板采用的最低8位的地址數(shù)據(jù)總線,每塊業(yè)務(wù)板需要19根總線,6塊業(yè)務(wù)板則需要114根總線,采用SPI總線后只需要10根總線即可。這種設(shè)計(jì)方法極大地簡(jiǎn)化了背板的設(shè)計(jì)難度,提高了設(shè)備的穩(wěn)定性和可靠性,具有很好的使用價(jià)值。
作者簡(jiǎn)介:熊建新(1983— ),男,湖北黃岡,碩士研究生,工程師;研究方向:光通信開發(fā)。
[參考文獻(xiàn)]
[1]劉敏,陳金鷹.基于FPGA的并行數(shù)據(jù)轉(zhuǎn)SPI接口設(shè)計(jì)[J].電視技術(shù),2012(5):31-32.
[2]李大江,崔建明.一種基于FPGA的可配置SPIMaster接口設(shè)計(jì)實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2010(10):60-62.
[3]XILIN X.DS160:Spartan-6 family overview[EB/OL].(2010-11-05)[2017-06-25]. http://www.xilinx.com.
Abstract: This paper presents and demonstrates the use of SPI bus instead of the parallel address data bus in the optical transmission equipment. The SPI bus is used to realize the communication between the devices boards, which greatly simplifies the hardware design of the backplane and the unit board, is a simple, reliable, stable transmission mode.
Key words: serial peripheral interface; parallel bus; optical transmission