当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]嵌入式系统可以对各种数据信息进行快速计算、分析、输出,即完成对数据的处理,但很多时候就需要用户“告诉”系统如何执行下一步动作,这时,就需要使用输入设备

嵌入式系统可以对各种数据信息进行快速计算、分析、输出,即完成对数据的处理,但很多时候就需要用户“告诉”系统如何执行下一步动作,这时,就需要使用输入设备将用户的“指示”或“依据”传递给嵌入式系统。

 

常见的人机交互输入设备包括按键、触摸屏、麦克风及其他各类用户可控输入的传感器等。随着科技的发展,不仅我们常见的交互输入设备出现了新的形态,而且也出现了不少新的交互输入方式。比如,现在手机中的电容按键及重力感应传感器、距离传感器。现在的交互设备不仅体现在硬件设备的复杂性上,而且在相关数据的复杂性上也与以往有了较大的增加。比如,可用于语音输入的麦克和可用于人脸识别的摄像头,为了完成这些人机交互输入,除了硬件输入设备对信息采集外,还需要后台进行大量的数据处理,以帮助系统“理解”用户的“输入信息”。

下面我们详细介绍最常用的输入设备:键盘/按键。

 

图 1 最常用的输入设备键盘

键盘

键盘是嵌入式应用的常用外部设备之一。键盘是由若干个按键组成的开关矩阵,它是最简单的数字量输入设备。对系统而言,键盘上不同的按键代表着不同的含义(一般来说,按键的含义可通过软件定义)。用户通过按动键盘的按键,输入数据或命令,实现简单的人机交互。

1、键盘的基本电路

键盘的基本电路是一个接触开关,通、断两种状态分别表示逻辑“0”和“1”。如图2所示,当开关打开时,处理器检测到相应引脚为高电平,表示逻辑“1”;当开关闭合时,处理器检测到相应引脚为低电平,表示逻辑“0”。

2、键盘的分类

按键排布的方式,键盘可分为可分成独立式按键键盘和矩阵式按键键盘;按读入键值的方式,可分为直读方式和扫描方式;按编码方式,可分成非编码方式和硬件编码方式;按微处理器响应方式可分为中断方式和查询方式。以上各种方式组合可构成不同硬件结构和接口的键盘。以下介绍较为常用的两种方式。

①独立式

独立式按键键盘是指将每个独立按键按一对一的方式直接接到微处理器的I/O输入端口,如图2所示。读键值时,处理器可以检测相应I/O输入端口的状态,判定输入电平,确定输入的逻辑值。按键之间在硬件和读取方式上均相互独立,所以习惯称这种按键为独立式按键。这种方式在软硬件上实现均比较简单,但每一个按键都占用一个I/O端口,占用的资源较多,一般在按键数量较少,微处理器I/O资源充足时采用。

 

图 2 键盘模型及按键抖动示意图

②矩阵式

矩阵式键盘是用n条I/O线组成行输入口,m条I/O线组成列输出口,在行列线的每一个交点上设置一个按键。如图3(b)所示,为一个4行4列的矩阵键盘。矩阵式键盘读取键值一般采用逐行扫描的方式,即输出口按位轮换输出低电平,再从输入口读入信息,最后计算各次从输入口读取的信息,获得键码。例如,将row0~3配置为输出模式,col0~3配置为输入模式;现将row0输出低电平,row1~3输出高电平,读取col0~3;如果此时第0行 0列的按键有按下,则col0检测到输入为低电平,其他列为高电平。这种方式占用I/O线较少,在按键较多的应用中采用较多。

设计键盘时,通常小于4个按键的应用,可以使用独立式接口。如果按键较多,为了减少微处理器的I/O端口的占用,可以使用矩阵式键盘。

 

图3 独立键盘与矩阵键盘

另外,如果使用处理器I/O直接与矩阵键盘接口相连,上述矩阵键盘的检测方式需要处理器不断对接口扫描检测。对速度较快的处理器来说,这种检测方式是对处理器的极大浪费。所以实际应用中建议使用专门的矩阵键盘的驱动芯片或I/O扩展芯片,来实现对矩阵键盘的检测,比如ZLG7290、 CAT9555等扩展芯片。使用驱动或I/O扩展芯片,可以将处理器从简单但频繁的键盘扫描动作中解放出来。如图4为ZLG7290实现矩阵键盘应用的基本电路,该芯片支持2×8个I/O扩展,采用I2C接口与处理器连接,并支持中断输出,最大可扩展8×8的矩阵键盘,。

 

图 4 ZLG7290矩阵键盘电路

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助...

关键字: 电机控制器 机器人 嵌入式

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

支持高达48V@5A的PD受电模式,达到目前USB PD最高标准。

关键字: 嵌入式 开发板

【2024年4月8日,德国慕尼黑讯】低碳化和数字化是当今时代人们面临的两大核心挑战,人类社会需要依靠创新和先进的技术,才能破除挑战、推动转型进程。在德国纽伦堡举办的2024国际嵌入式展(Embedded World 20...

关键字: 半导体 微控制器 嵌入式

TDK 株式会社(TSE:6762)进一步扩充 Micronas 嵌入式电机控制器系列 HVC 5x,完全集成电机控制器与 HVC-5222D 和 HVC-5422D,以驱动小型有刷(BDC)、无刷(BLDC)或步进电机...

关键字: 嵌入式 电机控制器 内存

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言
关闭
关闭