基于FPGA的按键独立寻址的方法技术

技术编号:17917317 阅读:57 留言:0更新日期:2018-05-10 21:14
本发明专利技术公开基于FPGA的按键独立寻址的方法,该方法包括:步骤1,定义Y扫描控制线和X状态控制线;步骤2,在按键监控状态下,预先将Y扫描控制线的全部输出设为0,实时监控X状态控制线的输入状态;步骤3,在X状态控制线不全为1的情况下,开始执行扫描,在Y扫描控制线循环状态下,执行X状态控制线的逐行扫描;其中,在Y扫描控制线循环状态下,对非当前扫描行的输出为高阻态。该基于FPGA的按键独立寻址的方法实现了按键独立寻址,互不干扰,在两个按键同时被按下的情况下,能够分别识别,互不影响。

【技术实现步骤摘要】
基于FPGA的按键独立寻址的方法
本专利技术涉及基于FPGA的按键独立寻址的方法。
技术介绍
按键导光板是加固显示器的主要组成部分,对显示器的性能控制有重要作用。在加固显示器上使用的按键导光板大多采用一体化设计方式,有若干个独立按钮组成,分别对应亮度加减、对比度加减、以及其他功能按键。通过按键导光板将亮度、对比度等按键的变化信息送到温控电路板、再由温控板将按键的变化信息送给显示器接口视频板处理,以达到规定的控制结果。为了适应机载使用环境按键导光板上的按键、字符还要具有夜间照明功能。按键导光板的电路示意图如图1所示。按键阵列主要有按键和扫描线组成。从图1可知,按键是公用行线和列线的,并非完全独立的,所以为了正确定位对应的按键被按下,就要采用行列扫描的方式进行定位。通常的扫描架构如图2所示。扫描电路的主控制器多为单片机或者FPGA,同时为了满足默认状态初始值的要求,对所有的扫描线都采用了上拉电阻上拉的方式。在扫描的过程中固定的某一组连线为控制器输入,如X总线,另一组为输出,如Y总线。控制器周期性的扫描Y总线,周期性的对Y总线的各线赋“0”,Y总线输出状态为“11110”、“11101”、“11011”、“10111”、“01111”这5个状态不断的循环。在每一Y状态检测X的输入,如果有按键被按下,X输入的数据对应位被置“0”,松开后又变为“1”。通过这种方式就定位到被按下的按键。
技术实现思路
本专利技术的目的是提供一种基于FPGA的按键独立寻址的方法,该基于FPGA的按键独立寻址的方法在不改变原有电路的前提下,采用FPGA对按键阵列进行控制,实现了按键独立寻址,互不干扰,在两个按键同时被按下的情况下,能够分别识别,互不影响。为了实现上述目的,本专利技术提供了一种基于FPGA的按键独立寻址的方法,该方法包括:步骤1,定义Y扫描控制线和X状态控制线;步骤2,在按键监控状态下,预先将Y扫描控制线的全部输出设为0,实时监控X状态控制线的输入状态;步骤3,在X状态控制线不全为1的情况下,开始执行扫描,在Y扫描控制线循环状态下,执行X状态控制线的逐行扫描;其中,在Y扫描控制线循环状态下,对非当前扫描行的输出为高阻态。优选地,在步骤3中,该方法还包括:在X状态控制线不全为1的情况下,开始执行扫描,在Y扫描控制线循环状态下,执行X状态控制线的逐行扫描,在单按键扫描的情况下,一旦在X状态控制线不全为1的情况下,跳到按键监控状态。优选地,在步骤2中,对每个按键的状态进行监控的方法还包括:对每个按键进行独立采样,当任意一个按键被按下后,对该按键进行计数,在任意一个按键被按下超过第一预设时间的情况下,判定该按键为长按状态;在任意一个按键被按下低于第一预设时间的情况下,判定该按键为短按状态;在多个键被按下的情况下,判定该按键为多按状态。优选地,在步骤3中,FPGA对非当前扫描行的输出为高阻态。优选地,通过计数器对该按键进行计数。优选地,所述第一预设时间为3-5s。优选地,所述第二预设时间为0.01-2s。根据上述技术方案,本专利技术提出基于FPGA的按键独立寻址的方法,在不改变原有硬件的基础上,通过控制扫描线的输出状态,和优化FPGA扫描控制程序,实现对按键阵列中的每个按键独立控制,并能够识别按键的长按、短按、双按等情况,并且能够根据不同的情况,做出不同的控制响应。本专利技术的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本专利技术,但并不构成对本专利技术的限制。在附图中:图1是说明本专利技术的一种按键导光板的电路连接示意图;图2是说明本专利技术的一种按键扫描电路架构图。具体实施方式以下结合附图对本专利技术的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本专利技术,并不用于限制本专利技术。本专利技术提供一种基于FPGA的按键独立寻址的方法,该方法包括:步骤1,定义Y扫描控制线和X状态控制线;步骤2,在按键监控状态下,预先将Y扫描控制线的全部输出设为0,实时监控X状态控制线的输入状态;步骤3,在X状态控制线不全为1的情况下,开始执行扫描,在Y扫描控制线循环状态下,执行X状态控制线的逐行扫描;其中,在Y扫描控制线循环状态下,对非当前扫描行的输出为高阻态。基于FPGA的按键导光板独立寻址的方法。在不改变原有电路的前提下,采用FPGA对按键阵列进行控制,实现了按键独立寻址,互不干扰,在两个按键同时被按下的情况下,能够分别识别,互不影响。根据图2的架构,这种扫描方法简单易用,算法简单,但有一个缺点——不能独立寻址,当处于同一列的两个按键同时被按下后,控制器就不能正确的识别和定位按键了。如图1的按键S1和S2被按下后,扫描线X1,Y1,Y2被连接在一起。由于扫描过程中Y1,Y2其中的一个被赋“0”,而另一个为“1”。这样就会存在冲突,因为X1同时被置“1”和置“0”。如果长时间处于这种状态下,还会损伤控制器。但在加固显示器的使用过程中会有按键锁死的情况发生,也即按键导光板上有个按键始终被按下,而不能弹起。如果不采取措施的话,按键导光板上的部分按键就会存在失灵或者识别错误的情况发生,导致主机执行错误的命令,严重的时候会造成重大的飞行事故。所以需要采用按键独立寻址的方式来避免这种情况的出现。为了解决以上问题,有两种方式能够实现,这取决于采用的主控制器,如果主控制器采用的是单片机,则只有采用在Y总线上串联电阻的方式来避免“0”、“1”状态的冲突,这就会造成硬件的改版,带来研发周期和费用的增加。如果采用的是FPGA作为主控制器,可以在不改变原有的硬件电路的基础上,通过调整扫描方式和算法来实现按键独立寻址的目的。本专利技术是基于FPGA的实现按键独立寻址的方法。通过设置处于非扫描状态的扫描线的输出状态,将其输出状态置为高阻态,来避免同一列按键同时按下后接收线状态冲突的问题。同时,采用对每个按键进行独立采样的方式,能够做到对每个按键独立控制,能够识别长按、短按、双按等情况,并且能够根据不同的情况,做出不同的控制。这种方式既极大的提高了加固显示器的性能安全,同时也大大的减少了硬件的复杂度和成本,提高了系统的可靠性。扫描控制主要是针对FPGA外围扫描线的控制以及扫描状态的读取,是直接面向于底层硬件的。定义Y1,Y2…,Y5为扫描控制线,X1,X2…,X5为扫描状态输入线。在按键控制模式下,扫描线Y全部输出为“0”,同时实时的监控X线的输入状态,一旦有按键按下,X线的状态就不全为“1”。说明有按键按下,程序开始逐行扫描,以定位具体的按键位置。扫描的方式是逐行的给扫描线置“0”,如果被按下的按键刚好在此行的话,输入的扫描状态的对应位置就会出现“0”状态。例如,Y2状态为“0”,同时X3状态也为“0”,则说明第Y2行X3列的按键被按下。这是常规的扫描方式,为了识别多个按键同时按下的情况,需要做如下的改进,也是本专利技术的创新之一。1)为了避免同一列的多个按键被同时按下,造成X输入端状态冲突的问题,在不改变硬件电路的情况下,对扫描线的输出做出控制。FPGA对非当前扫描行的输出为高阻态,当前扫描行的输出仍为“0”。整个扫描过程的Y输出状态变化顺序为:“ZZZZ0”,“ZZZ0本文档来自技高网...
基于FPGA的按键独立寻址的方法

