标题:
MC908GP32的地址唤醒功能??
[打印本页]
作者:
dchuser
时间:
2007-7-24 17:04
标题:
MC908GP32的地址唤醒功能??
我在使用GP32的SCI与上位机通讯,不知道如何使用其地址唤醒功能,请各位高手帮帮我,不甚感激!!!!!另外如何将多机GP32组成网络与上位机通讯!!!!
作者:
dchuser
时间:
2007-7-24 17:32
怎么没有人回答我的问题???
作者:
strongchen
时间:
2007-7-24 17:39
一般地址唤醒功能和空闲唤醒功能是轮流使用的,使下位机能以最小的功耗与上位机进行通讯。当上位机已经开始与某个下位机进行同时时,其他无关的下位机可以进入空闲唤醒模式,此时总线上的通讯信号不会对它们产生影响;当此次通讯完成后,总线会空闲,这些进入空闲唤醒模式的下位机就会被唤醒,然后再进入地址唤醒模式。上位机要进行通讯时,必然先发出地址信号,就可以把它们再唤醒。唤醒后的下位机判断接收的到的地址信号是否相符:如果相符,则进入下一步通讯;如果不符,则再进入空闲等待模式—如此循环往复。
一般SCI组网通讯,就用LIN协议。可以从LIN网站上免费下载。
作者:
dchuser
时间:
2007-7-26 12:07
谢谢版主:可否介绍一些具体的资料,关于多点MCU与上位机通讯的资料。
作者:
strongchen
时间:
2007-7-26 14:03
你可以下载飞思卡尔网站上LIN的参考设计文档。
作者:
dchuser
时间:
2007-7-26 15:10
版主:
谢谢你给我好几次问题的回复!使我的编程水平有了很大的提高,我所作的东东其余程序已经基本完成,可是以前本人没有编写通讯程序,所以最近在作通讯调试时遇到了好多问题:
我采用的CPU为GP32,在每台机器上均进行了TTL-RS485电平的转换,所有机器采用屏蔽双绞线并联以后通过RS485-RS232转换接口连接至上位PC机,进行通讯。
您刚才所说的空闲唤醒和地址唤醒我已经搞明白了。就是在某一从机接收到的地址信息和MCU的地址信息不匹配时,由于该MCU已经将此数据接收了下来,那么总线上将会缺少该数据,其它MCU则无法再接收到该地址信息,无法正常通讯,
当某一从机与上位机PC通讯时,如何禁止其余从机的通讯功能(我采用的定时中断发孙与接受)
另外:请问RS485总线上一次最大可以传送多少个字节的数据。
至于LIN总线,我看了一下说明,好像主要适用于一主多从的多点的MCU通讯。
请版主帮帮我!
祝你:事业有成!身体健康!
作者:
strongchen
时间:
2007-7-26 15:55
我不知道你的总线结构是怎样的,但类似的串行通讯应该都是一主多从的结构。另外,一个MCU接收数据怎么会使总线上“缺少”该数据?
作者:
dchuser
时间:
2007-7-26 16:24
我的所有MCU机器均为从机,PC为主机,因为一个MCU接收了PC机发送的地址信息后,只有将该总线上的地址信息接收到MCU接受器后才可判断地址,因此总线上的地址信息被该MCU节UN了,所以其他MCU就接受不到。
作者:
strongchen
时间:
2007-7-26 17:12
把你的原理图贴出来看看。什么叫“总线上的地址信息被该MCU节UN了”?
作者:
dchuser
时间:
2007-7-27 09:39
具体的连接方式我已在上面进行了文字说明!
作者:
dchuser
时间:
2007-7-29 15:41
版主:你好,我的问题已经基本解决,原来是时钟的的设置不对,进而影响了传输的速率。
另请问版主:我从资料上看,GP32的内部总线频率FBUS=CGMOUT/2=CGMXCLK/4;
为什么在MON0的DEBUG初始化时,还要进行分频系数的设定?
作者:
strongchen
时间:
2007-7-30 10:19
监控模式比较特殊,总线频率可以是CGMXCLK/4或CGMXCLK/2,所以要选择一下分频系数。
作者:
dchuser
时间:
2007-7-30 15:51
谢谢版主!
作者:
dchuser
时间:
2007-7-30 16:24
版主:
您好!我现在使用3台GP32从机经过RS232接口与上位机PC进行通讯,2台时正常,3台时就出现错误(主机命令的2#机,结果3#机接收到了,我查询了一些资料,资料上这样说:
WAKE=1,地址唤醒,=0,空闲唤醒; RWU=0:正常模式; =1:待命模式;
采用中断接收,查询发送时,首先除设置中断标志位外,还要将RWU=1设置为等命模式。:
如果设置WAKE=1,则接收的数据(最高位=1为地址标志),可以将RWU清0,将接收器唤醒为正常模式,同时将接收器满标志置位,软件判断与本机地址是否相同,如相同,继续接收其余的字节(此时接收中断不会再产生),直至数据接收完毕,如果地址不相等,则通过软件将RWU标志置1,使MCU返回待命状态,如此反复循环。
是不是我的MCU程序在上述方法上有误?请教版主了!!!!!
作者:
strongchen
时间:
2007-7-31 10:09
如果开启了接收中断,那么每接收到一个字节都会产生中断。这与地址唤醒产生的中断不是一回事。
作者:
dchuser
时间:
2007-7-31 12:25
我昨天采用了资料中所说的方法,结果出现了:上位机发送5个字节的数据,而MCUl连续不停的发送数据,而我发送程序是在接收中断服务程序里面,我搞不明白?
另外,如何在接收到第一个地址相符的字节后,如何屏蔽中断,而接收完后续字节呢??
作者:
strongchen
时间:
2007-8-1 08:39
如果要屏蔽中断,你可以关闭接收中断。我认为接收还是可以采用中断的形式,但是发送程序不应该放在接收中断里面。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0