linux添加扩展gpio,嵌入式Linux工控板的ISA总线GPIO扩展
1、精简ISA总线GPIO扩展原理
在工业领域,GPIO的应用非常广泛,英利嵌入式Linux工控板上自带有16路GPIO。然而在实际应用中,经常需要多于16路的GPIO作为控制或者数据信号使用,这时候可以通过英利精简ISA总线进行GPIO扩展。采用最普遍的逻辑芯片74HCT138、74HCT245和74HCT273即可以扩展出满足需求数量的GPIO。此外,由于上述芯片的成本极其低廉,单片采购价只有几角钱,因此在满足功能需求的同时,也有效地控制了产品成本。
采用精简ISA总线进行GPIO扩展的方法是:使用74HCT138对片选控制信号CS1#、读信号RD#、写信号WE#以及地址线SA0-SA2进行地址译码,产生不同地址偏移量的片选信号,应用程序通过对不同地址的读写操作来控制相应的GPIO(GPIO通过74HCT245或者74HCT273连接到数据线SD0-SD7)。
2、DIN扩展示例
数字输入DIN的扩展原理图如下所示:
如图所示,地址译码产生了8个读片选信号,每一个信号通过控制一片74HCT245可以操作8路GPIO,这样,一次译码之后可以扩展出64路DIN。本图中只使用了RD0#和RD1#两个片选信号,客户如有需要可以使用RD2#-RD7#继续进行扩展。
3、DOUT扩展示例
数字输出DOUT的扩展原理图如下所示:
如图所示,地址译码产生了8个写片选信号,每一个信号通过控制一片74HCT273可以操作8路GPIO,这样,一次译码之后可以扩展出64路DOUT。本图中只使用了WE0#和WE1#两个片选信号,www.linuxidc.com客户如有需要可以使用WE2#-WE7#继续进行扩展。
综上所述,通过一次地址译码能够扩展出64路输入、64路输出一共128路GPIO,可以满足绝大多数工业控制领域的需求。而这128路GPIO扩展所需的器件成本只有十几元,相对于工控整机产品而言,几乎可以忽略不计。
此外需强调的是,如果用户扩展出的GPIO是用做不同的功能,那么最好将不同的功能单元完全分开。
比如,需要进行如下扩展控制: • 3路DIN • 2x3矩阵键盘 • 5个LED • 4路继电器单元 • 7路DOUT
则分配思路如下:由于有5个功能单元,每一个功能单元所需的GPIO都不超过8个,因此使用2片74HCT245分别用于矩阵键盘、DIN;4片74HCT273分别用于矩阵键盘、LED、继电器、DOUT,读信号用RD0#和RD1#,写信号用WE0#-WE3#。这样,应用程序分别独立控制各功能单元,可以加快开发进度,提高开发的成功率和后期维护效率;而多使用几个芯片,并不会给开发成本增加任何负担。
上述示例的具体分配方案如下: • 1片74HCT245,使用片选信号RD0#,接矩阵键盘的输入信号
• 1片74HCT245,使用片选信号RD1#,接3路DIN
• 1片74HCT273,使用片选信号WE0#,接矩阵键盘的输出信号
• 1片74HCT273,使用片选信号WE1#,接LED
• 1片74HCT273,使用片选信号WE2#,接继电器
• 1片74HCT273,使用片选信号WE3#,接7路DOUT
另需注意:
1、建议将地址偏移量为0的端口留作矩阵键盘使用,以便于系统自动加载驱动和应用程序的编写。
2、由于英利提供的例程均采用CS1#作为片选信号,因此建议客户也使用CS1#进行扩展,以方便前期测试。
linux添加扩展gpio,嵌入式Linux工控板的ISA总线GPIO扩展相关推荐
- 嵌入式linux 添加中断,《嵌入式linux应用程序开发完全手册》中断控制器操作(外部中断)学习笔记...
<嵌入式linux应用程序开发完全手册>中断控制器操作(外部中断)学习笔记 一.ARM中断体系 当一个"异常"发生时,或者说当收到一个中断触发信号时,ARM9将会自动完 ...
- arm linux 添加ntp服务,嵌入式linux添加NTP服务
版本信息: Linux version 4.1.15 需求: RTC时间不够精确,过一段时间就可以看出和实际时间有明显出入,有必要添加NTP服务,使系统可以与网络同步时间. 首先把NTP服务build ...
- linux 直流电机驱动设计,嵌入式Linux直流电机驱动.PPT
嵌入式Linux直流电机驱动.PPT 嵌入式Linux直流电机驱动实验 开发平台中直流电机驱动的实现 S3C2410芯片自带定时器,所以控制部分省去了三角波产生电路.脉冲调制电路和PWM信号延迟及信号 ...
- linux内核培训广州,嵌入式Linux驱动开发高级培训班-华清远见嵌入式培训中心
课程目标 本课程以案例教学为主,系统地介绍Linux下有关FrameBuffer.MMC卡.USB设备的驱动程序开发.参加本课程学习的学员,因为具备了Linux设备驱动开发基础,所以本课程针对性较强, ...
- 嵌入式linux的发展历程,嵌入式Linux论文(历史发展分类及应用)
嵌入式Linux 一.嵌入式Linux简介 1.1 嵌入式Linux历史 随着社会的发展,信息化技术的成熟和数字化产品的普及,让以计算机技术.芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用 ...
- 嵌入式linux实时化技术,嵌入式Linux实时化技术
引言 Linux支持PowerPC.MIPS.ARM.DSP等多种嵌入式处理器,逐渐被用于多种关键性场合.其中实时多媒体处理.工业控制.汽车电子等特定应用对Linux提出了强实时性需求.Linux提供 ...
- 嵌入式linux开发环境 cpu,嵌入式Linux开发环境的搭建之:U-Boot移植-嵌入式系统-与非网...
5.2 U-Boot移植 5.2.1 Bootloader介绍 1.概念 简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序.通过这段程序,可以 ...
- linux spidev 应用_嵌入式Linux设备树语法总结
1 设备树的说明 在写完嵌入式驱动总结后,对于设备树相关的语法和使用一直都想进行系统的描述,但是因为最近比较忙碌,所以一直拖到现在才完成初版,对于整个嵌入式Linux驱动开发中,设备树语法和构建是其中 ...
- 嵌入式linux应用层中断函数,嵌入式LINUX驱动开发(中断处理函数)
嵌入式LINUX驱动开发(中断处理函数) 2020年08月11日 | 萬仟网网络运营 | 我要评论 嵌入式LINUX驱动学习之7中断相关(一)中断处理函数一.函数.头文件及说明二.编译举例:一.函数. ...
最新文章
- PCL:从法线计算到曲率计算并可视化
- php的基本语法和数据类型
- c# 第28节 面向对象概述
- Android -- 贝塞尔使圆渐变为桃心
- 你知道什么是Jest吗?
- 有关mysql事务冲突
- redis 控制调用频率
- Outlook应用指南(1)——数据备份还原技巧
- Oracle Connect By Start With 总结==转帖
- ldap seach java_从LDAP(Java)检索信息
- maven多模块项目部署到服务器,GitHub - baxias/foweb: 一个基于 Spring+SpringMVC+Mybatis 的Maven多模块项目。(实现前后端分离的服务器端)...
- 2019年信息安全工程师备考经验
- LeetCode 120. 三角形最小路径和
- Confluence 6 SQL 异常的问题解决
- PS 钢笔工具如何拖拽滑杆
- 软件测试工程师 岗位分析
- PDF文件太大,有哪些方法可以减小PDF
- php中$this-是什么意思
- 李呈祥:bilibili在湖仓一体查询加速上的实践与探索
- 那些 Cynthia 教我的事 之 PMSec (三)
热门文章
- linux rpm 装 mac,在linux上搭建用于mac时间机器备份的server
- 浅谈ArcGIS GP服务 :一、框架介绍
- html文本显示不完整,div css网页显示不完整的原因分析及解决方案
- windows 10 搭建Omnipeek环境
- 【论文阅读】Interpolation Consistency Training for Semi-Supervised Learning
- 推荐uml 流程图 在线编辑工具
- QT 之 编译错误总结(2)
- 写作小技能:开篇制胜的首段:写序言的故事模板(SCQA: Situation情境, Conflict冲突, Question问题, Answer回答。)
- 如何使用中国气象局API开发天气APP
- 建筑CAD制图教程:排水坡线功能介绍