原创 串口通信UART--读书笔记

2015-7-27 15:11 1405 10 10 分类: FPGA/CPLD

CPLD学习心得

1.串口通信UART

PS:详情可以查看my_uart_top文件夹

串口通信是通过串口调试助手发送数据和接收数据来验证的,对于CPLD\FPGA设计者而言,只关心与其接口的RS232_RX(数据接收端口)和RS232_TX(数据发送端口)两个信号。简单的帧格式为:

20150727150702889.jpg

该设计分为4个模块实现,4个模块的划分主要是依据数据流的方向。my_uart_rx模块主要是完成数据的接收,speed_select(speed_rx)模块主要响应my_uart_rx模块发出的使能信号进行波特率计数,并且回送一个数据采样使能信号。my_uart_tx模块在my_uart_rx模块接收好一个完整的数据帧后启动,将接收到的数据返回给对方,它的波特率控制是由speed_select(speed_tx)模块产生。

RTL视图:

20150727150812410.jpg

个人理解:

该设计的层次:

20150727150859431.jpg

My_uart_top顶层文件,主要是模块的调用以及定义wire型。

注意:.x(y)表示:x为子模块的信号,y为顶层模块的信号。

My_uart_rx:有三个部分,分别为4级缓存,过滤接收数据;打开数据接收中断,波特率启动信号,均是高电平有效;根据num值,传输信号。

My_uart_tx:也有三个部分,分别为3级缓存,过滤接收使能信号;从接收端发送到发送寄存器(不是发送端),打开发送使能端和波特率启动信号(两者均为高电平有效);把发送寄存器的数据发到发送端。

Speed_select:有两个部分,分别为计数器和在时间中点采样数据。该模块中可以修改波特率参数。

 

uart的验证:

使用串口调试助手发送数据,cpld通过9pin通信线与电脑连接。


文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /2 下一条