虽然简单的串口翻车了,会找技术支持帮忙的,但是找老本行使用FPGA控制tx和rx不会失误的
FPGA 作为主机(主机),通过 UART 协议与CEM5861G-M11毫米波雷达模块(从机)进行通信
FPGA的控制指令
参数配置: 发送指令设置雷达的检测阈值、距离、延时等参数。
数据接收与解析: 接收雷达主动上报或查询返回的数据帧,并解析出目标信息(状态、距离、速度等)。
逻辑控制: 根据解析出的结果控制其他外设
FPGA做UART协议需要根据串口协议自己编写
UART协议(1bit)
适用场合:速率要求不高,配置单片机信息,数据量低(采集传统传感器数据)
异步串口通信(UART)、同步串口通信(USART)
异步:通信中的发送端与接收端二者的时钟不一致,时钟速度慢,最高2Mbps
为什么速度快不能使用串行通信?跳变时需要一个过程,时钟慢,周期长,时钟宽,不在跳变区概率小,取出数据正确的,若正好在跳变区读取数据,取出数据错误。若高速时钟,脉宽窄,读跳变区概率大,稳定期小
同步:通信中的发送端与接受端 时钟统一
1. UART 以自身的时钟为基准发送和接受数据,发送端有自己板级的晶振产生串行的数据通过TX发送数据,接收端以接收端晶振为基准通过RX接收数据,TX 和RX频率相同,相位不同
2. USART 有随路时钟,随数据一起传输,数据和时钟始终保持同步,例如传输0x08(0000 1000)第一个时钟周期传输0,第四个时钟周期传输1
全双工、半双工、单工
全双工:可同时收发数据:通常两个通道一个RX,一个TX。UART
半双工:也有两个通道:TX和RX。数据不能同时收发。RS485、232、422
单工:只有一个方向,一个发送通道或者一个接收通道。SPI
同步:通信中的发送端与UART 可以传输任意比特的数据,常规8bit

1.波特率:每秒传输的bit个数。单位bit/s、bps。一秒传输115200bit,波特率:115200bit/s 115200bps
2.空闲状态:代表数据线上没有数据传输,空闲为高。
3.起始位:拉低总线代表马上要开始传输数据
4.数据位:代表传输的数据位数
5.校验位:无校验、奇校验、偶校验
6.停止位:拉高代表当前通信停止,保证下次接收时可以接收到
7.空闲位:总线重回空闲状态
读写每条指令需要控制器,以下是我的控制框图

全部评论