单片机IO口扩展芯片——74HC595
这是74 hc 595芯片,如图1,它是一颗单片机IO口扩展芯片,使用它,我们可以很容易的将单片机的3个输出引脚扩展为8个。
图1 74HC595芯片外观示意图
通过多个595芯片级连,可以扩展出16个,24个乃至更多的引脚,如图2。
图2 芯片扩展单片机引脚
这颗芯片通过串行数据输入,数据输出的方式为1路串行或8路并行。引脚有三种输出状态:高电平、低电平和高阻态。它的引脚驱动能力为35mA,如图3。
图3 芯片的电气性能
这是它的原理图,第14引脚为芯片的串行数据输入引脚。第1至7引脚,外加第15引脚构成了芯片的8个并行输出引脚,第九脚为1路串行数据输出引脚。第13引脚为芯片的低电平使能引脚。第10为低电平复位引脚。第11,12引脚分别为移位寄存器、存储寄存器的时钟输入引脚,我们用单片机的两只引脚控制第11、12引脚来产生数据移位、存储的时钟节拍。第8、16引脚为电源引脚。详见图4.
图4 595芯片的原理图
使用时通过第14引脚接收单片机发来的数据。第11,12引脚连接单片机产生时钟。第10引脚接入电源的正极则不复位。第13引脚接入电源的负极则使能芯片。8路并行输出引脚可以直接连接外部驱动器件,如点阵显示器、数码管等。如图5.
图5 使用时的接线图
我们可以通过第9引脚接入另外一颗595芯片的第14引脚,实现595芯片的级联,从而扩展出更多的IO端口。如图6
图6 芯片级联原理图
在嵌入式开发过程中芯片IO资源扩展的方案
在日常开发的过程中你是否遇到过硬件需要增加外设的时候发现芯片IO资源不够了。某项目老板说设备还要增加几个传感器的时候是否遇到过芯片的串口资源已经用完了。
如果出现这些问题如何解决呢?方案有很多,方案之一就是扩展,把一个IO口变成2个或者多个,把一个串口变2个或者多个。
这次就来谈谈芯片扩展的那些事情。
简单IO口扩展
UART扩展
USB扩展
简单IO口扩展
简单的IO口扩展通常采用TTL或者CMOS电路锁存器。三态门等作为扩展芯片(74L244、74LS245、74LV595、74LS377等等)。使用这些方案进行IO口扩展具有电路简单、成本低、配置灵活的特点。
方案的应用举例:
利用74LV595PW进行IO口输出扩展。
这是某家IMX6UL开发板上应用的IO口扩展方案。74LV595是带存储寄存器和3态输出的8级串行移位寄存器。移动和存储寄存器都具有单独的时钟。其是低压硅栅CMOS器件。
利用74HC165进行IO口输入扩展。
74HC165是8位并行读取或串行输入移位寄存器,可在末级得到互补的串行输出(Q7和!Q7),当异步并行读取引脚(!PL)输入为低时,从D0到D7口输入的并行数据将被读取进寄存器内。而当异步并行读取引脚为高时,数据将在每个时钟脉冲的上升沿从 引脚串行进入寄存器并将现有数据右移一位( 以此类推)。
利用这种特性,只要把Q7输出绑定到下一级的输入,即可实现移位寄存器位数的扩展。
以上就是普通IO口的常用实例,当然还有其他的扩展方案,比如专用IO扩展芯片或者加一个单片机等等。
UART(串口)扩展
常用单片机串口资源一般有1个、3个、5个。一个稍微复杂一点的嵌入式系统串口资源肯定不够用。那如何解决,只好想办法增加几个串口,也就是扩展。
之前有一个环境监测的项目,使用到GSM、WIFI、PM2.5传感器、CO2传感器、甲醛传感器、VOC传感器等等都是串口通讯的传感器。
一般的芯片都没有那么多的串口,传感器的通讯协议比较相似不能多个传感器并用一个串口,一开始的扩展方式就是增加一个子芯片用来读取各个传感器的数据然后通过一个串口传到主芯片进行处理和发送。
这个方案使用上不会有什么问题,就是在大批量生产的时候需要多次烧录程序,碰上现在这个芯片市场的影响成本已经翻了好几倍。所以就成本来说这个方案并不是最好的选择。有没有其他更好一点的方案,答案是,有。
使用过比较简单的方案就是使用模拟开关来进行串口线路切换,从而达到扩展串口的目的。这个就像是六七十年代的电话接线员,需要跟哪条线路通讯就接通哪条线路即可。下面是在某个项目中使用过的两款模拟开关芯片芯片,一个是4路的模拟开关芯片74HC4006,另一个是16路的模拟开关芯片。
74HC4006在项目中主要是实现一个串口读取4个串口通讯方式的传感器数据。
74HC4067这个芯片之前是用作传感器检测的一个项目,SM32F103RC为主控,STM32F103RC总共有5个串口,一个串口用做无线通信外还有4个串口。使用4块74HC4067芯片就可以同时测试64个串口通信方式的传感器。如果数据通信改用USB通信,那最多可以同时测试80个串口通信方式的传感器。这个方案的好处就是程序设计上不需要很复杂。而且芯片的成本比较低。
还有另外一种比较专业的串口扩展方案就是使用专用的串口扩展芯片vk3214。可以使用一个串口或者SPI接口扩展成4个串口。
扩展的子通道的UART具备如下功能特点:
每个子通道UART的波特率、字长、校验格式可以独立设置,最高可以提供1Mbps的通信速率。
每个子通道可以独立设置工作在IrDA红外通信、RS-485自动收发控制、9位网络地址自动识别、软件/硬件自动流量控制、广播接收等高级工作模式下。
每个子通道具备收/发独立的16 BYTE FIFO,FIFO的中断为4级可编程条件触发点。
提供一个子通道的调制解调器(MODEM)控制信号。
这些是该芯片的相关介绍,由于没有真正使用共也不清楚具体的情况。所以就先说那么多了。
USB扩展
USB扩展相信大家都比较熟悉,经常使用电脑的如果发现USB接口不够用的话都会买一个USB扩展器来使用。所有这个就不多说了,下面分享一个某IMX6UL开发板上面使用的一个USB2.0的扩展芯片,把一个USB口扩展成4个,就可以接更多USB接口的模块。
相关问答
单片机IO口扩展芯片哪种好,要求是双向的,大家推建一下,谢谢?
你看看你会不会用单片机的SPI通讯方式,如果会的话,你可以用74HC595来扩充I/O,你如果要双向就用163,两种芯片的区别就是595有输出锁存,163没有具体的操作也好...
电脑上的IO芯片是什么?-ZOL问答
IO一般指输入输出设备,I就是input,O是output,芯片io口输入是外面信号传输到芯片、输出是芯片内部传输信号到其他器件,输入输出是相对的,比如信号从A—》B,对于A...
电脑主板上的IO芯片有什么作用?
假如主机板出现了找不到键盘、键盘报锁、串并口失灵或是软驱读写不正常等现象,那么问题就很有可能是对它提供控制功能的I/O芯片出现了不同程度的损坏。一旦这...
什么是io扩展板?
io扩展板是一个功能简洁的microbit的IO口扩展板。产品以Gravity标准接口引出了micro:bit的所有的IO口。并额外单独引出了I2C接口和串口。由于蜂鸣器和金手指使...
主板io芯片坏了能换吗能的话价钱啊-ZOL问答
你让维修的确认下,是仅芯片损坏,还是电路(包括贴片元件比如二级管之类)也有问题?如果只是芯片,换一个即ok(假如北桥损毁,有专用焊台的一样可以换,之后和新的一...
三菱plc扩展单元如何配置io?
在你主模块CPU后面继续算,比如你I点是到X27,加了模块就是X30开始。8点的到X37,16点的到X47,再加模块就X50,以此类推。Y点也是同样。加模块注意由CPU侧算,先...
3菱3U的plc怎么添加拓展IO模块?–960化工网问答
三闹携菱FX3U的IO扩展模块上自带一个线,把裤弯升这个线插到上一个模块对应的端口上就可以了。胡老望采纳。。。。。。3菱3U的plc怎么添加拓展IO模块?960化工...
三菱fx3u不支持漏型i\o扩展模块吗?
三菱PLCFX3U是可以带扩展的。包括I/O模块和特殊模块。特殊模块就是用的2N系列的模块。最多扩展8台特殊模块,IO最多达到256点(包括每台特殊模块占用8点),如果...
显示器是通过什么插入io扩展与主体相连?
显示器通常是通过HDMI、DisplayPort、VGA等接口插入IO扩展与主体相连。这些接口可以在计算机主板或独立显卡上找到,通过插入显示器的线缆来实现连接。HDMI接...
我的主板io坏了,能修吗-ZOL问答
你安装系统在试试,如果启动正常就是io芯片坏了有用(0)回复Gc_ShowIO一般控制鼠标,键盘口之类的设备的,IO烧掉了话,是完全可以换的,我所在地方一般价钱为20-...