当前位置:  开发笔记 > 运维 > 正文

用于在嵌入式CPU和PC之间进行通信的协议

如何解决《用于在嵌入式CPU和PC之间进行通信的协议》经验,为你挑选了3个好方法。

我正在构建一个带有自己的CPU(AVR Mega8)的小型设备,它应该连接到PC.假设已完成物理连接和字节传递,那么在这些字节之上使用的最佳协议是什么?计算机需要能够在设备上设置某些电压,并回读某些其他电压.

目前,我正在考虑一个完全由主机驱动的同步协议:计算机发送请求,嵌入式CPU应答.还有其他想法吗?



1> Adam Liss..:

对于客户端 - 服务器架构和同步协议,有很多要说的.简单和强大,开始.如果速度不是问题,您可以考虑使用紧凑的,人类可读的协议来帮助调试.我正在思考调制解调器AT命令:"唤醒"序列后跟set/get命令,后跟一个终结符.

Host -->  [V02?]      // Request voltage #2
AVR  -->  [V02=2.34]  // Reply with voltage #2
Host -->  [V06=3.12]  // Set voltage #6
AVR  -->  [V06=3.15]  // Reply with voltage #6

如果它没有看到结束括号,则每一方都可能超时,并且它们会在下一个打开的括号上重新同步,这不会出现在消息本身中.

根据速度和可靠性要求,您可以将命令编码为一个或两个字节并添加校验和.

实际电压回复总是一个好主意,而不是简单地回显命令,因为它节省了后续的读操作.

如果需要调试,还可以帮助定义错误消息.



2> Gerhard..:

Modbus可能就是你想要的.它专为您所遇到的问题而设计.有很多代码/工具,遵守标准可能意味着以后可以轻松重用.它还支持人类可读的ASCII,因此它仍然易于理解/测试.

有关Windows和嵌入式源,请参阅FreeModBus.



3> Robert..:

我的投票是为了人类可读.

但是如果你使用二进制文件,请尝试在开头添加一个标头字节来标记数据包的开头.串口协议不同步,我总是运气不好.标题字节允许嵌入式系统与PC重新同步.另外,最后添加校验和.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有