valveboard/protocol/README.md

74 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 阀板通信协议
## 概述
由6条差分信号`SCLK+`,`SCLK-`,`SEN+`,`SEN-`,`SDATA+`,`SDATA-`
显然共计3个信号
- `SCLK`为1MHz同步时钟周期抖动小于500ps
- `SEN`为传输状态
- `SDATA`为阀控制信号1表示关0表示开小端模式
## 物理层
- LVDS差分
- 100欧姆双绞线
*电磁兼容、信号衰减什么的统统没测过,杜邦线、软排线、双绞线随便乱用即可
## 数据链路层
![jkl](README.assets/jkl.svg)
当需要传输一帧数据时,首先在`SCLK`的一个下降沿拉高`SEN`并建立第一个阀的控制信号V0接收电路将在`SCLK`上升沿采样。n表示通道数即所需控制阀门的数量整个传输过程中须将`SEN`拉高保持n个`SCLK`周期期间发送n个`SDATA`阀控制信号分别对应第1个到第n个阀。待最后一个阀的控制信号发送完成后在`SCLK`到达下一个下降沿时,拉低`SEN`。
在两帧的间隔中应持续保持发送1MHz的`SCLK`,接收端将通过`SCLK`的电平跳转来判断是否断开连接。另外两帧数据的间隔应至少为5个`SCLK`周期。
| Symbol | Parameter | Min | Typ | Max | Unit |
| ------ | ------------------------ | ---- | ---- | ---- | ---- |
| t1 | SCLK setup time | 250 | 500 | 750 | ns |
| t2 | Data output access time | - | 250 | 280 | ns |
| t3 | SEN hold time | 250 | 500 | 750 | ns |
| t4 | Data output disable time | - | 250 | 280 | ns |
*Condition at SCLK=1MHz
下面是每一位数据的具体时序
![jkl2](README.assets/jkl2.svg)
| Symbol | Parameter | Min | Typ | Max | Unit |
| ------ | ---------------------- | ---- | ---- | ---- | ---- |
| t5 | Data output valid time | 50** | 500 | 750 | ns |
| t6 | Data output hold time | 250 | 500 | 750 | ns |
*Condition at SCLK=1MHz
**Limit value
发送端须同时满足`t1`~`t5`的参数要求
## 电路
DS90LV048具有内置终端电阻电路设计和布局布线只需注意匹配100欧姆差分阻抗
接收端
![image-20211109200911346](README.assets/image-20211109200911346.png)
发送端
![image-20211109201037196](README.assets/image-20211109201037196.png)
## 作者
[过奕任](https://github.com/3703781)、丁坤。老阀板的协议不明确(其实就没有协议,逆向工程后改进出来的这份协议),所以就大概描述了一下协议相关信息。欢迎提[issue](https://github.com/NanjingForestryUniversity/valveboard/issues)bug随缘解决。
过奕任2020年入学目前正打算找其他人接管这个库毕业了就不要找他但永远可以找丁坤。
丁坤2019年入学虽然已经毕业但也很乐意解答关于这份协议的所有问题。丁坤QQ1091546069、丁坤电话17761700156。