原创 串口通信-RS232

2015-9-16 23:03 1184 7 7 分类: FPGA/CPLD

RS232是个人计算机上通讯接口之一,通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,现在计算机上面的 COM1 和 COM2。

一。有关的几个概念:
1) 波特率:单位时间内载波变化的次数
2)比特率:单位时间内传输的比特数
3)全双工:双线,可同时接收和发送数据
4)半双工:一根线发送接收不可同时进行
5)单工:一根线只有一个方向
传输标记:起始位,数据位(8位,LSB-MSB),停止位(一个波特高)
 
二。
我们选用的芯片时钟为50MHZ,波特率为9600bps,每个波特率所需系统时钟的个数N=(1/9600)/(1/50MHZ)=5208.如下图:以FPGA的角度看,从PC到FPGA,FPGA是接收数据RX,反过来是发送数据TX。做一个简单的连续发送接收模块。数据的收发要求每8位发一次。
 
串口通信-RS232 - 下一个雨天 - 下一个雨天的博客
三。信号变量
1)顶层模块
系统时钟 sclk (接口)
系统复位 s_rst_n (接口)
接收数据 rx (接口)
发送数据 tx (接口)
 
2)发送模块RX
系统时钟 sclk (接口)
系统复位 s_rst_n (接口)
发送数据 rx (接口)
数据打一拍 rx_reg
开始发送标志 rx_start_flag
波特率计数 rx_cnt_baud
位计数 rx_cnt_bit
位标志 rx_bit_flag
结束标志 rx_end_flag (接口)
8位数据 rx_data_reg
锁存后数据 rx_data (接口)
3)发送模块TX
系统时钟 sclk (接口)
系统复位 s_rst_n (接口)
发送数据 tx_data (接口)
开始发送标志 tx_start_flag
波特率计数 tx_cnt_baud
位计数 tx_cnt_bit
位标志 tx_bit_flag
发送数据 tx (接口)

文章评论0条评论)

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