怎么才能使单片机输出的是开关量 单片机采集控制信号

一种开关量信号的采集方法
专利名称一种开关量信号的采集方法
技术领域本发明涉及一种开关量信号(DI信号)的采集方法,该采集方法可应用于风力发电机组开关量信号的采集。
背景技术在大型风力发电机组中,涉及到大量的工业过程信号的采集,其中DI信号占据了很大的一部分比例,由于DI信号多为开关、继电器等无源器件给出,而无源信号在断开的时候,由于DI接口为悬空状态,从而形成一条很长的天线。因此即便DI接口通常在硬件上采用了光电隔离和施密特触发器整形,但是在诸如风力发电机组这样严酷的工业环境中,存在着很多的瞬态干扰,而所述的瞬态干扰会随机地造成某一次读入DI接口信号发生错误,发生DI采集错误导致风力发电机组控制系统误判的现象仍时有发生。针对诸如风力发电机组这样严酷的工业环境,有必要提出一种可有效对开关量信号进行采集的方法。
本发明的目的是针对上述背景技术存在的缺陷,提供一种可避免因瞬态干扰而引起开关量信号采集错误的开关量信号采集方法。为实现上述目的,本发明一种开关量信号的采集方法,应用于16位的单片机系统,其包括
步骤I :当开关量信号采集方法的程序开始时,先行预置的16位缓冲字内容始终保持为0χ0000,所述先行预置的16位缓冲字内容为0x0000表示被采集的具有开关功能的无源器件输出的开关量信号为处于断开状态,对应输出电平为低电平,所述先行预置的16位缓冲字内容0x0000保存在单片机内部SRAM的I个字单元中;
步骤2 :单片机中的运算器将单片机内的SRAM中的缓冲字内容逻辑左移一位,并覆盖先行预置的16位缓冲字内容;
步骤3:单片机中的运算器访问单片机的数据总线,读取对应DI接口的IO寄存器一次并保存到CPU的通用寄存器中,得到对应DI接口的开关量信号;
步骤4:单片机的运算器将已逻辑左移一位的缓冲字与由DI接口读入的开关量信号进行一次或运算,并将进行或运算的结果保存到单片机内部的SRAM中;
步骤5 =CPU判断步骤4中单片机内的SRAM中的缓冲字内容是否为0xFFFF、0x0000或既不为0x0000也不为OxFFFF中的一种;
步骤6 :CPU根据步骤5中缓冲字内容对应更新DI输入状态为高电平或低电平的一种,开关量信号完成一次采集判断,如该缓冲字的16位内容更新为0xFFFF,则更新DI输入状 态为高电平,如该缓冲字的16位内容更新为0χ0000,则更新DI输入状态为低电平,如该缓冲字的16位内容更新为既不为0x0000也不为OxFFFF中的一种,则不进行更新,以后按照预定采集周期并按序重复步骤2到步骤6。综上所述,本发明一种开关量信号的采集方法必须连续十六次采集代表DI接口的开关量信号值都必须为同一个值,才能更新表示开关量信号状态的值,故而能有效的避免因DI采集错误导致风力发电机组等工业控制系统的误判,达到有效采集开关量信号目的。
图I为本发明一种开关量信号的采集方法的采集流程示意图。
具体实施例方式为详细说明本发明的技术内容、构造特征、所达成目的及效果,以下兹例举实施例并配合附图详予说明。请参阅图1,本发明一种开关量信号采集方法是基于单片机字寻址的方式来对开关量信号(DI信号)的进行有效地采集并作出相应的逻辑判断的方法。本发明一种开关量信号采集方法主要是针对16位的单片机系统,但也不排除其他位数的单片机系统应用本方法进行开关量信号的采集。针对业内普通技术人员,通常情况下开关量信号仅存在两种情况,其中,“0”表示具开关功能的无源器件处于断开状态,此时相对应的电平为低电平;“I”表示具开关功能的无源器件处于闭合状态,此时,相对应的电平为高电平。步骤I :当开关量信号采集方法的程序开始时,先行预置的16位缓冲字内容始终保持为=0x0000,所述先行预置的16位缓冲字内容为0x0000表示被采集的具有开关功能的无源器件输出的开关量信号处于断开状态,对应输出电平为低电平,所述先行预置的16位缓冲字内容0x0000保存在单片机内部SRAM的I个字单元中;
步骤2 :单片机中的运算器将单片机内的SRAM中的缓冲字内容逻辑左移一位,并覆盖先行预置的16位缓冲字内容;
步骤3:单片机中的运算器访问单片机的数据总线,读取对应DI接口的IO寄存器一次并保存到CPU的通用寄存器中,得到对应DI接口的开关量信号;
步骤4:单片机的运算器将已逻辑左移一位的缓冲字与由DI接口读入的开关量信号进行一次或运算,并将进行或运算的结果保存到单片机内部的SRAM中;
步骤5 =CPU判断步骤4中单片机内的SRAM中的缓冲字内容是否为0xFFFF、0x0000或既不为0x0000也不为OxFFFF中的一种;
步骤6 :CPU根据步骤5中缓冲字内容对应更新DI输入状态为高电平或低电平的一种,开关量信号完成一次采集判断,如该缓冲字的16位内容更新为0xFFFF,则更新DI输入状态为高电平,如该缓冲字的16位内容更新为0X0000,则更新DI输入状态为低电平,如该缓冲字的16位内容更新为既不为0x0000也不为OxFFFF中的一种,则不进行更新,以后按照预定采集周期并按序重复步骤2到步骤6。需要特别指出的是,本发明一种开关量信号采集方法在进行开关量信号(DI信号)采集时,至少需要按序重复步骤2到步骤6连续十六次才可以实现电平的第一次更新,即由低电平向高电平更新,前提是由DI接口读入的开关量信号(DI信号)始终是表示具有开关功能的无源器件处于闭合状态的“I”时,此时,先行预置的16位缓冲字内容相应的更新为OxFFFF。、
其中,在较佳实施例中,CPU先行判断单片机内的SRAM的缓冲字内容是否为OxFFFF ;再判断缓冲字内容是否为0x0000 ;最后,对既不为0x0000也不为OxFFFF进行判断。具体的,步骤5中CPU先行对单片机内SRAM中的缓冲字内容是否为OxFFFF进行判断;如是,则将步骤6中先行预置的缓冲字内容更新为OxFFFF且同时更新开关量信号(DI信号)的状态为高电平。步骤5中CPU先行对单片机内SRAM中的缓冲字内容是否为OxFFFF进行判断;如不是,再对单片机内SRAM中的缓冲字内容是否为0x0000进行判断;如是,则保持步骤6中先行预置的缓冲字内容0x0000且同时保持开关量信号(DI信号)的状态为低电平。步骤5中先行对单片机内SRAM中的缓冲字内容是否为OxFFFF进行判断;如不是,再对单片机内SRAM中的缓冲字内容是否为0x0000进行判断;如不是,则CPU将得出缓冲字 内容为既不为0x0000也OxFFFF中的一种,将步骤4中得到的缓冲字内容存储到单片机内的SRAM中。步骤5中缓冲字内容OxFFFF表示缓冲字内容所包含的16个位全部为逻辑I。步骤5中缓冲字内容0x0000表示缓冲字内容所包含的16个位全部为逻辑O。步骤5中缓冲字既不为0x0000也OxFFFF中的一种表示缓冲字内容所包含的16个位不全为逻辑I且不全为逻辑O。综上所述,本发明一种开关量信号的采集方法必须连续十六次采集代表DI接口的开关量信号(DI信号)值都必须为同一个值,才能更新表示开关量信号(DI信号)状态的值,故而能有效的避免因DI采集错误导致风力发电机组等工业控制系统的误判,达到有效采集开关量信号(DI信号)目的。以上所述的技术方案仅为本发明一种开关量信号采集方法的较佳实施例,任何在本发明一种开关量信号采集方法基础上所作的等效变换或替换都包含在本专利的权利要求的范围之内。
1.一种开关量信号的采集方法,应用于16位的单片机系统,其包括
步骤I :当开关量信号采集方法的程序开始时,先行预置的16位缓冲字内容始终保持为0X0000,所述先行预置的16位缓冲字内容为0x0000表示被采集的具有开关功能的无源器件输出的开关量信号为处于断开状态,对应输出电平为低电平,所述先行预置的16位缓冲字内容0x0000保存在单片机内部SRAM的I个字单元中;
步骤2 :单片机中的运算器将单片机内的SRAM中的缓冲字内容逻辑左移一位,并覆盖先行预置的16位缓冲字内容;
步骤3:单片机中的运算器访问单片机的数据总线,读取对应DI接口的IO寄存器一次并保存到CPU的通用寄存器中,得到对应DI接口的开关量信号;
步骤4:单片机的运算器将已逻辑左移一位的缓冲字与由DI接口读入的开关量信号进行一次或运算,并将进行或运算的结果保存到单片机内部的SRAM中;
步骤5 =CPU判断步骤4中单片机内的SRAM中的缓冲字内容是否为0xFFFF、0x0000或既不为0x0000也不为OxFFFF中的一种;
步骤6 :CPU根据步骤5中缓冲字内容对应更新DI输入状态为高电平或低电平的一种,开关量信号完成一次采集判断,如该缓冲字的16位内容更新为0xFFFF,则更新DI输入状态为高电平,如该缓冲字的16位内容更新为0X0000,则更新DI输入状态为低电平,如该缓冲字的16位内容更新为既不为0x0000也不为OxFFFF中的一种,则不进行更新,以后按照预定采集周期并按序重复步骤2到步骤6。
2.根据权利要求I所述的开关量信号的采集方法,其特征在于CPU先行对缓冲字内容是否为OxFFFF进行判断;再对缓冲字内容是否为0x0000进行判断;最后,对既不为0x0000也不为OxFFFF进行判断。
3.根据权利要求I所述的开关量信号的采集方法,其特征在于步骤5中CPU先行对单片机内部SRAM中的缓冲字内容是否为OxFFFF进行判断;如是,则将步骤6中先行预置的缓冲字内容更新为OxFFFF且同时更新开关量信号的状态为高电平。
4.根据权利要求I所述的开关量信号的采集方法,其特征在于步骤5中CPU先行单片机内部SRAM中的缓冲字内容是否为OxFFFF进行判断;如不是,再对单片机内部SRAM中的缓冲字内容是否为0x0000进行判断;如是,则保持步骤6中先行预置的缓冲字内容0x0000且同时保持开关量信号的状态为低电平。
5.根据权利要求I所述的开关量信号的采集方法,其特征在于步骤5中CPU先行对单片机内部SRAM中的缓冲字内容是否为OxFFFF进行判断;如不是,再对单片机内部SRAM中的缓冲字内容是否为0x0000进行判断;如不是,则CPU将得出缓冲字内容为既不为0x0000也OxFFFF中的一种,将步骤4中得到的缓冲字内容存储到单片机内部的SRAM中。
6.根据权利要求I所述的开关量信号的采集方法,其特征在于在进行开关量信号采集时,至少需要按序重复步骤2到步骤6连续十六次才可以实现电平的第一次更新,即由低电平向高电平更新,前提是由DI接口读入的开关量信号始终是表示具有开关功能的无源器件处于闭合导通状态的“I”时,此时,先行预置的16位缓冲字内容相应的更新为OxFFFF。
本发明公开了一种开关量信号的采集方法,该方法必须连续十六次采集代表DI接口的开关量信号值都必须为同一个值,才能更新表示开关量信号状态的值,故而能有效的避免因DI采集错误导致风力发电机组等工业控制系统的误判,达到有效采集开关量信号目的。
文档编号G05B19/042GKSQ
公开日日 申请日期日 优先权日日
发明者李泳林 申请人:成都阜特科技有限公司 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
第4章开关量信号的输入输出
下载积分:750
内容提示:第4章开关量信号的输入输出
文档格式:PDF|
浏览次数:0|
上传日期: 19:48:30|
文档星级:
该用户还上传了这些文档
第4章开关量信号的输入输出
官方公共微信单片机开关量输出接口
查看: 1187|
摘要: 1.输出口的隔离
在单片机应用系统中,为防止现场强电磁的干扰或工频电压通过输出通道反串到测控系统,一般采用通道隔离技术。输出通道的隔离最常用的组件是光耦合器,简称光耦。 光耦合器是以光为媒介传输信号的器件,它把一个发光 ...
1&?XML:NAMESPACE PREFIX = O />
1 &&&&&&&&&&& &&&&&&&&&&&&&&&& 2
OC74067407
MOV3011110VMOV3041220VMOC3000
SSRTTLHTLCMOS
45(ABCD)SSRSSR
OC330mA530VR30180V
a& &&&&&&&&&&&&&&&&&&&& b
SSR332V332mA140400VSSR6abTTLCMOS
a&& &&&&&&&&&&&&&&&&&&&&&&&&& &&bTTL
上一篇:下一篇:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:君,已阅读到文档的结尾了呢~~
第4章开关量信号的输入输出
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
第4章开关量信号的输入输出
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 开关量输出 的文章

 

随机推荐