首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

MC908GP32的地址唤醒功能??

MC908GP32的地址唤醒功能??

我在使用GP32的SCI与上位机通讯,不知道如何使用其地址唤醒功能,请各位高手帮帮我,不甚感激!!!!!另外如何将多机GP32组成网络与上位机通讯!!!!
怎么没有人回答我的问题???
一般地址唤醒功能和空闲唤醒功能是轮流使用的,使下位机能以最小的功耗与上位机进行通讯。当上位机已经开始与某个下位机进行同时时,其他无关的下位机可以进入空闲唤醒模式,此时总线上的通讯信号不会对它们产生影响;当此次通讯完成后,总线会空闲,这些进入空闲唤醒模式的下位机就会被唤醒,然后再进入地址唤醒模式。上位机要进行通讯时,必然先发出地址信号,就可以把它们再唤醒。唤醒后的下位机判断接收的到的地址信号是否相符:如果相符,则进入下一步通讯;如果不符,则再进入空闲等待模式—如此循环往复。
一般SCI组网通讯,就用LIN协议。可以从LIN网站上免费下载。
海纳百川  有容乃大
谢谢版主:可否介绍一些具体的资料,关于多点MCU与上位机通讯的资料。
你可以下载飞思卡尔网站上LIN的参考设计文档。
海纳百川  有容乃大
版主:
谢谢你给我好几次问题的回复!使我的编程水平有了很大的提高,我所作的东东其余程序已经基本完成,可是以前本人没有编写通讯程序,所以最近在作通讯调试时遇到了好多问题:
我采用的CPU为GP32,在每台机器上均进行了TTL-RS485电平的转换,所有机器采用屏蔽双绞线并联以后通过RS485-RS232转换接口连接至上位PC机,进行通讯。
您刚才所说的空闲唤醒和地址唤醒我已经搞明白了。就是在某一从机接收到的地址信息和MCU的地址信息不匹配时,由于该MCU已经将此数据接收了下来,那么总线上将会缺少该数据,其它MCU则无法再接收到该地址信息,无法正常通讯,
当某一从机与上位机PC通讯时,如何禁止其余从机的通讯功能(我采用的定时中断发孙与接受)
另外:请问RS485总线上一次最大可以传送多少个字节的数据。

至于LIN总线,我看了一下说明,好像主要适用于一主多从的多点的MCU通讯。


请版主帮帮我!

祝你:事业有成!身体健康!


我不知道你的总线结构是怎样的,但类似的串行通讯应该都是一主多从的结构。另外,一个MCU接收数据怎么会使总线上“缺少”该数据?
海纳百川  有容乃大
我的所有MCU机器均为从机,PC为主机,因为一个MCU接收了PC机发送的地址信息后,只有将该总线上的地址信息接收到MCU接受器后才可判断地址,因此总线上的地址信息被该MCU节UN了,所以其他MCU就接受不到。
把你的原理图贴出来看看。什么叫“总线上的地址信息被该MCU节UN了”?
海纳百川  有容乃大
具体的连接方式我已在上面进行了文字说明!
版主:你好,我的问题已经基本解决,原来是时钟的的设置不对,进而影响了传输的速率。
另请问版主:我从资料上看,GP32的内部总线频率FBUS=CGMOUT/2=CGMXCLK/4;
为什么在MON0的DEBUG初始化时,还要进行分频系数的设定?


监控模式比较特殊,总线频率可以是CGMXCLK/4或CGMXCLK/2,所以要选择一下分频系数。
海纳百川  有容乃大
谢谢版主!
版主:
您好!我现在使用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程序在上述方法上有误?请教版主了!!!!!



如果开启了接收中断,那么每接收到一个字节都会产生中断。这与地址唤醒产生的中断不是一回事。
海纳百川  有容乃大
返回列表