打印

nrf905的透传的驱动问题,

[复制链接]
1697|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guojian6|  楼主 | 2008-12-25 13:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  我用nrf905做光纤的fsk传输,一次spi发送16个字节,由于不可能每次都正好是16字节,最后一次我就把不够的字符填0x00,以前一直没事,大部分通信协议不传0x00,我在串口转发那里0x00就 不转发了。现在遇到个转义的协议,必须传0x00,按道理也应该问题不大,我把驱动改了,串口转发了0x00,结果就是每包数据最后多了数个0x00,新需求测试没有问题,到老的地方测试有的行有的不行,估计对方驱动不是太好,被后面的0x00干扰了。有什么好办法可以把最后一包的0x00去掉,如果spi发一个字节我发现好像跟不上串口,用的是89c2051,要求是200个字符。

相关帖子

沙发
chunyang| | 2008-12-25 20:33 | 只看该作者

这只能说你的协议太不严谨

典型协议报文:引导码+地址码+功能码+长度码+数据段+校验码,协议严谨了自然就不会遇到你的问题。至于SPI的速度其实比串口快得多,估计你的仿真程序问题,提高SPI的同步时钟频率即可。

使用特权

评论回复
板凳
guojian6|  楼主 | 2008-12-26 13:46 | 只看该作者

spi的速度是比uart快

 uart的速度是9600,模拟的spi发一个字节效率本身就低了,加上905的一些时间,一个一个发就来不及了,如果我内存大我都接收了再发也好,现在是转发如果一次发一个字节好像跟不上。我这个模块是透传的不涉及协议,现在就是别人发的每包数据后面都可能多了些0,比如7exxxxxxxxxxxx7e变成了7exxxxxxxxx7e000000。

使用特权

评论回复
地板
chunyang| | 2008-12-26 19:58 | 只看该作者

协议是要你自己附加的

    协议分多层,模块上的只能称为物理层和传输层协议,你自己的则属于应用层,与信道本身无关,可以附着在任何类型的信道上。SPI只发一个字节也无所谓,这还来不及只能说明你的程序结构不佳导致效率过低,注意要有合适的任务调度机制,即使是普通的MCU,其处理能力相对信道传输率而言要快得多,是数量级的差别,只要程序有效率,应付起来是没有问题的。

使用特权

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

本版积分规则

23

主题

73

帖子

0

粉丝