社区
单片机/工控
帖子详情
请求算法?关于串口读写速度问题。
cyczl666
2003-09-11 09:20:24
请求算法:
我现在有十块仪表串联接到串口,上位机监控数据,但需要向每块表发送指令才能得到相应的返回数据,串口通讯的速度一定小于语句的速度,每块表需要读4个数据,这样一共40此发送和接收,怎样使得速度最快还不会出现冲突。
...全文
116
9
打赏
收藏
请求算法?关于串口读写速度问题。
请求算法: 我现在有十块仪表串联接到串口,上位机监控数据,但需要向每块表发送指令才能得到相应的返回数据,串口通讯的速度一定小于语句的速度,每块表需要读4个数据,这样一共40此发送和接收,怎样使得速度最快还不会出现冲突。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
136196
2003-09-17
打赏
举报
回复
(1)此处向你提供一种实例参考:
单片机主从分布,即所有子单片机的接收端接主单片机发送端,所有子单片机的发送端接主单片机接收端;
使用中断方式3;
初始化时剔除未响应设备,及报错,那么在实际执行中,将很少用到超时;
轮讯;
波特率9600,10台外设,轮讯周期为1/32秒。
(2)分级式控制,分级汇报,汇总:
将使用更多的CPU;且主单片机及从主单片机将具有双串口。
xiaocha
2003-09-16
打赏
举报
回复
???通讯正常时1.5秒循环一次,每次发出指令等待返回,超过150ms就超时???
难道正常时也每次都超时???
收完一个下位机的数据,立即切换可能会更快些!!!
dboy1981
2003-09-16
打赏
举报
回复
Solution 1: 可以模仿环形令牌网的方式,一个表传完数据后让下个表传输数据。最好通过硬件来实现,一个表传输完后从某个口输出一个脉冲,通知下个表传输,缺点是成本提高,而且距离大的话可能实现有困难,且其中一个表坏了,整个网络都不通。
Solution 2: 在上位机软件的算法方面解决。在通信协议上,采用 ht_toto(独眼龙) 的建议,将四个数据一起传输,并定义数据串的前导符和终止符以及每个数据的分隔符;在串口的设置上,设定每个字符触发一次串口事件;算法如下:定义一个全局字符变量,当受到的字符串的第一个字符为前导字符,将字符串赋值给全局变量,同时检测最后一个字符是否为终止字符,如果不是,则返回,如果是,则发送下一个采样指令,然后提取、处理数据,初始化全局变量。这样就可以在最大程度上使数据的传输保持连续。
如果有什么考虑不周全的地方,请大家指出讨论。
ht_toto
2003-09-14
打赏
举报
回复
可以采用一次读取4个数据的方法,以减少上位机的发送次数和收发切换的次数。这样,在理论上,用于数据传输上的时间可以减少到原来的62.5%,而用于收发切换的时间则可减少到原来的25%。
cyczl666
2003-09-13
打赏
举报
回复
波特率9600,还好,现在通讯正常时1.5秒循环一次,每次发出指令等待返回,超过150ms就超时,这样速度不算快,但准确性还能保证。
888yifeng
2003-09-12
打赏
举报
回复
你只要保证同一时间只有一个CPU“发话”
再保证每个CPU的驱动能力一般就没问题了。
如果负载很多,那速度要提高就只能靠驱动了。
要不然波特率高了波形就会失真,幅度也会下降,
建议你用示波器,看一下波形,一般是可以看出问题的。
cyczl666
2003-09-12
打赏
举报
回复
我本来就是多地址的,每块标有一个Addr。查询就是很慢,快了就容易冲突。
888yifeng
2003-09-11
打赏
举报
回复
用单片机也不难,给每块表编个地址就可以了,只是速度不可能太高。
程序处理也比较麻烦。
888yifeng
2003-09-11
打赏
举报
回复
用DSP吗?
如果是可以设串口模式为地址位多处理器模式。
地址对应才通信,而之后的数据由于其没有地址位下位机不动作。
而其波特率可以达到1。8MBit/S,应该可以满足你的要求。
【USB】Android实现
读写
USB
串口
数据
先后做了关于Android
读写
HID、
串口
设备的DEMO。本文比较简单,主要介绍的是Android实现读取
串口
数据的功能 废话不多说,先看一下业务层是如何调用的;如图: 首先,监听USB连接状况,当USB 进行
请求
USB权限,当USB...
Matlab
串口
数据接收发送流程和
串口
速度
提高
在进行PID参数整定的工作过程中,我需要将电机的转速、扭矩、母线电压、母线电流、相电压、相电流等参数通过
串口
传递到电脑上用Matlab来进行BP神经网络
算法
的PID整定计算,再将计算得到的PID参数传给电机的驱动板,...
基础架构:etcd一个读
请求
是如何执行的?
这一章主要讲解etcd读
请求
过程。 先附一张etcd简要架构图 client层:Client 层包括 client v2 和 v3 两个大版本 API 客户端库,提供了简洁易用的 API,同时支持负载均衡、节点间故障自动转移,可极大降低业务...
分布式共识
算法
(Consensus Algorithm)
分布式共识
算法
(Consensus Algorithm) 如何理解分布式共识? 多个参与者针对某一件事达成完全一致:一件事,一个结论 已达成一致的结论,不可推翻 有哪些分布式共识
算法
? Paxos:被认为是分布式共识
算法
的根本,...
操作系统 第六章 输入输出设备
磁盘调度的目的是为了缩短(D)时间。 A. 旋转延迟 B....C....D....下列
算法
中,用于磁盘调度的是(D)。...A. 优先级
算法
B. LRU
算法
C. 时间片轮转调度
算法
...现有一个磁道访问
请求
序列为35,45, 12, 68,110, 180, 170, 19..
单片机/工控
27,373
社区成员
28,771
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章