单片机的数字量输入与输出方法总结
扫描二维码
随时随地手机看文章
1.数字量输入方法
由于数字量输入过程中干扰的作用时间较短,因此在采集数字信号时,可多次重复采集,直到若干次采样结果一致时,才认为其有效。例如通过A/D转换器测量各种模拟量时,如果有干扰作用于模拟信号上,就会使A/D转换结果偏离真实值。这时如果只采样一次A/D转换结果,就无法知道其是否真实可靠,而必须进行多次采样,得到一个A/D转换结果的数据系列,对这些数据系列进行各种数字滤波处理,最后才能得到一个可信度较高的结果值。如果对于同一个数据点,经多次采样后得到的信号值变化不定,说明此时的干扰特别严重,已经超出允许的范围,应该立即停止采样并给出报警信号。如果数字信号属于开关量信号,如限位开关、操作按钮等,则不能用多次采样取平均值的方法,而必须保证每次采样结果绝对一致才行。这时可按图9.11编写一个采样子程序,程序中设置有采样成功和采样失败标志。如果对同一开关量信号进行若干次采样,其采样结果完全一致,则成功标志置位,否则失败标志置位。后续程序可通过判别这些标志来决定程序的流向。
2.数字量输出方法
单片机系统的输出中,有很多是数字量,如各种显示器、步进电机或电磁阀的驱动信号等。即使是以模拟量输出,也是经过D/A转换而获得的。单片机给出了一个正确的数据后,由于外部干扰的作用有可能使输出系统得到一个错误的数据,从而使输出系统发生误动作。对于数字量输出软件抗干扰最有效的方法是重复输出同一个数据,重复周期应尽量短。这样输出系统在得到一个被干扰的错误信号后,还来不及反应,一个正确的信号又来到了,从而可防止误动作的产生。
在程序结构上,可将输出过程安排在监控循环中,循环周期取得尽可能短,就能有效地防止输出设备的错误动作。需要注意的是,经过这种安排后,输出功能是作为一个完整的模块来执行的。与这种重复输出措施相对应,软件设计中,还必须为各个外部输出设备建立一个输出暂存单元。每次将应输出的结果存入暂存单元中,然后再调用输出功能模块,将暂存单元的数据输出,不管该数据是刚送来的,还是以前就有的。这样可以让每个外部设备不断得到控制数据,从而使干扰造成的错误状态不能得以维持。在执行输出功能模块时,应将有关输出接口芯片初始状态也一并重新设置。因为干扰的作用可能使这些芯片的工作方式控制字发生变化,而不能实现正确的输出功能,重新设置控制字就能避免这种错误,确保输出功能的正确实现。
有些输出设备具有增量控制特性,如自带环型分配器和功率驱动器的步进电机组件,单片机只需输出方向控制信号和步进脉冲信号。这时,方向控制信号就可以重复输出,而步进脉冲信号是不能重复输出的。每重复一次就要前进一步。因其对于这种情况,如果有位置控制功能(如光栅、磁尺等定位信号),便可实现闭环控制,本身有足够的抗干扰性能,不用重复输出。如果没有检测手段(即开环控制系统),建议采用软件算法来实现环型分配器的功能,单片机直接输出各相绕组的电位控制信号,经光电隔离后传送给功率驱动放大器,这时仍可采用重复输出的方式来防止步进电机失步。只是这时的重复周期与步进电机的转速之间要有严格的关系,如每个换相周期内重复输出两三次。在步进电机以最高速度运转时,CPU最好以主要机时来完成电机的控制。在作进给运动时,由于速度较慢,可以很容易地实现重复功能,减少失步,并有充足的时间来完成各种控制算法。
对于D/A转换方式实现的输出,因本质上仍为数字量,同样可以通过重复输出的方式来提高输出通道的抗干扰性能,在不影响反应速度的前提下,在模拟输出端接一适当的RC滤波电路(起到增加惯性的效果),配合重复输出措施便能基本消除模拟输出通道上的干扰信号。