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