关于VHDL的UART通信
发布网友
发布时间:2022-12-27 16:26
我来回答
共2个回答
热心网友
时间:2023-10-20 14:24
RXD作高电平就可以了,如果你不想接收数据,可以不用去管它。
因为RS232通信是半双工,即 RXD,TXD,CLK 三线控制,其中时钟频率由传输的波特率决定,接收和发送的波特率需要设置,FPGA是自己编程时加个时钟发生器来控制TXD的频率,接收的 如PC,可由串口软件设置。只要频率匹配,从机(FPFA)TXD的信号就可以按照协议发送过去,而在主机(PC)上RXD上就接收到了数据。
理论上误码率很低,所以用RXD接收PC机发回的反馈信号,比如奇偶校验,比如一个低电平,但也可以在PC机上接收多次或者自己写协议,对接收到的数据处理,毕竟没有反馈就不知道错误与否。
程序你对着RS232的时序自己写下就可以了,你看懂了就很简单,因为关键的时序在FPGA里很容易实现。
程序方面的传输方面,你可以设置一个数据寄存器 比如 8位,用来放要发送的内容,然后 低位(或者高位,忘记了)一位一位传,传完一个移一位就可以了
一般数据传输的开始信号为低电平,结束为高电平,空闲为高电平。
因为鄙人编程是C的,在ARM上,VHDL也忘差不多了,只能告诉你大概原理。
热心网友
时间:2023-10-20 14:24
RXD作为接受,不用你做任何处理,那个是有PC进行配置的,当然不用的时候,PC会对他置高。所以你不用关注就行了,如果要用,需要通过两级寄存器(打两拍)处理。