在工業(yè)控制系統(tǒng)中,A/D、D/A,顯示等輸入/輸出接口電路是必不可少的。這些接口與CPU之間采用查詢或中斷方式工作,而這些設(shè)備或接口對(duì)干擾很敏感,干擾信號(hào)一旦破壞了某一接口的狀態(tài)字后,就會(huì)導(dǎo)致CPU誤認(rèn)為該接口有輸入/輸出請(qǐng)求而停止現(xiàn)行工作,轉(zhuǎn)去執(zhí)行相應(yīng)的輸入/輸出服務(wù)程序。但由于該接口本身并沒有輸入/輸出數(shù)據(jù),從而使CPU資源被該服務(wù)程序長期占用,而不釋放,其它任務(wù)程序無法執(zhí)行,使整個(gè)系統(tǒng)出現(xiàn)“死鎖”。對(duì)這種干擾造成的“死鎖”問題,在軟件編程中,可采用“時(shí)間片”的方法來解決。其具體步驟為:
根據(jù)不同的輸入/輸出外設(shè)對(duì)時(shí)間的要求,分配相應(yīng)的最大正常的輸入/輸出時(shí)
間。在每一輸入/輸出的任務(wù)模塊中,加入相應(yīng)的超時(shí)判斷程序。這樣當(dāng)干擾破壞了接口的狀態(tài)造成CPU誤操作后,由于該外設(shè)準(zhǔn)備好信息長期無效,經(jīng)一定時(shí)間后,系統(tǒng)會(huì)從該外設(shè)的服務(wù)程序中自動(dòng)返回,保證整個(gè)軟件的周期性不受影響,從而避免“死鎖”情況的發(fā)生。