專利名稱:一種ram使用權(quán)的控制方法及總線接口的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及工業(yè)控制和通信領(lǐng)域,尤其涉及一種RAM使用權(quán)的控制方法 及總線接口。
背景技術(shù):
總線接口為一方面連接一個或多個微處理器(CPU),另一方面連接總線 的交接點(diǎn)。
目前,CPU與數(shù)據(jù)總線之間的通信一般使用CPU中的通用異步收發(fā)器 (UART)做總線接口 。大部分的CPU都帶有一個或兩個UART, UART作 為CPU的I/O接口中重要的組成部分,主要用于進(jìn)行串行數(shù)據(jù)流和并行數(shù)據(jù) 流之間的轉(zhuǎn)換,即將接收到的總線上的串行數(shù)據(jù),轉(zhuǎn)換為并行數(shù)據(jù)提供給 CPU中的總線,將CPU中總線的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)并傳輸?shù)娇偩€上。
用RAM時,首先向CPU進(jìn)行申請,由CPU確定總線是否獲得RAM的使用 權(quán),且總線與RAM之間數(shù)據(jù)交互也需通過CPU完成。但是,采用CPU固化 程序作為總線接口的技術(shù)存在著以下不足之處
CPU是按照基于硬件資源的指令序列對數(shù)據(jù)進(jìn)行運(yùn)算和處理,總線進(jìn)行 RAM使用權(quán)的申請或者總線與RAM間進(jìn)行數(shù)據(jù)交互時,CPU通過響應(yīng)中斷 的方式進(jìn)行處理,完成總線接口任務(wù),由于CPU處理中斷時間的不確定性, 難以實(shí)現(xiàn)通信時序的嚴(yán)格控制且無法滿足通信速度的要求。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明要解決的技術(shù)問題是,提供一種RAM使用權(quán)的控制方 法及總線接口,以有效控制通信時序,并提高通信速度、效率和實(shí)時性能。
為此,本發(fā)明實(shí)施例采用如下技術(shù)方案
5本發(fā)明提供一種總線接口,包括總線數(shù)據(jù)處理模塊、CPU接口模塊、 仲裁模塊、以及RAM接口模塊;其中,
總線數(shù)據(jù)處理模塊,用于從總線接收數(shù)據(jù),并根據(jù)接收到的數(shù)據(jù)確定進(jìn) 行RAM的使用時,向仲裁模塊發(fā)送RAM使用權(quán)申請;還用于當(dāng)仲裁模塊確 定總線數(shù)據(jù)處理模塊獲得RAM使用權(quán)時,通過RAM接口模塊與RAM進(jìn)行 數(shù)據(jù)存??;還用于將從RAM中讀取到的數(shù)據(jù)輸出到總線上;
CPU接口模塊,用于連接CPU,當(dāng)確定CPU進(jìn)行RAM使用時,向仲裁 模塊發(fā)送RAM使用權(quán)申請;還用于仲裁模塊確定CPU獲得RAM使用權(quán)后, 通過RAM接口模塊實(shí)現(xiàn)CPU與RAM之間的數(shù)據(jù)存?。?br>
仲裁模塊,用于接收到總線數(shù)據(jù)處理模塊和/或CPU接口模塊發(fā)來的RAM 使用權(quán)申請,根據(jù)預(yù)定規(guī)則確定RAM使用權(quán)的歸屬;
RAM接口模塊,用于根據(jù)仲裁模塊的確定結(jié)果,實(shí)現(xiàn)RAM與總線數(shù)據(jù) 處理模塊、或CPU接口模塊之間的數(shù)據(jù)存取。
其中,總線數(shù)據(jù)處理模塊還用于確定進(jìn)行總線數(shù)據(jù)的接收或輸出時所需 使用的波特率。
總線數(shù)據(jù)處理模塊包括接收模塊,用于按照波特率控制模塊提供的時 鐘信號,接收數(shù)據(jù)總線上的串行數(shù)據(jù),將所述串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù);
協(xié)議處理模塊,用于根據(jù)接收模塊轉(zhuǎn)換得到的并行數(shù)據(jù)確定進(jìn)行RAM數(shù) 據(jù)的存取時,向仲裁模塊發(fā)送RAM使用權(quán)申請;還用于仲裁模塊確定協(xié)議處 理才莫塊獲得RAM使用權(quán)后,通過RAM接口才莫塊與RAM進(jìn)行數(shù)據(jù)存耳又;
波特率控制模塊,用于根據(jù)接收模塊轉(zhuǎn)換得到的并行數(shù)據(jù),確定接收模 塊和發(fā)送模塊所需使用的波特率,并產(chǎn)生相應(yīng)的時鐘信號提供給接收模塊和 發(fā)送模塊;
發(fā)送模塊,用于將協(xié)議處理模塊從RAM中讀取的數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù), 根據(jù)波特率控制模塊提供的時鐘信號,將所述串行數(shù)據(jù)逐位輸出到總線上。
波特率控制模塊包括波特率自適應(yīng)模塊,用于根據(jù)接收模塊轉(zhuǎn)換得到 的并行數(shù)據(jù),確定接收模塊和發(fā)送模塊所需使用的波特率,并控制波特率發(fā) 生模塊產(chǎn)生相應(yīng)的時鐘信號;波特率發(fā)生模塊,用于在波特率自適應(yīng)模塊的控制下產(chǎn)生相應(yīng)的時鐘信 號,并將所述時鐘信號提供給接收模塊和發(fā)送模塊。
協(xié)議處理模塊還用于確定所述并行數(shù)據(jù)的報文類型,并行數(shù)據(jù)的報文類
型為SD2或SD3或SD5時,確定進(jìn)行RAM數(shù)據(jù)的存??;所述并行數(shù)據(jù)的報 文類型為SD1或SD4時,控制設(shè)備信息管理模塊進(jìn)行相應(yīng)設(shè)備信息的修改; 相應(yīng)的,
總線數(shù)據(jù)處理模塊進(jìn)一步包括設(shè)備信息管理模塊,用于存儲總線上各個 設(shè)備的信息,并在協(xié)議處理模塊控制下進(jìn)行相應(yīng)設(shè)備信息的修改;
其中,SD1表示尋找新上線的設(shè)備;SD2表示非周期性數(shù)據(jù);SD3表示 實(shí)時數(shù)據(jù);SD4表示令牌數(shù)據(jù);SD5表示管理任務(wù)。
所述預(yù)定規(guī)則為RAM為空閑狀態(tài),且同時檢測到總線的RAM使用權(quán) 申請和CPU的RAM使用權(quán)申請時,確定總線為RAM的使用者;RAM為空 閑狀態(tài),且只檢測到總線的RAM使用權(quán)申請或CPU的RAM使用權(quán)申請, 相應(yīng)確定總線或CPU為RAM的使用者;RAM為非空閑狀態(tài)時,相應(yīng)確定進(jìn) 行申請的總線或CPU等待,直至RAM的當(dāng)前使用者完成RAM中數(shù)據(jù)的存 取,RAM轉(zhuǎn)入空閑狀態(tài),以空閑狀態(tài)的使用權(quán)確定方法進(jìn)行RAM使用者的 確定。
本發(fā)明還提供一種RAM使用權(quán)的控制方法,包括 檢測到總線的RAM使用權(quán)申請和/或CPU的RAM使用權(quán)申請,根據(jù)預(yù) 定規(guī)則確定RAM的Y吏用者,所述使用者進(jìn)行RAM中凄t據(jù)的存取。 其中,所述根據(jù)預(yù)定規(guī)則確定RAM的使用者具體為 判斷RAM當(dāng)前狀態(tài)以及檢測到的使用權(quán)申請;
RAM為空閑狀態(tài)時,同時檢測到總線的RAM使用權(quán)申請和CPU的RAM 使用權(quán)申請,確定總線為RAM的使用者;只檢測到總線的RAM使用權(quán)申請 或CPU的RAM使用權(quán)申請,相應(yīng)確定總線或CPU為RAM的使用者;
RAM為非空閑狀態(tài)時,相應(yīng)確定進(jìn)行申請的總線或CPU等待,直至RAM 的當(dāng)前使用者完成RAM中數(shù)據(jù)的存取,RAM轉(zhuǎn)入空閑狀態(tài),以空閑狀態(tài)的 使用 一又確定方法進(jìn)行RAM使用者的確定。
檢測到總線的RAM使用權(quán)申請之前,該方法進(jìn)一 步包括以一定的波特率,接收總線上的串行數(shù)據(jù),轉(zhuǎn)換為并行數(shù)據(jù)后,根據(jù)并
行數(shù)據(jù)確定是否進(jìn)行總線的RAM使用權(quán)申請。
所述根據(jù)并行數(shù)據(jù)及其對應(yīng)的協(xié)議確定是否進(jìn)行總線的RAM使用權(quán)申 請具體為
判斷并行數(shù)據(jù)的報文類型,當(dāng)報文類型為SD1或SD4時,確定進(jìn)行相應(yīng) 設(shè)備信息的修改;當(dāng)報文類型為SD2或SD3或SD5時,確定進(jìn)行總線RAM 使用權(quán)的申請;
其中,SD1表示尋找新上線的設(shè)備;SD2表示非周期性數(shù)據(jù);SD3表示 實(shí)時數(shù)據(jù);SD4表示令牌數(shù)據(jù);SD5表示管理任務(wù)。
對于上述技術(shù)方案的技術(shù)效果分析如下
在本發(fā)明總線接口中,由總線接口進(jìn)行總線數(shù)據(jù)的傳輸,且總線需要使 用RAM時,直接向總線接口申請,相對于現(xiàn)有技術(shù),無需由CPU進(jìn)行總線 數(shù)據(jù)的串并轉(zhuǎn)換,總線使用RAM時也無需向CPU進(jìn)行請求、由CPU通過響 應(yīng)中斷的方式進(jìn)行處理,從而有效控制通信時序,提高總線使用RAM的速度, 進(jìn)而提高了通信速度、效率和實(shí)時性能;將CPU的總線通信負(fù)荷轉(zhuǎn)移到總線 接口中,優(yōu)化系統(tǒng)整體性能。而且,CPU訪問存儲器也向仲裁模塊進(jìn)行申請, 獲得RAM使用權(quán)后,直接通過CPU接口模塊和RAM接口模塊實(shí)現(xiàn)CPU透 明訪問RAM,從而完成通信以外的其他任務(wù)。
而且,本發(fā)明通過波特率控制模塊產(chǎn)生多種波特率,從而實(shí)現(xiàn)多種波特 率下的通信,滿足不同情況下通信的需要。
圖1為一本發(fā)明實(shí)施例總線接口結(jié)構(gòu)示意圖la為本發(fā)明實(shí)施例一種總線數(shù)據(jù)處理模塊結(jié)構(gòu)示意圖lb為另一本發(fā)明實(shí)施例總線接口結(jié)構(gòu)示意圖lc為本發(fā)明總線接口應(yīng)用場景示例圖2為本發(fā)明接收模塊中的總線信號采樣方法流程示例圖;
圖3為本發(fā)明發(fā)送模塊中數(shù)據(jù)發(fā)送方法流程示例圖;圖4為本發(fā)明RAM使用權(quán)的控制方法流程示意圖。
具體實(shí)施例方式
以下,通過具體實(shí)施例結(jié)合附圖詳細(xì)說明本發(fā)明RAM使用權(quán)的控制方法 及總線接口的實(shí)現(xiàn)。
圖1為本發(fā)明總線接口的結(jié)構(gòu)示意圖,如圖1所示,該總線接口包括 總線數(shù)據(jù)處理模塊110、 CPU接口模塊120、仲裁模塊130、以及RAM接口 模塊140;其中,
總線數(shù)據(jù)處理模塊IIO,用于從總線接收數(shù)據(jù),并根據(jù)接收到的數(shù)據(jù)確定 進(jìn)行RAM使用時,向仲裁模塊130發(fā)送RAM使用權(quán)申請;還用于當(dāng)仲裁模 塊130確定總線數(shù)據(jù)處理模塊IIO獲得RAM使用權(quán)時,通過RAM接口模塊 140與RAM進(jìn)行數(shù)據(jù)存??;還用于將從RAM中讀取到的數(shù)據(jù)輸出到總線上。
一般的,總線數(shù)據(jù)處理模塊110需在一定的波特率下進(jìn)行總線數(shù)據(jù)的接 收或輸出;且需要將從總線上接收到的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù);將并行數(shù) 據(jù)轉(zhuǎn)換為串行數(shù)據(jù)再輸出到總線。
CPU接口模塊120,用于連接CPU,當(dāng)確定CPU進(jìn)行RAM使用時,向 仲裁模塊130發(fā)送RAM使用權(quán)申請;還用于仲裁模塊130確定CPU獲得RAM 使用權(quán)后,通過自身及RAM接口模塊140實(shí)現(xiàn)CPU與RAM之間的數(shù)據(jù)存 取。
仲裁模塊130,用于接收到總線數(shù)據(jù)處理模塊110、 CPU接口模塊120發(fā) 來的RAM使用權(quán)申請,根據(jù)預(yù)定規(guī)則確定RAM使用權(quán)的歸屬。
其中,所述規(guī)則一般為總線優(yōu)先,先到先得、后到等待。即先進(jìn)行 RAM使用權(quán)申請的獲得RAM的使用權(quán);當(dāng)總線和CPU同時進(jìn)行RAM使用 權(quán)申請時,仲裁模塊130確定總線獲得RAM的使用權(quán);當(dāng)目前RAM由使用 者進(jìn)行數(shù)據(jù)存取時,進(jìn)行RAM使用權(quán)申請者等待,直到RAM空閑。具體的, 可以為
RAM為空閑狀態(tài),且檢測到總線的RAM使用權(quán)申請和CPU的RAM使 用權(quán)申請時,確定總線為RAM的4吏用者;RAM為空閑狀態(tài),且只才全測到總線的RAM使用權(quán)申請或CPU的RAM使用權(quán)申請,相應(yīng)確定總線或CPU為 RAM的使用者;RAM為非空閑狀態(tài)時,相應(yīng)確定進(jìn)行申請的總線或CPU等 待,直至RAM的當(dāng)前使用者完成RAM中數(shù)據(jù)的存取,RAM轉(zhuǎn)入空閑狀態(tài), 以空閑狀態(tài)的使用權(quán)確定方法進(jìn)行RAM使用者的確定。
RAM接口模塊140,用于根據(jù)仲裁模塊130的確定結(jié)果,實(shí)現(xiàn)RAM與 總線數(shù)據(jù)處理模塊110、或RAM與CPU接口模塊120之間的數(shù)據(jù)存取。
RAM接口模塊140可以通過地址線、數(shù)據(jù)線和讀寫使能線與存儲器進(jìn)行 數(shù)據(jù)讀寫。而且,當(dāng)RAM接口模塊140與存儲器進(jìn)行數(shù)據(jù)交互時,時序上必 須滿足存儲器讀寫周期參數(shù)的要求。存儲器的片選線一直有效,數(shù)據(jù)存取時, 按照地址線、數(shù)據(jù)線、讀寫使能線的順序接通。
對于總線數(shù)據(jù)處理模塊110,如圖la所示,進(jìn)一步可以劃分為接收模 塊IIOI、協(xié)議處理模塊1102、波特率控制模塊1103、發(fā)送模塊1104、以及設(shè) 備信息管理模塊1105;其中,
接收模塊1101,用于按照波特率發(fā)生模塊1103提供的時鐘信號,接收數(shù) 據(jù)總線上的串行數(shù)據(jù),并將所述串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),發(fā)送給協(xié)議處理 模塊1102和波特率控制模塊1103。
其中,當(dāng)為異步方式時,接收模塊1101 —般以8或16倍頻對總線上的 數(shù)據(jù)進(jìn)行采樣和串并轉(zhuǎn)換;為同步方式時,直接在時鐘邊沿采樣,校驗(yàn)無誤 后,將接收到的完整字節(jié)發(fā)送給協(xié)議處理模塊1102。
其中,接收模塊1101可以以字節(jié)(8bit)為單位進(jìn)行并行數(shù)據(jù)的發(fā)送。 例如,總線上定義的數(shù)據(jù)包的幀格式為起始定界符SD(服務(wù)類型)l字節(jié), 目的地址1字節(jié),數(shù)據(jù)長度1字節(jié),數(shù)據(jù)n字節(jié)…校驗(yàn)碼1字節(jié),接收模塊 1101根據(jù)上述順序輸出所述字節(jié)。
如圖2所示,給出了 一種接收;^莫塊1101以發(fā)送波特率8倍頻對總線上的 信號采樣的方法。如圖2所示接收模塊1101復(fù)位后進(jìn)入空閑狀態(tài),以發(fā)送 波特率的8倍頻對總線上的信號進(jìn)行采樣,當(dāng)檢測到總線信號為低電平時(總 線空載時為高電平),進(jìn)入開始狀態(tài),直到連續(xù)4次;險測到總線信號為高電平 時,采樣計數(shù)器清零,接收模塊1101進(jìn)入接收狀態(tài)。每8次采樣向移位寄存器存入1位數(shù)據(jù),移位寄存器右移1位,位計數(shù)器加1;對收到的8位數(shù)據(jù)進(jìn) 行偶校驗(yàn),并在通過后,將8位數(shù)據(jù)存入到數(shù)據(jù)寄存器中,接收模塊1101進(jìn) 入空閑狀態(tài)。上述移位寄存器和數(shù)據(jù)寄存器均位于接收模塊中,用于將串行 數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),并存儲。
協(xié)議處理模塊1102,用于接收到接收模塊1101發(fā)來的并行數(shù)據(jù),根據(jù)并 行數(shù)據(jù)確定與RAM進(jìn)行數(shù)據(jù)存取時,向仲裁才莫塊130發(fā)送RAM使用權(quán)申請。 還用于仲裁模塊130確定自身獲得RAM使用權(quán)后,通過RAM接口模塊140 相應(yīng)與RAM進(jìn)行數(shù)據(jù)存??;還用于將從RAM中讀取的數(shù)據(jù)發(fā)送給發(fā)送才莫塊 1104。
其中,協(xié)議處理模塊1102接收到的接收模塊1101發(fā)來的并行數(shù)據(jù),可 以根據(jù)幀頭和目的地址,首先確定目的地址相符后,按照幀頭所標(biāo)識的不同 類型將報文分為SD1 SD5五種,其中,SD1表示尋找新上線的設(shè)備;SD2表 示非周期性數(shù)據(jù);SD3表示實(shí)時數(shù)據(jù);SD4表示令牌數(shù)據(jù);SD5表示管理任 務(wù)。
其中,接收到SD2或SD3或SD5數(shù)據(jù)時,均需進(jìn)行RAM中數(shù)據(jù)的存取。 而且,最好協(xié)議處理模塊1102根據(jù)實(shí)時數(shù)據(jù)和非周期性數(shù)據(jù)的區(qū)別將所述數(shù) 據(jù)存儲到RAM的不同區(qū)域。而SD1和SD4則不需要進(jìn)行RAM中數(shù)據(jù)的存 取,協(xié)議處理模塊1102控制設(shè)備信息管理模塊1105進(jìn)行對應(yīng)設(shè)備信息的修 改。協(xié)議處理模塊1102通過所述設(shè)備信息確定所述并行數(shù)據(jù)的發(fā)送設(shè)備,即 所述數(shù)據(jù)由總線上的哪個設(shè)備發(fā)送到總線上,并最終傳輸給協(xié)議處理模塊 1102;還通過所述設(shè)備信息確定所述從RAM中讀取的數(shù)據(jù)的接收設(shè)備,即所 述從RAM中讀取的數(shù)據(jù)將由發(fā)送模塊1104通過總線發(fā)送給哪個設(shè)備。
波特率控制模塊1103,用于根據(jù)接收模塊1101轉(zhuǎn)換得到的并行數(shù)據(jù),確 定向接收模塊1101和發(fā)送^t塊1104所需使用的波特率,并產(chǎn)生相應(yīng)的時鐘 信號提供給接收模塊1101和發(fā)送模塊1104。
例如,高速底板總線通信波特率包括9.6K、 187.5K、 1.5M、 6M、 12M、 24M、 32M…等,總線上所有設(shè)備的波特率必須一致,且由主設(shè)備設(shè)置,從設(shè) 備自動使用主設(shè)備設(shè)置的波特率進(jìn)行通信。從設(shè)備初始化完畢后,如采用異
ii步方式,則首先進(jìn)入波特率搜索狀態(tài),按照波特率從高到低的順序接收報文,
一旦接收到正確的SD1 (查詢FDL狀態(tài))報文,從設(shè)備看門狗進(jìn)入波特率控 制狀態(tài),而從設(shè)備則以搜索到的波特率進(jìn)行通信。同步方式不需要搜索波特 率。因此,在總線接口中,當(dāng)設(shè)備為剛剛上線時,波特率發(fā)生模塊130向接 收模塊1101提供的時鐘信號才艮據(jù)9.6K、 187.5K、 1.5M、 6M、 12M、 24M、 32M…等不同的波特率不停切換,波特率控制模塊1103判斷接收模塊1101 發(fā)來的并行數(shù)據(jù)是否為預(yù)先設(shè)定的SD1報文,如果是,表示目前使用的波特 率為主設(shè)備通信的波特率,波特率控制模塊1103停止時鐘信號的切換。
進(jìn)一步地,波特率控制模塊1103可以通過波特率自適應(yīng)模塊以及波特率 發(fā)生模塊實(shí)現(xiàn);其中,
波特率自適應(yīng)模塊,用于根據(jù)接收模塊1101轉(zhuǎn)換得到的并行數(shù)據(jù),確定 接收模塊1101和發(fā)送模塊1104所需使用的波特率,并控制波特率發(fā)生模塊 產(chǎn)生對應(yīng)的時鐘信號。
波特率發(fā)生模塊,用于在波特率自適應(yīng)模塊的控制下,產(chǎn)生對應(yīng)的時鐘 信號,并提供給接收模塊1101和發(fā)送模塊1104。
發(fā)送模塊1104,用于接收協(xié)議處理模塊1102發(fā)來的并行數(shù)據(jù),轉(zhuǎn)換成串 行數(shù)據(jù),根據(jù)波特率控制模塊1103提供的時鐘信號,逐位輸出到總線上。
設(shè)備信息管理模塊1105,用于對總線上連接的各個設(shè)備的信息進(jìn)行管理, 并在協(xié)議處理模塊1102的控制下進(jìn)行相應(yīng)設(shè)備信息的修改。
所述設(shè)備信息包括令牌所有者、上線設(shè)備列表等信息,可以通過上線設(shè) 備表和令牌管理表等進(jìn)行上述信息的管理。設(shè)備信息管理模塊1105可以以寄 存器的方式實(shí)現(xiàn)。
設(shè)備信息管理模塊1105由協(xié)議處理模塊1102進(jìn)行修改和訪問。例如, 收到SD1,則修改設(shè)備信息管理模塊1105中上線設(shè)備表中對應(yīng)設(shè)備是否在線 的信息,如1個bit表示一個設(shè)備,值O表示設(shè)備不在線,l表示設(shè)備在線; 收到SD4,則將相應(yīng)設(shè)備對應(yīng)的令牌管理表中的值修改為1。
同時,設(shè)備信息管理模塊1105也可以通過CPU接口模塊120與CPU相 連,支持CPU對所述設(shè)備信息進(jìn)行查詢。如圖3所示,給出了一種發(fā)送模塊將數(shù)據(jù)輸出到總線上的方法示意圖, 如圖3所示,發(fā)送模塊復(fù)位后進(jìn)入空閑狀態(tài),如果收到將數(shù)據(jù)寄存器中數(shù)據(jù)
進(jìn)入移位寄存器的命令,將數(shù)據(jù)載入移位寄存器,發(fā)送模塊進(jìn)入等待狀態(tài); 如果收到開始傳輸?shù)拿?,傳輸開始,發(fā)送模塊進(jìn)入發(fā)送狀態(tài);按照波特率 控制模塊提供的波特率發(fā)送連續(xù)11位數(shù)據(jù);發(fā)送模塊完成一個字節(jié)的發(fā)送后, 位計數(shù)器清零,發(fā)送模塊進(jìn)入空閑狀態(tài)。通過圖3所示方法的循環(huán)執(zhí)行,即 實(shí)現(xiàn)了發(fā)送模塊將串行數(shù)據(jù)發(fā)送到總線的目的。上述移位寄存器和數(shù)據(jù)寄存 器均位于發(fā)送模塊中,用于將并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),并存儲。
將圖la所示的總線數(shù)據(jù)處理模塊結(jié)構(gòu)與圖1所示的本發(fā)明總線接口實(shí)施 例相結(jié)合,得到如圖lb所示的本發(fā)明總線接口結(jié)構(gòu)的另一實(shí)施例。
本發(fā)明中所述總線接口可以通過可編程邏輯器件實(shí)現(xiàn)。
如圖lc所示,當(dāng)本發(fā)明總線接口與CPU以及總線相連時,總線接口和 CPU之間通過地址線、數(shù)據(jù)線、讀寫使能線、片選線、等待線和中斷線等相 連;總線接口和存儲器之間通過地址線、數(shù)據(jù)線、讀寫使能線等相連。
另外,對于圖1所示的本發(fā)明實(shí)施例,所述發(fā)送模塊1104和接收模塊1101 也可以分別有多個,從而實(shí)現(xiàn)多^各通信。
圖4為本發(fā)明CPU與總線共享RAM的控制方法,如圖4所示,該方法 包括
步驟401:以一定的波特率,接收總線上的串行數(shù)據(jù),將所述串行數(shù)據(jù)轉(zhuǎn) 換為并行數(shù)據(jù)。
權(quán)申請,如果是,執(zhí)行步驟403;否則,修改相應(yīng)的設(shè)備信息,返回步驟401 繼續(xù)進(jìn)行總線上數(shù)據(jù)的接收。
所述并行數(shù)據(jù)可以根據(jù)幀頭和目的地址分為SD1 SD5五種凈艮文類型, SD1表示尋找新上線的設(shè)備;SD2表示非周期性數(shù)據(jù);SD3表示實(shí)時數(shù)據(jù); SD4表示令牌數(shù)據(jù);SD5表示管理任務(wù);相應(yīng)的,本步驟具體可以為
判斷并行數(shù)據(jù)的報文類型,當(dāng)報文類型為SD1或SD4時,確定進(jìn)行相應(yīng) 設(shè)備信息的修改,返回步驟401繼續(xù)進(jìn)行總線上數(shù)據(jù)的接收;當(dāng)報文類型為SD2或SD3或SD5時,確定進(jìn)行總線RAM使用權(quán)的申請,執(zhí)行步驟403 。
所述設(shè)備信息包括令牌所有者、上線設(shè)備列表等信息,可以通過上線設(shè) 備表和令牌管理表等進(jìn)行上述信息的管理。所述信息可以通過寄存器進(jìn)行存 儲。
步驟403:進(jìn)行總線的RAM使用權(quán)申請;執(zhí)行步驟405。 步驟404:確定CPU使用RAM進(jìn)行數(shù)據(jù)存取時,進(jìn)行CPU的RAM使 用一又申請,寺丸行步驟405。
步驟405:檢測到所述總線的RAM使用權(quán)申請和/或CPU的RAM使用 權(quán)申請,根據(jù)預(yù)定規(guī)則確定RAM的使用者。 所述預(yù)定規(guī)則具體為 判斷RAM當(dāng)前狀態(tài);
當(dāng)RAM為空閑狀態(tài)時,如果同時檢測到總線的RAM使用權(quán)申請和CPU 的RAM使用權(quán)申請,確定總線為RAM的使用者;如果只檢測到總線的RAM 使用權(quán)申請或CPU的RAM使用權(quán)申請,相應(yīng)確定總線或CPU為RAM的使 用者;
當(dāng)RAM為非空閑狀態(tài)時,相應(yīng)確定進(jìn)行申請的總線或CPU等待,直至 RAM的當(dāng)前使用者完成RAM中數(shù)據(jù)的存取,RAM轉(zhuǎn)入空閑狀態(tài)。
步驟406:所確定的RAM的使用者使用RAM進(jìn)行相應(yīng)數(shù)據(jù)的存取。
本發(fā)明中所述總線可以為用于串行數(shù)字通信的總線,即總線上傳輸?shù)男?號為串行的數(shù)字信號。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普 通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤 飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
1權(quán)利要求
1、一種總線接口,其特征在于,包括總線數(shù)據(jù)處理模塊、CPU接口模塊、仲裁模塊、以及RAM接口模塊;其中,總線數(shù)據(jù)處理模塊,用于從總線接收數(shù)據(jù),并根據(jù)接收到的數(shù)據(jù)確定進(jìn)行RAM的使用時,向仲裁模塊發(fā)送RAM使用權(quán)申請;還用于當(dāng)仲裁模塊確定總線數(shù)據(jù)處理模塊獲得RAM使用權(quán)時,通過RAM接口模塊與RAM進(jìn)行數(shù)據(jù)存??;還用于將從RAM中讀取到的數(shù)據(jù)輸出到總線上;CPU接口模塊,用于連接CPU,當(dāng)確定CPU進(jìn)行RAM使用時,向仲裁模塊發(fā)送RAM使用權(quán)申請;還用于仲裁模塊確定CPU獲得RAM使用權(quán)后,通過RAM接口模塊實(shí)現(xiàn)CPU與RAM之間的數(shù)據(jù)存??;仲裁模塊,用于接收到總線數(shù)據(jù)處理模塊和/或CPU接口模塊發(fā)來的RAM使用權(quán)申請,根據(jù)預(yù)定規(guī)則確定RAM使用權(quán)的歸屬;RAM接口模塊,用于根據(jù)仲裁模塊的確定結(jié)果,實(shí)現(xiàn)RAM與總線數(shù)據(jù)處理模塊、或CPU接口模塊之間的數(shù)據(jù)存取。
2、 根據(jù)權(quán)利要求l所述的接口,其特征在于,總線數(shù)據(jù)處理模塊還用于確定進(jìn)行總線數(shù)據(jù)的接收或輸出時所需使用的波特率。
3、 根據(jù)權(quán)利要求2所述的接口,其特征在于,總線數(shù)據(jù)處理模塊包括接收模塊,用于按照波特率控制模塊提供的時鐘信號,接收數(shù)據(jù)總線上的串行數(shù)據(jù),將所述串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù);協(xié)議處理模塊,用于根據(jù)接收模塊轉(zhuǎn)換得到的并行數(shù)據(jù)確定進(jìn)行RAM數(shù)據(jù)的存取時,向仲裁模塊發(fā)送RAM使用權(quán)申請;還用于仲裁模塊確定協(xié)議處理模塊獲得RAM使用權(quán)后,通過RAM接口才莫塊與RAM進(jìn)行數(shù)據(jù)存??;波特率控制模塊,用于根據(jù)接收模塊轉(zhuǎn)換得到的并行數(shù)據(jù),確定接收模塊和發(fā)送模塊所需使用的波特率,并產(chǎn)生相應(yīng)的時鐘信號提供給接收^^莫塊和發(fā)送模塊;發(fā)送模塊,用于將協(xié)議處理模塊從RAM中讀取的數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),根據(jù)波特率控制模塊提供的時鐘信號,將所述串行數(shù)據(jù)逐位輸出到總線上。
4、 根據(jù)權(quán)利要求3所述的接口,其特征在于,波特率控制模塊包括波特率自適應(yīng)模塊,用于根據(jù)接收模塊轉(zhuǎn)換得到的并行數(shù)據(jù),確定接收模塊和發(fā)送模塊所需使用的波特率,并控制波特率發(fā)生模塊產(chǎn)生相應(yīng)的時鐘信號;波特率發(fā)生模塊,用于在波特率自適應(yīng)模塊的控制下產(chǎn)生相應(yīng)的時鐘信號,并將所述時鐘信號提供給接收模塊和發(fā)送模塊。
5、 根據(jù)權(quán)利要求3所述的接口,其特征在于,協(xié)議處理模塊還用于確定所述并行數(shù)據(jù)的報文類型,并行數(shù)據(jù)的報文類型為SD2或SD3或SD5時,確定進(jìn)行RAM數(shù)據(jù)的存??;所述并行數(shù)據(jù)的報文類型為SD1或SD4時,控制設(shè)備信息管理模塊進(jìn)行相應(yīng)設(shè)備信息的修改;相應(yīng)的,總線數(shù)據(jù)處理模塊進(jìn)一步包括設(shè)備信息管理模塊,用于存儲總線上各個設(shè)備的信息,并在協(xié)議處理模塊控制下進(jìn)行相應(yīng)設(shè)備信息的修改;其中,SD1表示尋找新上線的設(shè)備;SD2表示非周期性數(shù)據(jù);SD3表示實(shí)時數(shù)據(jù);SD4表示令牌數(shù)據(jù);SD5表示管理任務(wù)。
6、 根據(jù)權(quán)利要求1至5任一項(xiàng)所述的接口,其特征在于,所述預(yù)定規(guī)則為RAM為空閑狀態(tài),且同時檢測到總線的RAM使用權(quán)申請和CPU的RAM使用權(quán)申請時,確定總線為RAM的使用者;RAM為空閑狀態(tài),且只斥企測到總線的RAM使用權(quán)申請或CPU的RAM使用權(quán)申請,相應(yīng)確定總線或CPU為RAM的使用者;RAM為非空閑狀態(tài)時,相應(yīng)確定進(jìn)行申請的總線或CPU等待,直至RAM的當(dāng)前使用者完成RAM中數(shù)據(jù)的存取,RAM轉(zhuǎn)入空閑狀態(tài),以空閑狀態(tài)的使用權(quán)確定方法進(jìn)行RAM使用者的確定。
7、 一種RAM使用權(quán)的控制方法,其特征在于,包括檢測到總線的RAM使用權(quán)申請和/或CPU的RAM使用權(quán)申請,根據(jù)預(yù)定規(guī)則確定RAM的使用者,所述使用者進(jìn)行RAM中數(shù)據(jù)的存取。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述根據(jù)預(yù)定規(guī)則確定RAM的使用者具體為判斷RAM當(dāng)前狀態(tài)以及檢測到的使用權(quán)申請;RAM為空閑狀態(tài)時,同時檢測到總線的RAM使用權(quán)申請和CPU的RAM使用權(quán)申請,確定總線為RAM的使用者;只檢測到總線的RAM使用權(quán)申請或CPU的RAM使用權(quán)申請,相應(yīng)確定總線或CPU為RAM的使用者;RAM為非空閑狀態(tài)時,相應(yīng)確定進(jìn)行申請的總線或CPU等待,直至RAM 的當(dāng)前使用者完成RAM中數(shù)據(jù)的存取,RAM轉(zhuǎn)入空閑狀態(tài),以空閑狀態(tài)的 使用權(quán)確定方法進(jìn)行RAM使用者的確定。
9、 根據(jù)權(quán)利要求7或8所述的方法,其特征在于,檢測到總線的RAM 使用權(quán)申請之前,該方法進(jìn)一步包括以一定的波特率,接收總線上的串行數(shù)據(jù),轉(zhuǎn)換為并行數(shù)據(jù)后,根據(jù)并 行數(shù)據(jù)確定是否進(jìn)行總線的RAM使用權(quán)申請。
10、 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述根據(jù)并行數(shù)據(jù)及其 對應(yīng)的協(xié)議確定是否進(jìn)行總線的RAM使用權(quán)申請具體為判斷并行數(shù)據(jù)的報文類型,當(dāng)報文類型為SDl或SD4時,確定進(jìn)行相應(yīng) 設(shè)備信息的修改;當(dāng)報文類型為SD2或SD3或SD5時,確定進(jìn)行總線RAM 使用權(quán)的申請;其中,SDl表示尋找新上線的設(shè)備;SD2表示非周期性數(shù)據(jù);SD3表示 實(shí)時數(shù)據(jù);SD4表示令牌數(shù)據(jù);SD5表示管理任務(wù)。
全文摘要
本發(fā)明公開了一種總線接口,包括總線數(shù)據(jù)處理模塊、CPU接口模塊、仲裁模塊、以及RAM接口模塊;總線數(shù)據(jù)處理模塊、以及CPU接口模塊向仲裁模塊發(fā)送RAM使用權(quán)申請,由仲裁模塊進(jìn)行RAM使用者的確定。本發(fā)明同時公開了一種RAM使用權(quán)控制方法,該方法和總線接口能夠有效控制通信時序,并提高通信速度、效率和實(shí)時性能。
文檔編號G06F13/16GK101464844SQ200910001238
公開日2009年6月24日 申請日期2009年1月14日 優(yōu)先權(quán)日2009年1月14日
發(fā)明者宓霄凌, 張曉剛, 曄 陸 申請人:浙江中控技術(shù)股份有限公司