打印
[STM32F1]

STM32两块单片机通信的同步问题

[复制链接]
5737|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小浅浅白|  楼主 | 2017-3-10 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用两块STM32进行通信,其中一块板子发出一个调制信号,用跳线输入到另一块单片机中进行解调,解调出来的数据有错误,调制解调的程序在一个程序里面,所以两块板子里的程序是一样的,只是分别将调制和解调的信号通过IO口输出了,当只使用一块板子,把它自身的调制输出用跳线接到解调出入时解调出来的数据正确无误,用两块板子的时候就有错误,他们说这是同步的问题,这方面不懂,解决这个问题有什么方法呢,或者解释一下这个问题具体怎么产生的呢?懂得太少了,希望各位赐教。
沙发
feelhyq| | 2017-3-10 09:16 | 只看该作者
两块板子共地了没有,先确认这个。保证两端参考电压一致

使用特权

评论回复
板凳
LyCrystal| | 2017-3-10 09:18 | 只看该作者
哪种调制信号?PWM么?如果是可以用stm32的PWM捕获功能。

使用特权

评论回复
地板
NE5532| | 2017-3-10 09:22 | 只看该作者
楼主是用的什么调制方式来通信?除了共地就是考虑时间同步上的问题了。关于同步的初步概念,可参考串口公开课:

串口-我学习的第一个通讯接口

从基础上讲述了同步的必要性和一些基础知识。

使用特权

评论回复
5
小浅浅白|  楼主 | 2017-3-10 09:25 | 只看该作者
feelhyq 发表于 2017-3-10 09:16
两块板子共地了没有,先确认这个。保证两端参考电压一致

共地了  如果不共地的话  一点都解调不出来  现在这样只有一部分解调是对的  但是有错误

使用特权

评论回复
6
小浅浅白|  楼主 | 2017-3-10 09:26 | 只看该作者
LyCrystal 发表于 2017-3-10 09:18
哪种调制信号?PWM么?如果是可以用stm32的PWM捕获功能。

调制信号是正弦波,解调用的TIME1的输入捕获功能解调的

使用特权

评论回复
7
小浅浅白|  楼主 | 2017-3-10 09:27 | 只看该作者
NE5532 发表于 2017-3-10 09:22
楼主是用的什么调制方式来通信?除了共地就是考虑时间同步上的问题了。关于同步的初步概念,可参考串口公开 ...

嗯嗯  好的    谢谢提供资料  我用的是2FSK的调制方法,共地了 ,应该是时间上的同步问题

使用特权

评论回复
8
NE5532| | 2017-3-10 09:31 | 只看该作者
单片机能直接发出FSK信号??楼主详细叙述一下呢?

使用特权

评论回复
9
小浅浅白|  楼主 | 2017-3-10 09:36 | 只看该作者
NE5532 发表于 2017-3-10 09:31
单片机能直接发出FSK信号??楼主详细叙述一下呢?

用单片机内部的DAC产生正弦波,再通过定时器触发DAC,给定时器装不同的初值就能产生两种频率的正弦波了,用要传输的数字基带信号去控制初值的重装就能实现调制了

使用特权

评论回复
10
NE5532| | 2017-3-10 09:41 | 只看该作者
FSK调制一般用在通信上,主要是为了用模拟电路(比如无线电或者电力线之类)发射出去,既然是两个单片机通信,为何不直接用串口之类的数字接口?是不是整得太麻烦了?

使用特权

评论回复
11
小浅浅白|  楼主 | 2017-3-10 09:47 | 只看该作者
NE5532 发表于 2017-3-10 09:41
FSK调制一般用在通信上,主要是为了用模拟电路(比如无线电或者电力线之类)发射出去,既然是两个单片机通 ...

就是为了无线通信,准确的说 ,这两块单片机还分别对应一个发射器和接收器,但是搭建起来发现解调有错误,接收端接收到的信号已经和发射端发射的波形基本一致了完全达到了解调的条件,也不知道哪的原因造成了错误,有人说是同步的问题,所以我把发射器和接收器拿掉,直接把发射的输出接到接收的输入端,解调出来和有接收发射装置时情况一样,所以才确定是同步的问题

