相关疑难解决方法(0)

简单的串行点对点通信协议

我需要两个设备(PC和微控制器)之间的简单通信协议.PC必须向微软发送一些命令和参数.微必须传输一个字节数组(来自传感器的数据).

数据必须受到噪声保护(除了奇偶校验,我认为我还需要一些其他的数据校正方法).

有没有标准的解决方案呢?(我只需要一个想法,而不是完整的解决方案).

PS任何建议表示赞赏.PPS对不起任何语法错误,希望你理解.

编辑1.我还没有决定它是主/从协议还是双方都可以发起通信.PC必须知道微工作何时完成工作并且可以发送数据.如果数据准备就绪,它可以连续轮询微观,或者当作业完成时微观可以发送数据.我不知道哪个更好更简单.

编辑2. 硬件和物理层协议.由于PC中使用RS-232 C串行标准,我将使用异步通信.我将只使用RxD,TxD和GND信号.我无法使用额外的电线,因为微控制器AFAIK不支持它们.顺便说一下,我正在使用AVR ATmega128芯片.

所以我将使用固定波特率,8位数据,2个停止位而不进行奇偶校验(或使用?).

数据链路协议.这就是我的问题主要关注的问题.感谢您提出HDLC,PPPModbus协议.我会研究它.

embedded serial-port protocols

56
推荐指数
5
解决办法
7万
查看次数

一种在嵌入式设备上将字节流转换为C89中的数据包流的方法

我正在研究一种使用rs232(rs232 over USB)连接到PC的嵌入式设备.

我正在考虑开发自己的协议:

<MAGIC><LENGTH><BINARY DATA><CRC>

但我不想重新发明轮子.

注意:我正在考虑相当受限的设备:4kb的RAM,没有内核,也没有标准的C lib.

你能想到一个标准的方法(也许是开源库)吗?

如果您编写自己的解决方案,是否有任何最佳实践?

  • 你是否也在包的末尾使用MAGIC字节?
  • 也许最好使用时间间隔而不是分隔符?
  • 如何在流二进制数据中找到包的开头?
  • 也许最好使用文本协议?

更新: 请重新阅读问题.我不应该要求图书馆,而是要求良好做法.

c embedded communication c89

11
推荐指数
1
解决办法
5247
查看次数

标签 统计

embedded ×2

c ×1

c89 ×1

communication ×1

protocols ×1

serial-port ×1