自卸除鐵器中直接控制級應用軟件的子模塊設計是在對系統(tǒng)進行結(jié)構(gòu)化功能模塊化分后,詳細地確定各個功能模塊的具體實施方案。本章節(jié)將給出幾個重要功能模塊的設計思路、控制要點和程序流程圖。 1、上層指令接收與處理: 。1)通訊設計思路∶ 系統(tǒng)是一主多從的總線邏輯控制方式,每臺控制機柜都有自己的地址。如果采用軟件的方式進行地址判斷,過程管理級的監(jiān)控計算機(上位機)發(fā)出的任何一條指令都能被所有下位機收到,若在程序中進行地址判斷和指令的取舍,無形中加大了處理器的負擔。由于直接控制級軟件涉及數(shù)據(jù)采集、控制、液晶顯示、通訊等各個方面,工作量很大,為了使通訊效率,采用第九位的通訊方式,由硬件來判斷地址的身份,若屬于本機,則繼續(xù)接受下面的數(shù)據(jù);若不屬于本機,則直接忽略掉,整體不用控制程序的參與。 。2)第九位通訊方式的規(guī)則是:當自卸除鐵器系統(tǒng)串口控制寄存器中的第九位SM20位為1時,只有滿足如下條件才會進入接收中斷∶①SM20為邏輯1;②接收的第九位為邏輯1并且接收到的地址與UARTO的地址匹配。因此地址的濾波是由硬件自動完成的。當收到正確的地址字節(jié)后,程序?qū)M20置0,準備接收上位機的命令或數(shù)據(jù)字節(jié)。地址的濾波是在串口中斷中進行的。 2、數(shù)據(jù)發(fā)送模塊: 制定發(fā)送策略∶集中監(jiān)控計算機每隔一定的時間發(fā)送查詢命令讀取直接控制級的參數(shù)。參數(shù)包括兩部分:是自卸除鐵器的運行狀態(tài),一是除鐵器的電氣和物理參數(shù)。每當下位機的運行狀態(tài)發(fā)生變化時,就把當前所有參數(shù)打包存儲在鐵電存儲器內(nèi),并附加當時的時間信息(參數(shù)包加時間信息稱為一個條目)。當參數(shù)被查詢時,若存儲器內(nèi)有歷史數(shù)據(jù)未上傳,則先上傳歷史數(shù)據(jù);若所有歷史數(shù)據(jù)均上傳完畢,則僅上傳當前參數(shù)。采用這種方式,可節(jié)省存儲空間并提高上傳效率,因為其避免了相同信息的存儲和發(fā)送。該策略又能保證通訊故障時直接控制級的信息不丟失,確保了該層功能獨立、控制獨立的地位。 3、模擬量采集與處理: 轉(zhuǎn)換的開始是由程序發(fā)出指令,器件自動完成的。C8051F020提供了4種轉(zhuǎn)換啟動方式,可由ADC控制寄存器中的啟動轉(zhuǎn)換方式位設定。本方案采用寫ADOBUSY位的方式。 ADOBUSY位在數(shù)據(jù)轉(zhuǎn)換期間為1,轉(zhuǎn)換結(jié)束后復0。ADOBUSY的下降沿將觸發(fā)一個中斷通知處理器,并將中斷標志ADOINT置1,進入自卸除鐵器的中斷服務程序,該標志需要軟件清除,以便下一次轉(zhuǎn)換的順利進行。