基于FPGA的串行接收模塊的設計
對每個字符的采集過程是相同的。筆者根據實際需要只讓計算機發送 3個二進制字符,由此能控制 FPGA的 8種輸出狀態。在整個 VHDL源程序編寫完之后,用 Modelsim 6.0進行仿真,如圖 4。
鑒于發送字符與其異步傳輸幀格式的特殊關系,此仿真中的 rxd用周期為 16×clk0的波形代替,因此就會接收到字符串‘ 111’。串口調試助手需要每隔一段時間(大于 1ms)發送一組字符串,則等待狀態 st4是必須的,它也是接收下一字符的準備狀態。緩存區為 3位空數組 fdata,它在接收下一字符之前必須清零。
5 結語
盡管目前串行通信速度慢的特點已經越來越明顯,但是因為其傳輸線少且成本低,多數電子產品開發中都會繼續使用串行通信。本文所介紹的串行接收模塊是筆者根據實驗要求自行設計,并在實驗中成功地完成了計算機對 FPGA的準確控制。因此,本文也可作為一個實例,供開發者交流。
本文作者創新點:計算機串口按 ASCII碼發送“0”和“1”組成的字符串,在 FPGA內部只需判斷接收到的數據流中的每個起始位之后的第一位數據位,就可昀終得出計算機發送的字符串。此種方法使 FPGA能夠簡便、準確的識別串口數據,且可以方便地修改為任何一種異步通信幀格式。
評論