打印

寻求多继电器控制方案

[复制链接]
4900|46
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
magic_yuan|  楼主 | 2012-10-22 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位老师,
    近来搞个系统,需要控制多个继电器,初步预估32个,准备用2803来驱动。
    数量少反正是好搞,蛋疼的是这个数量有点多,要是来个一一对应,那我系统MCU的IO口基本都耗光了,太不合算。于是想用73HC595通过串口,74LS273来控制2803,貌似是好点。
    有没有更好的招,在外面资料上隐约看到用存储器控制什么的,这方面没经验,请高手指点!
   十分感谢!

相关帖子

沙发
谈的元| | 2012-10-23 00:00 | 只看该作者
595通用,比较好

使用特权

评论回复
板凳
qzlbwang| | 2012-10-23 08:21 | 只看该作者
595已经有锁存,为什么还要加273?
用EPROM?------地址线是输入线,数据线是输出线。

使用特权

评论回复
地板
Tinnal| | 2012-10-23 08:41 | 只看该作者
用595组成的串行IO扩展是最好、最通用的方案。
如果已经存在外部总线,用273组成的并行IO扩展方案也是比较好用的,会比串行方案效率高。
http://wenku.baidu.com/view/ab0756ee81c758f5f61f67d3.html

没有听过什么EPROM的扩展方案。这个方案不行。地址线是输入线,数据线是输出线,当PLA用倒可以。

使用特权

评论回复
5
gx_huang| | 2012-10-23 08:45 | 只看该作者
可以用273、572之类的8D锁存器。
4片,8个数据,4个片选锁存,12个GPIO就够了,速度比串行的快许多。

使用特权

评论回复
6
qzlbwang| | 2012-10-23 08:52 | 只看该作者
4# Tinnal
用EPROM的方案是:把各种可能的输出组合都写入EPROM,然后控制时只要对应输入地址就可以得到对应的输出。说白了就是把EPROM当成译码器来用。

使用特权

评论回复
7
qzlbwang| | 2012-10-23 09:02 | 只看该作者
用EPROM方案,数据线的位数决定了输出的位数,地址线的位数决定了输出的可能组合。
比如说要控制32个继电器,那么就需要用3片8位数据线的EPROM。而假定输出可能的组合是100种,那么就需要用7位地址线作输入线(也就是说要占用单片机的7个I/O口,6位最多只有64种状态,7位有128种状态)。如果只有30种状态,那么就只需要占用5个I/O口(5位最多能有32种状态)。其余类推。

使用特权

评论回复
8
gx_huang| | 2012-10-23 10:56 | 只看该作者
LS说的天花乱坠的。

使用特权

评论回复
9
magic_yuan|  楼主 | 2012-10-23 11:19 | 只看该作者
3# qzlbwang
准备用273进行扩展

使用特权

评论回复
10
magic_yuan|  楼主 | 2012-10-23 11:39 | 只看该作者
5# gx_huang
多谢大侠
   我是准备用595串转并,然后273再进行扩展。对速度要求倒不是很高,算下来我用的MCU主时钟有50M,这些时间损耗倒不怎么影响系统的损耗

使用特权

评论回复
11
Tinnal| | 2012-10-23 13:52 | 只看该作者
4# Tinnal  
用EPROM的方案是:把各种可能的输出组合都写入EPROM,然后控制时只要对应输入地址就可以得到对应的输出。说白了就是把EPROM当成译码器来用。 ...
qzlbwang 发表于 2012-10-23 08:52

唉,这样也太不惜成本了,这些N继电器只需要有M个组合(M<<2^N),(M<2^可用IO数)。那么除了真的把IO扩到N个外,我宁可用二级管做个译码电路也不用EPROM,成本差太远了。

使用特权

评论回复
12
magic_yuan|  楼主 | 2012-10-23 13:55 | 只看该作者
7# qzlbwang
多谢大侠!
   你的意思我大致理解,只是如果控制32个继电器,那么组合数约为4000M,组合数是有点多啊

使用特权

评论回复
13
Tinnal| | 2012-10-23 13:59 | 只看该作者
5# gx_huang  
多谢大侠
   我是准备用595串转并,然后273再进行扩展。对速度要求倒不是很高,算下来我用的MCU主时钟有50M,这些时间损耗倒不怎么影响系统的损耗 ...
magic_yuan 发表于 2012-10-23 11:39

晕,你有必要这么折腾吗。你违反了做硬件的一个大原则:尽量减少元件类型。同时,你也会让你们写软件的人讨厌:先给你移位寄存,再通出移位寄存出来的IO去控制372进行并行IO扩展。再说,你这么做可以效率比全移位寄存扩展还低。

要通用,真接595。要性能,直接273。没有任何混用的理由。

使用特权

评论回复
14
magic_yuan|  楼主 | 2012-10-23 14:26 | 只看该作者
14# Tinnal
一切以节约IO为中心啊,都是被逼的

使用特权

评论回复
15
magic_yuan|  楼主 | 2012-10-23 14:26 | 只看该作者
14# Tinnal
这样我8个IO可以就可以控制32个继电器了

使用特权

评论回复
16
gx_huang| | 2012-10-23 14:55 | 只看该作者
如果你光用595,应该4个就可以了,兄弟!

使用特权

评论回复
17
阮天宇00| | 2012-10-23 15:59 | 只看该作者
选一个最简单的FPGA~
硬件io扩充的终极之路~随便一个10多块的FPGA都有上百个I/O口

使用特权

评论回复
18
qzlbwang| | 2012-10-23 16:34 | 只看该作者
12# Tinnal
这只是一种方案而已,只有特殊的情况下才有人用。在需要的状态(输出组合)数不大的情况下,即占用较少的I/O口又有速度快的优点(这时候可以选用几片容量不大EPROM并行输出)。现在用的人很少。既然楼主提出这个方案,那么作为多一种选择也是可以的,即便不选用也算是一种扩展思维(现在很多年轻人不知道这个方法)。

使用特权

评论回复
19
qzlbwang| | 2012-10-23 16:36 | 只看该作者
其实根据楼主的介绍,如果是我的话我会选4片595的方案。

使用特权

评论回复
20
qzlbwang| | 2012-10-23 16:44 | 只看该作者
13# magic_yuan
其实你并没有弄明白。呵呵,大多数时候,需要的组合数并不会是2的N次方(比如楼主理解的32次方)。特别是某些实际应用场合,真正需要的组合数是比较少的。如果说输出逻辑上各个继电器是完全独立的,各种可能的组合都会发生(这就是楼主理解的组合数达2的N次方这么多的情况),那么这种方案就根本是个很差的方案,完全不应该选用。
所以说选用什么方案都是要根据实际情况来决定。没有最好,只有更适合。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:发到3000帖时,生活大概完成了一种转折。

359

主题

2770

帖子

7

粉丝