mcu之间通信mcu之间通信.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
mcu之间通信mcu之间通信

原理图?(原文件名:多CPU单线通信原理图.JPG)? ??发现所有已发帖子都丢了,用户也注销了,还是重新注册回来的。下面转正题。 ??所谓单线通信,其实还是需要两根导线,否则形不成电流回路。这里的意思是,共用CPU电源线完成信号的传递,而不需要单独的信号线。? ??两根线,既要给CPU供电,又要传递信号,供电电压需要稳定,信号电压需要交变,看起来是矛盾的。 ??解决方法无非是折中:供电电压稳定性做点牺牲,让信号调制上来,再加一个低通滤波器将其消除;信号的调制方法做点让步,尽量减少对 电源的影响,借用电源通道传输,再加一个高通滤波器将信号提取出来。在电力线上传输信号已经是成熟技术,在此我不想讨论,我只想做一 个简单的方案,能够使CPU之间以不太低的速率可靠传输数据即可。 ??方案如图所示。 1.?DC是供电电源,L1是电感,GND和COM是公用线,既给CPU供电,又供CPU间传递信号。 2.?C1是滤波电容,储存电能给CPU供电。 3.?D2有两个作用,一是截止作用:当COM线上的电位由高变低时,C1上的电能不会回灌到COM;二是导通作用:当COM线上的电位由低变高时, L1上会感应出高电压,导致COM线电位高于C1电位,D2起到泄压作用。 4.?D1的作用是防止多个CPU?同时发送数据时造成电流短路。 原理: ??没有数据发送时,COM线高电平;有CPU发送数据时,COM线电平随发送CPU的Tx信号高低变化,因为所有Rx(包括发送CPU的)都连在一起,因 此都可以接收到该数据,这样就完成了数据的发送与接收。 通信协议可以自定义,我提出两个例子。 协议1:主从协议 ??只有一个CPU做主,其余都是从,所有通信都由主CPU发起,其余只能被动应答。通信过程分三步:1)主CPU发送命令,2)从CPU回应数据,3 )主CPU回应ACK。或,1)主CPU发送命令,2)主CPU发送数据,3)从CPU回应ACK。 命令格式:2字节同步码?+?1字节标记码?+?1字节从CPU地址码?+?1字节命令码?+?2字节参数码?+?1字节CRC校验码 数据格式:2字节同步码?+?1字节标记码?+?1字节数据长度码?+?N?字节数据?+?1字节CRC校验码 ACK格式:2字节同步码?+?1字节标记码?+?1字节回应码?(0x55表示接收正确,否则失败)?+?1字节CRC校验码 侦错与纠错机制:靠同步码进行帧同步,靠CRC校验码进行帧检错,接收方发现错误丢弃错误帧,发送方等待数据超时重发,连续重发3次失败 放弃发送。 协议2:竞争协议 ?借用以太网的机制,每个CPU都是平等地位,都可以随时发送数据。步骤如下,当任何一个CPU想发送数据时, 1)探听COM线1ms时间,之内若无数据接收,则转2),否则继续探听。 2)向COM线发送数据,同时接收回来,一旦发现接收数据和发送数据不相同,则转3),否则一直发送数据直到数据发送完毕,返回。 3)停止发送,等待一个随机时间?N?ms,转1)。 发送数据格式:2字节同步码?+?1字节源CPU地址码?+?1字节目的CPU地址码?+?1字节数据长度码?+?N?字节数据?+?1字节CRC校验码 侦错与纠错机制:靠同步码进行帧同步,靠CRC校验码进行帧检错,靠高层协议进行纠错,高层协议略。 疑问解答:发送数据时Tx变成低电平,电源岂不对地短路啦? ??如果不接电感L1,COM又接地,确实会发生电源对地短路,但是接了L1后就不会了,COM接地相当于此时电源只接了L1一个负载,电源消耗的 电能随着L1电流增加变成了储存在L1中的磁能,当COM又变回高电平时,这部分磁场能量会随着D2的泄压作用转移到电容C1中,变成电场能量, 最终被CPU消耗掉,是不是和升压DC-DC有点像?因此可以预期在通信期间,CPU供电电压(即C1电压)会有所升高。 疑问解答:为何选择串口(Tx、Rx)作为数据收发口? ??从原理上看,调制信号占空比应该越大越好,占空比越大,每个周期内低电平时间相对越短,因DC-DC效应对CPU电源电压影响就越小;凡事 不能走极端,占空比也不能太小,否则抗干扰能力就差了。 ??另外,通信速率也不宜太低,速率太低,造成发送1bit时COM线电平被拉低时间太长,L1电流过大,会造成L1储能饱和,电源效率降低。 ??因此,使用串口不是最好选择,串口信号调制占空比为‘1’100%可以,‘0’0%太小了;串口速率普遍较低,最高才115Kbps。但是,因为单 片机上一般不集成有专门适用于我这个方案的硬件收发器,软件模拟或外挂CPLD又太麻烦,所以干脆用串口算了,硬件简单,成本还低,软件 也不复杂,直接操作串口就行了。双MCU通讯的几种方法

文档评论(0)

yxutcangfp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档