劉繼平 ,常 皓 ,李德陽
(1.中國(guó)電子科技集團(tuán)公司第三十研究所,四川 成都 610041;2.96901部隊(duì)26分隊(duì),北京100094)
SDIO安全模塊內(nèi)部集成安全SOC芯片,具備高性能、低功耗、高安全性等特點(diǎn)。為滿足SDIO安全模塊的可靠性檢測(cè)需求,需將SDIO信號(hào)進(jìn)行無失真遠(yuǎn)距離傳輸。
SDIO是一種IO接口規(guī)范,以其傳輸速度快、兼容性好等優(yōu)點(diǎn)被廣泛應(yīng)用于手機(jī)、PDA等移動(dòng)手持設(shè)備中,出現(xiàn)了多種基于SDIO接口的設(shè)備,如相機(jī)、錄音器、掃描儀、GPS、藍(lán)牙和無線網(wǎng)卡等[1]。
由于SDIO接口總線的抗衰減能力較弱,傳輸距離短,只能用于近距離數(shù)據(jù)傳輸。當(dāng)距離較遠(yuǎn)的SDIO接口設(shè)備需要進(jìn)行數(shù)據(jù)傳輸時(shí),一般采用直通帶纜延長(zhǎng),但延長(zhǎng)的最大距離為50 cm左右;或者采取協(xié)議轉(zhuǎn)換[2]方式傳輸,但會(huì)增加硬件和軟件設(shè)計(jì)成本。LVDS具有低功耗、低誤碼率、低串?dāng)_和低輻射等特點(diǎn)[3],廣泛用于解決高速I/O接口問題。本文主要介紹一種SDIO信號(hào)的遠(yuǎn)距離傳輸系統(tǒng)的實(shí)現(xiàn)方法,并通過實(shí)驗(yàn)驗(yàn)證了設(shè)計(jì)的正確性、可靠性和實(shí)用性。
SDIO總線分為兩端,一端為主機(jī)端,另一端為設(shè)備端。通信由主機(jī)端發(fā)起,設(shè)備端解析命令并響應(yīng)。根據(jù)SDIO協(xié)議規(guī)范[4],SDIO總線信號(hào)包括CLK時(shí)鐘線、CMD命令線和DATA[0∶3]四根數(shù)據(jù)線。其中,CLK時(shí)鐘線是單向信號(hào),CMD命令線和DATA[0∶3]數(shù)據(jù)線都為雙向信號(hào)。對(duì)于雙向信號(hào),進(jìn)行差分傳輸時(shí)需要一個(gè)控制信號(hào)來確定差分信號(hào)傳輸方向。本設(shè)計(jì)通過FPGA信號(hào)處理模塊解析SDIO協(xié)議,及時(shí)產(chǎn)生控制信號(hào),以控制差分信號(hào)傳輸方向的切換,保證數(shù)據(jù)流向的正確性,從而使整個(gè)SDIO總線延長(zhǎng)通信鏈路工作正常。宿主設(shè)備為主機(jī)端,SDIO安全模塊為設(shè)備端。主機(jī)端通過差分傳輸系統(tǒng)與安全模塊進(jìn)行數(shù)據(jù)交互。差分傳輸系統(tǒng)只對(duì)SDIO信號(hào)進(jìn)行物理層轉(zhuǎn)換,進(jìn)行協(xié)議監(jiān)控而不進(jìn)行協(xié)議轉(zhuǎn)換。
差分傳輸系統(tǒng)主要由主機(jī)卡、高速帶纜和從機(jī)卡組成,如圖1所示。其中,主機(jī)卡主要由SDIO金手指柔性帶纜、主端總線接口、單端差分互轉(zhuǎn)模塊、片選模塊和高速帶纜接口組成。從機(jī)卡主要由高速帶纜接口、單端差分互轉(zhuǎn)模塊、信號(hào)處理模塊和SDIO總線接口組成。
圖1 差分傳輸系統(tǒng)
在主機(jī)卡和從機(jī)卡中都包含單端差分互轉(zhuǎn)模塊。它們一個(gè)工作在單端轉(zhuǎn)差分發(fā)送模式時(shí),另一個(gè)必定工作在差分轉(zhuǎn)單端的接收模式。單端差分互轉(zhuǎn)模塊主要采用高速差分線驅(qū)動(dòng)器/收發(fā)器SN65LVDS180D進(jìn)行設(shè)計(jì)[5]。單端差分互轉(zhuǎn)模塊具有150Mb/s的傳輸速率,能夠保證20 MHz的SDIO信號(hào)無失真?zhèn)鬏敗?/p>
以CMD命令線的傳輸為例,如圖2所示。CTR_CMD為控制信號(hào),主機(jī)卡和從機(jī)卡中的控制信號(hào)相反,一個(gè)處于發(fā)送狀態(tài)時(shí),另一個(gè)處于接收狀態(tài)。當(dāng)主機(jī)端發(fā)起命令時(shí),主機(jī)卡CTR_CMD的電平值為“1”,主機(jī)卡處于發(fā)送狀態(tài);而從機(jī)卡的CTR_CMD則為“0”,從機(jī)卡處于接收狀態(tài)。主機(jī)卡通過SDIO金手指柔性帶纜連接至主機(jī)端,將SD_CMD單端信號(hào)轉(zhuǎn)為CMD_TXD_P/CMD_TXD_N的LVDS差分信號(hào);再通過高速帶纜連接從機(jī)卡的CMD_RXD_P/CMD_RXD_N端,將差分信號(hào)還原為單端信號(hào);從機(jī)卡接收到SD_CMD信號(hào)后,通過SDIO總線接口連接至設(shè)備端。反之,當(dāng)主機(jī)端接收響應(yīng)時(shí),主機(jī)卡中的CTR_CMD由“1”切換為“0”,處于接收狀態(tài);從機(jī)卡則處于發(fā)送狀態(tài)。
圖2 CMD信號(hào)傳輸硬件
數(shù)據(jù)線DATA[0∶3]與CMD信號(hào)線都是屬于雙向信號(hào),原理與CMD信號(hào)傳輸原理一致。
CLK信號(hào)都屬于單端信號(hào),始終從主機(jī)端輸入到設(shè)備端。為了保證信號(hào)的一致性,也將CLK信號(hào)進(jìn)行差分傳輸,而不用切換傳輸方向。
單端差分互轉(zhuǎn)模塊的控制信號(hào)CTR_CMD決定SDIO信號(hào)在整個(gè)差分鏈路的數(shù)據(jù)流向,對(duì)整個(gè)系統(tǒng)的正常通信起著關(guān)鍵作用。而FPGA信號(hào)處理模塊決定控制信號(hào)的輸出,決定了單端差分互轉(zhuǎn)模塊的收發(fā)狀態(tài),從而控制SDIO總線信號(hào)的數(shù)據(jù)流向。要產(chǎn)生正確的控制信號(hào),需要對(duì)SDIO總線信號(hào)進(jìn)行實(shí)時(shí)監(jiān)控與分析。信號(hào)處理模塊的核心器通過FPGA編程實(shí)現(xiàn)[6]。SDIO總線信號(hào)的工作時(shí)鐘一般為20 MHz,因此需要更高的時(shí)鐘才能采集SDIO信號(hào)。FPGA內(nèi)部集成鎖相環(huán),可以把外部時(shí)鐘倍頻,核心頻率可以到幾百兆赫茲。FPGA信號(hào)處理模塊主要由集成鎖相環(huán)、命令解析單元和控制信號(hào)輸出單元組成。SDIO總線信號(hào)包括CLK時(shí)鐘線、CMD命令線和DATA[0∶3]數(shù)據(jù)線。信號(hào)處理模塊主要處理數(shù)據(jù)信號(hào)。SDIO協(xié)議有一個(gè)特點(diǎn),任何讀寫操作都可以通過CMD命令類型來判斷。從機(jī)卡將CMD命令線的差分信號(hào)轉(zhuǎn)換為單端信號(hào)后,輸入到信號(hào)處理模塊。信號(hào)處理模塊在高頻時(shí)鐘下監(jiān)控分析SDIO總線信號(hào),通過判斷CMD命令類型,能夠精確產(chǎn)生單端差分互轉(zhuǎn)模塊的控制信號(hào),控制單端差分互轉(zhuǎn)模塊的工作狀態(tài),從而控制SDIO總線信號(hào)數(shù)據(jù)流向,確保整個(gè)鏈路正常工作。
FPGA信號(hào)處理模塊的處理狀態(tài)機(jī)如圖3所示,主要由CMD_TX、CMD_RX、DECIDE和DATA_TX等8個(gè)狀態(tài)組成。
圖3 信號(hào)處理模塊狀態(tài)機(jī)
本設(shè)計(jì)的FPGA信號(hào)處理模塊用Verilog HDL硬件描述語言編寫。為了驗(yàn)證模塊的正確性,編寫Testbench文件,用仿真軟件進(jìn)行仿真,結(jié)果如圖4所示。命令線在同步時(shí)鐘的參考下發(fā)送了一個(gè)CMD命令,當(dāng)命令發(fā)送完成時(shí),及時(shí)給出控制信號(hào);當(dāng)響應(yīng)完成時(shí),又及時(shí)恢復(fù)到初始狀態(tài),以等待下一個(gè)命令。
圖4 CMD控制信號(hào)仿真時(shí)序
本設(shè)計(jì)的實(shí)現(xiàn)平臺(tái)采用Xilinx公司的SPARTAN6的XC6SLX150T_2FGG676I,經(jīng)綜合、適配、仿真、布局布線后,占用較少的器件資源。SDIO信號(hào)監(jiān)控模塊下載到FPGA后,正常工作,實(shí)際環(huán)境如圖5所示。FPGA可擴(kuò)展16個(gè)SDIO通信接口模塊,在主機(jī)卡片選模塊的控制下,可依次對(duì)16個(gè)SDIO安全模塊進(jìn)行測(cè)試。通過實(shí)驗(yàn)驗(yàn)證,設(shè)計(jì)的差分傳輸系統(tǒng)可以實(shí)現(xiàn)SDIO信號(hào)遠(yuǎn)距離傳輸,傳輸距離3 m,且穩(wěn)定可靠。
圖5 SDIO差分傳輸系統(tǒng)實(shí)物
基于FPGA設(shè)計(jì)的SDIO差分遠(yuǎn)傳系統(tǒng)可滿足SDIO安全模塊可靠性測(cè)試的需求,數(shù)據(jù)收發(fā)正常,各項(xiàng)功能測(cè)試正常,且可擴(kuò)展16個(gè)通道,實(shí)現(xiàn)批量測(cè)試,有效降低了試驗(yàn)成本。在不改變SDIO協(xié)議的情況下,可將主機(jī)端和從設(shè)備進(jìn)行遠(yuǎn)距離通信,具有一定的實(shí)用價(jià)值。