專利名稱:Ieee1394總線的鏈路層控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)標(biāo)準(zhǔn)串行總線一IEEE1394總線協(xié)議控制器的設(shè)計(jì),特別涉及 一種應(yīng)用于空間電子技術(shù)領(lǐng)域的IEEE1394總線的鏈路層控制器。
背景技術(shù):
在電子系統(tǒng)中,為了簡(jiǎn)化硬件電路設(shè)計(jì)、優(yōu)化系統(tǒng)結(jié)構(gòu),常用一組線路,配置以適 當(dāng)?shù)慕涌陔娐?,與各部件和外圍設(shè)備連接,這組共用的連接線路稱為總線。采用總線結(jié)構(gòu)便 于部件和設(shè)備的擴(kuò)充,尤其制定了統(tǒng)一的總線標(biāo)準(zhǔn),更容易使不同設(shè)備間實(shí)現(xiàn)互連。先進(jìn)的 總線技術(shù)對(duì)于提高電子系統(tǒng)的性能有著十分重要的影響。 在早期的航天器上,并沒有使用總線結(jié)構(gòu),計(jì)算機(jī)與各個(gè)設(shè)備,以及各設(shè)備之間的 通信都由用戶自己定義,沒有統(tǒng)一的標(biāo)準(zhǔn),各個(gè)電子設(shè)備單元之間的連接往往需要大量的 電纜,這樣造成的直接后果是布線復(fù)雜、電纜的體積大、重量重、功耗高、且通信效率低。而 且,由于沒有采用統(tǒng)一的接口標(biāo)準(zhǔn),還會(huì)帶來很多其它的困難和不便,如設(shè)備很難進(jìn)行擴(kuò) 展,每增加一個(gè)設(shè)備,所有與之相關(guān)設(shè)備的軟硬件都要進(jìn)行改動(dòng);再者,由于沒有統(tǒng)一標(biāo)準(zhǔn),
設(shè)備的測(cè)試變得很困難,無法采用統(tǒng)一的測(cè)試設(shè)備和測(cè)試方法,不便于進(jìn)行設(shè)備的測(cè)試,測(cè) 試的軟硬件成本也很高;另外也不便于系統(tǒng)的維護(hù)和升級(jí)。 隨著電子技術(shù)的發(fā)展,航天器的性能越來越高,系統(tǒng)變得越來越復(fù)雜,對(duì)數(shù)據(jù)通信 的要求也越來越高,為了便于進(jìn)行模塊化、標(biāo)準(zhǔn)化的設(shè)計(jì)和管理,在衛(wèi)星和飛船上使用標(biāo)準(zhǔn) 的總線結(jié)構(gòu)來構(gòu)建網(wǎng)絡(luò),成了星載電子系統(tǒng)的必然要求和發(fā)展趨勢(shì)。 20世紀(jì)90年代以來,MIL-STD-1553B、 CAN總線技術(shù)逐步應(yīng)用于航天器的電子系 統(tǒng),但是這些總線的速度都比較低,例如1553B的最高速率為1Mbps。隨著航天電子技術(shù)的 發(fā)展,目前使用的各種航天總線已不能滿足航天器日益提高的要求,因此,開發(fā)高速的航天 數(shù)據(jù)總線迫在眉捷。 IEEE1394總線是一種商用總線,最初由A卯le公司提出,目的是為實(shí)時(shí)數(shù)字?jǐn)?shù)據(jù) 傳輸提供一個(gè)高速接口,主要應(yīng)用于各種數(shù)字多媒體設(shè)備。IEEE1394總線作為一種成熟的 商業(yè)總線,由于其自身的多種優(yōu)點(diǎn),世界上很多國(guó)家都對(duì)IEEE1394總線的空間應(yīng)用給予了 高度關(guān)注,很多空間組織都選擇了 IEEE1394總線作為其未來衛(wèi)星平臺(tái)的高速數(shù)據(jù)總線。
IEEE1394總線協(xié)議可分為三層物理層、鏈路層以及事務(wù)層。通常情況下,物理層 和鏈路層由硬件完成,而事務(wù)層主要由軟件實(shí)現(xiàn)。因此,將IEEE1394總線應(yīng)用于航天,就必 須選擇高等級(jí)的IEEE1394總線協(xié)議控制芯片,以適應(yīng)惡劣的空間環(huán)境,但是由于受到西方 在航天高科技領(lǐng)域?qū)ξ覈?guó)的技術(shù)和產(chǎn)品封鎖,滿足航天要求的IEEE1394總線器件很難獲 得。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種具有較好可移植性的IEEE1394總線鏈路層控制器, 可以通過FPGA實(shí)現(xiàn)或用于ASIC流片。使用高等級(jí)FPGA器件實(shí)現(xiàn),或進(jìn)行具有抗輻照工藝的ASIC流片后,該控制器可用于航天電子設(shè)備,解決IEEE1394總線的宇航級(jí)器件不易獲取 問題。 為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明所提供的一種IEEE1394總線鏈路層控制器,其特征 在于,所述的鏈路層控制器包括主機(jī)接口、鏈路層核心模塊、數(shù)據(jù)緩沖與路由控制模塊、高 速數(shù)據(jù)接口和配置寄存器;外部的CPU通過所述的主機(jī)接口可以讀寫配置寄存器、對(duì)數(shù)據(jù) 緩沖區(qū)進(jìn)行存取操作;所述的數(shù)據(jù)緩沖與路由控制模塊處于主機(jī)接口、高速數(shù)據(jù)接口和鏈 路層核心模塊之間,提供不同收發(fā)數(shù)據(jù)通道間的切換控制,所述數(shù)據(jù)緩沖與路由控制模塊 中使用了兩個(gè)異步先入先出存儲(chǔ)器FIFO (First InFirst Out),分別用于收發(fā)數(shù)據(jù)的緩沖 和跨時(shí)鐘域數(shù)據(jù)的同步;所述的配置寄存器通過控制線和狀態(tài)線分別與鏈路層核心模塊、 數(shù)據(jù)緩沖與路由控制模塊、高速數(shù)據(jù)接口相連,用于提供對(duì)鏈路層控制器的初始配置和控 制,和對(duì)鏈路層控制器各模塊工作狀態(tài)的獲取; 所述的鏈路層核心模塊,用于實(shí)現(xiàn)IEEE1394總線協(xié)議中鏈路層的所有功能,包 括物理層鏈路層接口、數(shù)據(jù)緩沖處理單元、數(shù)據(jù)包收發(fā)單元、循環(huán)冗余CRC校驗(yàn)單元以及 循環(huán)控制器; 所述的物理層鏈路層接口 ,用于提供鏈路層與物理層芯片間的標(biāo)準(zhǔn)接口 ; 所述的數(shù)據(jù)緩沖處理單元,用于為數(shù)據(jù)包收發(fā)模塊和物理層鏈路層接口之間的數(shù)
據(jù)傳輸提供數(shù)據(jù)緩沖功能; 所述的數(shù)據(jù)包收發(fā)單元是鏈路層核心模塊的核心,通過雙向數(shù)據(jù)線與數(shù)據(jù)緩沖處
理單元、循環(huán)冗余校驗(yàn)單元、循環(huán)控制器以及數(shù)據(jù)緩沖與路由控制模塊相連; 所述循環(huán)冗余(CRC)校驗(yàn)單元,用于提供收發(fā)數(shù)據(jù)時(shí)的CRC校驗(yàn)功能; 所述循環(huán)控制器,包括循環(huán)定時(shí)器和循環(huán)監(jiān)視器,用于等時(shí)服務(wù),循環(huán)定時(shí)器是
一個(gè)32位的定時(shí)器,用于產(chǎn)生125us的定時(shí)信號(hào)以及同步各節(jié)點(diǎn)的時(shí)間,循環(huán)監(jiān)視器用來
監(jiān)視循環(huán)定時(shí)器,并可以產(chǎn)生循環(huán)開始包和相應(yīng)的總線申請(qǐng); 發(fā)送數(shù)據(jù)時(shí),所述數(shù)據(jù)包收發(fā)單元按照IEEE1394的協(xié)議要求對(duì)待發(fā)送的數(shù)據(jù)包 進(jìn)行組幀、CRC校驗(yàn)、根據(jù)不同的數(shù)據(jù)包類型通過物理層向總線發(fā)出總線申請(qǐng)信號(hào)、獲取總 線后,通過物理層鏈路層接口向串行總線轉(zhuǎn)發(fā)數(shù)據(jù)包;接收到非廣播異步包后發(fā)送確認(rèn)包, 如果該節(jié)點(diǎn)是循環(huán)控制器還會(huì)產(chǎn)生并發(fā)送循環(huán)開始包到總線; 接收數(shù)據(jù)時(shí),所述數(shù)據(jù)包收發(fā)單元會(huì)接收物理層轉(zhuǎn)發(fā)的,來自串行總線的數(shù)據(jù)包, 并進(jìn)行數(shù)據(jù)包的分析、地址譯碼以及CRC校驗(yàn),經(jīng)譯碼后如果串行總線上傳輸?shù)臄?shù)據(jù)包目 的節(jié)點(diǎn)是本節(jié)點(diǎn)且CRC校驗(yàn)正確,則接收該數(shù)據(jù)包,并對(duì)數(shù)據(jù)按照要求重組后發(fā)送到數(shù)據(jù) 緩沖與路由控制模塊。 所述的主機(jī)接口提供了一種通用的16位CPU接口,通過16位雙向數(shù)據(jù)總線和一 些控制線與配置寄存器、數(shù)據(jù)緩沖和路由控制模塊相連;所述主機(jī)接口的時(shí)序由外部CPU 在其提供的時(shí)鐘信號(hào)控制下完成,主機(jī)接口對(duì)配置寄存器的讀寫,以及對(duì)數(shù)據(jù)緩沖與路由 控制模塊的讀寫都與CPU提供的時(shí)鐘同步,該時(shí)鐘信號(hào)的頻率最大可達(dá)50Mhz。
另外,為了滿足大量高速數(shù)據(jù)傳輸?shù)男枰?,所述IEEE1394總線的鏈路層控制器還 包括一個(gè)專門的高速數(shù)據(jù)接口 ,該高速數(shù)據(jù)接口與數(shù)據(jù)緩沖與路由控制模塊和配置寄存器 相連,用于提供鏈路層控制器直接對(duì)外部高速存儲(chǔ)器直接進(jìn)行存取的接口 ;所述高速數(shù)據(jù) 接口對(duì)外部存儲(chǔ)器的數(shù)據(jù)寬度是16位,對(duì)內(nèi)部的數(shù)據(jù)寬度是32位,工作時(shí)鐘由鏈路層核心
6模塊內(nèi)部的時(shí)鐘控制電路根據(jù)物理層輸入的時(shí)鐘分頻產(chǎn)生。 所述的高速存儲(chǔ)器,包括高速FIFO和雙口 RAM,解決了等時(shí)傳輸時(shí),大量高速數(shù) 據(jù)傳輸?shù)钠款i問題。 所述的數(shù)據(jù)緩沖與路由控制模塊包括異步發(fā)送FIFO,通用接收FIFO以及數(shù)據(jù)路 由單元; 所述的異步發(fā)送FIFO處于主機(jī)接口和數(shù)據(jù)路由控制模塊之間,是一個(gè)發(fā)送異步 數(shù)據(jù)包的異步FIFO,用于發(fā)送異步數(shù)據(jù)包的數(shù)據(jù)緩沖和不同時(shí)鐘域數(shù)據(jù)的同步;主機(jī)接口 在主機(jī)時(shí)鐘控制下寫入待發(fā)送數(shù)據(jù)包到異步發(fā)送FIFO,數(shù)據(jù)緩沖與路由控制模塊在內(nèi)部時(shí) 鐘控制下讀出數(shù)據(jù),異步發(fā)送FIFO的深度為512,數(shù)據(jù)寬度為32位; 所述的通用接收FIFO位于主機(jī)接口和數(shù)據(jù)路由單元之間,是一個(gè)可以接收所有 類型數(shù)據(jù)包的,深度512,寬度32位的異步FIFO,其功能與異步發(fā)送FIFO相似,但數(shù)據(jù)方向 相反; 所述數(shù)據(jù)路由單元用于路由控制,輸入輸出的數(shù)據(jù)總線寬度皆為32位,其一端與 鏈路層核心模塊相連,另一端與發(fā)送接收FIFO以及高速數(shù)據(jù)接口相連;接收數(shù)據(jù)時(shí),數(shù)據(jù) 路由單元根據(jù)配置寄存器的控制位,控制數(shù)據(jù)輸出到通用接收FIFO或高速數(shù)據(jù)接口 ;發(fā)送 數(shù)據(jù)時(shí),根據(jù)相應(yīng)的控制位從發(fā)送FIFO或高速數(shù)據(jù)接口中讀取數(shù)據(jù)輸出到鏈路層核心模 塊。 所述的配置寄存器,包括若干32位的寄存器組,該寄存器組用于提供對(duì)鏈路層控 制器的控制,以及提供鏈路層控制器的工作狀態(tài)。 所述的循環(huán)定時(shí)器是一個(gè)32位的定時(shí)器,其功能和格式都兼容IEEE1394總線協(xié) 議。 所述的物理層鏈路層接口的信號(hào)的定義與時(shí)序關(guān)系符合IEEE1394總線協(xié)議,使 用的信號(hào)包括7位雙向數(shù)據(jù)線D,兩位雙向控制線Ctl,鏈路層請(qǐng)求信號(hào)Lreq,鏈路層電源 狀態(tài)信號(hào)LPS,鏈路層開啟信號(hào)Link0n,50Mhz的時(shí)鐘信號(hào)Sclk ;其中,50Mhz的時(shí)鐘Sclk是 鏈路層控制器的基礎(chǔ)工作時(shí)鐘,除主機(jī)接口和配置寄存器的讀寫外,其它所有模塊都工作 在該時(shí)鐘或以該時(shí)鐘為基礎(chǔ)衍生出的時(shí)鐘控制下。 所述的物理層鏈路層接口采用了容錯(cuò)設(shè)計(jì),用于針對(duì)控制信號(hào)Ctl可能出現(xiàn)的各 種錯(cuò)誤進(jìn)行分析和處理。這樣避免了物理層到鏈路層傳輸?shù)目刂菩盘?hào)中出現(xiàn)一位誤碼可能 造成的嚴(yán)重錯(cuò)誤。 所述的鏈路層控制器使用VerilogHDL語言描述實(shí)現(xiàn),采用時(shí)序邏輯設(shè)計(jì),各個(gè)模 塊都同步到相應(yīng)的工作時(shí)鐘。 在發(fā)送數(shù)據(jù)包時(shí),通過主機(jī)接口或高速數(shù)據(jù)接口寫入指定格式的數(shù)據(jù)包到數(shù)據(jù)緩
沖與路由控制模塊;通過數(shù)據(jù)緩沖與路由控制模塊的異步FIFO實(shí)現(xiàn)數(shù)據(jù)的緩沖、多時(shí)鐘
域數(shù)據(jù)的同步以及數(shù)據(jù)路由的控制,然后進(jìn)入鏈路層核心部分;在鏈路層核心部分,按照
IEEE1394協(xié)議中不同類型數(shù)據(jù)包的格式進(jìn)行數(shù)據(jù)的組幀,以及CRC校驗(yàn),通過物理層鏈路
層接口向串行總線發(fā)出相應(yīng)類型的總線仲裁申請(qǐng),獲取總線的控制權(quán)后,開始通過與物理
層的接口按照指定的速度(100Mpbs、200Mpbs或400Mpbs)轉(zhuǎn)發(fā)數(shù)據(jù)包到串行總線;發(fā)送數(shù)
據(jù)結(jié)束后,如果發(fā)送的是非廣播異步包,則等待目的節(jié)點(diǎn)返回的確認(rèn)包。 在接收數(shù)據(jù)包時(shí),通過物理層鏈路層接口接收在串行總線上傳輸?shù)臄?shù)據(jù)包,在鏈路層核心模塊對(duì)接收的數(shù)據(jù)包進(jìn)行地址和數(shù)據(jù)包類型的譯碼,如果該數(shù)據(jù)包的目的節(jié)點(diǎn)不
是本節(jié)點(diǎn),則放棄數(shù)據(jù)包的接收;否則開始接收數(shù)據(jù)包并進(jìn)行CRC校驗(yàn)(如校驗(yàn)錯(cuò)誤則放棄
數(shù)據(jù)包的接收),把接收的數(shù)據(jù)按照指定的格式輸出到數(shù)據(jù)緩沖與路由控制模塊,在該模塊
中完成多時(shí)鐘域數(shù)據(jù)的同步和緩沖,并根據(jù)路由控制,通過主機(jī)接口或高速數(shù)據(jù)接口輸出
數(shù)據(jù)到事務(wù)層或應(yīng)用程序;如果接收到的是非廣播異步包,在接收完數(shù)據(jù)包后,鏈路層核心
模塊會(huì)返回一個(gè)確認(rèn)包到串行總線。 本發(fā)明具有下列優(yōu)點(diǎn) 該鏈路層控制器設(shè)計(jì)中引入了容錯(cuò)設(shè)計(jì),保證了該鏈路層控制器具有較高的可靠 性。 本發(fā)明的IEEE1394總線的鏈路層控制器與IEEE1394總線協(xié)議規(guī)范完全兼容,支 持100Mbps、200Mbps和400Mbps的數(shù)據(jù)傳輸率,整個(gè)設(shè)計(jì)使用VerilogHDL語言描述實(shí)現(xiàn), 采用時(shí)序邏輯設(shè)計(jì)的思想,所有模塊的設(shè)計(jì)都同步到相應(yīng)的工作時(shí)鐘,保證了設(shè)計(jì)的高性 能。在設(shè)計(jì)中沒有使用針對(duì)某種FPGA的特殊資源,因此,該鏈路層控制器具有很好的通用 性,不依賴于某種具體型號(hào)的FPGA,也可以用于ASIC流片生產(chǎn)。 利用本發(fā)明的鏈路層控制器在宇航級(jí)的FPGA中實(shí)現(xiàn),或者利用抗輻照和高可靠 工藝的ASIC流片,可以解決IEEE1394總線應(yīng)用于我國(guó)航天任務(wù)時(shí)高等級(jí)器件不易獲取問 題。
圖1為本發(fā)明的IEEE1394鏈路層控制器的系統(tǒng)組成示意圖;
圖2為本發(fā)明的數(shù)據(jù)緩沖與路由控制模塊的組成結(jié)構(gòu)圖;
圖3為本發(fā)明的鏈路層核心模塊的組成結(jié)構(gòu)圖;
圖4鏈路層物理層接口中容錯(cuò)設(shè)計(jì)的流程圖。
具體實(shí)施例方式
下面參照附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說明。 如圖1所示,本發(fā)明共由5個(gè)基本模塊組成主機(jī)接口 、高速數(shù)據(jù)接口 、數(shù)據(jù)緩沖與 路由、鏈路層核心模塊以及配置寄存器。 主機(jī)接口部分提供了一種通用的16位CPU接口,通過該接口可以實(shí)現(xiàn)與不同CPU 的時(shí)序配合。主機(jī)接口模塊在內(nèi)部通過16位雙向數(shù)據(jù)總線以及一些控制線與配置寄存器、 數(shù)據(jù)緩沖和路由控制模塊相連。外部的CPU使用該接口可以讀寫鏈路層控制器內(nèi)部的配置 寄存器、對(duì)數(shù)據(jù)緩沖區(qū)進(jìn)行存取操作寫入待發(fā)送的數(shù)據(jù)包或讀取接收到的數(shù)據(jù)包。主機(jī) 接口的時(shí)序由外部CPU在其提供的時(shí)鐘信號(hào)控制下完成,因此主機(jī)接口對(duì)配置寄存器的讀 寫,以及對(duì)數(shù)據(jù)緩沖與路由控制模塊的讀寫都與外部CPU提供的時(shí)鐘同步,該時(shí)鐘信號(hào)的 頻率最大可達(dá)50Mhz。 高速數(shù)據(jù)接口通過32位的雙向數(shù)據(jù)總線與數(shù)據(jù)緩沖與路由控制模塊相連,提供 了一個(gè)鏈路層控制器對(duì)外部高速存儲(chǔ)器直接進(jìn)行存取的接口,該接口可以直接存取外部的 高速存儲(chǔ)器,包括高速FIFO,雙口 RAM等,解決了等時(shí)傳輸時(shí),大量高速數(shù)據(jù)的傳輸瓶頸問 題。高速數(shù)據(jù)接口對(duì)外(外部存儲(chǔ)器)的數(shù)據(jù)寬度是16位,對(duì)內(nèi)(數(shù)據(jù)緩沖與路由控制模
8塊)的數(shù)據(jù)寬度是32位,工作時(shí)鐘由鏈路層控制器內(nèi)部的時(shí)鐘控制電路根據(jù)物理層輸入的 時(shí)鐘產(chǎn)生。 如圖2所示,數(shù)據(jù)緩沖與路由控制模塊一端與主機(jī)接口和高速數(shù)據(jù)接口部分相 連,另一端與鏈路層核心部分相連,同時(shí)受到配置寄存器的控制。數(shù)據(jù)緩沖與路由控制模塊 由3部分組成異步發(fā)送FIFO,通用接收FIFO以及數(shù)據(jù)路由模塊。數(shù)據(jù)路由模塊的功能是 路由控制,輸入輸出的數(shù)據(jù)總線寬度為32位,其一端與鏈路層核心部分相連,另一端與發(fā) 送接收FIF0以及高速數(shù)據(jù)接口相連。接收數(shù)據(jù)時(shí)數(shù)據(jù)路由模塊根據(jù)配置寄存器的控制位, 控制數(shù)據(jù)輸出到通用接收FIFO或高速數(shù)據(jù)接口 ;發(fā)送數(shù)據(jù)時(shí),根據(jù)相應(yīng)的控制位從發(fā)送 FIFO或高速數(shù)據(jù)接口中讀取數(shù)據(jù)輸出到鏈路層核心部分。異步發(fā)送FIFO處于主機(jī)接口和 路由控制之間,是一個(gè)異步FIFO,提供的功能是數(shù)據(jù)緩沖以及不同時(shí)鐘域數(shù)據(jù)的同步。主機(jī) 接口在主機(jī)時(shí)鐘控制下寫入數(shù)據(jù)到FIFO,路由控制模塊在內(nèi)部時(shí)鐘控制下讀出數(shù)據(jù),F(xiàn)IFO 的深度為512,數(shù)據(jù)寬度為32位。通用接收FIFO位于主機(jī)接口和數(shù)據(jù)路由模塊之間,是一 個(gè)深度512,寬度32位的異步FIFO,提供的功能與異步發(fā)送FIFO相似,但數(shù)據(jù)方向相反。
如圖3所示,鏈路層核心模塊實(shí)現(xiàn)IEEE1394總線協(xié)議中鏈路層的所有功能,包括 物理層鏈路層接口、數(shù)據(jù)緩沖處理、數(shù)據(jù)包收發(fā)模塊、CRC校驗(yàn)?zāi)K以及循環(huán)控制器等模塊。
物理層鏈路層接口部分提供與物理層芯片的標(biāo)準(zhǔn)接口 ,該接口信號(hào)的定義與時(shí)序 關(guān)系符合IEEE1394總線協(xié)議,使用的信號(hào)有7位雙向數(shù)據(jù)線D,兩位雙向控制線Ctl,鏈 路層請(qǐng)求信號(hào)Lreq,鏈路層電源狀態(tài)信號(hào)LPS,鏈路層開啟信號(hào)Link0n,50Mhz的時(shí)鐘信號(hào) Sclk等。其中,50Mhz的時(shí)鐘Sclk是鏈路層控制器的基礎(chǔ)工作時(shí)鐘,除主機(jī)接口部分和配 置寄存器的讀寫外,其它所有模塊都使用該時(shí)鐘或以該時(shí)鐘為基礎(chǔ)衍生出的時(shí)鐘。為了提 高該發(fā)明鏈路層控制器的可靠性,在物理層鏈路層接口設(shè)計(jì)中采用了容錯(cuò)設(shè)計(jì),其主要功 能是避免物理層到鏈路層的傳輸過程中控制信號(hào)出現(xiàn)一位誤碼時(shí),可能造成的錯(cuò)誤,在設(shè) 計(jì)中針對(duì)控制信號(hào)Ctl可能出現(xiàn)的各種錯(cuò)誤進(jìn)行了分析和處理。
如圖4所示,處理流程如下
St印l :接收Ctl信號(hào),并判斷其值;
St印2 :若Ctl = OOB,則轉(zhuǎn)到St印l,否則繼續(xù); St印3 :若Ctl = OIB,則連續(xù)接收數(shù)據(jù)線D上的數(shù)據(jù),直至該狀態(tài)(Ctl = 01B)結(jié) 束,然后轉(zhuǎn)到St印l,否則繼續(xù); St印4 :判斷Ctl是否IOB,是則轉(zhuǎn)到St印7,否則繼續(xù); St印5 :判斷鏈路層控制器是否發(fā)出了總線申請(qǐng)?否轉(zhuǎn)到St印l,是則繼續(xù);
St印6 :接管總線,發(fā)送數(shù)據(jù)包,發(fā)送結(jié)束后,返回到St印l ;
St印7 :判斷數(shù)據(jù)線的值是否為FFH 否轉(zhuǎn)到St印l,是則繼續(xù);
St印8 :接收當(dāng)前的數(shù)據(jù),進(jìn)入下一個(gè)時(shí)鐘周期,繼續(xù);
St印9 :Ctl的值是否OOB,否轉(zhuǎn)到St印8,是繼續(xù); St印lO :判斷是否接收到完整的4字節(jié)數(shù)據(jù),否轉(zhuǎn)到St印8,是則返回St印l。
其中,數(shù)據(jù)緩沖處理模塊是一個(gè)異步FIFO提供數(shù)據(jù)緩沖功能。
數(shù)據(jù)包的收發(fā)模塊是鏈路層核心部分的核心,通過雙向數(shù)據(jù)線與數(shù)據(jù)緩沖處理模 塊、CRC模塊、循環(huán)控制器模塊以及數(shù)據(jù)緩沖與路由控制模塊相連。發(fā)送數(shù)據(jù)時(shí)該模塊主要 提供功能是按照IEEE1394的協(xié)議要求對(duì)待發(fā)送的數(shù)據(jù)包進(jìn)行組幀、CRC校驗(yàn)、根據(jù)不同的數(shù)據(jù)包類型通過物理層向總線發(fā)出總線仲裁信號(hào)、接收到非廣播異步包后發(fā)送確認(rèn)包,如 果該節(jié)點(diǎn)是循環(huán)控制器還會(huì)產(chǎn)生并發(fā)送循環(huán)開始包到總線。接收數(shù)據(jù)時(shí),數(shù)據(jù)包收發(fā)模塊 會(huì)接收物理層轉(zhuǎn)發(fā)的來自串行總線的數(shù)據(jù)包,并進(jìn)行數(shù)據(jù)包的分析、地址譯碼以及CRC校 驗(yàn)。經(jīng)譯碼后如果串行總線上傳輸?shù)臄?shù)據(jù)包目的節(jié)點(diǎn)是本節(jié)點(diǎn)且CRC校驗(yàn)正確,則接收該 數(shù)據(jù)包,并對(duì)數(shù)據(jù)按照要求重組后發(fā)送到數(shù)據(jù)緩沖與路由控制模塊。 CRC模塊提供收發(fā)數(shù)據(jù)時(shí)的循環(huán)冗余校驗(yàn)功能,發(fā)送數(shù)據(jù)包時(shí),根據(jù)需要分別對(duì) 數(shù)據(jù)包頭和數(shù)據(jù)負(fù)載部分進(jìn)行CRC校驗(yàn),產(chǎn)生校驗(yàn)碼;接收數(shù)據(jù)包時(shí),對(duì)接收的數(shù)據(jù)進(jìn)行校 驗(yàn),并判斷校驗(yàn)結(jié)果是否正確。 循環(huán)控制器由循環(huán)定時(shí)器和循環(huán)監(jiān)視器組成,循環(huán)定時(shí)器是一個(gè)32位的定時(shí)器, 其功能和格式都兼容IEEE1394總線協(xié)議。如果鏈路層控制器所處的節(jié)點(diǎn)是根節(jié)點(diǎn),循環(huán)監(jiān) 視器會(huì)每125us發(fā)出一個(gè)發(fā)送循環(huán)開始包的申請(qǐng),并向數(shù)據(jù)收發(fā)模塊提供循環(huán)開始包所需 的數(shù)據(jù)。 配置寄存器部分提供了若干個(gè)32位的寄存器組,該寄存器組的作用是提供對(duì)鏈 路層控制器的控制,同時(shí)提供鏈路層控制器的一些工作狀態(tài)。配置寄存器一端與主機(jī)接口 相連,通過主機(jī)接口可以讀寫的配置寄存器的控制位和狀態(tài)位。另外配置寄存器還和鏈路 層控制器中的其它部分相連,用來實(shí)施控制和獲取狀態(tài)。例如可以通過配置寄存器來選擇 發(fā)送的數(shù)據(jù)來自主機(jī)接口還是高速數(shù)據(jù)接口 ,返回確認(rèn)包的類型等;也可以通過配置寄存 器來獲取數(shù)據(jù)包發(fā)送的狀態(tài),F(xiàn)IFO中的數(shù)據(jù)量等。
權(quán)利要求
一種IEEE1394總線的鏈路層控制器,其特征在于,所述的鏈路層控制器包括主機(jī)接口、鏈路層核心模塊、數(shù)據(jù)緩沖與路由控制模塊、高速數(shù)據(jù)接口模塊和配置寄存器;外部CPU通過所述的主機(jī)接口可以讀寫配置寄存器、存取數(shù)據(jù)緩沖與路由控制模塊中的數(shù)據(jù)緩沖區(qū);所述的數(shù)據(jù)緩沖與路由控制模塊處于鏈路層核心模塊和主機(jī)接口及高速數(shù)據(jù)接口之間,用于提供不同收發(fā)數(shù)據(jù)通道間的切換控制,其中,所述的數(shù)據(jù)緩沖與路由控制模塊還使用了兩個(gè)異步先入先出存儲(chǔ)器,分別用于收發(fā)數(shù)據(jù)的緩沖和跨時(shí)鐘域數(shù)據(jù)的同步;所述的配置寄存器用于提供對(duì)鏈路層核心模塊、數(shù)據(jù)緩沖與路由控制模塊的初始配置和控制,通過所述的主機(jī)接口讀寫配置寄存器來實(shí)施控制和獲取鏈路層控制器各模塊的工作狀態(tài);所述的鏈路層核心模塊,用于實(shí)現(xiàn)IEEE1394總線協(xié)議中鏈路層的所有功能,包括物理層鏈路層接口、數(shù)據(jù)緩沖處理單元、數(shù)據(jù)包收發(fā)單元、循環(huán)冗余校驗(yàn)單元以及循環(huán)控制器;所述的物理層鏈路層接口,用于提供IEEE1394總線協(xié)議規(guī)定的鏈路層與物理層間的標(biāo)準(zhǔn)接口;所述的數(shù)據(jù)緩沖處理單元,使用一個(gè)異步先入先出存儲(chǔ)器為收發(fā)數(shù)據(jù)包提供數(shù)據(jù)緩沖功能;所述的數(shù)據(jù)包收發(fā)單元是鏈路層核心模塊的核心,通過雙向數(shù)據(jù)線與數(shù)據(jù)緩沖處理單元、循環(huán)冗余校驗(yàn)單元、循環(huán)控制器以及數(shù)據(jù)緩沖與路由控制模塊相連;所述循環(huán)冗余校驗(yàn)單元,用于提供收發(fā)數(shù)據(jù)時(shí)的循環(huán)冗余校驗(yàn)功能;所述循環(huán)控制器,包括循環(huán)定時(shí)器和循環(huán)監(jiān)視器,用于等時(shí)服務(wù);在發(fā)送數(shù)據(jù)包時(shí),通過主機(jī)接口寫入指定格式的數(shù)據(jù)包到數(shù)據(jù)緩沖與路由控制模塊;再通過數(shù)據(jù)緩沖與路由控制模塊的異步先入先出存儲(chǔ)器實(shí)現(xiàn)數(shù)據(jù)的緩沖、多時(shí)鐘域數(shù)據(jù)的同步以及數(shù)據(jù)路由的控制;然后,進(jìn)入鏈路層核心模塊,按照IEEE1394總線協(xié)議中不同類型數(shù)據(jù)包的格式進(jìn)行數(shù)據(jù)的組幀和循環(huán)冗余校驗(yàn);最后通過物理層鏈路層接口向物理層發(fā)出相應(yīng)類型的總線申請(qǐng);該鏈路層芯片所在節(jié)點(diǎn)獲取總線控制權(quán)后,開始通過物理層鏈路層接口按照指定的速度轉(zhuǎn)發(fā)數(shù)據(jù)包到串行總線;數(shù)據(jù)包發(fā)送完成后,如果發(fā)送的是非廣播異步包,則等待目的節(jié)點(diǎn)返回確認(rèn)包,如果該鏈路層控制芯片所在節(jié)點(diǎn)是循環(huán)控制器,還會(huì)產(chǎn)生并發(fā)送循環(huán)開始包到總線;在接收數(shù)據(jù)包時(shí),通過物理層鏈路層接口接收物理層轉(zhuǎn)發(fā)的,在串行總線上傳輸?shù)臄?shù)據(jù)包,在鏈路層核心模塊,所述數(shù)據(jù)包收發(fā)單元對(duì)接收的數(shù)據(jù)包進(jìn)行地址和數(shù)據(jù)包類型的譯碼,如果該數(shù)據(jù)包的目的節(jié)點(diǎn)不是本節(jié)點(diǎn),則放棄數(shù)據(jù)包的接收;否則,開始接收數(shù)據(jù)包并進(jìn)行CRC校驗(yàn),如校驗(yàn)錯(cuò)誤則放棄數(shù)據(jù)包的接收,如正確則把接收的數(shù)據(jù)按照指定的格式輸出到數(shù)據(jù)緩沖與路由控制模塊,在該模塊中完成多時(shí)鐘域數(shù)據(jù)的同步和緩沖,并根據(jù)路由控制,通過主機(jī)接口輸出數(shù)據(jù)到事務(wù)層或應(yīng)用程序;如果接收到的是非廣播異步包,完成數(shù)據(jù)包接收后,鏈路層核心模塊返回一個(gè)確認(rèn)包到串行總線。
2. 根據(jù)權(quán)利要求1所述的IEEE1394總線的鏈路層控制器,其特征在于,所述的主機(jī)接 口提供了一種通用的16位CPU接口,通過16位雙向數(shù)據(jù)總線和若干地址線和控制線與配 置寄存器、數(shù)據(jù)緩沖和路由控制模塊相連,實(shí)現(xiàn)與事務(wù)層的接口 ,完成數(shù)據(jù)收發(fā)處理;所述的主機(jī)接口的時(shí)序由外部的CPU在其提供的時(shí)鐘信號(hào)控制下完成,主機(jī)接口對(duì)配 置寄存器的讀寫,以及對(duì)數(shù)據(jù)緩沖與路由控制模塊的讀寫都與CPU提供的時(shí)鐘同步,該時(shí)鐘信號(hào)的頻率最大可達(dá)50Mhz。
3. 根據(jù)權(quán)利要求1所述的IEEE1394總線的鏈路層控制器,其特征在于,所述的高速數(shù) 據(jù)接口和主機(jī)接口并列,用于提供鏈路層控制器直接對(duì)外部高速存儲(chǔ)器直接進(jìn)行存取的接 口 ,該高速數(shù)據(jù)接口與數(shù)據(jù)緩沖與路由控制模塊和配置寄存器相連;所述高速數(shù)據(jù)接口對(duì)外部存儲(chǔ)器的數(shù)據(jù)寬度是16位,對(duì)內(nèi)部的數(shù)據(jù)緩沖與路由控制 模塊的數(shù)據(jù)寬度是32位,工作時(shí)鐘由物理層輸入的時(shí)鐘分頻產(chǎn)生。
4. 根據(jù)權(quán)利要求3所述的IEEE1394總線的鏈路層控制器,其特征在于,所述的高速存 儲(chǔ)器包括高速先入先出存儲(chǔ)器和雙口隨機(jī)存儲(chǔ)器。
5. 根據(jù)權(quán)利要求1所述的IEEE1394總線的鏈路層控制器,其特征在于,所述的數(shù)據(jù)緩 沖與路由控制模塊包括異步發(fā)送先入先出存儲(chǔ)器,通用接收先入先出存儲(chǔ)器以及數(shù)據(jù)路 由單元;所述的異步發(fā)送先入先出存儲(chǔ)器處于主機(jī)接口和數(shù)據(jù)路由單元之間,是一個(gè)發(fā)送異步 數(shù)據(jù)包的異步先入先出存儲(chǔ)器,用于發(fā)送異步數(shù)據(jù)包的數(shù)據(jù)緩沖以及不同時(shí)鐘域數(shù)據(jù)的同 步;主機(jī)接口在主機(jī)時(shí)鐘控制下寫入待發(fā)送數(shù)據(jù)包到異步發(fā)送先入先出存儲(chǔ)器,數(shù)據(jù)緩沖 與路由控制模塊在內(nèi)部時(shí)鐘控制下讀出數(shù)據(jù),異步發(fā)送先入先出存儲(chǔ)器的深度為512,數(shù)據(jù) 寬度為32 ;所述的通用接收先入先出存儲(chǔ)器位于主機(jī)接口和數(shù)據(jù)路由單元之間,是一個(gè)可以接收 所有類型數(shù)據(jù)包的,深度512,寬度32位的異步先入先出存儲(chǔ)器,其功能與異步發(fā)送先入先 出存儲(chǔ)器相似,但數(shù)據(jù)方向相反;所述數(shù)據(jù)路由單元用于路由控制,輸入輸出的數(shù)據(jù)總線寬度皆為32位,其一端與鏈路 層核心模塊相連,另一端與發(fā)送接收先入先出存儲(chǔ)器以及高速數(shù)據(jù)接口相連;接收數(shù)據(jù)時(shí), 數(shù)據(jù)路由單元根據(jù)配置寄存器的控制位,控制數(shù)據(jù)輸出到通用接收先入先出存儲(chǔ)器或高速 數(shù)據(jù)接口 ;發(fā)送數(shù)據(jù)時(shí),根據(jù)相應(yīng)的控制位從發(fā)送先入先出存儲(chǔ)器或高速數(shù)據(jù)接口中讀取 數(shù)據(jù)輸出到鏈路層核心模塊。
6. 根據(jù)權(quán)利要求1所述的IEEE1394總線的鏈路層控制器,其特征在于,所述的配置 寄存器,包括若干32位的寄存器組,該寄存器組用于提供對(duì)鏈路層控制器中各個(gè)模塊的控 制,以及提供鏈路層控制器的工作狀態(tài)。
7. 根據(jù)權(quán)利要求1所述的IEEE1394總線的鏈路層控制器,其特征在于,所述的循環(huán)定 時(shí)器是一個(gè)32位的定時(shí)器,用于產(chǎn)生125us的定時(shí)信號(hào)以及同步各節(jié)點(diǎn)的時(shí)間;所述的循環(huán)監(jiān)視器用來監(jiān)視循環(huán)定時(shí)器,并可以產(chǎn)生循環(huán)開始包和相應(yīng)的總線申請(qǐng)。
8. 根據(jù)權(quán)利要求1所述的IEEE1394總線的鏈路層控制器,其特征在于,所述的物理層 鏈路層接口的信號(hào)定義與時(shí)序關(guān)系符合IEEE1394總線協(xié)議,使用的信號(hào)包括7位雙向數(shù) 據(jù)線D,兩位雙向控制線Ctl,鏈路層請(qǐng)求信號(hào)Lreq,鏈路層電源狀態(tài)信號(hào)LPS,鏈路層開啟 信號(hào)Link0n,50Mhz的時(shí)鐘信號(hào)Sclk ;其中,50Mhz時(shí)鐘Sclk是鏈路層控制器的基礎(chǔ)工作時(shí)鐘,除主機(jī)接口和配置寄存器的 讀寫外,其它所有模塊都工作在該時(shí)鐘或以該時(shí)鐘為基礎(chǔ)衍生出的時(shí)鐘控制下。
9. 根據(jù)權(quán)利要求1所述的IEEE1394總線的鏈路層控制器,其特征在于,所述的物理 層鏈路層接口采用了容錯(cuò)設(shè)計(jì),用于針對(duì)控制信號(hào)Ctl可能出現(xiàn)的各種錯(cuò)誤進(jìn)行分析和處 理。
10.根據(jù)權(quán)利要求1所述的IEEE1394總線的鏈路層控制器,其特征在于,所述的鏈路層 控制器使用VerilogHDL語言描述實(shí)現(xiàn),采用時(shí)序邏輯設(shè)計(jì),各個(gè)模塊都同步到相應(yīng)的工作 時(shí)鐘。
全文摘要
本發(fā)明涉及一種IEEE1394總線的鏈路層控制器,包括主機(jī)接口、鏈路層核心模塊、數(shù)據(jù)緩沖與路由控制模塊、高速數(shù)據(jù)接口模塊和配置寄存器;外部CPU通過所述的主機(jī)接口可以讀寫配置寄存器、存取數(shù)據(jù)緩沖與路由控制模塊中的數(shù)據(jù)緩沖區(qū);所述的數(shù)據(jù)緩沖與路由控制模塊處于鏈路層核心模塊和主機(jī)接口及高速數(shù)據(jù)接口之間,用于提供不同收發(fā)數(shù)據(jù)通道間的切換控制;所述的數(shù)據(jù)緩沖與路由控制模塊還使用了兩個(gè)異步先入先出存儲(chǔ)器,分別用于收發(fā)數(shù)據(jù)的緩沖和跨時(shí)鐘域數(shù)據(jù)的同步;所述的配置寄存器用于提供對(duì)鏈路層核心模塊、數(shù)據(jù)緩沖與路由控制模塊的初始配置和控制,通過所述的主機(jī)接口讀寫配置寄存器來實(shí)施控制和獲取鏈路層控制器各模塊的工作狀態(tài),有很好的可移植性。
文檔編號(hào)H04L12/40GK101764795SQ20081024081
公開日2010年6月30日 申請(qǐng)日期2008年12月23日 優(yōu)先權(quán)日2008年12月23日
發(fā)明者凡啟飛, 周慶瑞, 孫輝先, 曹松, 陳曉敏 申請(qǐng)人:中國(guó)科學(xué)院空間科學(xué)與應(yīng)用研究中心