串口通信UART
串口通信是通过串口调试助手发送数据和接收数据来验证的,对于CPLD\FPGA设计者而言,只关心与其接口的RS232_RX(数据接收端口)和RS232_TX(数据发送端口)两个信号。简单的帧格式为:
该设计分为4个模块实现,4个模块的划分主要是依据数据流的方向。my_uart_rx模块主要是完成数据的接收,speed_select(speed_rx)模块主要响应my_uart_rx模块发出的使能信号进行波特率计数,并且回送一个数据采样使能信号。my_uart_tx模块在my_uart_rx模块接收好一个完整的数据帧后启动,将接收到的数据返回给对方,它的波特率控制是由speed_select(speed_tx)模块产生。
RTL视图:
个人理解:
该设计的层次:
My_uart_top顶层文件,主要是模块的调用以及定义wire型。
注意:
x(y)表示:x为子模块的信号,y为顶层模块的信号。
My_uart_rx:有三个部分,分别为4级缓存,过滤接收数据;打开数据接收中断,波特率启动信号,均是高电平有效;根据num值,传输信号。
My_uart_tx:也有三个部分,分别为3级缓存,过滤接收使能信号;从接收端发送到发送寄存器(不是发送端),打开发送使能端和波特率启动信号(两者均为高电平有效);把发送寄存器的数据发到发送端。
Speed_select:有两个部分,分别为计数器和在时间中点采样数据。该模块中可以修改波特率参数。
uart的验证:
使用串口调试助手发送数据,cpld通过9pin通信线与电脑连接。