在工业控制系统中,A/D、D/A,显示等输入/输出接口电路是必不可少的。这些接口与CPU之间采用查询或中断方式工作,而这些设备或接口对干扰很敏感,干扰信号一旦破坏了某一接口的状态字后,就会导致CPU误认为该接口有输入/输出请求而停止现行工作,转去执行相应的输入/输出服务程序。但由于该接口本身并没有输入/输出数据,从而使CPU资源被该服务程序长期占用,而不释放,其它任务程序无法执行,使整个系统出现“死锁”。对这种干扰造成的“死锁”问题,在软件编程中,可采用“时间片”的方法来解决。其具体步骤为:
根据不同的输入/输出外设对时间的要求,分配相应的最大正常的输入/输出时
间。在每一输入/输出的任务模块中,加入相应的超时判断程序。这样当干扰破坏了接口的状态造成CPU误操作后,由于该外设准备好信息长期无效,经一定时间后,系统会从该外设的服务程序中自动返回,保证整个软件的周期性不受影响,从而避免“死锁”情况的发生。