專利名稱:一種電平信號的實時監(jiān)測方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信號監(jiān)測領(lǐng)域,尤指一種對電平信號進行實時監(jiān)測的方法及裝置。
背景技術(shù):
在電子產(chǎn)品設(shè)計中,經(jīng)常需要對產(chǎn)品中的諸多模塊進行監(jiān)測,以便了解模塊的工作情況,及時發(fā)現(xiàn)問題。為了節(jié)約成本和簡化設(shè)計,上述模塊通常會輸出一個用高低電平表示的電平信號表征自身狀態(tài)。進一步地,采用光耦合器件或繼電器對輸出的電平信號進行前后級隔離,得到干結(jié)點信號。比如電源系統(tǒng)中采用干結(jié)點信號表征在位/不在位狀態(tài),高電平表示系統(tǒng)在位,而低電平表示系統(tǒng)不在位。監(jiān)測裝置只需采集模塊的電平信號就能了解模塊的工作情況。
目前,對電平信號進行監(jiān)測的裝置通常采用帶有CPU的單片機或微控制器實現(xiàn),該裝置簡單地把電平信號連接到單片機輸入/輸出(I/O)管腳上。圖1顯示的是這種監(jiān)測裝置的連接示意圖,該監(jiān)測裝置通過單片機的I/O管腳讀取電平信號的狀態(tài)數(shù)據(jù),從而了解相應(yīng)模塊的工作狀態(tài),電平信號的狀態(tài)數(shù)據(jù)用0或1表示。
圖1所示方法的主要缺點是其一、單片機可用的I/O管腳數(shù)量有限,當(dāng)電平信號較多時,單片機的I/O管腳不夠用。以常見的51系列單片機為例,該類單片機有P0~P3口,共32個I/O管腳。其中P0口和P2口用于外接擴展存儲器。而P3口的P3.0和P3.1管腳通常作串口使用,P3.2和P3.3是中斷輸入管腳,所以可用于連接電平信號的I/O管腳通常不超過12個。電平信號一旦超過12個,單片機就無法一次性讀入所有的電平信號。
其二、單片機通常采用輪詢方式查詢I/O管腳的電平來獲取對應(yīng)模塊的當(dāng)前狀態(tài)數(shù)據(jù),這種方式導(dǎo)致單片機無法實時監(jiān)測電平信號的狀態(tài)變化。
其三、在電平信號較多的情況下,單片機定時查詢每個電平信號需要占用大量的CPU資源,造成不必要的資源浪費。
圖2顯示的是現(xiàn)有技術(shù)中另一種電平信號監(jiān)測裝置,該裝置增加一個可擦編程邏輯器件(EPLD,Erasable Programmable Logic Device)。把被監(jiān)測的電平信號連接到EPLD的I/O管腳上,通過邏輯設(shè)計將I/O管腳映射為EPLD的內(nèi)部寄存器中的某個位(bit),單片機讀取EPLD的內(nèi)部寄存器對應(yīng)位即可獲得所需模塊的當(dāng)前狀態(tài)數(shù)據(jù)。該方法的缺點在于需要在監(jiān)測裝置中增加EPLD器件,成本較高。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種電平信號的實時監(jiān)測方法,使主控單元能夠監(jiān)測大量的電平信號,并實時獲取電平信號的狀態(tài)數(shù)據(jù),避免占用過多的CPU資源和I/O管腳。
本發(fā)明的另一目的在于提供一種電平信號的實時監(jiān)測裝置,使電平信號的監(jiān)測具有較高的實時性。
為達到上述目的,本發(fā)明的技術(shù)方案具體是這樣實現(xiàn)的一種電平信號的實時監(jiān)測方法,用于包含主控單元的設(shè)備,其特征在于,將待監(jiān)測的電平信號連接到預(yù)先設(shè)置的輸入/輸出擴展單元,該方法包括以下步驟a、至少一個待監(jiān)測的電平信號發(fā)生變化時,輸入/輸出擴展單元發(fā)出中斷請求給主控單元,并保存待監(jiān)測的電平信號狀態(tài)數(shù)據(jù);b、主控單元響應(yīng)中斷請求,通過總線從輸入/輸出擴展單元讀取待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)。
進一步地,步驟b所述的通過總線讀取待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)的方法包括
b1、利用主控單元的輸入/輸出管腳模擬串行總線的信號線;b2、主控單元從模擬的串行總線信號線發(fā)送數(shù)據(jù)讀取請求到輸入/輸出擴展單元;b3、輸入/輸出擴展單元應(yīng)答數(shù)據(jù)讀取請求,發(fā)送待監(jiān)測電平信號的狀態(tài)數(shù)據(jù)到主控單元。
進一步地,所述主控單元為單片機或帶通信控制功能的CPU,則步驟b所述的總線為串行總線或并行總線。
較佳地,所述串行總線為I2C總線,或SMBUS總線。
較佳地,所述電平信號為干結(jié)點信號。
一種電平信號的實時監(jiān)測裝置,包括主控單元,其特征在于,該裝置進一步包括輸入/輸出擴展單元,用于連接待監(jiān)測的電平信號,當(dāng)至少一個待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)發(fā)生變化時,保存待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)并發(fā)出中斷請求到主控單元;所述主控單元,用于響應(yīng)輸入/輸出擴展單元發(fā)出的中斷請求,并通過總線從輸入/輸出擴展單元讀取待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)。
進一步地,所述主控單元為單片機或帶通信控制功能的CPU。
進一步地,所述輸入/輸出擴展單元為具有串行或并行總線接口的輸入/輸出擴展芯片;所述輸入/輸出擴展單元為具有中斷輸出端口的輸入/輸出擴展芯片。
進一步地,所述串行總線包含主控單元利用其輸入/輸出管腳模擬的一條或多條I2C總線或SMBUS總線。
較佳地,所述串行總線并行連接一個或多個輸入/輸出擴展單元。
由上述技術(shù)方案可見,本發(fā)明的這種電平信號的實時監(jiān)測方法和裝置,由主控單元提供總線,通過總線從I/O擴展單元讀取電平信號的狀態(tài)數(shù)據(jù),實現(xiàn)對多個電平信號的狀態(tài)監(jiān)測。這種采用總線外接I/O擴展單元的方法很好地解決了連接電平信號的I/O管腳數(shù)量不夠的問題,同時也無需增加EPLD或占用已有的EPLD的I/O管腳。
進一步地,本發(fā)明采用主控單元的I/O管腳模擬I2C/SMBUS總線的信號線,通過模擬的總線外接多個I/O擴展單元,故擴展性強,更適于待監(jiān)測的電平信號較多的場合。
此外,本發(fā)明還利用I/O擴展單元的中斷輸出保證主控單元對電平信號進行監(jiān)測的實時性,且基于中斷的監(jiān)測方法能避免不必要地占用CPU資源。
圖1為現(xiàn)有技術(shù)的一個電平信號的監(jiān)測裝置的連接示意圖;圖2為現(xiàn)有技術(shù)的另一個電平信號的監(jiān)測裝置的連接示意圖;圖3為本發(fā)明第一和第三實施例中實時監(jiān)測裝置的連接示意圖;圖4為本發(fā)明第二實施例的實時監(jiān)測裝置的連接示意圖;圖5為本發(fā)明第二實施例中電平信號的實時監(jiān)測流程圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明進一步詳細(xì)說明。
第一實施例如圖3所示,本實施例提供的對電平信號進行實時監(jiān)測的裝置包括主控單元301和I/O擴展單元302。其中,I/O擴展單元302的I/O管腳連接待監(jiān)測的電平信號,用于監(jiān)測電平信號的狀態(tài)變換情況,當(dāng)電平信號的狀態(tài)數(shù)據(jù)變化時,I/O擴展單元302向主控單元301發(fā)出中斷請求;主控單元301響應(yīng)中斷請求,利用總線從I/O擴展單元302的總線接口讀取電平信號。
基于圖3所示的裝置,本實施例中電平信號的實時監(jiān)測方法包括以下步驟首先、連接I/O擴展單元302的I/O管腳中至少一個待監(jiān)測的電平信號發(fā)生變化時,I/O擴展單元302將所有I/O管腳上連接的電平信號狀態(tài)數(shù)據(jù)讀入內(nèi)部寄存器,并給主控單元301發(fā)出中斷請求。
其次、主控單元響應(yīng)中斷請求,通過總線從I/O擴展單元讀取待監(jiān)測電平信號的狀態(tài)數(shù)據(jù)。
第二實施例在第一實施例的基礎(chǔ)上,本實施例所提供的電平信號實時監(jiān)測裝置利用串行總線實現(xiàn)主控單元和I/O擴展單元之間的數(shù)據(jù)傳輸。如圖4所示,主控單元利用I/O管腳模擬串行總線的信號線,通過總線從I/O擴展單元讀取電平信號的狀態(tài)數(shù)據(jù)。實際應(yīng)用中,主控單元可以采用帶CPU的單片機401或微控制器實現(xiàn),也可以是常用的帶通信控制功能的CPU,例如motorola公司的power PC系列CPU等。I/O擴展單元402采用具有標(biāo)準(zhǔn)串行總線接口、多個I/O管腳以及能產(chǎn)生中斷輸出的芯片實現(xiàn)。
上述串行總線優(yōu)選I2C/SMBUS總線標(biāo)準(zhǔn)。其中,I2C(Inter-IntegratedCircuit)是philips公司開發(fā)并推出的一種具有多端控制能力的雙線雙向串行數(shù)據(jù)總線標(biāo)準(zhǔn),串行管理總線(SMBUS,Serial Management Bus)是1995年由Intel公司提出的另一種總線標(biāo)準(zhǔn),SMBUS能夠兼容I2C總線標(biāo)準(zhǔn),故本發(fā)明中將I2C和/或SMBUS表示為I2C/SMBUS總線標(biāo)準(zhǔn)。I2C/SMBUS總線標(biāo)準(zhǔn)規(guī)定在一次數(shù)據(jù)傳輸中,由一個設(shè)備充當(dāng)主設(shè)備,控制自身與另一個具有單一地址的設(shè)備(從設(shè)備)之間的數(shù)據(jù)傳輸,主設(shè)備為數(shù)據(jù)傳輸過程產(chǎn)生時鐘信號。
由于I2C/SMBUS總線需要串行時鐘線(SCL)和串行數(shù)據(jù)線(SDA)來保證數(shù)據(jù)傳輸,故本實施例中,單片機401提供兩個I/O管腳分別模擬SCL和SDA。如圖4所示,單片機401的兩個模擬SCL和SDA總線的管腳連接I/O擴展單元402的I2C/SMBUS總線接口,從I/O擴展單元402讀取電平信號的狀態(tài)數(shù)據(jù),則I/O擴展單元402需要有標(biāo)準(zhǔn)的I2C/SMBUS總線接口。
現(xiàn)有的大部分I/O擴展芯片都具有I2C/SMBUS總線接口、多個I/O管腳以及能產(chǎn)生中斷輸出。例如philips公司的PCA9555、PCA9554等芯片;MAXIM公司也有滿足上述要求的I/O擴展芯片。
進一步地,模擬總線外接兩個上拉電阻403,阻值可選4.7k歐姆,并設(shè)置上拉電壓Vcc與單片機401的供電電壓一致,通常Vcc設(shè)為+5V。
如圖4所示的裝置中,單片機的I/O管腳模擬的I2C/SMBUS總線最多可以接入八片相同類型的I/O擴展芯片。比如模擬的I2C/SMBUS總線上接入八片PCA9555,而PCA9555有16個I/O管腳,所以模擬一條I2C/SMBUS總線能對128個電平信號進行狀態(tài)監(jiān)測。八個I/O擴展芯片的中斷輸出并接在單片機的同一個中斷輸入口,且I/O擴展芯片的I2C/SMBUS總線接口也并接在單片機模擬的總線上。只要有一個I/O擴展芯片發(fā)出中斷請求,單片機就響應(yīng)并執(zhí)行中斷,逐個讀取I/O擴展芯片的電平信號狀態(tài)數(shù)據(jù),將所有電平信號的狀態(tài)數(shù)據(jù)保存到單片機。
進一步地,如果需要監(jiān)測的電平信號超過128個,還可以再利用單片機的另外兩個I/O管腳模擬另一條I2C/SMBUS總線,實現(xiàn)對另外128個電平信號的狀態(tài)監(jiān)測。
上述單片機可以用帶通信控制功能的CPU替換,利用該類型CPU的通用I/O(GPIO)管腳來模擬I2C/SMBUS總線。
基于圖4所示的裝置,本實施例的電平信號實時監(jiān)測方法如圖5所示,包括以下步驟步驟501當(dāng)連接到I/O擴展單元的I/O管腳上的至少一個電平信號發(fā)生變化時,I/O擴展單元內(nèi)部的邏輯電路和寄存器啟動工作,將所有I/O管腳上的電平信號狀態(tài)數(shù)據(jù)讀入內(nèi)部寄存器,并發(fā)出中斷請求給單片機。
上述電平信號發(fā)生變化是指在某個時鐘周期到來時,電平信號的狀態(tài)數(shù)據(jù)與上一個時鐘周期不同,即電平信號從高電平變?yōu)榈碗娖?,或反之從低電平變?yōu)楦唠娖?。如果所有電平信號的狀態(tài)數(shù)據(jù)都沒有變化,則I/O擴展單元既不讀入電平信號的狀態(tài)數(shù)據(jù),也不發(fā)出中斷請求。只要有一個電平信號的狀態(tài)數(shù)據(jù)發(fā)生變化,I/O擴展單元就會讀入電平信號的狀態(tài)數(shù)據(jù),并向單片機發(fā)出中斷請求/INT。
對于I/O擴展單元上電初始化的特殊情況,I/O擴展單元會自動將I/O管腳初始狀態(tài)讀入內(nèi)部寄存器。在單片機初始化時,即使沒有接收到I/O擴展單元的中斷請求,也需要從I/O擴展單元讀取I/O管腳的狀態(tài)數(shù)據(jù)。
在I/O擴展單元的芯片設(shè)計中,每個I/O管腳都邏輯映射為I/O擴展單元內(nèi)部寄存器中的某個位,故與I/O管腳連接的電平信號的狀態(tài)數(shù)據(jù)被保存到寄存器的相應(yīng)位。
步驟502單片機響應(yīng)中斷,模擬I2C/SMBUS總線,實時地從I/O擴展單元讀取電平信號的狀態(tài)數(shù)據(jù)。
本步驟中,單片機模擬I2C/SMBUS總線,讀取電平信號狀態(tài)數(shù)據(jù)的過程具體如下1、單片機的兩個I/O管腳模擬I2C/SMBUS總線的兩個信號線SCL和SDA,可選單片機的P1和P3端口中任意兩個管腳模擬總線信號線。如果單片機沒有外接擴展存儲器,也可以利用P0和P2口的管腳來模擬。
2、單片機通過模擬的總線信號線向I/O擴展單元發(fā)送一個啟動位,啟動數(shù)據(jù)傳輸。隨后,單片機向I/O擴展單元傳送I/O擴展單元的地址,并傳送讀寫位‘0’給I/O擴展單元,表示要寫一個命令字到I/O擴展單元。
此處,單片機傳送的地址有七位,其中四位是I/O擴展芯片的類型,剩余三位A2、A1和A0是I/O擴展芯片的硬件連接地址,例如當(dāng)A2設(shè)置為低電平接地、A1也設(shè)置為接地、A0設(shè)置為高電平上拉到電源時,該芯片的硬件地址為001。
3、I/O擴展單元接收到地址后,判斷該地址與自身地址是否匹配,若匹配則給單片機發(fā)送應(yīng)答。
4、單片機接收到應(yīng)答位后,傳送I/O擴展單元中保存電平信號狀態(tài)數(shù)據(jù)的寄存器地址給I/O擴展單元,I/O擴展單元收到寄存器地址后再次回復(fù)一個應(yīng)答位。
其中,單片機根據(jù)圖4所示的連接關(guān)系獲得保存電平信號狀態(tài)數(shù)據(jù)的寄存器地址,并事先保存在單片機中。
5、單片機再次傳送一個啟動位,并傳送I/O擴展單元的地址。該操作與步驟2相同。隨后,單片機傳送讀寫位‘1’給I/O擴展單元,表示要讀取步驟4發(fā)送的寄存器地址中的電平信號的狀態(tài)數(shù)據(jù)。
6、I/O擴展單元對單片機的請求給予應(yīng)答,逐位發(fā)送寄存器地址中的電平信號狀態(tài)數(shù)據(jù)。單片機接收所有電平信號的狀態(tài)數(shù)據(jù),并在數(shù)據(jù)傳輸完畢后發(fā)送通知位完成本次狀態(tài)數(shù)據(jù)的讀取操作。
上述步驟2~步驟6中,單片機和I/O擴展單元之間的數(shù)據(jù)傳輸都是通過模擬的I2C/SMBUS總線完成的,且單片機和I/O擴展單元之間的數(shù)據(jù)傳輸滿足I2C/SMBUS總線時序。
當(dāng)單片機讀取了I/O擴展單元的電平信號狀態(tài)數(shù)據(jù)后,I/O擴展單元發(fā)出的中斷請求被清除。只有在I/O擴展單元的I/O管腳狀態(tài)有新的變化時,I/O擴展單元才會再次產(chǎn)生中斷請求。
上述步驟501和步驟502中,I/O擴展單元在電平信號發(fā)生變化時發(fā)出中斷請求給單片機,并在單片機傳送讀寫位‘1’給I/O擴展單元時,才將I/O擴展單元的I/O管腳狀態(tài)數(shù)據(jù)保存到內(nèi)部寄存器。
第三實施例本實施例的實時監(jiān)測裝置如圖3所示,在第一實施例的基礎(chǔ)上,主控單元301直接利用自身的并行總線從I/O擴展單元302讀取電平信號,則I/O擴展單元302需采用帶有并行總線接口的芯片實現(xiàn)。
對應(yīng)上述裝置,本實施例的電平信號實時監(jiān)測方法包括以下步驟首先、至少一個待監(jiān)測的電平信號發(fā)生變化時,I/O擴展單元將待監(jiān)測信號的狀態(tài)數(shù)據(jù)讀入內(nèi)部寄存器,并發(fā)出中斷請求給主控單元。上述過程是通過I/O擴展單元內(nèi)部的邏輯電路和寄存器實現(xiàn)的。
其次、主控單元響應(yīng)中斷請求,通過并行總線從I/O擴展單元讀取待監(jiān)測信號的狀態(tài)數(shù)據(jù)。
在第一、第二以及第三實施例中,實時監(jiān)測裝置所監(jiān)測的電平信號可以是干結(jié)點信號。
由上述的實施例可見,本發(fā)明的這種電平信號的實時監(jiān)測方法和裝置可以通過總線外接I/O擴展單元,故擴展性強,適用于待監(jiān)測的電平信號多的場合,且基于中斷的監(jiān)測方法能避免不必要地占用CPU資源。
權(quán)利要求
1.一種電平信號的實時監(jiān)測方法,用于包含主控單元的設(shè)備,其特征在于,將待監(jiān)測的電平信號連接到預(yù)先設(shè)置的輸入/輸出擴展單元,該方法包括以下步驟a、至少一個待監(jiān)測的電平信號發(fā)生變化時,輸入/輸出擴展單元發(fā)出中斷請求給主控單元,并保存待監(jiān)測的電平信號狀態(tài)數(shù)據(jù);b、主控單元響應(yīng)中斷請求,通過總線從輸入/輸出擴展單元讀取待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟b所述的通過總線讀取待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)的方法包括b1、利用主控單元的輸入/輸出管腳模擬串行總線的信號線;b2、主控單元從模擬的串行總線信號線發(fā)送數(shù)據(jù)讀取請求到輸入/輸出擴展單元;b3、輸入/輸出擴展單元應(yīng)答數(shù)據(jù)讀取請求,發(fā)送待監(jiān)測電平信號的狀態(tài)數(shù)據(jù)到主控單元。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主控單元為單片機或帶通信控制功能的CPU,則步驟b所述的總線為串行總線或并行總線。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述串行總線為I2C總線,或SMBUS總線。
5.根據(jù)權(quán)利要求1至3任一項所述的方法,其特征在于,所述電平信號為干結(jié)點信號。
6.一種電平信號的實時監(jiān)測裝置,包括主控單元,其特征在于,該裝置進一步包括輸入/輸出擴展單元,用于連接待監(jiān)測的電平信號,當(dāng)至少一個待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)發(fā)生變化時,保存待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)并發(fā)出中斷請求到主控單元;所述主控單元,用于響應(yīng)輸入/輸出擴展單元發(fā)出的中斷請求,并通過總線從輸入/輸出擴展單元讀取待監(jiān)測的電平信號狀態(tài)數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述主控單元為單片機或帶通信控制功能的CPU。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述輸入/輸出擴展單元為具有串行或并行總線接口的輸入/輸出擴展芯片;所述輸入/輸出擴展單元為具有中斷輸出端口的輸入/輸出擴展芯片。
9.根據(jù)權(quán)利要求6至8任一項所述的裝置,其特征在于,所述串行總線包含主控單元利用其輸入/輸出管腳模擬的一條或多條I2C總線或SMBUS總線。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述串行總線并行連接一個或多個輸入/輸出擴展單元。
全文摘要
本發(fā)明公開了一種電平信號的實時監(jiān)測方法。該方法的過程包括待監(jiān)測信號連接到輸入/輸出擴展單元,至少一個待監(jiān)測信號發(fā)生變化時,輸入/輸出擴展單元發(fā)出中斷請求給主控單元,并保存待監(jiān)測的電平信號狀態(tài)數(shù)據(jù);主控單元響應(yīng)中斷請求,通過總線從輸入/輸出擴展單元讀取待監(jiān)測信號的狀態(tài)數(shù)據(jù)。本發(fā)明還同時公開了一種電平信號的實時監(jiān)測裝置,該裝置包括輸入/輸出擴展單元和主控單元。本發(fā)明的這種方法和裝置擴展性強,適用于待監(jiān)測的電平信號較多的場合,且基于中斷的監(jiān)測方法能避免不必要地占用CPU資源,保證主控單元對電平信號的狀態(tài)監(jiān)測的實時性。
文檔編號G01R31/28GK1811480SQ200510002940
公開日2006年8月2日 申請日期2005年1月26日 優(yōu)先權(quán)日2005年1月26日
發(fā)明者方慶銀, 張冬艷 申請人:華為技術(shù)有限公司