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