打印

一个关于单片机通信的问题(附图)

[复制链接]
2383|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cainiao402|  楼主 | 2007-4-5 19:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,我在做遥控的时候发现一个问题。不知道你们有没有碰到过类似的你们又是如何解决的呢?我的问题是这样的:
我用两块单片机进行通信(利用遥控)。其中一块单片机发射代码,它直接与发射模块的四条信号线连接。而另一块单片机用来解码。它直接接收,发射模块送来的代码给单片机。而我发现。当我上电的时候发送第一个代码很快就能接收到了,但当我发第二个不同的其他代码的时候,单片机却迟迟不能检测到已经发送出来的代码。如果我用手指头碰几下接收模块却就可以接收到了又。不可能是接触的问题的。我焊的很好。会不会是干扰的问题呢。主要的干扰又是甚么呢?

相关帖子

沙发
谈的元| | 2007-4-5 19:32 | 只看该作者

你的解码程序是不是写的不够好?

使用特权

评论回复
板凳
cainiao402|  楼主 | 2007-4-5 20:29 | 只看该作者

一个关于单片机通信的问题

解码程序是没有问题的。因为我用发射用的那块单片机的输出线直接接到接收的那块单片机是。程序运行和理想结果是一样的。单如果让这些代码通过发射与接收模块就不行了。

使用特权

评论回复
地板
谈的元| | 2007-4-5 20:37 | 只看该作者

这不能说明

解码程序是没有问题的。与很好是两码事,

“因为我用发射用的那块单片机的输出线直接接到接收的那块单片机是。程序运行和理想结果是一样的。单如果让这些代码通过发射与接收模块就不行了。”

  用发射用的那块单片机的输出线直接接到接收的那块单片机是  那是理想情况。

  遥控模块有杂波呀!!就是说你没发射时,接收端也会有电平变化的

使用特权

评论回复
5
平常人| | 2007-4-5 21:40 | 只看该作者

估计是接受模块没有处理好包结尾,自然就不能好好地接受

看看处理完第一个包后,接收端是否回到了原始状态?

使用特权

评论回复
6
cainiao402|  楼主 | 2007-4-9 14:19 | 只看该作者

这是我的电路

使用特权

评论回复
7
cainiao402|  楼主 | 2007-4-9 14:24 | 只看该作者

电路如下

使用特权

评论回复
8
cainiao402|  楼主 | 2007-4-9 14:34 | 只看该作者

电路说明

发射头与光耦中的VCC为同一电源。但它们与它们所接的单片机(第一块单片机)是不同电源的。接收头与第二块单片机是是采用同一电源。
就会出现我是述的情况:
当我上电的时候发送第一个代码很快就能接收到了,但当我发第二个不同的其他代码的时候,单片机却迟迟不能检测到已经发送出来的代码。如果我用手指头碰几下接收模块却又可以接收到了。不可能是接触的问题的。我焊的很好。会不会是干扰的问题呢。主要的干扰又是甚么呢?
发射那边应该每问题。我用万能表测过了,发出的代码是没错的。但接收总会很迟(还要用手来碰下接收头才能接收到正确的代码),否则它将一直保持这上一个发送过来的代码。

使用特权

评论回复
9
awey| | 2007-4-9 14:47 | 只看该作者

改变波特率 和 改变距离试试看

有可能是收发头电路问题:频率跟不上或放大电路出现了堵塞现象

用示波器看看接收头输出的波形

使用特权

评论回复
10
cainiao402|  楼主 | 2007-4-9 15:04 | 只看该作者

发射电路应该没问题

我是采用现在市场是的发射接收头,直接改装的。就是把发射头的四条信号线拉出来通过光耦使其与单片机连接。而且我测了这四条信号线。代码和所要发送的代码是一样的。但,接收头就是保持这上次的代码。要用手碰下它采改变(变成和发射头所发出的代码一至)。

使用特权

评论回复
11
kasedy| | 2007-4-9 17:59 | 只看该作者

程序编写上有点问题

    这种情况是接收板杂波造成的,因为在你没有发送时,接收电路的输出是无规律的杂波(这个以前chunyang老大哥提过).
    正确的处理方法,在每次发送数据前先发一连串(一般为几十个字节,如32字节)55H(或AAH)进行同步,再发送数据.当然,接收程序也要能区分这些同步信息.

使用特权

评论回复
12
甄蔡组合| | 2007-4-9 20:06 | 只看该作者

学习学习

使用特权

评论回复
13
cainiao402|  楼主 | 2007-4-9 22:00 | 只看该作者

11楼的朋友,如果我要求的是收发都很灵敏的话呢?这方案可

就是说。我第一块单片机一有信号发送那边的另一块单片机就得立即接收到。
如果按你说的那样。每送个代码都要送几十个同步信号。会不会影响我接收的时间呢。

使用特权

评论回复
14
zhaoyu2005| | 2007-4-10 09:23 | 只看该作者

cainiao402,你的问题是两次你发送数据之间的间隔太小了

你用的是2262和2272吧,或者兼容的,我以前遇到过,两次不同的数据如果间隔时间太短就会出现后一个数据不能接收(实际上是接收电路没识别出来),你只要在两个数据间加上一定的延时(100mS好像就可以了,你可以试一下),再提个建议,2272的17脚(18脚封装的)当正常解码的话会有一个高电平输出,你可以判断这个引脚的电平,然后读输出数据,程序就不用老判断数据是不是改变了

使用特权

评论回复
15
谈的元| | 2007-4-12 22:11 | 只看该作者

直接有个mcu编码吧



   直接用个mcu编码,解码吧,还可以加密传输
   把2262和2272都省略了

使用特权

评论回复
16
cainiao402|  楼主 | 2007-4-17 23:47 | 只看该作者

谢谢大家了。

恩,按照各位大虾的意见我逐步改进了自己的方案。杂波问题和传输数据问题我都犯了。现在问题总算解决了。谢谢各位大虾了。

使用特权

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

本版积分规则

99

主题

238

帖子

2

粉丝