一、編程環(huán)境 軟件: Quartus 12.0 Web 硬件: DE2開(kāi)發(fā)板 二、例程功能描述 本例程實(shí)現從CPU到PC和PC到PC兩種典型的串口通信模式之間的切換及傳輸,其中切換方式為通過(guò)按鍵切換,具體為: Key0按下:PC->PC的傳輸,即FPGA通過(guò)接收PC串口發(fā)送的數據并將其反饋給PC端。 Key1按下:CPU->PC的傳輸,即FPGA中發(fā)送的測試數據行“Welcome to UseUART\r\n"按大約每?jì)擅胍淮蔚男问桨l(fā)送至PC端。 其中uart的傳輸模塊采用了crazy Bingo的傳輸模塊,因為串口僅支持單工通信,故設置兩個(gè)模式分別進(jìn)行測試。 二、總體RTL綜合后框圖及具體描述(因綜合后圖比較大,清晰的圖請放大) file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-32359.png 本例程所包含模塊與功能: 1)clk_generator 本例所使用的系統時(shí)鐘為50MHz通過(guò)本分頻模塊產(chǎn)生發(fā)送數據時(shí)的時(shí)鐘115200Hz(clk_bps)以及采用時(shí)鐘16*115200Hz(clk_smp)。 2)key_scan 通過(guò)計數方式消抖并返回key0和key1的值,同時(shí)產(chǎn)生一個(gè)時(shí)鐘周期的收到按鍵信號key_flag。 3)mode_switcher 根據收到按鍵信號key_flag以及當前key_value切換傳輸狀態(tài),并生成當前狀態(tài)信號。 4)uart_receiver 利用狀態(tài)機進(jìn)行接收數據的采樣,同時(shí)采樣點(diǎn)設置在7的位置(因為采樣頻率為發(fā)送頻率的16倍)獲取更加穩定的信號值,產(chǎn)生接收一個(gè)字符成功以及接收數據信號等。 5)cpudata 模擬產(chǎn)生發(fā)送串口數據的模塊,可以每隔兩秒鐘進(jìn)行發(fā)送,設計時(shí),延時(shí)注意提前一個(gè)結束字符進(jìn)行重新開(kāi)始計數,并且區分清楚什么時(shí)候對相關(guān)變量進(jìn)行賦值。 6)mux2 多位數據Mux2選擇器,根據Send_Mode選擇當前應當送至發(fā)送模塊的數據。 7)uart_transfer Uart發(fā)送數據模塊,用于發(fā)送串口數據。 附串口設置: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-14838.png ![]() |