搜索
bottom↓
回复: 3

[讨论] 关于并行总线

[复制链接]

出0入0汤圆

发表于 2006-2-6 21:26:58 | 显示全部楼层 |阅读模式
前两天会了会zhou_1989,讨论了一下到底应该怎么玩总线。

我觉得,在小系统里,尽量不用总线,直接控制,或者I2C,因为IO少

在中大系统里(指64PIN及64PIN以上MCU),尽量用并行总线,不要直接接受占很多时续的任务,尽量把琐碎的事情交给拓展卡上的MCU来完成,自己完成重要的,需要高效高速实时的任务。



用这种系统结构的原因是中大系统非常庞大。在拓展卡里固化好了固定功能的程序以后,在主控MCU上只要读取并口,就可以达到目的,大大地简化了程序,同时大大地提高了主控MCU的反应速率。



想和大家讨论一下中大系统中的并行总线。



我认为,在中大系统中最好应用ARM7。而拓展卡上的MCU则用AVR。



我所想的总线为16位并行总线。其中8位数据(双向),4位设备地址(双向),4位设备内部地址(可当做命令)。另外还需要有呼叫线,ACK线,RESET,电源+5,VSS,-,2路ADC,总计24根线。



16线对于拓展卡上的MCU来说似乎有点太多。zhou_1989提出这样一个解决办法:用双向8位琐存器来锁存,AVR的8位端口接2片锁存器,用2个IO来控制两片锁存器的锁存,以此用8位端口连接16位总线,达到减少占用I/O口的目的。



通讯协议是这样设想的:当呼叫线为低电平,总线无人通讯,拓展卡MCU与总线间为高阻。当主控想读取拓展卡的数值时,先写8位地址,然后把呼叫线置高电平。拓展卡发现呼叫线为1,读取8位地址,发现高四位为自己的设备地址,先置数据位,然后将ACK置1,提示主控数据准备完毕。主控发现ACK=1后,读取数据,完毕后将呼叫线置0。拓展卡MCU发现呼叫线0后,将数据位和地址位均置高阻,然后将ACK置0。



当拓展卡有信息发送给总线时,首先确认ACK,呼叫为0,接着把地址位设为自己的地址,把数据位设为要发送的数据,然后置呼叫为1。主控发现呼叫=1后,读取地址码和数据,然后将ACK置高电平。拓展卡发现ACK=1后,置高阻,然后将呼叫置为0。



这是我的设想,不知道大家都是怎么想的,希望能交流交流

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2006-2-6 22:08:29 | 显示全部楼层
我来提点建议:

1 RESET怎么能暴露给外部设备?

2 呼叫线(REQuest 请求),ACK线等异步信号应该采用低电平有效的方式。几乎所有的MCU都是这样设计的,方便采用 线与 连接。

3 增加3.3V IO电源线,因为ARM的IO电压是3.3V的(核心更是只有1.8V)

4 好像没有双向8位锁存器,常见的多为74HC245双向缓冲器

出0入0汤圆

发表于 2006-2-6 23:45:21 | 显示全部楼层
外部總線想快就用dma控制.

出0入0汤圆

发表于 2008-8-22 21:48:40 | 显示全部楼层
如果设备集中,而且不多的话,可以考虑用IIC,我们就是这么用的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-15 00:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表