串口通信其實(shí)簡單實(shí)用,這里我就不多說(如果有朋友還對串口通信的協(xié)議不是很了解,建議到google輸入“串口通信協(xié)議”補(bǔ)補(bǔ))。 我們的實(shí)驗(yàn)要實(shí)現(xiàn)的功能如題,就是FPGA里實(shí)現(xiàn)從PC接收數(shù)據(jù),然后把接收到的數(shù)據(jù)發(fā)回去。使用的是串口UART協(xié)議進(jìn)行收發(fā)數(shù)據(jù)。上位機(jī)用的是串口調(diào)試助手。 在FPGA設(shè)計(jì)中,F(xiàn)PGA端發(fā)送數(shù)據(jù)的波特率是可選的,有以下幾種:9600bps,19200bps,38400bps,57600bps,115200bps等,這部分在模塊speed_select里,可以根據(jù)需要進(jìn)行設(shè)置。發(fā)送的數(shù)據(jù)幀格式為:1bit起始位(從高電平到低電平保持一個(gè)bit周期),8bit數(shù)據(jù),1bit停止位,無校驗(yàn)位。以下的代碼有比較詳細(xì)的注釋,經(jīng)過下載驗(yàn)證!此外可參考同目錄下的myuartverilog里的工程,打開編譯后下載到開發(fā)板即可觀看實(shí)驗(yàn)效果。具體的實(shí)現(xiàn)過程有待大家慢慢消化verilog代碼。 (下載本工程代碼后,打開串口調(diào)試助手,設(shè)置好波特率和FPGA中的一致,無校驗(yàn)位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,然后在發(fā)送的字符/數(shù)據(jù)后的空白欄內(nèi)輸入2位16進(jìn)制數(shù)據(jù),點(diǎn)擊手動(dòng)發(fā)送即可看到上方的數(shù)據(jù)接收區(qū)內(nèi)返回了剛才發(fā)送過來的數(shù)據(jù))。
|