基于FPGA的串行接收模块的设计
对每个字符的采集过程是相同的。笔者根据实际需要只让计算机发送 3个二进制字符,由此能控制FPGA的 8种输出状态。在整个 VHDL源程序编写完之后,用 Modelsim 6.0进行仿真,如图 4。
鉴于发送字符与其异步传输帧格式的特殊关系,此仿真中的 rxd用周期为 16×clk0的波形代替,因此就会接收到字符串‘ 111’。串口调试助手需要每隔一段时间(大于 1ms)发送一组字符串,则等待状态 st4是必须的,它也是接收下一字符的准备状态。缓存区为 3位空数组 fdata,它在接收下一字符之前必须清零。
5 结语
尽管目前串行通信速度慢的特点已经越来越明显,但是因为其传输线少且成本低,多数电子产品开发中都会继续使用串行通信。本文所介绍的串行接收模块是笔者根据实验要求自行设计,并在实验中成功地完成了计算机对FPGA的准确控制。因此,本文也可作为一个实例,供开发者交流。
本文作者创新点:计算机串口按 ASCII码发送“0”和“1”组成的字符串,在FPGA内部只需判断接收到的数据流中的每个起始位之后的第一位数据位,就可昀终得出计算机发送的字符串。此种方法使 FPGA能够简便、准确的识别串口数据,且可以方便地修改为任何一种异步通信帧格式。
评论