使用特权

评论回复
12
NE5532| | 2017-3-10 09:55 | 只看该作者
那你的基本方向都已经搞错了,无线通信需要导言、同步字、包结构不是一个简单的FSK调制就能实现的。你想做无线通信,需要用专门的收发器芯片,比如Si4463、CC1100、SX1278之类,人家调制解调都是IQ调制器,同步恢复都是锁相环。你想用软件实现,那叫软件无线电,至少得用DSP,STM32根本算不过来。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
小浅浅白 + 2 赞一个!
13
小浅浅白|  楼主 | 2017-3-10 10:03 | 只看该作者
NE5532 发表于 2017-3-10 09:55
那你的基本方向都已经搞错了,无线通信需要导言、同步字、包结构不是一个简单的FSK调制就能实现的。你想做 ...

好吧  有没有补救的方法呢  因为我做这个东西挺久的了  电路验证什么的花了不少时间,现在PCB板做了第一版,板子也调试好了,要是现在从头来的话挺舍不得的

使用特权

评论回复
14
NE5532| | 2017-3-10 10:08 | 只看该作者
基本没辙了,要是这么简单的软件都能实现,你可以卖给TI或者Silab公司,他们的射频芯片全部直接下课,卖上千万美金都不多

使用特权

评论回复
15
小浅浅白|  楼主 | 2017-3-10 10:12 | 只看该作者
NE5532 发表于 2017-3-10 10:08
基本没辙了,要是这么简单的软件都能实现,你可以卖给TI或者Silab公司,他们的射频芯片全部直接下课,卖上 ...

好吧  谢谢你的解答  本来只是想实现很短一段距离的传输,其实验证的距离也才几十厘米,做了这么久了到头来还是错了,也罢就当涨知识了

使用特权

评论回复
16
NE5532| | 2017-3-10 10:14 | 只看该作者
也学到不少FSK调制的基础知识嘛。你下个Si、4463的资料来看看,收发器的结构,加深理解。

使用特权

评论回复
17
free_tend| | 2017-3-10 10:17 | 只看该作者
楼主干的这个事情太像我当年的毕业设计了。不过我只是做一个演示  用51的单片机弄, 你这个实打实的要通信  的确很麻烦。

使用特权

评论回复
18
free_tend| | 2017-3-10 10:22 | 只看该作者
只要涉及到调制解调 要考虑统一的时钟源,这是保证同步的根本。

使用特权

评论回复
19
moulihu| | 2017-3-10 10:41 | 只看该作者

使用特权

评论回复
20
小浅浅白|  楼主 | 2017-3-10 11:30 | 只看该作者
NE5532 发表于 2017-3-10 10:14
也学到不少FSK调制的基础知识嘛。你下个Si、4463的资料来看看,收发器的结构,加深理解。 ...

板子好了  因为两个板子的程序一样的只是用了不同的部分,在接收板吧与接收无关的东西屏蔽掉就好了,加上接收和发射器也没问题了,同步问题应该是采用抽样判决的时候才有的,这里用的是输入捕获上升沿和下降沿,我这里传输的只是0和1,所以接收到的没问题,我对同步不是很了解,要是传递字符什么的应该还是得考虑同步问题,但是现在至少说明这条路是通的,传递的东西可以接收到这样也是准确的接收到0和1要从中解读出数据应该还需要其他方面的东西,我的想法是就想在普通传输数字信号那样判别字节的标志位,再根据接收到的数据解读输出内容,先阶段也只能说明我把两块板子之间的有线变成了无线,但是传递的数据解读出来得再改进,您说的无线传输的模块我看了,之前没了解过,不是很懂,但是觉得挺不错的,以后应该用的上,关于同步问题我也还得好好了解,总之十分感谢你的解答

使用特权

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

本版积分规则

18

主题

85

帖子

2

粉丝