关于VHDL的RS232通信,它的波特率怎么算,他的原理是什么呢!!!!
没有“VHDL的RS232通信”这种说法。只有例如“利用RS232接口实现FPGA/CPLD与计算机进行通信”这样的说法。希望楼主今后表达问题时能尽量清晰。
首先要知道利用RS232接口通信,波特率不是固定的,在一定范围内即可。以RS232C标准为例,它适合于数据波特率在0~20000bps 范围内的通信。平时常说的110bps、4800bps、9600bps等是国际提倡使用的波特率。
所以,以利用RS232接口实现FPGA与计算机进行通信为例,具体的波特率是由设计者确定的。设利用FPGA的时钟源分频得到了一个4800Hz的时钟信号,设你要传输的数据位长为6位,在发送这6位数据前,你可以一直发送1,以此告诉计算机你还没发送有效的数据,然后你在时钟上升沿到来时发送0,以此告诉计算机你就要发送有效的数据了,然后在下一个时钟上升沿到来时发送你那6位数据的最低位,再下一个时钟上升沿到来时发送高一位,如此反复就可以将6位数据全部发送完毕了,发送完毕后你仍然一直发送1,告诉计算机等待下一次有效数据的发送。
如图所示,那个奇偶校验位是用来给计算机判断数据是否发送正确用的,从原理上你可以不理会。从图中你会发现t是一个固定值,它就是你发送一位数据所花的时间,结合我上面的描述,t就等于1/4800s,这表示,此时波特率为4800bps。
写了很多,希望能说得明白,希望对得起你给的100分。
——Medied.Lee