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