基于姿态编码的数字逻辑电路设计
2022-03-02李万益区济初黄靖敏黄晓洁许伟辉廖理想
李万益,区济初,黄靖敏,邝 芸,邹 领,黄晓洁,许伟辉,廖理想
(1.广东第二师范学院计算机学院,广州 510303;2.广东第二师范学院数学学院,广州 510303;3.湖南农业大学信息与智能科学技术学院,长沙 410125)
0 引言
目前,人体动作识别是计算机视觉和人机交互领域的热点问题,在虚拟现实、智能控制和终端设备上具有广泛的应用[1],并且精准识别人体动作所表达的语义信息可以为人们生产生活提供便利,在人类生活的各个方面都具有重大意义[2]。此外,姿态识别的目的是使计算机能够通过自主理解和运算,分析出当前人体呈现的姿态并根据当前姿态预测出接下来最有可能会呈现的姿态,它在可穿戴计算、智能监控、行为分析、动画建模等行业都有着广泛的应用,无论是实际还是学术应用,都具有重要的研究意义[3-4]。同时,姿态识别是计算机科学和语言技术的主题,在人机交互智能领域发挥着重要作用,但由于在相对复杂的环境难以处理,因此有必要探索更合适的方法[5-6]。再者,随着社会针对姿态识别在现实生活适用性的要求不断提高,合适的数据集的开发变得越来越具有挑战性[7]。因此,本文基于姿态编码,利用硬件实现设计出相应的数字逻辑电路,融入姿态识别的知识进行探索,将所设计的数字逻辑电路通过Multisim进行仿真测试,所得的模拟结果与真值表完全一致。
数字系统以二值信号为基础,用数字信号对数字量进行算数运算和逻辑运算,数字系统又被称为数字电路。随着社会的不断发展,科学技术的不断进步,数字集成电路技术的水平不断地提高,相比于以前的技术发展是一个领先性的发展趋势[8],已被广泛应用于数字测量、数字计算机、现代数字通信、自动控制等领域[9]。与其他类型的电路设计相比,数字电路设计有着自己的特点,数字电路集成度高、稳定可靠,功能容易实现,应用十分广泛[10-11]。
Multisim是一款功能强大的电子电路仿真软件,该软件界面友好、操作方便[12],可以直观地观察电路运行结果,通过不断的测试和调试,可以检验方案的正确性,便于及时发现,修改错误,简化实验步骤及难度,大大提高了电路设计的效率和可靠性,是电路设计中常用的软件之一[13]。
对于Multisim数字化集成电路的仿真测试,测试的主要目的是测试电路功能是否达到或满足实际要求的效果,根据电路的输入端输入测试,然后检验电路产生相应的反应输出信号,分析输出信号是否为预期结果,从而体现所设计电路应有的科学性与合理性。具体数字逻辑电路设计见下文。
1 姿态编码识别电路的设计
下面将设计一个基于姿态编码的数字逻辑电路。
假设只有初始状态(即还没有进行识别的状态)、走路、跑步、跳舞4种姿态情况。请设计一个姿态编码识别电路,要求能显示输出结果。
首先,根据要求,我们可以设定出外输入端A,输出端X、Y,并确定4种有效的姿态,当Q2Q1Q0=000时,其为初始状态;当Q2Q1Q0=001或010或100(即只有一个1)为走路状态;当Q2Q1Q0=011或110或101(即只有两个1)为跑步状态;当Q2Q1Q0=111(即全1)为跳舞状态。因此,画出其相关状态转换图,如图1所示。
图1 姿态编码识别电路的状态转换图
该状态图中有一个外输入端A,它的功能是对输入信号进行检测。该状态转换图描述了7个有效状态,4个不同的循环,根据外输入端A的状态0或1,分别进入到相应的循环当中,并且伴随得到相应X Y的输出结果。在Q2Q1Q0=011状态下,若输入端A=0,电路将回到初始状态,同时给出X=0,Y=0;若输入端A=1,电路将回到初始状态,同时给出X=0,Y=1。在Q2Q1Q0=100状态下,若输入端A=0,电路将回到初始状态,同时给出X=0,Y=1;若输入端A=1,电路将回到初始状态,同时给出X=1,Y=0。在Q2Q1Q0==101状态下,若输入端A=0,电路将回到初始状态,同时给出X=0,Y=1;若输入端A=1,电路将回到初始状态,同时给出X=1,Y=0。在Q2Q1Q0=110状态下,若输入A=0,电路将回到初始状态,同时给出X=1,Y=0;若输入A=1,电路将回到初始状态,同时给出X=1,Y=1。这个状态图可以为后面设计逻辑变量和选用相关触发器实现相应逻辑功能提供重要依据。
然后,选用D触发器进行设计,画出卡诺图并化简,得到相应状态方程,如图2所示。
图2 姿态编码识别电路的卡诺图及其状态方程(续)
图2 姿态编码识别电路的卡诺图及其状态方程
卡诺图化简尽可能以2的整数幂次来圈数字1或0,并且满足卡诺图的“圈尽量大,圈尽量少”的画图规则进行画圈[14],其中X表示任意信号值,可为1或0。本文以圈1为例,以相同数字保留,不同的数字去掉,边缘的数字相邻,以及最后得出的逻辑表达是与或式的原则进行化简。经过5个图的化简,最终得到相应原态和次态状态方程,结果与如图2所示的结果一致。据此可以得到相关变量的真值表,如表1所示。
表1 姿态编码识别电路的真值表
该真值表描述了状态变化的过程,是状态转换图(图1)的另一种表达方式,不仅可以直观地显示逻辑关系中每种状态下的逻辑结果,还可以更直接地描述状态转换过程,同时能够更好地描述所设计电路的功能。
在设计电路时,应该合理充分地应用器件的功能,以最简的方式满足需求。因此,在设计姿态编码识别电路时,为达到最简电路的标准应尽可能用最少的触发器和门电路,并且其输入端数目也要尽量少[15]。在得到真值表后,我们选择D触发器,其电路图如图3所示。
图3 姿态编码识别电路图
为把我们的理论成果应用到硬件开发来,下面在Multisim14[16-18]的仿真软件上进行电路设计并测试,选用D触发器来实现姿态编码识别。如图4所示,我们选用了3个D触发器(型号为74ls74D),13个与门(7个二输入一输出与门、4个三输入一输出与门、2个四输入一输出与门),5个或门(4个二输入一输出或门、1个三输入一输出或门),1个非门(一输入一输出非门),选用2个指示灯做调试输出X和Y的显示,最后选用一个10Hz的时钟信号源做时钟信号同步。
图4 Multisim14的姿态编码识别电路图
在完成元器件的线材连接后,部分仿真测试结果如图5所示,举例展示了其中两种不同有效循环的仿真测试结果,该两种循环分别为000→001→011→000和000→001→100→000,其中值得注意的是在状态为011时,当外输入端A为0时,输出结果X Y的值为00,当外输入端A为1时,输出结果X Y的值为01;在状态为100时,当外输入端A为0时,输出结果X Y的值为01,当外输入端A为1时,输出结果X Y的值为10。因此,经过Multisim14仿真的测试,我们发现所设计电路的仿真结果符合预期,且该电路能够达到较好的设计性能,具备较强的可移植性,根据外输入A的输入状态和时钟的切换,可以显示出状态000→001→011→000,000→001→100→000,000→010→101→000,000→010→110→000的四种不同的有序循环,相应的X、Y指示灯的亮灭也显示出相应输出结果XY的值。即该电路通过D触发器(型号为74LS74D)进行逻辑运算后,把相应的高低电平输出到相应的逻辑门,再把相关二进制的电平转换为指示灯显示X、Y的电平,最终显示出相应的逻辑结果,由此证明本文所设计的方法有效,电路设计符合预期。
二是通过应用服务器对数据库服务器中存储的各传感器数据从多个维度进行分析,将数据进行处理分析并展现到互联网上、微信等手机APP。
图5 姿态编码识别电路的部分仿真测试结果
图5 姿态编码识别电路的部分仿真测试结果(续)
图5 姿态编码识别电路的部分仿真测试结果(续)
2 结语
本文基于姿态编码进行了数字逻辑电路的设计,并且利用Multisim14软件进行仿真测试。经仿真实验验证,所设计的电路实用性较强,可满足一定数量姿态编码识别需求。在使用D触发器的姿态编码识别的时序电路设计中,电路设计图简洁,便于扩展。所提出的电路在逻辑变量编码的设计时,也考虑电路自启动和自检查功能,大大降低电路工作时的故障率。若有更多类型的姿态编码需要识别,触发器和逻辑门的数量也要相应增加。本文所提出的设计方案中只需要增加状态编码和相应逻辑变量。