热度 7
2015-9-16 23:03
1203 次阅读|
0 个评论
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位发一次。 三。信号变量 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 (接口)