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