開(kāi)關(guān)電源監(jiān)控系統(tǒng)的設(shè)計(jì)
計(jì)算機(jī)請(qǐng)求命令包格式如圖3所示。該命令包采用的是異步通訊格式。4個(gè)字節(jié)的起始符和結(jié)束符分別用來(lái)表征命令包的開(kāi)始和結(jié)束,目的站地址就是計(jì)算機(jī)所希望建立通信的電源地址號(hào),源地址是計(jì)算機(jī)地址號(hào)。命令碼是計(jì)算機(jī)對(duì)電源所發(fā)出的命令信息,用來(lái)表征計(jì)算機(jī)發(fā)出的命令是希望讀取電源的輸出電壓、輸出電流值以及開(kāi)關(guān)量的狀態(tài)值還是希望設(shè)置電源的輸出電壓、輸出電流值以及開(kāi)關(guān)量的狀態(tài)值。校驗(yàn)碼和信息長(zhǎng)度是用來(lái)檢驗(yàn)數(shù)據(jù)傳輸是否正確、有無(wú)數(shù)據(jù)丟失的信息量。數(shù)據(jù)信息是命令包的主要部分,包含命令包所要傳送的輸出電壓、輸出電流值和開(kāi)關(guān)量的狀態(tài)值等數(shù)據(jù)信息(僅設(shè)置電源狀態(tài)命令包含有此項(xiàng),讀取電源狀態(tài)命令包不含此項(xiàng))。當(dāng)電源接收到計(jì)算機(jī)發(fā)出的請(qǐng)求命令包后,執(zhí)行完計(jì)算機(jī)命令的相關(guān)操作后必須返回計(jì)算機(jī)一個(gè)應(yīng)答數(shù)據(jù)包。電源響應(yīng)計(jì)算機(jī)的應(yīng)答數(shù)據(jù)包也采用相同的數(shù)據(jù)包格式,只不過(guò)目的站地址和源站地址分別為計(jì)算機(jī)地址號(hào)和電源自身的地址號(hào)。
4監(jiān)控系統(tǒng)軟件設(shè)計(jì)
該監(jiān)控系統(tǒng)軟件設(shè)計(jì)主要由兩部分構(gòu)成,一部分是安裝在電源上的通信模塊軟件設(shè)計(jì),另一部分是用于計(jì)算機(jī)監(jiān)控的上位機(jī)軟件設(shè)計(jì)。
監(jiān)控系統(tǒng)通信模塊控制芯片是80C52單片機(jī),通信模塊軟件采用匯編語(yǔ)言編寫(xiě),實(shí)現(xiàn)了數(shù)據(jù)采集、處理和與計(jì)算機(jī)通信等功能。軟件設(shè)計(jì)采用中斷查詢(xún)方式。所謂“中斷”就是計(jì)算機(jī)在執(zhí)行某一段程序的過(guò)程中,由于某種原因,有必要中止原程序的執(zhí)行,而去執(zhí)行相應(yīng)的中斷處理程序,待處理結(jié)束之后,再回來(lái)繼續(xù)執(zhí)行被中斷了的原程序。這種程序在執(zhí)行過(guò)程中由于外界的隨機(jī)原因而被中間打斷的情況即稱(chēng)為“中斷”。通信模塊在未與計(jì)算機(jī)建立通信之前,主程序處于等待接收數(shù)據(jù)狀態(tài),不斷查詢(xún)外部串行口中斷。一旦計(jì)算機(jī)發(fā)出請(qǐng)求命令包,所有通信模塊接收到數(shù)據(jù)包后均進(jìn)入串行口中斷程序進(jìn)行判斷識(shí)別,只有地址號(hào)與數(shù)據(jù)包中所包含的目的站地址相同的電源才與計(jì)算機(jī)建立通信關(guān)系并解讀請(qǐng)求命令數(shù)據(jù)包,根據(jù)命令產(chǎn)生相應(yīng)的啟動(dòng)A/D、D/A或讀取開(kāi)關(guān)量、設(shè)置開(kāi)關(guān)量等操作,并返回與請(qǐng)求命令數(shù)據(jù)包格式相同的響應(yīng)數(shù)據(jù)包給計(jì)算機(jī)。通信模塊程序框圖如圖4所示。
評(píng)論