Welcome 微信登录

首页 / 操作系统 / Linux / 嵌入式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#进行扩展,以方便前期测试。Ubuntu 10.10下安装配置SkyEye 1.3.1将CentOS安装在移动硬盘相关资讯      嵌入式Linux 
  • 2015年嵌入式和移动Linux领域的几  (01月06日)
  • OpenWRT嵌入式Linux故障排除一例  (01/17/2015 13:04:14)
  • 10款专为嵌入式系统打造的Linux平  (06/27/2014 14:27:09)
  • 解决嵌入式Linux中的时区问题  (09/13/2015 13:49:19)
  • 嵌入式Linux开发环境搭建  (08/19/2014 05:49:14)
  • 嵌入式Linux中GPS信息读取与处理  (04/08/2014 19:31:47)
本文评论 查看全部评论 (0)
表情: 姓名: 字数