首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于nRF905的无线数据传输系统
来源:本站整理  作者:佚名  2009-05-27 12:32:40




 

为了避免陷入死循环,在单片机程序中专门设计了中断子程序,用于处理此类情况。中断子程序采用的中断源是TMR1定时器。一旦死循环运行超时,就会触发TMR1中断,程序跳转到中断子程序。中断子程序的任务是打破当前的僵局,使双方的程序运行都能回到正常的轨道上。考虑到S系统此时处于接收模式,正在等待来自M系统的指令,所以,M系统在中断子程序中重发上一条指令,然后返回主程序中,继续查询CD/AM/DR信号的状态,等待来自S系统的数据。而S系统收到该指令后判断是否是S端协议内容。通过M端重发指令的方式,使双方再建立一次通信,跳出上一次的死循环。如果本次通信仍然不成功,那么单片机程序会遵循中断一重发机制运行,直到通信成功为止。当然,如果通信双方的距离已经超出了信号的有效覆盖范围,通信是不会成功的。

3.2.2 S端协议设计

S端的协议处于从控位置,相对简单。设计中,仍然通过查询nRF905的CD/AM/DR状态接收指令,关键要解决指令的判读问题,即分清是正常流程内指令还是重发指令。这一问题在冲击波存储测试系统的工作参数设定阶段不存在,因为每一个参数设定指令都不一样,S端第一次收到某个指令肯定是正常流程内指令,第二次收到该指令则肯定是重发的指令。但在读数阶段就不同了,因为存储数据可能有几兆字节,如此大的数据量需要拆成无数个包才能发送,而M端不可能每读一次都使用不同的指令。为此,S端协议采用两个读数指令K1和K2,循环发送。K1之后收到K2或K2之后收到K1均为正常,S端协议从测试系统读取存储数据并缓存到内部寄存器,然后无线发送出去。若连续收到两个相同的指令,说明M端没有收到刚才的数据,此时,S端从内部寄存器中读取刚才的数据,进行无线重发,而不再从测试系统中读取。S端的协议流程如图3所示。

4 结束语

系统调试成功后,进行了多次数据传输实验,从实验数据可得,无线信号在室内传输环境下的损耗要远大于室外街道环境;在同等条件下,误码率主要与距离延伸有关;过往车辆对数据传输影响不大。该无线数据传输系统已成功应用于多个存储测试系统中。实现了控制指令和测试数据的无线传输

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:16,476.56000 毫秒