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