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