紧急求助,关于无线收发模块APC220一点对多点通讯的问题
在做一个项目:下位机是多根传感器组成的杆子、FPGA和无线收发模块APC220-43的发送模块(其中每根杆子都配有一个FPGA和APC220的发送和接收模块),其中APC220插在FPGA板上,现在想在各个杆子的APC220发送数据的时候能设定一个优先级顺序,实现每根杆子能“通信交流”,来决定谁先发送。
这个怎么解决,求助求助 我查了下,使用说明中APC220-43 的通信信道是半双工的,可以完成一点对一点,一点对多点的
通讯。这二种方式首先需要设1个主站,其余为从站,所有站点都必须设置一
个唯一的地址。通信的协调由主站控制,主站采用带地址码的数据帧发送数据
或命令,所有从站全部都接收,并将接收到的地址码与本机地址码比较,地址
不同则将数据丢掉,不做响应,若地址码相同,则将接收的数据传送出去。组网必须保证在任何一个瞬间,同一个频点通信网中只有一个电台处于发送状态,
以免相互干扰。APC220-43 可以设置多个频道,所以可以在一个区域实现多个
网络并存。
但是不是我想要的那样 那就时分呗,轮流发?
对实时性要求很高么 3楼说的是对的
分时复用技术
不过这样实时性会下降(下降程度待考察,因为是随着分时客户端的数量增加 延迟增加)
原理大概是:
首先需要通讯的从设备(就是你所谓的杆,说实话 还是不理解什么叫“杆”) 发送一个请求包 ,
主设备一直轮询问是否有收到请求包,本时间只有一请求则回传一个响应包,然后开始双向通讯。如果通讯中间又收到请求包则丢包或者返回忙信号。
客户端如果收到忙信号则延迟XXX时间重新发送请求包。
一般通讯模块这类底层操作都是由模块自身完成的 对单片机透明(单片机只管处理接收的数据 而不用关心数据是什么流程过来的 怎么过来的 看到的只是通讯数据) 所以你人为干预的可能性表示疑问(APC200我不熟)
其实如果要求及时性什么的不高 用WIFI方式也是一种比较不错的选择 上位机是服务器的话 实时度也其实不会太差。而且性能更强大 还有就是 你强调了 “但是不是我想要的那样”
最好说清楚你要哪样。。。
提问题最好是选择题 然后是判断题 再次就是填空题 最差是问答题
可是你这个命题 完全是模糊的。。。 只说不是你要的那样。。。如果别人这么问问题 你会咋样分析呢? 通讯模式 一般3种模式
单工就是类似于收音机这种模式 一方发送一方接收 不可逆转
半双工 就好像对讲机 同时只能一个设备发送 ,另一个设备必须等待通讯完成才能继续发送(信道为空 才可以发送)
全双工 就是双向通讯 互不干扰 类似于现在的电话。
好处是单工的实施成本低
半双工相当于2个单工但是共用一个信道好处是节约信道。
全双工实际上是2个单工 但是用了2个信道 相互不干扰。 darkorigin 发表于 2014-8-14 11:35 static/image/common/back.gif
3楼说的是对的
分时复用技术
不过这样实时性会下降(下降程度待考察,因为是随着分时客户端的数量增加 延 ...
首先非常非常感谢你:)
我先解释一下“杆子”,其实那个就是把16个红外传感器连在一个杆子上,从上到下均匀排列。我简称杆子:P
其次,就是我们想实现的是,如果有一个区域A,它的主节点是上述的一个杆子,子节点还有3个相同的杆子,每根杆子都带有一个无线收发模块即APC220-43,现在假设子节点的3根杆子都同时接收到数据,我们为了避免功耗和数据量,现在想让子节点的3根杆子能“通信”从而决定优先级,哪个杆子先发,哪个杆子的数据后发送到主节点的杆子上。
【注:每根杆都附有一块FPGA板子和APC220】 zoologist 发表于 2014-8-14 10:43 static/image/common/back.gif
那就时分呗,轮流发?
对实时性要求很高么
轮流发的顺序怎么决定啊:) 清水布衣 发表于 2014-8-15 20:03 static/image/common/back.gif
首先非常非常感谢你
我先解释一下“杆子”,其实那个就是把16个红外传感器连在一个杆子上,从上到下均 ...
你这种构想比较类似于令牌环的方式
源于早期的令牌环网络。
由各系统轮流获取通讯信道的使用权。使用后传给下一个。 darkorigin 发表于 2014-8-16 14:31 static/image/common/back.gif
你这种构想比较类似于令牌环的方式
源于早期的令牌环网络。
由各系统轮流获取通讯信道的使用权。使用后 ...
我查了下,令牌环的传输方法是:发送数据时会由掌握令牌的电脑先发送数据。接收数据的电脑会检查frame表头,若是送给自己的则处理之。无论是否是送给自己的,都会再传下去,传一圈后检查数据是否相同以确定数据没有传输错误。待送完数据后可以依需要调整令牌的优先度(改得比自己的优先度低),再把令牌传递到下一台电脑。若接收到令牌但优先度较自己的高,则要把令牌传递到下一台电脑。
也就是说:它有多个接收端,但是我们设想的是:只有一个接收端,但有多个发送端,怎么判断发送端先先发送? 本帖最后由 darkorigin 于 2014-8-18 11:23 编辑
清水布衣 发表于 2014-8-17 23:23 static/image/common/back.gif
我查了下,令牌环的传输方法是:发送数据时会由掌握令牌的电脑先发送数据。接收数据的电脑会检查frame表头 ...
思路:
你的主单片机作为控制方
控制方轮询每个单片机,比如 按照优先级排列是
G1 G2 G3......G10
你可以 按照以下顺讯轮询
先按照正常顺序轮询
G1 G2.......G10
中间如果遇到其他请求则产生一个中断信号
中断程序判断其优先级 高于本轮询的对象或者通讯对象 则停止当前数据传输立刻进行此高优先级设备的处理
处理完成后要求之前通讯的机器重新进行通讯。
优先级在轮询程序的列表里面确定。
比如G1 可以中断G2-G10所有设备的通讯
G2则可以中断除了G1之外的所有设备
如此类推!
darkorigin 发表于 2014-8-18 09:50 static/image/common/back.gif
思路:
你的主单片机作为控制方
控制方轮询每个单片机,比如 按照优先级排列是
抱歉,我最近回家了一次,家里没有网:)
其实你这个轮询就是我们本来的想法,但是觉得不能自动智能,而且耗时:)
后来我想了想,不知道能不能根据波特率来设定,即每个波特率对应一根杆子,这样可根据波特率来识别~~~ 通常低速率的通信用这种无线模块,高速率的可以选择wifi模块
多站之间的协调有两种方式
一种是由主站进行轮询,轮询到的从站可以发送数据,每次发送数据的长度适当限制
第二是由从站在在发送数据之前进行申请,申请成功的占用信道进行通信,失败的等待随机的时间后重新申请
清水布衣 发表于 2014-8-24 10:09 static/image/common/back.gif
抱歉,我最近回家了一次,家里没有网
其实你这个轮询就是我们本来的想法,但是觉得不能自动智能,而且 ...
不太可能 波特率错误 收到的都是乱码
每个试 更费时
页:
[1]