專利名稱:外設(shè)訪問(wèn)控制方法、裝置與系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于通信技術(shù)領(lǐng)域,特別關(guān)于一種外設(shè)訪問(wèn)控制方法、裝置與系統(tǒng)。
背景技術(shù):
PowerPC是二十世紀(jì)九十年代由IBM (國(guó)際商用機(jī)器公司)、Apple (蘋 果公司)和Motorola (摩托羅拉)公司聯(lián)合開(kāi)發(fā)的處理器?,F(xiàn)屬于前身為摩托 羅拉半導(dǎo)體的Freescale (飛思卡爾)半導(dǎo)體公司。PowerPC應(yīng)用于通信、工控 以及各類消費(fèi)電子產(chǎn)品等多個(gè)領(lǐng)域,是通信設(shè)備中運(yùn)用最多的處理器,在通
信領(lǐng)域中具有十分重要的地位。
總線是指通過(guò)分時(shí)復(fù)用的方式,將信息從一個(gè)或多個(gè)源部件傳送到一個(gè) 或多個(gè)目的部件的一組傳輸線,是芯片間傳輸數(shù)據(jù)的公共通道。系統(tǒng)總線指 連接微處理器和外圍器件的并行總線。系統(tǒng)總線按照不同功能可分為數(shù)據(jù)總 線、地址總線和控制總線。數(shù)據(jù)總線用于傳送數(shù)據(jù)信息,是雙向的總線,即 可把微處理器的數(shù)據(jù)傳送到外圍器件,也可將外圍器件的數(shù)據(jù)傳送到微處理 器。地址總線專門用來(lái)傳送地址,由于地址只需從微處理器傳向外圍器件, 所以地址總線總是單向的。控制總線用來(lái)傳送控制信號(hào)和時(shí)序信號(hào)。
控制信號(hào)中,有的是微處理器送往外圍器件的,如讀/寫信號(hào),片選信 號(hào)、復(fù)位信號(hào)等,實(shí)現(xiàn)對(duì)想要操作的芯片的選擇,表明對(duì)其的操作是讀或?qū)懀?對(duì)需要操作的芯片的復(fù)位等功能;也有外圍器件反饋給微處理器的,如中斷 請(qǐng)求信號(hào)。芯片的時(shí)序體現(xiàn)了具體活動(dòng)內(nèi)容的先后關(guān)系,對(duì)芯片的操作需要 嚴(yán)格的遵守芯片資料上的時(shí)序圖所規(guī)定的時(shí)序關(guān)系。滿足時(shí)序關(guān)系時(shí),芯片 才能正常的被操作。
UPM (用于可編程機(jī)器,User Programmable Machine)總線是PowerPC
5中一種可對(duì)外部設(shè)備進(jìn)行訪問(wèn)的系統(tǒng)總線。它的特點(diǎn)是可以由用戶通過(guò)軟件 定制總線的控制時(shí)序來(lái)初始化其外部引腳,以達(dá)到對(duì)多種外部設(shè)備進(jìn)行靈活 控制的目的。UPM的控制總線中有一條可通過(guò)寄存器設(shè)置啟用的名為UPMW
AIT的控制線。它的作用是在PowerPC發(fā)起的一次讀寫操作時(shí),在其有效的 情況下,UPM的控制總線狀態(tài)保持不變(UPM狀態(tài)鎖定),此時(shí)將維持該外 設(shè)當(dāng)前的工作狀態(tài),處理器不會(huì)對(duì)其發(fā)起下一次操作指令;直到UPMWAIT 無(wú)效的時(shí)候這種保持不變的狀態(tài)才解除(UPM狀態(tài)解除),此時(shí)處理器可以 繼續(xù)對(duì)該外設(shè)發(fā)起下一次操作指令。
CPLD (Complex Programmable Logic Device)為復(fù)雜可編程邏輯器件, 用戶可以根據(jù)各自需要采用CPLD自行構(gòu)造邏輯功能的數(shù)字集成電路,其基本 設(shè)計(jì)方法是借助集成開(kāi)發(fā)軟件平臺(tái),用原理圖、硬件描述語(yǔ)言(一種用軟件 的方式描述電路結(jié)構(gòu)的語(yǔ)言)等方法生成相應(yīng)的目標(biāo)文件,通過(guò)下載電纜將 代碼燒寫到CPLD中,實(shí)現(xiàn)設(shè)計(jì)的數(shù)字系統(tǒng)的功能。CPLD有很多的I/0引腳, 可被約束為輸入、輸出或雙向,由硬件描述語(yǔ)言根據(jù)實(shí)際使用情況任意定義。
狀態(tài)機(jī)由多種狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換條件組成。當(dāng)某一個(gè)條件滿足 時(shí),它會(huì)觸發(fā)狀態(tài)之間的轉(zhuǎn)換,導(dǎo)致?tīng)顟B(tài)機(jī)從一種狀態(tài)轉(zhuǎn)化到另一種新的狀 態(tài),并且在每種狀態(tài)下都可以具有相應(yīng)的動(dòng)作。
現(xiàn)有技術(shù)中,在僅使用UPM總線對(duì)一個(gè)外設(shè)進(jìn)行訪問(wèn)的時(shí)候,可以利用 其UPMWAIT功能達(dá)到對(duì)器件的靈活控制,但在現(xiàn)在電子電路設(shè)計(jì)中,集成度 越來(lái)越高,功能越來(lái)越多樣化,很多時(shí)候處理器需要通過(guò)總線對(duì)多個(gè)不同類 型的外圍設(shè)備進(jìn)行訪問(wèn)控制。大部分總線對(duì)設(shè)備在總線上運(yùn)行的速率在其規(guī) 范中有明確的規(guī)定,如最常見(jiàn)的PCI總線就固定運(yùn)行在33Mhz或66Mhz下,要 求外部設(shè)備符合其定義的規(guī)范。UPM總線為了達(dá)到對(duì)多種外設(shè)進(jìn)行靈活控制 的目的,對(duì)外設(shè)沒(méi)有具體要求,而是通過(guò)改變自身的控制時(shí)序去主動(dòng)適應(yīng)外 圍設(shè)備,這樣做可以達(dá)到為更為廣泛的設(shè)備提供支持的目的。
連接在UPM總線下的各類設(shè)備的接口速率差別可能很大,為了滿足低速設(shè)備的時(shí)序要求,實(shí)現(xiàn)對(duì)其正常的訪問(wèn),就不得不降低總線訪問(wèn)速率。但這 樣做時(shí),高速設(shè)備雖然仍能得到正確的控制信號(hào),能被正常操作,但因高速 設(shè)備很快就能完成CPU所要求的操作,大部分時(shí)候高速設(shè)備都是在等待CPU 的下一個(gè)操作命令,對(duì)高速設(shè)備的訪問(wèn)效率就大大的降低了 。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中的缺陷,本發(fā)明實(shí)施例的目的是提供一種外設(shè)訪問(wèn) 控制方法、裝置與系統(tǒng)。該方法對(duì)外設(shè)的工作狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)視,在外設(shè)正 在進(jìn)行當(dāng)前操作時(shí)禁止處理器發(fā)出下一操作命令,當(dāng)外設(shè)完成一次操作時(shí)及 時(shí)將該狀態(tài)反饋給處理器,并觸發(fā)處理器發(fā)出下一操作命令,這種方式避免 了對(duì)所有外設(shè)采用統(tǒng)一的訪問(wèn)速率導(dǎo)致的高速設(shè)備等待低速設(shè)備的問(wèn)題。
為實(shí)現(xiàn)以上發(fā)明目的,本發(fā)明實(shí)施例提供一種外設(shè)訪問(wèn)控制方法,所述 方法包括接收處理器發(fā)出的控制信號(hào);當(dāng)所述控制信號(hào)為對(duì)外設(shè)的操作命
令時(shí),禁止所述處理器發(fā)出下一操作命令;接收所述外設(shè)發(fā)出的響應(yīng)信號(hào); 當(dāng)所述響應(yīng)信號(hào)為操作完成信號(hào)時(shí),允許所述處理器發(fā)出下一操作命令。
為實(shí)現(xiàn)以上發(fā)明目的,本發(fā)明實(shí)施例還提供一種外設(shè)訪問(wèn)控制裝置,所 述裝置包括控制信號(hào)接收單元,用于接收處理器發(fā)出的控制信號(hào);外設(shè)信 號(hào)接收單元,用于接收所述外設(shè)發(fā)出的響應(yīng)信號(hào);處理器控制單元,用于當(dāng) 所述控制信號(hào)為對(duì)所述外設(shè)的操作命令時(shí),禁止所述處理器發(fā)出下一操作命 令;當(dāng)所述響應(yīng)信號(hào)為操作完成信號(hào)時(shí),允許所述處理器發(fā)出下一操作命令。
為實(shí)現(xiàn)以上發(fā)明目的,本發(fā)明實(shí)施例還提供一種外設(shè)訪問(wèn)控制系統(tǒng),所 述系統(tǒng)包括處理器、與所述處理器連接的多個(gè)外設(shè)以及連接所述處理器和 所述多個(gè)外設(shè)的外設(shè)訪問(wèn)控制裝置;所述外設(shè)訪問(wèn)控制裝置包括控制信號(hào) 接收單元,用于接收所述處理器發(fā)出的控制信號(hào);外設(shè)信號(hào)接收單元,用于
接收所述外設(shè)發(fā)出的響應(yīng)信號(hào);處理器控制單元,用于當(dāng)所述控制信號(hào)為對(duì) 所述外設(shè)的操作命令時(shí),禁止所述處理器發(fā)出下一操作命令;當(dāng)所述響應(yīng)信 號(hào)為操作完成信號(hào)時(shí),允許所述處理器發(fā)出下一操作命令。為實(shí)現(xiàn)以上發(fā)明目的,本發(fā)明實(shí)施例還提供一種外設(shè)訪問(wèn)控制系統(tǒng),所 述系統(tǒng)包括處理器,連接所述處理器的多個(gè)外設(shè),以及連接所述處理器和 所述多個(gè)外設(shè)的外設(shè)訪問(wèn)控制裝置;所述處理器的地址線、數(shù)據(jù)線和控制線 分別與每個(gè)外設(shè)連接,所述處理器的控制線還連接所述訪問(wèn)控制裝置,每個(gè) 外設(shè)的響應(yīng)信號(hào)線連接所述外設(shè)訪問(wèn)控制裝置,所述外設(shè)訪問(wèn)控制裝置連接 所述處理器的訪問(wèn)控制管腳;所述外設(shè)訪問(wèn)控制裝置包括控制信號(hào)接收單
元,用于接收所述處理器發(fā)出的控制信號(hào);外設(shè)信號(hào)接收單元,用于接收所 述外設(shè)發(fā)出的響應(yīng)信號(hào);處理器控制單元,用于當(dāng)所述控制信號(hào)為對(duì)所述外 設(shè)的操作命令時(shí),將所述處理器的訪問(wèn)控制管腳設(shè)置為有效以禁止所述處理 器發(fā)出下一操作命令;當(dāng)所述響應(yīng)信號(hào)為操作完成信號(hào)時(shí),將所述處理器的 訪問(wèn)控制管腳設(shè)置為無(wú)效以允許所述處理器發(fā)出下一操作命令。
本發(fā)明實(shí)施例的方法通過(guò)實(shí)時(shí)監(jiān)測(cè)外設(shè)的工作狀態(tài)來(lái)控制所述處理器對(duì) 多個(gè)外設(shè)的訪問(wèn),解決了系統(tǒng)總線對(duì)多個(gè)不同速率外設(shè)進(jìn)行訪問(wèn)時(shí)效率不高 的問(wèn)題。當(dāng)系統(tǒng)總線下接有多個(gè)不同速率的外設(shè)時(shí),處理器在接收到當(dāng)前訪 問(wèn)的外設(shè)發(fā)送的操作完成信號(hào)時(shí)即發(fā)起下一次操作命令,這種處理方式使處 理器對(duì)高速率外設(shè)采用較高的訪問(wèn)速率,對(duì)低速率外設(shè)采用較低的訪問(wèn)速率, 使訪問(wèn)速率能夠根據(jù)外設(shè)速率進(jìn)行動(dòng)態(tài)調(diào)節(jié),在系統(tǒng)總線連接有多個(gè)不同速 率的外設(shè)時(shí)能夠保持較高的訪問(wèn)效率。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部 分,并不構(gòu)成對(duì)本發(fā)明的限定。在附圖中-圖l為本發(fā)明實(shí)施例的系統(tǒng)原理圖; 圖2為本發(fā)明實(shí)施例的外設(shè)訪問(wèn)控制方法流程圖; 圖3為本發(fā)明實(shí)施訪問(wèn)控制系統(tǒng)的實(shí)際原理圖; 圖4為本發(fā)明實(shí)施例在CPLD中所構(gòu)建的狀態(tài)機(jī)示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施方式 和附圖,對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。在此,本發(fā)明的示意性實(shí)施方式及其 說(shuō)明用于解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。
本發(fā)明實(shí)施例提供一種外設(shè)訪問(wèn)控制方法、裝置與系統(tǒng)。本實(shí)施例的處 理器連接多個(gè)不同速率的外設(shè),通過(guò)實(shí)時(shí)監(jiān)測(cè)外設(shè)的工作狀態(tài)來(lái)控制處理器 對(duì)外設(shè)的訪問(wèn)當(dāng)外設(shè)正在進(jìn)行一項(xiàng)讀/寫操作時(shí),禁止處理器發(fā)出下一操作 命令;當(dāng)外設(shè)完成了一項(xiàng)操作時(shí),允許處理器發(fā)出下一操作命令。這種方式 能夠提高處理器對(duì)多種不同速率外設(shè)的訪問(wèn)效率。以下結(jié)合附圖對(duì)本發(fā)明具 體實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。
圖l為本發(fā)明實(shí)施例的系統(tǒng)原理圖。如圖1所示,本發(fā)明實(shí)施例的系統(tǒng)包
括處理器IO、與所述處理器10連接的多個(gè)外設(shè)20以及連接所述處理器10和所 述多個(gè)外設(shè)20的外設(shè)訪問(wèn)控制裝置30。所述外設(shè)訪問(wèn)控制裝置30包括控制 信號(hào)接收單元301,用于接收所述處理器發(fā)出的控制信號(hào);外設(shè)信號(hào)接收單元 302,用于接收所述外設(shè)發(fā)出的響應(yīng)信號(hào);處理器控制單元303,用于當(dāng)所述 控制信號(hào)為對(duì)所述外設(shè)的操作命令時(shí),禁止所述處理器發(fā)出下一操作命令; 當(dāng)所述響應(yīng)信號(hào)為操作完成信號(hào)時(shí),允許所述處理器發(fā)出下一操作命令。
在本實(shí)施例的一具體實(shí)施方式
中,處理器控制單元303通過(guò)設(shè)置處理器10 的訪問(wèn)控制管腳來(lái)禁止或允許所述處理器10發(fā)出下一操作命令。訪問(wèn)控制管 腳因處理器類型的不同而有所區(qū)別。如,PowerPc處理器中的的UPMWAIT就 可以實(shí)現(xiàn)對(duì)外設(shè)的訪問(wèn)控制。在PowerPC發(fā)起的一次讀/寫操作時(shí),該管腳有 效時(shí)UPM的控制總線狀態(tài)保持不變(UPM狀態(tài)鎖定),此時(shí)將維持該外設(shè)當(dāng) 前的工作狀態(tài),處理器不會(huì)對(duì)其發(fā)起下一次操作命令;直到UPMWAIT無(wú)效時(shí) 這種保持不變的狀態(tài)才解除(UPM狀態(tài)解除),此時(shí)處理器可以繼續(xù)對(duì)該外 設(shè)發(fā)起下一次操作命令。
在本實(shí)施例的又一具體實(shí)施方式
中,外設(shè)的操作完成信號(hào)為READY信號(hào)。大多數(shù)的芯片在接到處理器(CPU)通過(guò)控制總線發(fā)出的命令準(zhǔn)備進(jìn)行
某項(xiàng)操作或已完成某項(xiàng)操作的時(shí)候,都會(huì)給出一個(gè)READY信號(hào),表示自身已 經(jīng)準(zhǔn)備好進(jìn)行CPU所要求的操作或已經(jīng)完成CPU所要求的操作。如DSP的HR DY信號(hào)。各個(gè)芯片對(duì)這個(gè)信號(hào)的命名不同,讀和寫過(guò)程中READY信號(hào)發(fā)出的
階段和意義也可能有區(qū)別,但其主要功能都是一樣的。
對(duì)于無(wú)法給出READY信號(hào)的低速芯片,本發(fā)明實(shí)施例的外設(shè)訪問(wèn)控制裝 置30的處理器控制單元303還用于在一等待時(shí)間內(nèi)沒(méi)有收到所述外設(shè)20的響 應(yīng)信號(hào)(如READY信號(hào))時(shí),認(rèn)為其已處理完該操作,此時(shí)允許處理器10發(fā) 出下一操作命令。為了適應(yīng)不同速率的外設(shè),該外設(shè)訪問(wèn)控制裝置30還包括 超時(shí)等待設(shè)置單元(圖中未示),用于根據(jù)不同外設(shè)的接口速率分別設(shè)置不 同的等待時(shí)間。
圖2為本發(fā)明實(shí)施例的外設(shè)訪問(wèn)控制方法流程圖。如圖2所示
步驟S201,外設(shè)訪問(wèn)控制裝置30接收處理器發(fā)出的控制信號(hào);
步驟S202,外設(shè)訪問(wèn)控制裝置30分析接收到的控制信號(hào),判斷是否有對(duì) 外設(shè)的片選信號(hào)以及讀/寫操作命令;如果是則進(jìn)入步驟S203,如果否則返回 步驟S201繼續(xù)接收處理器的控制信號(hào);
步驟S203,如果接收到了對(duì)外設(shè)的操作命令,則設(shè)置處理器的訪問(wèn)控制 管腳(如將UPM總線的UPMWAIT管腳設(shè)置為有效)使控制總線的狀態(tài)保持 不變,以維持該外設(shè)當(dāng)前的工作狀態(tài),禁止處理器發(fā)出下一操作命令;
步驟S204,接收外設(shè)的響應(yīng)信號(hào),如READY信號(hào),該響應(yīng)信號(hào)可以提供 外設(shè)對(duì)處理器發(fā)出的操作命令的執(zhí)行狀態(tài),接收到READY信號(hào)表明外設(shè)已經(jīng) 準(zhǔn)備好執(zhí)行該操作或者表明外設(shè)已經(jīng)完成該操作,對(duì)不同的外設(shè)類型還可能 有其他類型的響應(yīng)信號(hào);
步驟S205,判斷是否接收到了外設(shè)的操作完成信號(hào),如果收到則進(jìn)入步 驟S207,如果沒(méi)有收到則進(jìn)入步驟S206;
步驟S206,如果沒(méi)有收到響應(yīng)信號(hào)則有可能是該芯片無(wú)法提供響應(yīng)信號(hào),這時(shí)為該芯片設(shè)置一個(gè)等待時(shí)間,判斷是否到達(dá)預(yù)設(shè)的等待時(shí)間;如果到達(dá)
則進(jìn)入步驟S207;如果沒(méi)有則繼續(xù)返回步驟S204接收外設(shè)返回的響應(yīng)信號(hào); 步驟S207,如果到達(dá)預(yù)設(shè)的等待時(shí)間,則判斷外設(shè)已經(jīng)完成了該操作, 此時(shí)允許處理器訪問(wèn)所述外設(shè),即允許處理器對(duì)外設(shè)發(fā)出下一個(gè)操作命令。 下面以一個(gè)實(shí)際的例子來(lái)詳細(xì)說(shuō)明本發(fā)明實(shí)施例的具體實(shí)現(xiàn)方式。 圖3為本發(fā)明實(shí)施訪問(wèn)控制系統(tǒng)的實(shí)際原理圖。如圖3所示,本實(shí)施例的 處理器為PowerPc,外設(shè)訪問(wèn)控制裝置為CPLD,通過(guò)在CPLD中構(gòu)建狀態(tài)機(jī)來(lái) 實(shí)現(xiàn)CPLD的邏輯功能。外設(shè)D1、 D2以及Dn的READY信號(hào)分別引入CPLD, 經(jīng)過(guò)CPLD中的狀態(tài)機(jī)判斷,在適當(dāng)?shù)臅r(shí)候輸出UPMWAIT信號(hào),對(duì)PowerPC UPM總線的UPMWAIT信號(hào)進(jìn)行控制,以實(shí)現(xiàn)對(duì)不同速率外圍設(shè)備進(jìn)行訪問(wèn)
時(shí)提高訪問(wèn)效率的目的。
圖3中PowerPC的UPM總線的控制總線分別與CPLD及所需操作的各個(gè)外 設(shè)芯片相連,這樣CPLD和各個(gè)外圍芯片均能接收到來(lái)自PowerPC發(fā)出的控制 命令。而PowerPC的數(shù)據(jù)總線和地址總線與各外圍芯片連接,滿足外圍芯片時(shí) 序要求的情況下,配合控制總線,可將想要寫的數(shù)據(jù)寫入外圍芯片特定的地 址上去或從外圍芯片上指定的地址讀出想要的值。
圖4為本發(fā)明實(shí)施例在CPLD中所構(gòu)建的狀態(tài)機(jī)示意圖。圖4中的狀態(tài)機(jī)分 別對(duì)讀和寫的過(guò)程進(jìn)行了控制,可以在CPLD中用硬件描述語(yǔ)言編程實(shí)現(xiàn)。以 讀過(guò)程的狀態(tài)機(jī)為例在沒(méi)有接到控制指令時(shí)狀態(tài)機(jī)保持在IDLE狀態(tài)下,當(dāng) CPLD接到讀或?qū)懙拿詈蠓謩e進(jìn)入相應(yīng)的狀態(tài)。在接到讀的命令后,即進(jìn)入 Read—wait狀態(tài),等待設(shè)定的時(shí)間A,在這段時(shí)間中,如果所等待的芯片的RE ADY信號(hào)到來(lái),便立即進(jìn)入Read—nop狀態(tài),進(jìn)行讀操作,而當(dāng)讀操作完成,R EADY信號(hào)消失時(shí),進(jìn)入Read—out狀態(tài)。在ReacLout狀態(tài)無(wú)其他觸發(fā)條件, 經(jīng)過(guò)等待時(shí)間C后回到IDLE狀態(tài)。狀態(tài)機(jī)就經(jīng)過(guò)了一次完整的讀流程。
為避免異常狀態(tài)的出現(xiàn),需做好逃脫處理,各個(gè)狀態(tài)均設(shè)置有等待時(shí)間, 在等待超時(shí)后不管是否有觸發(fā)條件產(chǎn)生,均進(jìn)入超時(shí)所觸發(fā)的下一狀態(tài),避免狀態(tài)機(jī)在同一狀態(tài)中一直停滯。如在Read—wait和Read—nop狀態(tài)等待超過(guò)設(shè) 定時(shí)間,均會(huì)自動(dòng)轉(zhuǎn)換到下一狀態(tài)。
在整個(gè)狀態(tài)機(jī)中,UPMWAIT在狀態(tài)機(jī)進(jìn)入OUT狀態(tài)(如圖4的Read—out 或Write—out狀態(tài))的時(shí)候UPMWAIT管腳無(wú)效,UPM狀態(tài)解除,允許進(jìn)行下 一次訪問(wèn)操作;而在狀態(tài)機(jī)其他狀態(tài)時(shí)UPMWAIT管腳有效,UPM狀態(tài)鎖定, 保持當(dāng)前的操作狀態(tài)不變。
當(dāng)對(duì)高速設(shè)備進(jìn)行讀寫操作的時(shí)候,高速設(shè)備能很快的準(zhǔn)備好進(jìn)行操作 或很快的完成操作,發(fā)出READY信號(hào),狀態(tài)機(jī)接到READY信號(hào)的時(shí)候就立即 進(jìn)入下一狀態(tài),很快的到達(dá)ReacLout狀態(tài),這時(shí)候釋放UPMWAIT信號(hào),回到 IDLE狀態(tài),PowerPC的UPMWAIT信號(hào)解除,可以發(fā)出下一操作命令,這時(shí)就 可以繼續(xù)對(duì)外設(shè)進(jìn)行高速的訪問(wèn),保證了訪問(wèn)的效率。
同樣,在低速設(shè)備進(jìn)行訪問(wèn)的時(shí)候,由于其處理速率相對(duì)較慢,READY 信號(hào)會(huì)過(guò)比較久的時(shí)間才到來(lái),這時(shí)候UPMWAIT信號(hào)保持有效,PowerPC發(fā) 出的命令不會(huì)消失,直到等設(shè)備完成操作發(fā)出READY信號(hào)使得狀態(tài)機(jī)進(jìn)入O UT狀態(tài),這時(shí)UPMWAIT信號(hào)才消失,允許PowerPC發(fā)出下一指令。這樣就動(dòng) 態(tài)的降低了訪問(wèn)速率來(lái)滿足低速設(shè)備的時(shí)序要求。達(dá)到了對(duì)各種速率設(shè)備訪 問(wèn)都保持較高的訪問(wèn)效率的目的。
芯片在讀操作和寫操作的時(shí)序上可能會(huì)在不同的階段給出READY信號(hào), 不同的芯片在時(shí)序上也有差別??梢愿鶕?jù)具體需要在UPM總線上使用的芯片 的時(shí)序要求,增加或減少狀態(tài)機(jī)狀態(tài)數(shù),改變各個(gè)狀態(tài)的等待時(shí)間來(lái)滿足不 同的時(shí)序要求。對(duì)于無(wú)法給出READY信號(hào)的低速芯片也可以計(jì)算等待時(shí)間, 以等待超時(shí)退出來(lái)滿足其時(shí)序要求。
本發(fā)明實(shí)施例對(duì)于多個(gè)不同速率外圍芯片在UPM總線下訪問(wèn)效率不高的 問(wèn)題提出了一種設(shè)計(jì)方案。通過(guò)利用需要控制的外圍芯片的READY信號(hào)對(duì)UP M總線的UPMWAIT功能進(jìn)行控制,達(dá)到動(dòng)態(tài)調(diào)節(jié)訪問(wèn)速率從而提高訪問(wèn)效率 的目的。具體實(shí)施步驟如下步驟一在畫硬件原理圖的階段,將各外圍芯片連接至UPM總線下,包
括數(shù)據(jù)總線、地址總線和控制總線,并將外圍芯片的READY信號(hào)管腳分別引 入CPLD的各個(gè)I/0管腳,將PowerPC的UPMWAIT管腳與CPLD的一根I/0管腳 相連。使得CPLD可以對(duì)這些信號(hào)進(jìn)行處理。
步驟二根據(jù)各個(gè)外圍芯片的芯片資料所規(guī)定的時(shí)序關(guān)系和相關(guān)技術(shù)參 數(shù),規(guī)劃好狀態(tài)機(jī)的各個(gè)狀態(tài)及等待時(shí)間,然后用硬件描述語(yǔ)言實(shí)現(xiàn)所設(shè)計(jì) 的狀態(tài)機(jī),燒寫入CPLD。
步驟三調(diào)試生成的板卡,保證各速率的外圍芯片能被正確訪問(wèn)。測(cè)試 訪問(wèn)效率能否達(dá)到希望的狀態(tài)。如存在問(wèn)題,可重復(fù)步驟二,分析存在的問(wèn) 題后對(duì)狀態(tài)機(jī)進(jìn)行修改后重新進(jìn)行測(cè)試。
除PowerPC夕卜,其他CPU也有類似UPMWAIT功能的應(yīng)答信號(hào),均可通過(guò) 本發(fā)明實(shí)施例的狀態(tài)機(jī)實(shí)現(xiàn)對(duì)多個(gè)外部芯片進(jìn)行高效的訪問(wèn)控制,如ARM內(nèi) 核處理器S3C2410的總線控制器部分中的nWAIT引腳,IDT的79RC323系列MI PS內(nèi)核通信芯片的WAITACKN的引腳等,這些替代的實(shí)施方式均在權(quán)利要求 保護(hù)范圍之內(nèi)。
本發(fā)明實(shí)施例的方法通過(guò)實(shí)時(shí)監(jiān)測(cè)外設(shè)的工作狀態(tài)來(lái)控制所述處理器對(duì) 多個(gè)外設(shè)的訪問(wèn),解決了系統(tǒng)總線對(duì)多個(gè)不同速率外設(shè)進(jìn)行訪問(wèn)時(shí)效率不高 的問(wèn)題。當(dāng)系統(tǒng)總線下接有多個(gè)不同速率的外設(shè)時(shí),處理器在接收到當(dāng)前訪 問(wèn)的外設(shè)發(fā)送的操作完成信號(hào)時(shí)即發(fā)起下一次操作命令,這種處理方式使處 理器對(duì)高速率外設(shè)采用較高的訪問(wèn)速率,對(duì)低速率外設(shè)采用較低的訪問(wèn)速率, 使訪問(wèn)速率能夠根據(jù)外設(shè)速率進(jìn)行動(dòng)態(tài)調(diào)節(jié),在系統(tǒng)總線連接有多個(gè)不同速 率的外設(shè)時(shí)能夠保持較高的訪問(wèn)效率。
本發(fā)明實(shí)施例可以通過(guò)利用PowerPC的UPMWAIT功能來(lái)實(shí)現(xiàn)對(duì)不同速 率的外圍設(shè)備的支持,達(dá)到提高訪問(wèn)效率的目的。因?yàn)閁PM總線可由用戶自 定義總線的控制時(shí)序的特性,所使用的范圍很廣。只要用到了UPM總線,并 對(duì)多個(gè)設(shè)備進(jìn)行操作都可以適用本發(fā)明,提高對(duì)外圍芯片的訪問(wèn)效率和UPM
13總線的利用率。
以上所述的具體實(shí)施方式
,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行 了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式
而 己,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做 的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種外設(shè)訪問(wèn)控制方法,其特征在于,所述方法包括接收處理器發(fā)出的控制信號(hào);當(dāng)所述控制信號(hào)為對(duì)外設(shè)的操作命令時(shí),禁止所述處理器發(fā)出下一操作命令;接收所述外設(shè)發(fā)出的響應(yīng)信號(hào);當(dāng)所述響應(yīng)信號(hào)為操作完成信號(hào)時(shí),允許所述處理器發(fā)出下一操作命令。
2、 根據(jù)權(quán)利要求l所述的方法,其特征在于,通過(guò)設(shè)置所述處理器的訪 問(wèn)控制管腳來(lái)禁止或允許所述處理器發(fā)出下一操作命令。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述處理器為PowerPc,所 述處理器的訪問(wèn)控制管腳為UPMWAIT;通過(guò)設(shè)置所述處理器的訪問(wèn)控制管腳 來(lái)禁止或允許所述處理器發(fā)出下一操作命令,包括將UPMWAIT管腳設(shè)置為無(wú)效以允許PowerPc處理器發(fā)出下一操作命令, 將UPMWAIT管腳設(shè)置為有效以禁止所述PowerPc處理器發(fā)出下一操作命令。
4、 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述響應(yīng)信號(hào)為READY信號(hào)。
5、 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述方法還包括 當(dāng)在一等待時(shí)間內(nèi)沒(méi)有收到所述外設(shè)的響應(yīng)信號(hào)時(shí),允許所述處理器發(fā)出下一操作命令。
6、 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括 根據(jù)不同外設(shè)的接口速率分別設(shè)置不同的所述等待時(shí)間。
7、 一種外設(shè)訪問(wèn)控制裝置,其特征在于,所述裝置包括 控制信號(hào)接收單元,用于接收處理器發(fā)出的控制信號(hào); 外設(shè)信號(hào)接收單元,用于接收所述外設(shè)發(fā)出的響應(yīng)信號(hào); 處理器控制單元,用于當(dāng)所述控制信號(hào)為對(duì)所述外設(shè)的操作命令時(shí),禁止所述處理器發(fā)出下一操作命令;當(dāng)所述響應(yīng)信號(hào)為操作完成信號(hào)時(shí),允許 所述處理器發(fā)出下一操作命令。
8、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述處理器控制單元通過(guò)設(shè)置所述處理器的訪問(wèn)控制管腳來(lái)禁止或允許所述處理器發(fā)出下一操作命令。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述處理器為PowerPc,所述處理器的訪問(wèn)控制管腳為UPMWAIT;所述處理器控制單元,用于將UPMWAIT管腳設(shè)置為無(wú)效以允許PowerPc處理器發(fā)出下一操作命令,將UPMWAIT管腳設(shè)置為有效以禁止所述PowerPc處理器發(fā)出下一操作命令。
10、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述響應(yīng)信號(hào)為READY信號(hào)。
11、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述處理器控制單元,還用于當(dāng)在一等待時(shí)間內(nèi)沒(méi)有收到所述外設(shè)的響應(yīng)信號(hào)時(shí),允許所述處理器發(fā)出下一操作命令。
12、 根據(jù)權(quán)利要求ll所述的裝置,其特征在于,所述裝置還包括超時(shí)等待設(shè)置單元,用于根據(jù)不同外設(shè)的接口速率分別設(shè)置不同的所述等待時(shí)間。
13、 一種外設(shè)訪問(wèn)控制系統(tǒng),其特征在于,所述系統(tǒng)包括處理器、與所述處理器連接的多個(gè)外設(shè)以及連接所述處理器和所述多個(gè)外設(shè)的外設(shè)訪問(wèn)控制裝置;所述外設(shè)訪問(wèn)控制裝置包括控制信號(hào)接收單元,用于接收所述處理器發(fā)出的控制信號(hào);外設(shè)信號(hào)接收單元,用于接收所述外設(shè)發(fā)出的響應(yīng)信號(hào);處理器控制單元,用于當(dāng)所述控制信號(hào)為對(duì)所述外設(shè)的操作命令時(shí),禁止所述處理器發(fā)出下一操作命令;當(dāng)所述響應(yīng)信號(hào)為操作完成信號(hào)時(shí),允許所述處理器發(fā)出下一操作命令。
14、 一種外設(shè)訪問(wèn)控制系統(tǒng),其特征在于,所述系統(tǒng)包括處理器,連接所述處理器的多個(gè)外設(shè),以及連接所述處理器和所述多個(gè)外設(shè)的外設(shè)訪問(wèn)控制裝置;所述處理器的地址線、數(shù)據(jù)線和控制線分別與每個(gè)外設(shè)連接,所述處理器的控制線還連接所述外設(shè)訪問(wèn)控制裝置,每個(gè)外設(shè)的響應(yīng)信號(hào)線連接所述外設(shè)訪問(wèn)控制裝置,所述外設(shè)訪問(wèn)控制裝置連接所述處理器的訪問(wèn)控制管腳;所述外設(shè)訪問(wèn)控制裝置包括-控制信號(hào)接收單元,用于接收所述處理器發(fā)出的控制信號(hào);外設(shè)信號(hào)接收單元,用于接收所述外設(shè)發(fā)出的響應(yīng)信號(hào);處理器控制單元,用于當(dāng)所述控制信號(hào)為對(duì)所述外設(shè)的操作命令時(shí),將所述處理器的訪問(wèn)控制管腳設(shè)置為有效以禁止所述處理器發(fā)出下一操作命令;當(dāng)所述響應(yīng)信號(hào)為操作完成信號(hào)時(shí),將所述處理器的訪問(wèn)控制管腳設(shè)置為無(wú)效以允許所述處理器發(fā)出下一操作命令。
15、根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述處理器為PowerPc,所述外設(shè)的響應(yīng)信號(hào)為READY信號(hào),所述處理器的訪問(wèn)控制管腳為UPMWAIT管腳。
全文摘要
本發(fā)明實(shí)施例提供一種外設(shè)訪問(wèn)控制方法、裝置與系統(tǒng),所述方法包括接收處理器發(fā)出的控制信號(hào);當(dāng)所述控制信號(hào)為對(duì)外設(shè)的操作命令時(shí),禁止所述處理器發(fā)出下一操作命令;接收所述外設(shè)發(fā)出的響應(yīng)信號(hào);當(dāng)所述響應(yīng)信號(hào)為操作完成信號(hào)時(shí),允許所述處理器發(fā)出下一操作命令。該方法通過(guò)實(shí)時(shí)監(jiān)測(cè)外設(shè)的工作狀態(tài)來(lái)控制所述處理器對(duì)多個(gè)外設(shè)的訪問(wèn),解決了系統(tǒng)總線對(duì)多個(gè)不同速率外設(shè)進(jìn)行訪問(wèn)時(shí)效率不高的問(wèn)題,當(dāng)系統(tǒng)總線下接有多個(gè)不同速率的外設(shè)時(shí),可以動(dòng)態(tài)調(diào)節(jié)訪問(wèn)速率,保持較高的訪問(wèn)效率。
文檔編號(hào)G06F13/20GK101458671SQ20081017944
公開(kāi)日2009年6月17日 申請(qǐng)日期2008年11月28日 優(yōu)先權(quán)日2008年11月28日
發(fā)明者磊 周 申請(qǐng)人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司