資源描述:
《fpga的uart完整設計》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在學術論文-天天文庫。
1、電子科技大學成都學院畢業(yè)設計論文第三章UART設計3.1UART的幀格式在UART中,數(shù)據(jù)位是以字符為傳送單位,數(shù)據(jù)的前、后要有起始位、停止位,另外可以在停止位的前面加上一個比特(bit)的校驗位。其幀格式如圖所示。數(shù)據(jù)位起始位D0D1D2D3——————D7校驗位停止位以9600波特率接收或發(fā)送,每一位時間為1/9600秒,或48MHZ晶振5000次計數(shù)圖3_1數(shù)據(jù)幀格式文章通過分析UART的功能,利用有限狀態(tài)機來描述UART核心控制邏輯的方法,將其核心功能集成,從而使整個設計更加穩(wěn)定、可靠?;镜腢ART通信只需要兩條信號線就可以完成數(shù)據(jù)的相互通
2、信。UART的功能模塊如圖3_2所示。波特發(fā)生器Uart控制器接收模塊發(fā)送模塊對象模塊圖3_2UART的功能模塊圖17電子科技大學成都學院畢業(yè)設計論文3.2UART模塊在大規(guī)模電路的設計中,廣泛采用層次化,結構化的設計方法。它將一個完整的硬件設計任務從系統(tǒng)級開始,劃分為若干個可操作的模塊,編制出相應的模型并進行仿真驗證,最后在系統(tǒng)級上進行組合。這樣在提高設計效率的同時又提高了設計質量,是目前復雜數(shù)字系統(tǒng)實現(xiàn)的主要手段,也是本文設計思想的基礎。其系統(tǒng)模塊可劃分為4個部分,如波特發(fā)生器,控制器,接收器,發(fā)送器,如圖3-3所示:readsendclear_
3、checkreadsendClr3clr4kscsData_inData_outclearRead_enablesend_enablecounterscountersresetCounters(control)stateT1clk_enableClk_clearClk(波特發(fā)生器)clk圖3-3uart結構圖3.2.1主要引腳功能介紹Read:串行輸入send:串行輸出Data_in:并行輸入data_out:并行輸出Cs:通知cpu接收數(shù)據(jù)位ks:通知cpu發(fā)送準備位Reset:重啟輸入state:uart狀態(tài)輸入Clk:48M時鐘輸入17電子科技
4、大學成都學院畢業(yè)設計論文3.2.2UART主體程序`timescale1ns/1nsmodulegs_opt(inputwireread,inputwireclk,inputwirereset,inputwirestate,inputwire[7:0]dat_in,outputwiresend,outputwirecs,outputwireks,outputwire[7:0]dat_out);wiresend_enable;wireread_enable;wireclk_enable3;wireclk_enable4;wireclear3;wirec
5、lear4;wireclk_enable;wire[7:0]counters;wireclear;wiret1;/*read,send,cs,ks,reset,state,clk,dat_in,dat_out);17電子科技大學成都學院畢業(yè)設計論文//moduleuart(read,send,cs,ks,reset,state,clk,dat_in,dat_out);inputread,clk,reset,state;//read為串行輸入,clk為時鐘輸入50MHZ,reset為重啟鍵input[7:0]dat_in;//并行數(shù)據(jù)輸入outputs
6、end,cs,ks;//send為串行輸出,cs為通知cpu接收數(shù)據(jù)位,ks為發(fā)送準備位output[7:0]dat_out;//并行數(shù)據(jù)輸出wireclear,clk_enable,read_enable,clear3,send_enable,clear4,t1;wire[7:0]counters,dat_in;*/rxdu1(.dat_out(dat_out),.cs(cs),.read(read),.reset(reset),.clk_enable3(clk_enable3),.clk(clk),.read_enable(read_enable
7、),.clear3(clear3),.counters(counters));//接收數(shù)據(jù)moduletxdu2(.dat_in(dat_in),.ks(ks),.send(send),.reset(reset),.clk_enable4(clk_enable4),.clk(clk),.send_enable(send_enable),.clear4(clear4),.counters(counters)17電子科技大學成都學院畢業(yè)設計論文);//發(fā)送數(shù)據(jù)moduleclk_bauu3(.clk(clk),.t1(t1),.clk_enable(cl
8、k_enable));//時鐘計數(shù)器模塊ctrlu4(.read_enable(read_enable),.