搜索
bottom↓
回复: 8

两片AVR之间用SPI通信(交换各自内部数据块),如何保证同步?

[复制链接]

出0入0汤圆

发表于 2009-3-4 23:27:55 | 显示全部楼层 |阅读模式
书上的例程大概是,两片AVR对发,在各自的中断程序中准备发送下一个数据,不过主控机的中断先加一句延时的代码再准备下一个数据,书上解释说是“等待从器件准备好数据”
问题:
1.SPI是半双工的,也就是通信双方必须同时准备好了,两边的寄存器同步移位,这是不是说通信双方的中断耗时要一模一样(如果想两边都收到有效数据的话)?如果是的话我看的那个例程是不是错了?(因为主控的中断代码多一点,还加了延时)
2.书上的例程是两片AVR一开始就无条件对发,这是否有不妥?是不是应该有一个共同的触发(开关接并口也好外中断也好)以保证其同步?

(本人初学,问的问题难免缺乏水平,还请大家多多包涵)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2009-3-5 11:39:19 | 显示全部楼层
1。SPI本身不是半双工,是双共的,同时收发。当然可以采用半双工的工作方式。不知道能否理解。
2。对于传送一个字节讲,同步由主机发出CLK实现,硬件完成和实现最底层,或叫做物理层的同步。
3。对于再往上层,比如准备传送的字节是否准备好,一个多字节的包如何正确的传送接受,需要用户制定上层的通信规程,并由软件控制实现。
4。参考本书关于RS232通信的介绍,如何制定简单的上层通信规程。另外需要学习数字通信的许多知识。
5。例子只是介绍如何通过SPI实现基本的通信,双方AVR没做其它的工作,因此从机应该有足够的时间处理接收到的数据和准备下一个数据,所以主机只是采用延时的简单手段,保证从机能够准备好。
6。在实际应用中使用SPI接口要看连接的是什么设备,根据设备选择方式。如:
   AVR通过SPI与纯SPI从机连接(存储器、AD、DA等),此类设备一般只能从机方式,而且任务单一,通常是收到主机的命令,然后再返回数据或结果(实际是半双工方式),而且在器件手册中都会明确告诉需要的时间是多少。因此主机AVR发出指令后,只要等待规定的时间后,就可以读数据,或下发新的指令。(例子中的AVR从机实际就是模拟了这样的一种设备)

   如果是两个AVR连接,就比较复杂了,必须仔细的考虑双方采用的方式,以及如何实现同步,保证数据的传送。比如我可能会采用半双工方式,A先作为主机发送数据,然后转换成从机;而B开始为从机,接收到数据后转换成主机,准备数据好后以主机身份向此时的从机A回送数据。

   只要是真正明白和掌握了SPI的原理,并且具备非常好的数字通信基础,应用中才能自由的发挥和创造。

7。本书只要介绍AVR如何使用,属于入门教程。如果真的赋予应用,还需要学习和掌握很多其它的知识和基础:软件设计、系统设计、通信原理等。这些在本书中是无法一一介绍的。

出0入0汤圆

 楼主| 发表于 2009-3-5 23:05:24 | 显示全部楼层
呵呵,老师说的对,我忽略了时钟的作用了。也许主、从的区别之一就是以谁的时钟为基准。

至于通信的基础我确实没有,因为我不是电信的学生。只是在学习单片机的过程中接触到一点点,如校验、数据的格式等等。

出0入0汤圆

发表于 2009-3-6 00:09:42 | 显示全部楼层
马老师讲得不错,谢谢

出0入0汤圆

发表于 2011-5-22 16:54:36 | 显示全部楼层
有帮助,谢谢

出0入0汤圆

发表于 2011-7-4 20:08:40 | 显示全部楼层
马老师讲得不错

出0入0汤圆

发表于 2011-10-14 12:55:08 | 显示全部楼层
又理解了一点了。

出0入0汤圆

发表于 2011-10-14 13:21:41 | 显示全部楼层
开个缓冲,放在中断测试一下

出0入0汤圆

发表于 2012-9-8 21:36:01 | 显示全部楼层
学习了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 18:43

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表