聶浩 許敬旺 康曉軍 唐士建
(北京空間機電研究所,北京 100076)
IEEE1394是1986年由蘋果公司開發(fā)的一種高速數(shù)據(jù)傳輸總線,于1995年由美國電氣和電子工程師協(xié)會(IEEE)制定成標(biāo)準(zhǔn),旨在取代并行總線SCSI。目前它主要發(fā)展為IEEE1394-1995、1394a、1394b、1394c等系列的開放式技術(shù)標(biāo)準(zhǔn)。IEEE 1394作為高速數(shù)據(jù)傳輸總線,已經(jīng)被廣泛應(yīng)用于數(shù)字?jǐn)z像機、數(shù)字照相機、計算機及其外圍設(shè)備等,在航空航天領(lǐng)域也有了較多應(yīng)用[1]。
IEEE1394總線具有異步傳輸和等時傳輸兩種傳輸模式。等時模式的大容量實時傳輸特性使得IEEE1394總線廣泛應(yīng)用于圖像傳輸領(lǐng)域[2]。IEEE1394標(biāo)準(zhǔn)中規(guī)定的協(xié)議比較復(fù)雜,實際應(yīng)用中大多數(shù)采用專用的總線接口芯片。常見的IEEE1394總線設(shè)計采用的是主控制器加上總線接口芯片及外圍邏輯電路[3]。而IEEE1394總線與嵌入式處理器的結(jié)合,進(jìn)一步提高了設(shè)備的集成度與便攜性。
從硬件發(fā)展來看,IEEE1394協(xié)議中的物理層和鏈路層已經(jīng)由硬件實現(xiàn)了。目前,TI、NEC、SONY等廠家都生產(chǎn)了具備這兩個協(xié)議層功能的總線接口芯片[4]。鏈路層芯片有TI的TSB12LV系列,TSB42AB4,TSB42AA9和SONY的CXD 1947Q等;物理層的控制芯片有TI的TSB41ABx系列 ,TSB41LV0x系列和SONY的CXD1944R等。另外還有物理層和鏈路層的整合芯片,如TI的TSB43AB2x系列,TSB43AA82等。
DSP(數(shù)字信號處理器)作為一種功能強大的微處理器,主要應(yīng)用在數(shù)據(jù)、語音、視像信號的高速數(shù)學(xué)運算和實時處理方面;FPGA(現(xiàn)場可編程門陣列)可以構(gòu)建高度并行的架構(gòu),具有很高的吞吐量和原始數(shù)據(jù)處理能力。因此,以DSP作為主控制器,F(xiàn)PGA作為協(xié)處理器搭建外圍邏輯電路的IEEE1394總線接口設(shè)計方案,具有較強的現(xiàn)實意義。
IEEE 1394協(xié)議定義了3個協(xié)議層:事務(wù)層、鏈路層、物理層;用于在請求者和響應(yīng)者之間的數(shù)據(jù)傳輸過程中完成相關(guān)服務(wù)。另外還定義了總線管理層,負(fù)責(zé)總線配置和每個總線節(jié)點的活動管理[5]。
事務(wù)層是針對異步傳輸定義的,建立在鏈路層的異步子事務(wù)之上。事務(wù)層定義了一整套請求—響應(yīng)協(xié)議來操作讀、寫、鎖定等異步事務(wù),并負(fù)責(zé)為每個收到的數(shù)據(jù)包提供確認(rèn)。鏈路層是事務(wù)層和物理層的接口,將事務(wù)層請求和響應(yīng)轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)包發(fā)送到串行總線上。物理層負(fù)責(zé)數(shù)據(jù)位的發(fā)送和接收;仲裁;提供電氣和機械接口[6]。
本文介紹了基于鏈路層芯片TSB12LV32和物理層芯片TSB41AB3的接口設(shè)計方案。以DSP為主控制器,F(xiàn)PGA作為外圍邏輯電路,共同實現(xiàn)IEEE1394事務(wù)層協(xié)議,鏈路層和物理層芯片則作為外設(shè)實現(xiàn)數(shù)據(jù)讀取和寫入。整體結(jié)構(gòu)框圖如圖1。
圖1 整體結(jié)構(gòu)框圖
DSP采用TMS320F240,是TI公司專門為控制應(yīng)用而優(yōu)化的16位定點單片控制器。FPGA選用XILINX公司的XC2V1000,具有100萬門陣列資源,可以滿足本設(shè)計需求。
TSB12LV32是一款兼容IEEE1394-1995和1394a的高性能的通用鏈路層(LLC)芯片,具有微控制器接口和DM(數(shù)據(jù)遷移)接口兩部分端口資源[7],如圖2所示。它用于在控制器和IEEE1394物理層芯片以及連接到鏈路層DM接口的外部設(shè)備之間的數(shù)據(jù)傳輸,支持400Mbit/s、200 Mbit/s和100 Mbit/s的傳輸速率。微控制器接口主要用于實現(xiàn)芯片配置和異步數(shù)據(jù)傳輸,而DM接口則是用來實現(xiàn)傳輸量大的等時/異步數(shù)據(jù)流包的傳輸。芯片內(nèi)部采用7位地址線尋址00h至4Ch空間的配置寄存器(CFR),所有鏈路層內(nèi)部寄存器CFR空間為32位寬,每8位空間占用一個地址。并分別內(nèi)置了2kbyte大小的通用接口FIFO(GRF)和異步傳輸FIFO(ATF),用于鏈路層微控制器接口和物理層接口之間的數(shù)據(jù)包傳送。
圖2 TSB12LV32內(nèi)部功能模塊圖
TSB41AB3是一款三端口兼容IEEE1394-1995和1394a標(biāo)準(zhǔn)的物理層(PHY)芯片[8]。TSB41AB3提供3個物理端口,每個端口都有單獨的線纜偏置電壓和終端驅(qū)動器供電電壓;支持等時傳輸和異步傳輸,支持100 Mbit/s、200 Mbit/s、400 Mbit/s的傳輸速率,能和鏈路層芯片實現(xiàn)無縫連接,具有較高的通信速率與穩(wěn)定性。
依據(jù)上述設(shè)計方案,IEEE1394接口電路設(shè)計包括如下部分:控制核心DSP+FPGA、FPGA與鏈路層的接口、鏈路層與物理層的接口、物理層與連接器的接口。
本設(shè)計利用DSP+FPGA架構(gòu)實現(xiàn)IEEE1394事務(wù)層協(xié)議,控制鏈路層芯片和物理層芯片。DSP作為系統(tǒng)核心,包括了整個系統(tǒng)的控制和運算部分。FPGA可以構(gòu)建高度并行的架構(gòu),能承擔(dān)繁重的計算工作量,能提供更高的吞吐量和原始數(shù)據(jù)處理能力。結(jié)合DSP和FPGA作為軟硬件協(xié)同設(shè)計平臺的顯著特點是結(jié)構(gòu)靈活、有較強的通用性、適于模塊化設(shè)計、能提高算法效率、易于維護(hù)、系統(tǒng)擴展性強。
DSP最小系統(tǒng)包括時鐘電路、看門狗電路、程序存儲及數(shù)據(jù)存儲電路[9];FPGA電路包括時鐘電路、配置電路和JTAG仿真電路。由于DSP最小系統(tǒng)和FPGA配置電路都已經(jīng)是相當(dāng)成熟的電路結(jié)構(gòu),所以本文不多展開敘述。
FPGA芯片 XC2V1000-4BG575具有100萬門陣列資源,328個可配置的通用IO管腳[10],與DSP芯片和IEEE1394鏈路層芯片的管腳連接具有高度的靈活性。圖3是DSP與FPGA之間控制、地址、數(shù)據(jù)總線的連接框圖。
圖3 DSP與FPGA連接框圖
DSP的軟件程序應(yīng)實現(xiàn)對鏈路層芯片和物理層芯片的配置、對IEEE1394通信的控制。而DSP的讀寫時序與鏈路層芯片的時序要求不相符,故需要FPGA構(gòu)建時序轉(zhuǎn)換模塊,以匹配DSP和鏈路層芯片的接口時序。
鏈路層芯片TSB12LV32外部端口包括微控制器接口和DM接口兩部分。FPGA的通用IO管腳與之相連接,實現(xiàn)寄存器配置、異步控制、等時傳輸?shù)裙δ堋?/p>
本設(shè)計中使用鏈路層的微控制器接口來進(jìn)行對其內(nèi)部寄存器的配置以及異步事務(wù)的操作;使用DM接口進(jìn)行等時事務(wù)的操作。這樣將異步、等時事務(wù)在事務(wù)層端的物理接口上獨立開來,那么事務(wù)層在處理這兩類事務(wù)時使用獨立的控制邏輯,而不用在DSP單線程任務(wù)中擠占有限的資源,使得系統(tǒng)架構(gòu)更清晰,控制邏輯更簡化,并且提高了事務(wù)層控制效率。圖4是FPGA與鏈路層的微控制器接口和DM接口連接框圖。
圖4 FPGA與IEEE1394鏈路層芯片連接框圖
(1)微控制器接口
TSB12LV32包含一個可編程微控制器接口,它具有8位/16位可選的數(shù)據(jù)總線,7位地址總線,5種不同工作模式和高達(dá)60MHz的BCLK頻率。數(shù)據(jù)總線以MD0為MSB(最高位),地址總線以MA0為MSB。工作模式包括字節(jié)(8位)握手模式、雙字節(jié)(16位)握手模式、字節(jié)(8位)固定定時模式、雙字節(jié)(16位)固定定時模式、Motorola ColdFire模式。
MCS(微接口周期啟動)是鏈路層的低電平活動的輸入引腳,它表征主控制器開始通過微控制器接口訪問鏈路層。 MCA(微接口周期確認(rèn))是一個低電平活動的輸出信號,代表從鏈路層微控制器接口發(fā)送到主控制器周期確認(rèn)信號。 MWR是讀/寫指示引腳,為高電平時,表示對鏈路層的讀訪問操作;為低電平時,表示對鏈路層的寫訪問操作。微控制器接口上的所有數(shù)據(jù)傳輸均使用BCLK的上升沿進(jìn)行同步。TEA是傳輸錯誤確認(rèn)引腳。此信號指示數(shù)據(jù)傳輸操作中出現(xiàn)的錯誤。
(2)DM接口
DM(數(shù)據(jù)遷移)接口是一個8/16位高速接口,支持頻率為24.576MHz來自非緩沖端口的等時、異步和異步數(shù)據(jù)流發(fā)送/接收。它是用于處理大型數(shù)據(jù)包的外部存儲器接口。DM口在同一循環(huán)周期內(nèi)可支持4個等時信道進(jìn)行等時發(fā)送。DM端口具有8種工作模式,包括等時接收/傳送,異步接收/傳送;每種又有自動包頭加載和非自動包頭加載兩種模式。DM接口具有7個控制引腳。這些引腳的功能的詳細(xì)信息和相關(guān)控制時序,可參閱TSB12 LV32數(shù)據(jù)手冊。
圖5是FPGA與鏈路層的微控制器接口和DM接口的連接原理圖。
圖5 鏈路層芯片微控制器接口與DM接口原理圖
(3)狀態(tài)引腳
圖6是FPGA與鏈路層狀態(tài)引腳的連接原理圖。
在硬件復(fù)位期間將對TSB12LV32的DIRECT引腳采樣以確定是否存在電隔離。如果該引腳為高電平,則不存在隔離。如果該引腳為低電平,則使用了TI總線支架隔離。
鏈路層上的CONTNDR引腳在硬件復(fù)位時默認(rèn)為輸入。在圖6中,CONTNDR經(jīng)過一個1kΩ電阻接地。表征該節(jié)點并非用于等時資源管理器(IRM)或總線管理器功能。但在加電之后,可以用鏈路層控制器內(nèi)的CTNDRSTAT位從內(nèi)部驅(qū)動此引腳的值。
在本設(shè)計中,M8BIT/SIZ0引腳接地,MCMODE/SIZ1引腳上拉,可將LLC設(shè)置為以雙字節(jié)(16位)握手模式與主控制器進(jìn)行通訊。該器件未配置為Motorola ColdFire模式,ColdFire引腳也接地。
LENDIAN引腳若為高電平,微接口被設(shè)置為little-endian模式,那么在將數(shù)據(jù)寫入器件的內(nèi)部FIFO或配置寄存器(CFR)之前,MD0-MD15的數(shù)據(jù)會以字節(jié)方式交換。本設(shè)計LENDIAN被接地??梢允褂肕DINV和MCMODE/SIZ0引腳將微接口配置為數(shù)據(jù)不變或地址不變模式。但是,僅當(dāng)啟用了LENDIAN(高電平),MDINV才有意義。
STAT0~STAT2是常規(guī)狀態(tài)輸出引腳。這些引腳可以獨立編程以顯示14個可能的內(nèi)部硬件狀態(tài)中的一個狀態(tài)。有關(guān)STAT0~STAT2編程的詳細(xì)信息,參閱TSB12LV32數(shù)據(jù)手冊(TI文獻(xiàn)編號SLLS336B)。
CYCLEIN輸入引腳是可選的外部8kHz時鐘,用于設(shè)置等時周期時鐘。本設(shè)計中未使用外部輸入等時時鐘。INT是低電平活動的輸出終端,代表所有內(nèi)部中斷的邏輯或非。
圖6 鏈路層芯片狀態(tài)引腳連接原理圖
LLC芯片TSB12LV32需與TI公司的PHY芯片配套使用。圖7顯示了TSB12LV32與TSB41AB3連接的LLC-PHY 接口。 LLC-PHY 接口由 SCLK、CTL0-CTL1、D0-D7、LREQ、LPS、LINKON(C/LKON)和 DIRECT(ISO)引腳組成。
圖7 LLC-PHY連接框圖
SCLK是由PHY提供的49.152MHz的接口時鐘。LLC-PHY接口上所有的控制和數(shù)據(jù)信號使用SCLK上升沿進(jìn)行同步和采樣。
在本設(shè)計中未實施LLC與PHY的隔離,DIRECT和ISO均上拉,PHY和LLC使用同一接地面。要降低電磁干擾發(fā)射并降低SCLK線路上的反射,建議使用串聯(lián)阻尼電阻,應(yīng)將此電阻放在盡量靠近PHY的位置。通過降低SCLK的邊緣速率,串聯(lián)電阻可以顯著降低當(dāng)PHY與鏈路層之間的距離較大時可能出現(xiàn)的反射。
CTL0-CTL1引腳是一個雙向控制總線,它控制PHY和LLC之間信息和數(shù)據(jù)的流向。這兩個引腳一般由PHY驅(qū)動。CTL編碼遵循IEEE1394a規(guī)范。
D0-D7引腳是雙向數(shù)據(jù)總線,它被用于在PHY和LLC之間傳送狀態(tài)信息、控制信息、或包數(shù)據(jù)。器件支持S100、S200、S400的數(shù)據(jù)傳輸速度。在S100速度下,僅使用D0和D1;在S200速度下,使用D0-D3;在S400速度下,使用D0-D7全部。
LERQ引腳表示由TSB12LV32給出到PHY的鏈路層請求信號。LREQ用于指示訪問總線進(jìn)行數(shù)據(jù)包傳輸?shù)恼埱螅驅(qū)HY寄存器空間的訪問請求,或控制仲裁加速。
LPS引腳表示LLC電源狀態(tài)。LPS被LLC驅(qū)動輸出給PHY,它表明LLC已經(jīng)上電并活動,LPS的默認(rèn)頻率是1/16的BCLK頻率,也可以被設(shè)置為其他值,為防止干擾,將LPS下拉。
PHY的C/LKON發(fā)出一個喚醒通知給LLC的LINKON引腳,并在LLC不活動時給它一個中斷。當(dāng)LLC檢測到這個引腳活動時,會驅(qū)動LPS輸出。C/LKON活動時是一個4M-8MHz的時鐘信號,存在時間不超過500ns。
在TSB12LV32給出總線請求時,TSB41AB3會在獲得總線控制權(quán)后進(jìn)行初始化傳輸操作;在TSB41AB3授權(quán)TSB12LV32控制LLC-PHY接口之后,傳輸操作初始化完成。圖8是鏈路層與物理層接口的連接原理圖。
CPS引腳檢測線纜是否提供電源并經(jīng)過400kΩ電阻連接到線纜電源。若線纜提供電源,該節(jié)點應(yīng)始終使CPS引腳經(jīng)過400kΩ電阻連接到線纜電源。如果沒有線纜電源,則可以將CPS直接連接到PHY地。
XI,XO是晶振輸入端口,須連接到24.576MHz的基準(zhǔn)時鐘輸入。這個時鐘驅(qū)動內(nèi)部鎖相環(huán)(PLL)產(chǎn)生所需的各種時鐘,用作傳輸控制和實現(xiàn)器件之間的同步。
RESET引腳拉低將復(fù)位內(nèi)部邏輯。此引腳提供了內(nèi)部上拉至VDD。
R0和R1引腳設(shè)置內(nèi)部工作電流和電纜驅(qū)動器的輸出電流。要滿足IEEE 1394-1995標(biāo)準(zhǔn)輸出電壓限制,需要使用6.34(1±1%)kΩ的電阻。
TESTM、SE和SM引腳是用于制造測試過程中的控制引腳。對于正常操作,TESTM必須經(jīng)過一個1kΩ電阻連接到DVDD(3.3V)。SE和SM須接地。
PC0-PC2是電源類型可編程輸入端口,用來設(shè)置自標(biāo)識包中的電壓類型的默認(rèn)值。“100”表示節(jié)點可以從總線上獲取3W的電源輸入,也可以提供電源到總線。
如果未執(zhí)行PD的斷電選項控制,則應(yīng)將PHY上的PD引腳經(jīng)過一個1kΩ電阻接地以保持PHY被啟用。
須將電源引腳(DVDD、AVDD、和PLLVDD)單獨分組,然后經(jīng)過幾個高頻去耦電容將它們?nèi)ヱ罱覩ND引腳。
TSB41AB3有3個電纜連接端口。接口包括線纜、線纜地線、雙絞線TPA+/TPA-、雙絞線TPB+/TPB-。雙絞線TPA上傳送差分選通信號,并接收差分?jǐn)?shù)據(jù)。雙絞線TPB上傳送差分?jǐn)?shù)據(jù),并接收差分選通信號。本設(shè)計中使用2個電纜連接端口,且不使用線纜電源VP和線纜地線VG。圖9是物理層芯片的兩對雙絞線連接示意圖。
圖9 PHY與連接器接口示意圖
每個端口 (TPA和TPB)的驅(qū)動器設(shè)計為與外部112Ω端接電阻網(wǎng)絡(luò)一起工作。傳輸線上差模信號以100MHz/200MHz/400MHz的頻率產(chǎn)生,用于復(fù)位和仲裁,總線配置以及數(shù)據(jù)包傳輸。IEEE1394差模信號在傳輸線上的特性阻抗為(110±6)Ω,使用112Ω(選用2個56Ω標(biāo)稱電阻串聯(lián))的終端電阻器來消除每個信號線上的反射[4]。TPA電阻網(wǎng)絡(luò)的中點直接連接到TPBIAS,考慮穩(wěn)定性連接了一個1μF電容,為降低TPBIAS上的電磁干擾可連接一個270pF電容。TPB電阻網(wǎng)絡(luò)的中點經(jīng)過并聯(lián)的RC網(wǎng)絡(luò)耦合接地。應(yīng)將這些112Ω端接電阻網(wǎng)絡(luò)安裝在盡量靠近PHY的位置,否則會吸引多的噪聲信號。
圖10是物理層與連接器之間的連接原理圖。
圖10 PHY-連接器接口原理圖
當(dāng)不使用PHY的某個連接端口時,必須正確端接它。首選方法是在IEEE1394a模式下配置端口。在IEEE1394a模式下,可以經(jīng)過1μF電容將TPBIAS接地或保持懸空;TPB+和TPB-引腳須連接在一起并接地,TPA+和TPA-引腳可以保持懸空。
本文介紹了利用DSP+FPGA與接口芯片實現(xiàn)IEEE1394總線通信的總線接口電路設(shè)計。該設(shè)計具有一定的通用性,在實際測試中,可以實現(xiàn)對總線接口芯片寄存器的正確配置和讀取操作;IEEE1394總線接口電路與總線測試設(shè)備連接正常,數(shù)據(jù)通訊正確。本設(shè)計的接口方案對采用其他主控制器實現(xiàn)IEEE1394總線通信的電路有借鑒參考作用。
[1]張大樸,王曉,張大為.IEEE1394協(xié)議及接口設(shè)計[M].西安:西安電子科技大學(xué)出版社,2004:5-6.
[2]龔東磊.胡繼波.IEEE1394高速串行總線及其應(yīng)用[J].計算機工程,2002,28(11):237-239.
[3]陳志文.IEEE 1394接口及其應(yīng)用[J].世界電子元器件,2001(12):11-12.
[4]李世平,戴凡,汪旭東.IEEE-1394(Fire Wire)系統(tǒng)原理與應(yīng)用技術(shù)[M].西安:西安電子科技大學(xué)出版社,2004:172-181,16-20.
[5]Don Anderson.Fire Wire(R)系統(tǒng)體系.第二版1394a[M].姜漢龍譯.北京:中國電力出版社,2001:42-46.
[6]馬金發(fā).IEEE1394的體系結(jié)構(gòu)[J].現(xiàn)代計算機,2002(1):9-12.
[7]TSB12LV32/TSB12LV32I:IEEE1394-1995 and P1394a Compliant General Purpose Link Layer Controller[R].SLLS336B,US:Texas Instruments,April,2000.
[8]TSB41AB3 IEEE 1394a-2000 THREE-PORT CABLE TRANSCEIVER/ARBITER[R].SGLS122B,US:Texas Instruments,2004.
[9]崔艷召,湯恩生,許敬旺.TMS320LF2407系統(tǒng)設(shè)計及外擴CAN總線設(shè)計[J].航天返回與遙感,2008,29(2):48-52.
[10]VirtexII Platform FPGAs:Complete Data Sheet[R].DS031_V3.4,US:Xilinx Inc.,2005.