嵌入式UART接口模塊的設計
3 UART頂層模塊的仿真測試
將上述各個模塊的VHDL代碼生成原理圖符號,并在原理圖編輯工具中將各個模塊連接起組成1個完整的UART模塊。為了驗證UART模塊的正確性,對UART的發送過程和接收過程分別進行了波形仿真。
為便于觀察波形,波特率產生器設置為4個系統時鐘產生一個完整的波特率時鐘。圖9是UART模塊接收過程的仿真波形圖。
圖9 UART數據接收過程的仿真波形圖
由仿真波形圖可以看出,接收端RxD上的數據序列為0101010101,起始位‘0’后為數據位“10101010”,最后一位為停止位‘1’。在10個波特率時鐘之后,UART發出1個接收完成信號recv=‘1’,并在數據輸出端“new_data”將接收的數據輸出給后續數據處理模塊。由于發送數據時首先發送數據的最低位,因此接收的數據應為“01010101”,將光條放置數據輸出端“new_data”的數據輸出波形上,可以從數據欄看到此時數據輸出端new_data=“01010101”,UART數據接收功能完全正確。
圖10為UART發送過程仿真波形。由圖可以看出,send=‘1’后待發送數據為“01010101”,將待發送數據加上起始位和停止位,并從最低位開始發送,則發送端txd上的數據序列為“0101010101”,發送停止位后,發送結束信號send_over=‘1’。圖10證明UART數據發送功能完全正確。
圖10 UART數據發送過程的仿真波形圖
4 結語
介紹了UART在可編程邏輯器件FPGA上的實現,并通過實際電路驗證了設計的功能,使用FPGA不僅可以方便地用串口協議與PC機進行串行通信,而且擴展了板級系統的接口功能。應用在可編程器件FP2GA內部,可以很大程度地減少電路板的使用面積,并提高系統的穩定性和可編程性。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論