input子系统分析:1. 概述及主要数据结构分析

一、概述

1. input子系统是什么?
    input子系统是linux用来管理不同类型、不同原理、不同的输入信息的众多输入设备的系统
    
    这边要注意,input子系统只支持字符流的输入设备,并不支持如lcm、camera等非字符流的设备
    
    input子系统支持的常见设备有:键盘、鼠标、触摸屏、游戏手柄、sensor、按键
    
linux中有很多个子系统:平台总线,input子系统,i2c子系统等。为了使代码复用,且简洁统一,均分成三层

input子系统分层:
    input handler层  
      
    input 核心层  
      
    input driver层  

2. input子系统有什么作用?

假设没有input子系统,输入设备要传递数据到应用层,驱动工程师必须实现以下操作步骤:
    1. register_chrdev_region()    // 申请设备号
    2. cdev_init()                // malloc一个字符设备cdev,初始化,并实现fops
    3. cdev_add();                // 注册一个cdev
    4. class_create();             // 创建类
    5. device_create();            // 创建设备节点
    6. request_irq();             // 硬件初始化,并注册中断(并非所有设备都需要中断)
    7. init_waitqueue_head(&mywq_head);    // 实现阻塞
    8. copy_to_user()            // 在中断处理函数中,将数据    
以上有一些步骤是通用的,input子系统将通用步骤提取出来,并统一实现

采用input子系统后,步骤大大化简,驱动工程师仅需要实现上面的第7步,其他步骤都由input子系统完成

二、input子系统中主要数据结构

struct input_event {
	struct timeval time; 	// 时间戳
	__u16 type; 			// 数据类型 如EV_ABS
	__u16 code;				// 具体数据 如ABS_MT_POSITION_X
	__s32 value;			// 值 如tp的横坐标
};

struct input_dev {
	const char *name; // sysfs中给用户看的信息
	const char *phys;
	const char *uniq;
	struct input_id id;
	//evbit实际是一个位表,描述输入设备能够产生什么类型数据
	unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; // EV_KEY,EV_ABS, EV_REL
	//表示能够产生哪种按键
	unsigned long keybit[BITS_TO_LONGS(KEY_CNT)];//KEY_POWER.. 能够表示768bit,直接用24个long来表示
							 // KEY_CNT == 768   BITS_TO_LONGS== nr/32 = 768/32==24
	//表示能够产生哪种相对坐标数据
	unsigned long relbit[BITS_TO_LONGS(REL_CNT)];// REL_X
	//表示能够产生哪种绝对坐标数据
	unsigned long absbit[BITS_TO_LONGS(ABS_CNT)]; //ABS_X
	unsigned long mscbit[BITS_TO_LONGS(MSC_CNT)];
	unsigned long ledbit[BITS_TO_LONGS(LED_CNT)];
	unsigned long sndbit[BITS_TO_LONGS(SND_CNT)];
	unsigned long ffbit[BITS_TO_LONGS(FF_CNT)];
	unsigned long swbit[BITS_TO_LONGS(SW_CNT)];

	struct device dev; // 继承device对象

	struct list_head	h_list;
	struct list_head	node; //表示节点
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘 要 目前,电计价秤的使用非常普及,逐渐会取代传统的杆秤。由压力传感器制作的电 秤已广泛地应用到各行各业, 特别是微处理机的出现,工业生产过程自动化程度的不断提高,压力传感器已成为过程 控制中的一种必需的装置。 本文介绍了一种以MSP430单片机微处理器最小系统,并配以几个主要的集成电路器件设 计成的智能电秤。本系统是利用压力传感器采集当前压力,根据输入单价,准确计算 出物品的金额;同时把重量、金额显示到液晶LCD上,它可以分析压力过量程,并发出超 重提示。 关键词:压力传感器 放大器 单片机 Abstract Nowadays,electronics steelyard is very popular and it will replace the traditional steelyard gradually. The electronics steelyard made by the pressure transducer has been applied to all professions, especially the emergence of the microprocessor. And with the increasing of the automation of industry production, the pressure transducer becomes a kind of essential device in the process control. This text introduces a kind of intellectual electrical system which is controlled by MSP430 and consists of several integrated circuits. This system gathers the pressures by the pressure sensor according to the price input ,calculate the price accurate and display the weight and the money in the LCD ,It also can analyses that whether the pressure is excessive and send out the overweight result. Keywords: Pressure Transducer amplifier Single chip microcomputer 第1章 绪论 1 1.1 称重技术和衡器的发展 1 1.2 电秤的发展现状 1 1.3 现有电秤的不足 3 1.4 电秤设计背景 3 第2章 电秤的总体电路设计 4 2.1 MSP430单片机电秤系统的构成 4 2.2 硬件设计电路原理图 4 第3章 MSP430单片机电秤系统硬件设计 6 3.1 系统的电源电路 6 3.2 称重传感器 7 3.2.1 电阻应变式压力传感器的工作原理 8 3.2.2 压阻应变式压力传感器的结构 10 3.3 小信号放大 12 3.3.1 噪声的性质及其处理方法 12 3.3.2 信号放大器电路的组态分析 12 3.4 A/D转换电路 16 3.4.1 ADC12结构 3.4.2 ADC12主要的特点 3.4.3 系统的AD转换模式 18 3.5 电秤系统采用MSP430F436单片机 19 3.5.1 MSP430F436单片机特点 21 3.5.2 MSP430F436结构 21 3.5.3 MSP430F436引脚 22 3.5.4 MSP430F436存储器结构和地址空间 23 第4章 键盘和LCD的设计 24 4.1 键盘电路设计 24 4.1.1 键盘的物理结构 24 4.1.2 电秤的键盘设计 26 4.2 液晶显示LCD的设计 27 4.2.1 LCD概述 27 4.2.2 液晶驱动模块功能结构 29 第5章 软件设计 32 5.1 主程序 32 5.2 A/D程序 33 5.3 按键程序 34 5.4 数据处理 35 5.5 LCD程序 36 结 论 致 谢 参考文献 附 录 45 第1章 绪论 质量是测量领域中的一个重要参数,称重技术自古以来就被人们所重视,人们为了对货 物交换量进行计量,就必需有计量仪器,秤作为最普遍、最普及的计量设备,电秤取 代机械秤是科学技术发展的必然规律。低成本、高智能化的电秤无疑具有极其广阔的 市场前景。 本文设计的电秤以MSP430单片机为主要部件, 通过对硬件和软件进行设计。硬件由电阻应变式称重传感器、MSP430单

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值