请问GPIB的通信协议中,总线上的设备听/讲地址是控制器分配的吗?

安仔0929 2015-03-19 09:29:34
假设GPIB总线上有一个控制器C、两个其他设备A和B,A和B设备程序初始化时没有设置本地地址,而是听/讲地址

是控制器分配出去给设备的,控制器向A发送讲地址使A成为讲者,控制器向B发送听地址使B成为听者,那么问题

来了——在控制器C发送讲地址给A设备前,控制器又是怎样在总线上找到A的呢?是怎样寻址到A的呢?所谓的听

/讲地址是不是必须由设备(A和B)的程序先配置,然后再让控制器寻址
...全文
738 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hcwzchen 2015-08-13
  • 打赏
  • 举报
回复
GPIB通信的时候是不能有两个相同地址的,会有冲突的!没有哪个厂商会把地址做成固定的,都是可调的!
安仔0929 2015-03-20
  • 打赏
  • 举报
回复
引用 1 楼 u012586257 的回复:
不是吧,记得用的设备都是自己设地址的,不是分配的
是通过A的电路板硬件方式设置地址(如拨码开关),还是通过A的主控芯片上的软件对它进行地址设置?那么问题来了——假设ABC分别是三个不同厂家生产的,按您的意思,那么他们的地址就是由生产厂家来决定的,假设A地址被A生产厂家设置了为6,而B的地址也被B生产厂家设置成为6,由控制器去寻址的话,到底是寻址A还是B呢?
安仔0929 2015-03-20
  • 打赏
  • 举报
回复
引用 7 楼 lym11023 的回复:
[quote=引用 5 楼 zxa1095696200 的回复:] [quote=引用 3 楼 lym11023 的回复:] GPIB的地址并不是生产厂家固定死的,在设备本身上还是可以设置更改的,另外,就算是两个厂家把各自的设备地址都设置为了6,控制器在寻址过程中,都会通过发送查询设备型号与版本的默认指令“*idn?"来获得设备的相关信息。如此即可区分设备。
两个厂家的设备地址都为6,那么控制器发送"*IDN?",怎么指定是哪个设备接受这个"*IDN?"命令呢?两个设备都接收?两个设备都向总线发送“设备型号与版本”数据?还是GPIB会总裁哪个先发哪个后发?[/quote] 如果出现冲突的话,有可能哪个设备先连接到控制器,它将优先占用该地址,另一个设备则可能无法连接入该控制器,除非当前连接设备断开释放连接后,另一设备才能连接入控制器。[/quote] 我梦寐以求的大神啊!!我还搞不懂通用命令如"*IDN?",SCPI命令,器件的自定义命令之间的关系!自定义命令算SCPI里面的么
  • 打赏
  • 举报
回复
引用 5 楼 zxa1095696200 的回复:
[quote=引用 3 楼 lym11023 的回复:] GPIB的地址并不是生产厂家固定死的,在设备本身上还是可以设置更改的,另外,就算是两个厂家把各自的设备地址都设置为了6,控制器在寻址过程中,都会通过发送查询设备型号与版本的默认指令“*idn?"来获得设备的相关信息。如此即可区分设备。
两个厂家的设备地址都为6,那么控制器发送"*IDN?",怎么指定是哪个设备接受这个"*IDN?"命令呢?两个设备都接收?两个设备都向总线发送“设备型号与版本”数据?还是GPIB会总裁哪个先发哪个后发?[/quote] 如果出现冲突的话,有可能哪个设备先连接到控制器,它将优先占用该地址,另一个设备则可能无法连接入该控制器,除非当前连接设备断开释放连接后,另一设备才能连接入控制器。
  • 打赏
  • 举报
回复
引用 4 楼 zxa1095696200 的回复:
[quote=引用 3 楼 lym11023 的回复:] GPIB的地址并不是生产厂家固定死的,在设备本身上还是可以设置更改的,另外,就算是两个厂家把各自的设备地址都设置为了6,控制器在寻址过程中,都会通过发送查询设备型号与版本的默认指令“*idn?"来获得设备的相关信息。如此即可区分设备。
发送“*idn?"后返回的数据格式是什么?能举个例子么?“设备型号与版本”是可以程序设定的吗?还是出厂时就已经固化在卡的芯片里面了?我现在用NI的TNT4882芯片~[/quote] 返回的数据格式是由生产厂家规定的,你可能参照安捷伦万用表34401A的回应此指令的数据,一般都为ASII字符串,通常有包含设备生产商,设备型号,和内核版本号等等。
安仔0929 2015-03-20
  • 打赏
  • 举报
回复
引用 3 楼 lym11023 的回复:
GPIB的地址并不是生产厂家固定死的,在设备本身上还是可以设置更改的,另外,就算是两个厂家把各自的设备地址都设置为了6,控制器在寻址过程中,都会通过发送查询设备型号与版本的默认指令“*idn?"来获得设备的相关信息。如此即可区分设备。
两个厂家的设备地址都为6,那么控制器发送"*IDN?",怎么指定是哪个设备接受这个"*IDN?"命令呢?两个设备都接收?两个设备都向总线发送“设备型号与版本”数据?还是GPIB会总裁哪个先发哪个后发?
安仔0929 2015-03-20
  • 打赏
  • 举报
回复
引用 3 楼 lym11023 的回复:
GPIB的地址并不是生产厂家固定死的,在设备本身上还是可以设置更改的,另外,就算是两个厂家把各自的设备地址都设置为了6,控制器在寻址过程中,都会通过发送查询设备型号与版本的默认指令“*idn?"来获得设备的相关信息。如此即可区分设备。
发送“*idn?"后返回的数据格式是什么?能举个例子么?“设备型号与版本”是可以程序设定的吗?还是出厂时就已经固化在卡的芯片里面了?我现在用NI的TNT4882芯片~
  • 打赏
  • 举报
回复
GPIB的地址并不是生产厂家固定死的,在设备本身上还是可以设置更改的,另外,就算是两个厂家把各自的设备地址都设置为了6,控制器在寻址过程中,都会通过发送查询设备型号与版本的默认指令“*idn?"来获得设备的相关信息。如此即可区分设备。
mangoalx 2015-03-19
  • 打赏
  • 举报
回复
不是吧,记得用的设备都是自己设地址的,不是分配的

27,515

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