通過物理層高速差分信號收到總線上的讀寫請求包,進(jìn)行解碼后通過響應(yīng)方請求包接口發(fā)給響應(yīng)方請求包解析模塊;
[0037]3.2)響應(yīng)方請求包解析模塊收到讀寫請求包之后,解析出其中讀寫操作的操作類型,地址,字節(jié)使能,寫入的數(shù)據(jù),然后用這些信息構(gòu)建出擴(kuò)展局部總線上的讀寫操作;同時(shí)響應(yīng)方請求包解析模塊還要將讀寫請求包的某些信息提供給響應(yīng)方回應(yīng)包生成模塊;
[0038]3.3)擴(kuò)展局部總線對其下掛載的資源進(jìn)行讀寫請求包所要求的讀寫操作,然后將讀操作的返回?cái)?shù)據(jù)或者寫操作的完成標(biāo)志發(fā)往響應(yīng)方回應(yīng)包生成模塊;
[0039]3.4)響應(yīng)方回應(yīng)包生成模塊在收到讀操作的返回?cái)?shù)據(jù)或者寫操作的完成標(biāo)志后,根據(jù)響應(yīng)方請求包解析模塊提供的請求包信息,構(gòu)建出相應(yīng)的回應(yīng)包,然后發(fā)往Rapid1IP Core的響應(yīng)方回應(yīng)包接口 ;
[0040]3.5) Rapid1 IP Core在收到要發(fā)出的該Rapid1回應(yīng)包后,通過物理層高速差分信號將該回應(yīng)包發(fā)送到Rapid1總線上;
[0041]3.6)外部Rapid1設(shè)備通過Rapid1總線收到本控制器發(fā)回的回應(yīng)包,則完成了其對本控制器的此次讀寫請求。
[0042]上述方式4)具體是:
[0043]4.1)外部Rapid1設(shè)備通過Rapid1總線向本控制器發(fā)起門鈴/消息請求后,Rapid1 IP Core通過物理層高速差分信號收到總線上的門鈴/消息請求包,進(jìn)行解碼后通過響應(yīng)方請求包接口發(fā)給響應(yīng)方請求包解析模塊;
[0044]4.2)響應(yīng)方請求包解析模塊收到門鈴/消息請求包之后,解析出門鈴/消息的信息并發(fā)往擴(kuò)展配置空間中的門鈴/消息控制單元,同時(shí)將請求包的某些信息提供給響應(yīng)方回應(yīng)包生成模塊;
[0045]4.3)響應(yīng)方回應(yīng)包生成模塊根據(jù)響應(yīng)方請求包解析模塊提供的門鈴/消息請求包信息,構(gòu)建出相應(yīng)的回應(yīng)包,然后發(fā)往Rapid1 IP Core的響應(yīng)方回應(yīng)包接口 ;
[0046]4.4) Rapid1 IP Core在收到要發(fā)出的該Rapid1回應(yīng)包后,通過物理層高速差分信號將該回應(yīng)包發(fā)送到Rapid1總線上;
[0047]4.5)外部Rapid1設(shè)備通過Rapid1總線收到本控制器發(fā)回的回應(yīng)包,則完成了其對本控制器的此次門鈴/消息請求;
[0048]4.6)擴(kuò)展配置空間中的門鈴/消息控制單元在收到門鈴/消息請求包信息后,將其置入到相應(yīng)的寄存器和消息數(shù)據(jù)緩沖區(qū)中,然后告知中斷處理單元,中斷處理單元再向處理器發(fā)出中斷;
[0049]4.7)處理器在收到中斷后,從擴(kuò)展配置空間的門鈴/消息相關(guān)寄存器中讀取收到的門鈴/消息請求信息,然后根據(jù)這些信息進(jìn)行相應(yīng)的處理操作。
[0050]上述方式5)具體是:
[0051]如果要把大量數(shù)據(jù)從本控制器發(fā)往外部Rapid1設(shè)備,既可以通過本控制器直接向外部Rapid1設(shè)備進(jìn)行寫操作,也可以先將這些要發(fā)送的數(shù)據(jù)寫入數(shù)據(jù)交換雙口存儲器,然后由外部Rapid1設(shè)備通過Rapid1總線來從該存儲器讀取這些數(shù)據(jù);如果要把大量數(shù)據(jù)從外部Rapid1設(shè)備發(fā)往本控制器,既可以通過本控制器直接對外部Rapid1設(shè)備進(jìn)行讀操作,也可以由外部Rapid1設(shè)備通過Rapid1總線來將這些數(shù)據(jù)先寫入數(shù)據(jù)交換雙口存儲器,然后本地處理器再從該存儲器讀取這些數(shù)據(jù)。
[0052]本發(fā)明的優(yōu)點(diǎn)是:
[0053]I)本控制器的兼容性很好,它對外的接口分別為供處理器端使用的“并行局部總線”,供掛載可供遠(yuǎn)端訪問的本地資源的“擴(kuò)展局部總線”和Rapid1可編程邏輯IP Core跟物理鏈路的接口 “物理層高速差分信號”。前兩個(gè)總線具有易擴(kuò)展性,后一個(gè)Rapid1 IPCore具有可更換性,這三者決定了本控制器的兼容性的出色之處:
[0054]1.1)處理器端使用的“并行局部總線”的可擴(kuò)展性,決定了本控制器可以以“其他總線一并行局部總線一Rapid1控制器一Rapid1總線”的方式來將任意其他總線與高速Rapid1總線進(jìn)行互聯(lián)擴(kuò)展,這就提供了一種新的計(jì)算系統(tǒng)架構(gòu)方式。由于本控制器可以在任意總線上進(jìn)行擴(kuò)展,從而也就可以在任意一種處理器上進(jìn)行擴(kuò)展應(yīng)用,這就使的那些沒有集成Rapid1控制器的處理器芯片在Rapid1網(wǎng)絡(luò)中的使用成為了可能。這樣一方面可以在新一代的以Rapid1為互連通信手段來構(gòu)建的嵌入式系統(tǒng)中使用那些不支持Rapid1的處理器,另一方面還可以將采用舊式總線進(jìn)行互聯(lián)的系統(tǒng)升級更改為Rapid1架構(gòu)的新系統(tǒng);
[0055]1.2) “擴(kuò)展局部總線”的可擴(kuò)展性,使得任意類型的本地資源都可以方便地掛載在本控制器的響應(yīng)方功能模塊下。這樣,針對外部Rapid1設(shè)備的不同的資源訪問需求,都可以通過該總線很方便的進(jìn)行實(shí)現(xiàn);
[0056]1.3)針對系統(tǒng)對本控制器的不同線速(1.25/2.5/3.125/..Gbps)和不同Iane數(shù)(lx/4x/…)的需求,Rapid1 IP Core可以進(jìn)行定制和更改,然后在本控制器中進(jìn)行簡單的參數(shù)設(shè)置和網(wǎng)表更換,便可以達(dá)成要求。所以本控制器對于Rapid1總線的不同線速和Iane數(shù)均可方便兼容;
[0057]由于本控制器設(shè)計(jì)具有這些良好的兼容性,所以可適用于很多種類的應(yīng)用場合,面向未來應(yīng)用也可依據(jù)該FPGA設(shè)計(jì)來進(jìn)行研發(fā),形成固定功能的ASIC芯片;
[0058]2)本控制器使用了窗口映射機(jī)制來實(shí)現(xiàn)Rapid1讀寫請求的發(fā)起,有著優(yōu)秀的軟件兼容性,對于各種應(yīng)用開發(fā)靈活易用。該機(jī)制在進(jìn)行適當(dāng)?shù)拇翱谂渲弥?,便可以將普通的讀寫操作轉(zhuǎn)換為Rapid1總線上的讀寫請求包的發(fā)起和回應(yīng)包的解析,這樣就可以像訪問普通的內(nèi)存空間一樣去訪問外部的Rapid1設(shè)備,通過這樣的方式也方便把不同的外部Rapid1設(shè)備的不同地址空間映射到本地的各個(gè)地址空間,簡便易用,可以滿足用戶的各種應(yīng)用需求。另外很重要的一點(diǎn)是,通過窗口映射機(jī)制可以像訪問本地內(nèi)存空間一樣去訪問外部Rapid1設(shè)備,這也為DMA(直接存儲器存取)的應(yīng)用提供了方便性和可行性;
[0059]3)本控制器功能齊備,可支持讀寫,消息,門鈴等各種功能,并且最重要的是,該控制器支持維護(hù)讀寫請求包的發(fā)起,這就意味著本控制器可以發(fā)起對于其他Rapid1設(shè)備的配置空間的讀寫,從而可以作為整個(gè)系統(tǒng)的Rapid1網(wǎng)絡(luò)的管理者和維護(hù)者。所以,只需要有本控制器,就可以配置和維護(hù)整個(gè)Rapid1網(wǎng)絡(luò),這也展現(xiàn)了本控制器功能的強(qiáng)大與完備;
[0060]4)本控制器支持突發(fā)式(burst)讀寫操作,可以支持DMA傳輸,從而可以最大化地利用Rapid1的高帶寬特性。并且本控制器在內(nèi)部進(jìn)行了分包和組包的工作,所以前端“并行局部總線”上的burst讀寫操作寬度并未受到Rapid1規(guī)范中包的數(shù)據(jù)載荷長度的限制。Rapid1規(guī)范中規(guī)定一個(gè)Rapid1包的最大數(shù)據(jù)載荷為256字節(jié),而本控制器通過在“發(fā)起方請求包生成模塊”中實(shí)現(xiàn)內(nèi)部的分包和組包工作,對前端“并行局部總線”上的burst讀寫操作寬度支持范圍最大到4095字節(jié)。
【附圖說明】
[0061]圖1為本控制器發(fā)明的硬件結(jié)構(gòu)框圖;
[0062]圖2為本控制器發(fā)明的窗口映射機(jī)制的原理圖;
[0063]圖3為本控制器作為總線請求發(fā)起方時(shí)的地址空間分配圖;
[0064]圖4為本控制器作為總線請求響應(yīng)方時(shí)的地址空間分配圖;
[0065]圖5為本控制器進(jìn)行burst讀操作時(shí)的分包與組包示意圖;
[0066]圖6為本控制器進(jìn)行burst寫操作時(shí)的分包示意圖;
【具體實(shí)施方式】
[0067]本控制器是使用具有高速串行收發(fā)器的FPGA作為平臺,在常規(guī)的Rapid1可編程邏輯IP Core的基礎(chǔ)上進(jìn)行二次開發(fā)來實(shí)現(xiàn)的,控制器的前端為一個(gè)并行的局部總線,后端為Rapid1接口的高速串行接口,采用地址窗口映射的機(jī)制,實(shí)現(xiàn)了并行局部總線操作與Rapid1總線操作之間的相互轉(zhuǎn)換。
[0068]本控制器的硬件組成如附圖1所示。該控制器是在常規(guī)的Rapid1可編程邏輯IPCore上進(jìn)行二次開發(fā)所得,附圖1右側(cè)中部的正方形模塊即為Rapid1 IP Core,它實(shí)現(xiàn)了物理鏈路上的高速串行碼和Rapid1包格式的并行數(shù)據(jù)信號之間的相互轉(zhuǎn)換。Rapid1IP Core主要有六個(gè)對外接口,分別為“配置空間訪問接口”、“物理層高速差分信號”、“發(fā)起方請求包接口 ”、“發(fā)起方回應(yīng)包接口 ”、“響應(yīng)方請求包接口 ”、“響應(yīng)方回應(yīng)包接口 ”。依據(jù)Rapid1規(guī)范,每個(gè)Rapid1設(shè)備都有一個(gè)配置空間,“配置空間訪問接口 ”是對Rapid1 IPCore的配置空間進(jìn)行訪問的接口,可以讀寫Rapid1 IP Core的0x0到OxFFFF配置空間地址段?!拔锢韺痈咚俨罘中盘枴奔礊槲锢礞溌飞系母咚俅写a,經(jīng)由FPGA的高速串行收發(fā)器與外部的Rapid1總線相連,通常連接到一個(gè)Rapid1交換機(jī)。一個(gè)完整功能的Rapid1端設(shè)備既可以向總線上發(fā)起請求,也可對總線上其他Rapid1端設(shè)備的請求進(jìn)行響應(yīng)。當(dāng)本控制器作為總線請求的發(fā)起方時(shí),它是通過IP Core的“發(fā)起方請求包接口”向總線上發(fā)出操作請求包,然后監(jiān)聽“發(fā)起方回應(yīng)包接口 ”來獲取發(fā)起請求的回應(yīng)包,從而完成整個(gè)總線請求操作。當(dāng)本控制器作為總線請求的響應(yīng)方時(shí),它監(jiān)聽“響應(yīng)方請求包接口”來獲取總線上其他設(shè)備對本控制器發(fā)出的操作請求包,在完成操作請求后,再通過“響應(yīng)方回應(yīng)包接口”向該次操作請求的發(fā)起方設(shè)備發(fā)出相應(yīng)的回應(yīng)包,從而完成整個(gè)總線響應(yīng)操作。除以上所述的主要接口之外,Rapid1 IP Core還有一些用于指示當(dāng)前鏈路狀態(tài)的標(biāo)志信號。
[0069]本控制器圍繞Rapid1 IP Core進(jìn)行的二次開發(fā)也主要分為總線請求的發(fā)起方功能模塊和響應(yīng)方功能模塊兩大部分。發(fā)起方功能模塊為附圖1的左側(cè)部分,由“并行局部總線”,“地址譯碼模塊”,“擴(kuò)展配置空間”,“發(fā)起方請求包生成模塊”,“發(fā)起方回應(yīng)包解析模塊”和“發(fā)起總線請求的記錄模塊”六大部分協(xié)同組成。其中,“并行局部總線”是與外部處理器進(jìn)行交互的接口,外部處理器通過對并行局部總線的讀寫操作來控制整個(gè)Rapid1控制器。“地址譯碼模塊”根據(jù)“擴(kuò)展配置空間”內(nèi)的配置寄存器組所提供的各個(gè)地址空間(各映射窗口訪問空間,數(shù)據(jù)交換存儲器訪問空間)的片選信息來將“并行局部總線”上的讀寫操作片選譯碼到各個(gè)后級的被訪問資源?!皵U(kuò)展配置空間”是本Rapid1控制器配置空間的擴(kuò)展部分(即Rapid1規(guī)范中設(shè)備配置空間為具體應(yīng)用實(shí)現(xiàn)所保留的OxlOOOO-OxF