【技术保护点】
一种基于FPGA的按键独立寻址的方法,其特征在于,该方法包括:步骤1,定义Y扫描控制线和X状态控制线;步骤2,在按键监控状态下,预先将Y扫描控制线的全部输出设为0,实时监控X状态控制线的输入状态;步骤3,在X状态控制线不全为1的情况下,开始执行扫描,在Y扫描控制线循环状态下,执行X状态控制线的逐行扫描;其中,在Y扫描控制线循环状态下,对非当前扫描行的输出为高阻态。

【技术特征摘要】
1.一种基于FPGA的按键独立寻址的方法,其特征在于,该方法包括:步骤1,定义Y扫描控制线和X状态控制线;步骤2,在按键监控状态下,预先将Y扫描控制线的全部输出设为0,实时监控X状态控制线的输入状态;步骤3,在X状态控制线不全为1的情况下,开始执行扫描,在Y扫描控制线循环状态下,执行X状态控制线的逐行扫描;其中,在Y扫描控制线循环状态下,对非当前扫描行的输出为高阻态。2.根据权利要求1所述的基于FPGA的按键独立寻址的方法,其特征在于,在步骤3中,该方法还包括:在X状态控制线不全为1的情况下,开始执行扫描,在Y扫描控制线循环状态下,执行X状态控制线的逐行扫描,在单按键扫描的情况下,一旦在X状态控制线不全为1的情况下,跳到按键监控状态。3.根据权利要求1所述的基于FPGA的按键独立寻址的方法,其特征在于,在...

【专利技术属性】
技术研发人员:陈文明
申请(专利权)人:中航华东光电有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1