周勇 索曉杰 白晨
摘? ?要:1394B是一種高帶寬、低延遲、高可靠特性高速串行總線,已經(jīng)廣泛應(yīng)用于工業(yè)控制、汽車(chē)和航空航天等領(lǐng)域。文章設(shè)計(jì)了一種基于OHCI協(xié)議的1394B總線,主機(jī)通過(guò)PCI接口與1394B控制器之間通過(guò)DMA操作,實(shí)現(xiàn)數(shù)據(jù)的高速傳輸。
關(guān)鍵詞:1394B;開(kāi)放式主機(jī)控制器接口;外圍組件互連
1? ? 1394OHCI
IEEE1394俗稱火線接口,主要用于視頻的采集,最初由Apple公司提出,由IEEE正式制定,支持100 Mbps,200 Mbps,400 Mbps通信速率,其目的是簡(jiǎn)化計(jì)算機(jī)的外部連線,并且為實(shí)時(shí)數(shù)據(jù)傳輸提供一個(gè)高速接口。1394B是對(duì)IEEE1394增強(qiáng)或者擴(kuò)展,主要是對(duì)總線效率進(jìn)行改進(jìn),輸速率將分別達(dá)到800 Mbps,1 600 Mbps和3 200 Mbps,支持即插即用熱插拔功能[1]。
1394開(kāi)放式主機(jī)控制器接口(1394Open Host Controller Interface,1394OHCI)是1394串行總線鏈路層協(xié)議的一種實(shí)現(xiàn),附帶一些支持事物層和總線管理層的特性[2]。1394OHCI包含了用于高性能數(shù)據(jù)傳輸?shù)闹苯觾?nèi)存存取(Direct Memory Access,DMA)引擎和一個(gè)主機(jī)接口。1394OHCI主機(jī)接口既可作為主設(shè)備,又可作為從設(shè)備。
2? ? 硬件設(shè)計(jì)
處理器選用TI公司的SM32C6415高性能定點(diǎn)數(shù)字信號(hào)處理(Digital Signal Processing,DSP),該芯片集成外圍組件互連(Peripheral Component Interconnect,PCI)接口,最高工作頻率為600 MHz。DSP的EMIF接口掛接FLASH和SRAM,其中FLASH用于存儲(chǔ)DSP的固化程序;SRAM用于DSP片內(nèi)SRAM的補(bǔ)充,可用于程序的運(yùn)行;當(dāng)DSP作為PCI從設(shè)備時(shí),外接SRAM可作為從設(shè)備的memory空間。1394B總線掛接在DSP的PCI接口,DSP通過(guò)PCI接口對(duì)遵循OHCI規(guī)范的1394B鏈路層設(shè)備進(jìn)行訪問(wèn),通過(guò)DMA操作發(fā)送和接收1394B數(shù)據(jù)。
本設(shè)計(jì)中PCI接口掛接4路1394B總線,傳輸速率400 Mb/s。PCI總線為33 MHz的32 bit數(shù)據(jù)傳輸。1394B接口包括復(fù)位電路、時(shí)鐘電路、電源電路、鏈路層電路、物理層電路、變壓器。1394B總線的硬件組成如圖1所示。
2.1? CCDL芯片選擇
1394B總線鏈路層協(xié)議芯片選用TI的TSB82AA2B,該芯片支持S100,S200,S400,S800等傳輸速率模式,本設(shè)計(jì)根據(jù)需求配置為S400模式使用,可以通過(guò)軟件設(shè)置其相關(guān)的寄存器來(lái)選擇1394B信號(hào)傳輸速率。該芯片帶有獨(dú)立的PCI控制器,內(nèi)部帶有多個(gè)DMA發(fā)送通道和接收通道??砂凑誔CI規(guī)范連接在主處理器的PCI接口上,通過(guò)PCI總線進(jìn)行對(duì)鏈路層的控制[3]。
1394B物理層芯片選用TSB41BA3D,是一款兼容IEEE1394a-2000和IEEE1394B-2002的、具有3個(gè)端口的物理層芯片,支持100/200/400 Mbps傳輸速率,實(shí)現(xiàn)1394的物理層功能。通過(guò)使用上下拉電阻對(duì)上電配置管腳進(jìn)行配置,本設(shè)計(jì)物理層芯片配置成1394B的S400模式。
物理層與線纜間選用1394B總線三端口變壓器TM1062TX3DUA進(jìn)行耦合和隔離,可有效保護(hù)物理層芯片。
2.2? 1394B鏈路層收發(fā)數(shù)據(jù)流
本設(shè)計(jì)中DSP SM32C6415處理器集成PCI接口,處理器和4個(gè)PCI接口的鏈路層芯片共同掛接在PCI總線上。DSP通過(guò)IDSEL對(duì)不同的設(shè)備進(jìn)行配置訪問(wèn)。PCI總線上的5個(gè)設(shè)備都需要作為PCI的Master和Slave。1394B鏈路層數(shù)據(jù)流如圖2所示。
DSP和鏈路層芯片主從關(guān)系如下:
首先,DSP作為主設(shè)備,在配置周期對(duì)4個(gè)基于PCI接口的鏈路層進(jìn)行配置,配置從設(shè)備的訪問(wèn)空間,同時(shí)配置自己作為從設(shè)備的訪問(wèn)空間。
其次,在存儲(chǔ)器讀寫(xiě)周期,通過(guò)訪問(wèn)鏈路層的OHCI寄存器控制鏈路層的操作。DSP作為從設(shè)備時(shí)需要為每個(gè)作為主設(shè)備的鏈路層芯片分配內(nèi)部訪問(wèn)空間,包括發(fā)送數(shù)據(jù)地址和接收數(shù)據(jù)地址,地址位于DSP的片內(nèi)SRAM或片外SRAM.DSP把發(fā)送的余度信息放置到DSP的發(fā)送地址。
再次,作為Master操作鏈路層的OHCI寄存器來(lái)使鏈路層作為Master發(fā)起burst讀操作,而后鏈路層作為Master通過(guò)Burst操作把DSP上的發(fā)送地址數(shù)據(jù)傳送到鏈路層的發(fā)送FIFO中,通過(guò)物理層芯片發(fā)送出去。
最后,DSP作為Master通過(guò)存儲(chǔ)器讀寫(xiě)操作訪問(wèn)鏈路層芯片OHCI寄存器使能芯片接收,鏈路層接收FIFO中值超過(guò)閾值會(huì)自動(dòng)作為Master發(fā)起burst寫(xiě)操作,把接收FIFO中的數(shù)據(jù)放置到DSP的接收數(shù)據(jù)地址中。
2.3? PCI仲裁
PCI總線是一種共享式總線,可以連接多個(gè)主設(shè)備,但由于數(shù)據(jù)傳輸?shù)莫?dú)占性,每一時(shí)刻只能由一個(gè)主設(shè)備占用總線。為了有效利用PCI總線帶寬,必須設(shè)置一個(gè)總線仲裁器,按照一定的算法協(xié)調(diào)系統(tǒng)中各個(gè)主設(shè)備的操作。DSP 6415的集成的PCI接口沒(méi)有仲裁器功能,且本設(shè)計(jì)PCI總線上的5個(gè)設(shè)備都需要作為主設(shè)備,因此,PCI仲裁器需要片外實(shí)現(xiàn)。本設(shè)計(jì)通過(guò)FPGA實(shí)現(xiàn)PCI仲裁功能。每個(gè)具備主設(shè)備功能的PCI設(shè)備的REQ#和GNT#均連接到FPGA的IO管腳上。其中,REQ#為請(qǐng)求總線信號(hào),由發(fā)起PCI傳輸事務(wù)的設(shè)備發(fā)起。GNT#為總線授權(quán)信號(hào),由PCI仲裁器裁決后給出。
目前應(yīng)用于PCI總線仲裁的算法主要有固定優(yōu)先級(jí)算法及動(dòng)態(tài)優(yōu)先級(jí)算法。在固定優(yōu)先級(jí)算法中各個(gè)設(shè)備的優(yōu)先級(jí)是確定的,仲裁器按照事先設(shè)定的優(yōu)先級(jí)為每個(gè)設(shè)備分配使用權(quán)。該算法的缺點(diǎn)是一旦PCI總線事務(wù)繁忙或高優(yōu)先級(jí)設(shè)備出錯(cuò)REQ#常低,優(yōu)先級(jí)高的設(shè)備會(huì)占有總線不放權(quán),導(dǎo)致低優(yōu)先級(jí)設(shè)備一直無(wú)法申請(qǐng)到總線而餓死,不符合本設(shè)計(jì)中高容錯(cuò)性要求。本模塊設(shè)計(jì)采用動(dòng)態(tài)優(yōu)先級(jí)算法。動(dòng)態(tài)優(yōu)先級(jí)算法是在每次仲裁授權(quán)后的設(shè)備優(yōu)先級(jí)加1,下次仲裁時(shí)優(yōu)先選擇優(yōu)先級(jí)數(shù)低的設(shè)備。保證所有的設(shè)備都有均等機(jī)會(huì)占有總線,放置一個(gè)總線故障,整個(gè)CCDL總線均不能正常運(yùn)行,導(dǎo)致故障蔓延。
3? ? 結(jié)語(yǔ)
本文從硬件設(shè)計(jì)、器件選型、收發(fā)數(shù)據(jù)流、PCI接口仲裁等方面詳細(xì)介紹了一種基于PCI接口的1394B總線的設(shè)計(jì)與實(shí)現(xiàn),本設(shè)計(jì)支持S100,S200,S400等多種傳輸速率模式,具有高帶寬高、低成本、高可靠性等特點(diǎn)。
[參考文獻(xiàn)]
[1]SOCIETY OF AUTOMOTIVE ENGINEERS.IEEE 1394B interface requirements for military and aerospace vehicle applications [EB/OL].(2020-03-13)[2020-04-10].http://std79.infoeach.com/view-Nzl8NTc0NjA3.html.
[2]PROMOTERS OF THE 1394 OPEN HCI.1394 Open host controller interface specification[EB/OL].(2000-01-06)[2020-04-10].1394Open Host Controller Interface Specification
[3]TEXAS INSTRUMENTS.TSB82AA2B 1394B OHCI-Lynx controller data manual,10/2011[EB/OL].(2011-10-20)[2020-04-10].http://www.ti.com.cn/product/cn/TSB82AA2B
Design and implementation of 1394B bus based on PCI interface
Zhou Yong, Suo Xiaojie, Bai Chen
(Xian Aeronautics Computing Technique Research Institute, AVIC, Xian 710065, China)
Abstract:1394B is a high-speed serial bus with high bandwidth, low latency and high reliability. It has been widely used in industrial control, car, aeronautics, astronautics and other fields. In this paper, a 1394B bus based on OHCI protocol is designed, which realizes the high-speed transmission of data through DMA operation between the PCI interface of the host computer and the 1394B controller.
Key words:1394B; open host controller interface; peripheral component interconnect