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