打印

给一个功能模块设计地址的方案

[复制链接]
1020|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
寒释凝|  楼主 | 2018-10-24 09:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在看一些资料的时候,突然想到一个问题。在一个系统中,总会有很多不同功能的模块。那么怎样给这些模块进行识别呢?这里一般会给他们设置一个唯一的ID,这些ID一般采用什么方式呢?
     采用拨码开关,进行不同的人工拨码。这样现场的工作人员在维修的时候,可以很方便的找到那块模板出现了问题。
     这些地址,的读取一般直接采用单片机的GPIO口读取,通过高低电平的判断就可以读取,但是这就需要占用很多的GPIO口,为此在单片机的GPIO口没有富裕的情况下,又不能通过扩展。那又有什么办法来读取硬件地址呢?

相关帖子

沙发
mohanwei| | 2018-10-24 10:35 | 只看该作者
1-唯一ID
2-复用其它输出口:加弱上拉或下拉,然后在程序启动时先把这些输出口配置为输入,读取编码;再配置为输出,正常的跑

使用特权

评论回复
评论
寒释凝 2018-10-24 14:12 回复TA
可能我没说清楚,我想的是只能用到2个GPIO口来读取模板的地址呢。 
板凳
dirtwillfly| | 2018-10-24 21:19 | 只看该作者
有很多模块可以选地址的,比如at24c02等,而有些模块内部有寄存器可以存储自己的地址

使用特权

评论回复
地板
寒释凝|  楼主 | 2018-10-25 08:42 | 只看该作者
dirtwillfly 发表于 2018-10-24 21:19
有很多模块可以选地址的,比如at24c02等,而有些模块内部有寄存器可以存储自己的地址 ...

我知道有的芯片可以读取地址,但是我想用的只有GPIO口很无源器件来搭建电路。

使用特权

评论回复
5
dirtwillfly| | 2018-10-25 08:51 | 只看该作者
寒释凝 发表于 2018-10-25 08:42
我知道有的芯片可以读取地址,但是我想用的只有GPIO口很无源器件来搭建电路。 ...

这个东西主要是看你采用什么样的通讯协议。
像单总线的ds18b20,一个io也可以连接很多从器件。
或者每个从器件单独用一个io做为片选使能

使用特权

评论回复
6
寒释凝|  楼主 | 2018-10-25 09:15 | 只看该作者
dirtwillfly 发表于 2018-10-25 08:51
这个东西主要是看你采用什么样的通讯协议。
像单总线的ds18b20,一个io也可以连接很多从器件。
或者每个 ...

我就仅仅采集电路中的模块的地址,不需要用到芯片就一个拨码开关。采集上面电压就可以了。再用芯片的话成本太高。失效性也会增加呢。

使用特权

评论回复
7
dirtwillfly| | 2018-10-25 09:30 | 只看该作者
寒释凝 发表于 2018-10-25 09:15
我就仅仅采集电路中的模块的地址,不需要用到芯片就一个拨码开关。采集上面电压就可以了。再用芯片的话成 ...

那就简单了。直接用拨码开关做为各模块的电源开关就好了。不需要的都关断电源

使用特权

评论回复
8
寒释凝|  楼主 | 2018-10-25 09:38 | 只看该作者
dirtwillfly 发表于 2018-10-25 09:30
那就简单了。直接用拨码开关做为各模块的电源开关就好了。不需要的都关断电源 ...

是的,问题是。我读取这部分采样电压的GPIO口只有2个。读取来的电压间隔不均匀而且太小,最小只有50mv,这个很容易受到干扰二引起误判。不知道有什么改进方式。

使用特权

评论回复
9
dirtwillfly| | 2018-10-25 09:46 | 只看该作者
寒释凝 发表于 2018-10-25 09:38
是的,问题是。我读取这部分采样电压的GPIO口只有2个。读取来的电压间隔不均匀而且太小,最小只有50mv, ...

这个要看你的电路设计和pcb设计的事情了,要排查出主要干扰源,然后采取措施。

使用特权

评论回复
评论
dirtwillfly 2018-10-30 20:56 回复TA
@寒释凝 :汗,没有具体电路,无法理解怎么会出问题 
寒释凝 2018-10-30 15:00 回复TA
@dirtwillfly :电路图还没设计出来,目前只有大概的思路。 
dirtwillfly 2018-10-25 10:34 回复TA
@寒释凝 :建议你上传下电路图 
寒释凝 2018-10-25 09:51 回复TA
电路很简单,就单片机和一个拨码开关。博马开关上就几个采样电阻。 
10
Varus| | 2018-10-27 20:54 | 只看该作者
有些模块内部有寄存器可以存储自己的地址

使用特权

评论回复
11
寒释凝|  楼主 | 2018-10-30 14:59 | 只看该作者
Varus 发表于 2018-10-27 20:54
有些模块内部有寄存器可以存储自己的地址

但是我目前只是想用拨码开关来设计地址。

使用特权

评论回复
12
寒释凝|  楼主 | 2018-11-3 11:19 | 只看该作者
Varus 发表于 2018-10-27 20:54
有些模块内部有寄存器可以存储自己的地址

N那板子维修的时候这个地址又的怎么分配呢?

使用特权

评论回复
13
angerbird| | 2018-11-10 15:54 | 只看该作者
这个重点还是数据的通讯协议的处理的哈

使用特权

评论回复
14
baimiaocun2015| | 2018-11-10 21:54 | 只看该作者
地址的ID不唯一么?

使用特权

评论回复
15
tongbu2015| | 2018-11-11 11:51 | 只看该作者
拨码开关?现在不是用的很少了么?

使用特权

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

本版积分规则

2

主题

15

帖子

1

粉丝