版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> E D A 課 程</p><p><b> 設(shè)</b></p><p><b> 計(jì)</b></p><p><b> 報(bào)</b></p><p><b> 告</b></p><p> 設(shè)計(jì)題
2、目:RS-232/485通信接口設(shè)計(jì)</p><p> 學(xué) 院:電子與信息工程學(xué)院</p><p> 班 級(jí):電子科學(xué)與技術(shù)082班</p><p><b> 姓 名: </b></p><p><b> 學(xué) 號(hào): </b></p><p>&
3、lt;b> 指導(dǎo)教師: </b></p><p><b> 成 績(jī):</b></p><p> 2011年07月14日</p><p><b> 目錄</b></p><p> 0 摘要 .......................................
4、....2</p><p> 1 EDA及VHDL簡(jiǎn)介 .................................4</p><p> 1.1 EDA技術(shù) ....................................4</p><p> 1.1.1 EDA技術(shù)的概念 .........................4</p>
5、<p> 1.1.2 EDA技術(shù)的特點(diǎn) .........................4</p><p> 1.2 硬件描述語(yǔ)言(VHDL)........................5</p><p> 1.2.1 VHDL簡(jiǎn)介 ..............................5</p><p> 1.2.2 VHDL語(yǔ)言的
6、特點(diǎn) ........................5</p><p> 2 設(shè)計(jì)目的 .......................................7</p><p> 3 RS-232簡(jiǎn)介 .....................................7</p><p> 3.1 RS-232的歷史和作用 ..........
7、..............7</p><p> 3.2 RS-232接口的電氣特征 ......................7</p><p> 3.3 RS-232接口的物理結(jié)構(gòu) ......................8</p><p> 3.4 RS-232傳輸電纜長(zhǎng)度 ........................8</p>
8、<p> 3.5 RS-232C 的接口信號(hào) .........................8</p><p> 3.6 RS-232端口缺點(diǎn) ............................10</p><p> 4 設(shè)計(jì)原理 ......................................11</p><p> 5 通信
9、功能實(shí)現(xiàn)步驟 ..............................13</p><p> 6 仿真結(jié)果 ......................................14</p><p> 7 總結(jié) ..........................................15</p><p><b> 8 附錄(程序
10、)</b></p><p><b> 0 摘要</b></p><p> 20世紀(jì)是IC迅速發(fā)展的時(shí)代。計(jì)算機(jī)等信息產(chǎn)業(yè)的飛速發(fā)展推動(dòng)了集成電路(Integrated Circuit—IC)產(chǎn)業(yè)。大多數(shù)超大規(guī)模集成電路(Very Large Scale IC—VLSI)在日常生活中有著廣泛的應(yīng)用.而越來(lái)越多的汽車控制系統(tǒng)也走向了電子化。為了實(shí)現(xiàn)基于VH
11、DL 的通信接口電路,采用Quartus II 開發(fā)平臺(tái)進(jìn)行邏輯綜合和時(shí)序仿真,由時(shí)序仿真圖可以看出設(shè)計(jì)的電路獲得了預(yù)期的結(jié)果。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)沒有傳統(tǒng)設(shè)計(jì)中的接線問(wèn)題,硬件功能可以像軟件一樣通過(guò)編程來(lái)修改,可靠性高、體積小,極大地提高了電子系統(tǒng)設(shè)計(jì)的靈活性和通用性。</p><p> 【關(guān)鍵詞】FPGA;VHDL;通信接口;Quartus II</p><p><b>
12、 Abstract</b></p><p> The 20th century is the era of rapid development of the IC . the blooming development of Computer Science has led to the growth of integrated circuit (IC) devices. Most of the Ve
13、ry Large Scale IC (VLSI) applications are using every day . More and more auto-control and an increasing number of vehicle control system to the electronic filing system to the electronic.The Quartus II development platf
14、orm are proposed to realize the VHDL-based car taillights control communication interface, after logic</p><p> 【Key words】FPGA;VHDL;communication interface; QuartusII</p><p> 1 EDA及VHDL簡(jiǎn)介</
15、p><p><b> EDA技術(shù)</b></p><p> 1.1.1 EDA技術(shù)的概念</p><p> EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫,在20世紀(jì)90年代初從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來(lái)的。ED
16、A技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。</p><p> 1.1.2 EDA技術(shù)的特點(diǎn)</p><p> 典型的EDA設(shè)計(jì)流程如下:</p><p> 1、文本/原理圖編輯與修改。首
17、先利用EDA工具的文本或圖形編輯器將設(shè)計(jì)者的設(shè)計(jì)意圖用文本或圖形方式表達(dá)出來(lái)。 2、編譯。完成設(shè)計(jì)描述后即可通過(guò)編譯器進(jìn)行排錯(cuò)編譯,變成特定的文本格式,為下一步的綜合做準(zhǔn)備。 3、 綜合。將軟件設(shè)計(jì)與硬件的可實(shí)現(xiàn)性掛鉤,是將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。</p><p> 4、 行為仿真和功能仿真。利用產(chǎn)生的網(wǎng)表文件進(jìn)行功能仿真,以便了解設(shè)計(jì)描述與設(shè)計(jì)意圖的一致性。 5、適配。利用FPGA/CP
18、LD布局布線適配器將綜合后的網(wǎng)表文件針對(duì)某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、布局布線。適配報(bào)告指明了芯片內(nèi)資源的分配與利用、引腳鎖定、設(shè)計(jì)的布爾方程描述情況。 6、 功能仿真和時(shí)序仿真。</p><p> 7、 下載。如果以上的所有過(guò)程都沒有發(fā)現(xiàn)問(wèn)題,就可以將適配器產(chǎn)生的下載文件通過(guò)FPGA/CPLD下載電纜載入目標(biāo)芯片中。</p><p>
19、; 8、 硬件仿真與測(cè)試。</p><p> 硬件描述語(yǔ)言(VHDL)</p><p><b> VHDL簡(jiǎn)介</b></p><p> VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具
20、有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。</p&
21、gt;<p><b> VHDL語(yǔ)言的特點(diǎn)</b></p><p> 1.用VHDL代碼而不是用原理圖進(jìn)行設(shè)計(jì),意味著整個(gè)電路板的模型及性能可用計(jì)算機(jī)模擬進(jìn)行驗(yàn)證。</p><p> 2.VHDL元件的設(shè)計(jì)與工藝無(wú)關(guān),與工藝獨(dú)立,方便工藝轉(zhuǎn)換。</p><p> 3.VHDL支持各種設(shè)計(jì)方法,自頂向下、自底向上或者混合的都
22、可以。</p><p> 4.可以進(jìn)行從系統(tǒng)級(jí)到邏輯級(jí)的描述,即混合描述。</p><p> 5.VHDL區(qū)別于其他的HDL,已形成標(biāo)準(zhǔn),其代碼在不同的系統(tǒng)中可交換建模。</p><p> 隨著電子技術(shù)的發(fā)展,現(xiàn)場(chǎng)可編程門陣列 FPGA和復(fù)雜可編程邏輯器件CPLD的出現(xiàn),使得電子系統(tǒng)的設(shè)計(jì)者利用與器件相應(yīng)的電子CAD軟件,在實(shí)驗(yàn)室里就可以設(shè)計(jì)自己的專用集成電路
23、ASIC器件。這種可編程ASIC不僅使設(shè)計(jì)的產(chǎn)品達(dá)到小型化、集成化和高可靠性,而且器件具有用戶可編程特性,大大縮短了設(shè)計(jì)周期,減少了設(shè)計(jì)費(fèi)用,降低了設(shè)計(jì)風(fēng)險(xiǎn)。目前數(shù)字系統(tǒng)的設(shè)計(jì)可以直接面向用戶需求,根據(jù)系統(tǒng)的行為和功能要求,自上至下地逐層完成相應(yīng)的描述﹑綜合﹑優(yōu)化﹑仿真與驗(yàn)證,直到生成器件,實(shí)現(xiàn)電子設(shè)計(jì)自動(dòng)化。其中電子設(shè)計(jì)自動(dòng)化(EDA)的關(guān)鍵技術(shù)之一就是可以用硬件描述語(yǔ)言(HDL)來(lái)描述硬件電路。 VHDL是用來(lái)描述從抽象到具體級(jí)別硬
24、件的工業(yè)標(biāo)準(zhǔn)語(yǔ)言,它是由美國(guó)國(guó)防部在80年代開發(fā)的HDL,現(xiàn)在已成為IEEE承認(rèn)的標(biāo)準(zhǔn)硬件描述語(yǔ)言。VHDL支持硬件的設(shè)計(jì)、驗(yàn)證、綜合和測(cè)試,以及硬件設(shè)計(jì)數(shù)據(jù)的交換、維護(hù)、修改和硬件的實(shí)現(xiàn),具有描述能力強(qiáng)、生命周期長(zhǎng)、支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用等優(yōu)點(diǎn)。利用VHDL這些優(yōu)點(diǎn)和先進(jìn)的EDA工具,根據(jù)具體的實(shí)際要求,我們可以自己來(lái)設(shè)計(jì)通信接口電路。</p><p><b> 2設(shè)計(jì)目的</
25、b></p><p> 1 掌握QuartusⅡ的基本操作及使用方法</p><p> 2 熟練在QuartusⅡ環(huán)境下編寫,調(diào)試,仿真,下載程序代碼</p><p> 3 了解RS-232在通信中的作用</p><p> 4 鍛煉理論知識(shí)運(yùn)用于實(shí)踐的能力</p><p> 3 RS-232簡(jiǎn)介<
26、/p><p> 3.1 RS-232的歷史和作用</p><p> 在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來(lái)進(jìn)行通訊。RS-232-C接口(又稱EIARS-232-C)是目前最常用的一種串行通訊接口。(“RS-232-C”中的“-C”只不過(guò)</p><p> 表示RS-232的版本,所以與“RS-232”簡(jiǎn)稱是一樣的)</
27、p><p> 它是在1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn)規(guī)定采用一個(gè)25個(gè)腳的DB-25連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信號(hào)的電平加以規(guī)定。后來(lái)IBM的PC機(jī)將RS232簡(jiǎn)化成了DB-9連接器,從而成為事實(shí)標(biāo)準(zhǔn)。而工
28、業(yè)控制的RS-232口一般只使用RXD、TXD、GND</p><p><b> 三條線。</b></p><p> 3.2 RS-232接口的電氣特征</p><p> 在RS-232-C中任何一條信號(hào)線的電壓均為負(fù)邏輯關(guān)系。即:邏輯“1”為-3到-15V;邏輯“0”為+3到+15V。(RS-232-C最常用的9</p>
29、<p> 條引線的信號(hào)內(nèi)容如下所示)</p><p> DB-9123456789;DB-2583220764522</p><p> 定義DCD RXD TXD DTR GND DSR RTD CTS RI</p><p> 3.3 RS-232接口的物理結(jié)構(gòu)</p><p> RS-232-C接口連接器一般使用型號(hào)為D
30、B-9插頭座,通常插頭在DCE端,插座在DTE端。PC機(jī)的RS-232口為9芯針插座。一些設(shè)備與PC機(jī)連接的RS-232接口,因?yàn)椴皇褂脤?duì)方的傳送控制信號(hào),只需要三條接口線,即“發(fā)送數(shù)據(jù)TXD”、“接收數(shù)據(jù)RXD”和“信號(hào)地GND”。</p><p> RS-232傳輸線采用屏蔽雙絞線。</p><p> 3.4 RS-232傳輸電纜長(zhǎng)度</p><p> 由
31、RS-232-C標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長(zhǎng)度應(yīng)為50英尺,其實(shí)這個(gè)4%的碼元畸變是很保守的,在實(shí)際應(yīng)用中,約有99%的用戶是按碼元畸變10%-20%的范圍工作的,所以實(shí)際使用中最大距離會(huì)遠(yuǎn)超過(guò)50英尺,美國(guó)DEC公司曾規(guī)定容許畸變?yōu)?0%而得出下面實(shí)驗(yàn)結(jié)果。其中1號(hào)電纜為屏蔽電纜,型號(hào)為DECP.NO.9107723內(nèi)有三對(duì)雙絞線,每對(duì)有22#AWG組成,其外覆以屏蔽線。2號(hào)電纜為不帶屏蔽的電纜。型號(hào)為DECP.NO
32、.9105856-04</p><p> 是22#AWG的四芯電纜。</p><p> 3.5 RS-232C 的接口信號(hào):</p><p> RS-232C 的功能特性定義了25芯標(biāo)準(zhǔn)連接器中的20根信號(hào)線,其中2條地線、4條數(shù)據(jù)線、11條控制線、3條定時(shí)信號(hào)線,剩下的</p><p> 5根線作備用或未定義。常用的只有10根,它們
33、是:</p><p> (1)聯(lián)絡(luò)控制信號(hào)線:</p><p> 數(shù)據(jù)發(fā)送準(zhǔn)備好(Data set ready-DSR)——有效時(shí)(ON)狀態(tài),</p><p> 表明MODEM處于可以使用的狀態(tài)。 </p><p> 數(shù)據(jù)終端準(zhǔn)備好(Data terminal ready-DTR)——有效時(shí)(ON)</p><p
34、> 狀態(tài),表明數(shù)據(jù)終端可以使用。 </p><p> 這兩個(gè)信號(hào)有時(shí)連到電源上,一上電就立即有效。這兩個(gè)設(shè)備狀態(tài)信號(hào)有效,只表示設(shè)備本身可用,并不說(shuō)明通信鏈路可以開始進(jìn)行</p><p> 通信了,能否開始進(jìn)行通信要由下面的控制信號(hào)決定。</p><p> 請(qǐng)求發(fā)送(Request to send-RTS)——用來(lái)表示DTE請(qǐng)求DCE發(fā)送數(shù)據(jù),即當(dāng)終端
35、要發(fā)送數(shù)據(jù)時(shí),使該信號(hào)有效(ON狀態(tài)),向MODEM</p><p> 請(qǐng)求發(fā)送。它用來(lái)控制MODEM是否要進(jìn)入發(fā)送狀態(tài)。</p><p> 允許發(fā)送(Clear to send-CTS)——用來(lái)表示DCE準(zhǔn)備好接收DTE發(fā)來(lái)的數(shù)據(jù),是對(duì)請(qǐng)求發(fā)送信號(hào)RTS的響應(yīng)信號(hào)。當(dāng)MODEM已準(zhǔn)備好接收終端傳來(lái)的數(shù)據(jù),并向前發(fā)送時(shí),使該信號(hào)有效,通知終端</p><p>
36、 開始沿發(fā)送數(shù)據(jù)線TxD發(fā)送數(shù)據(jù)。</p><p> 這對(duì)RTS/CTS請(qǐng)求應(yīng)答聯(lián)絡(luò)信號(hào)是用于半雙工MODEM系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,</p><p> 故不需要RTS/CTS聯(lián)絡(luò)信號(hào),使其變高。</p><p> 接收線信號(hào)檢出(Received Line detection-RLSD)——用來(lái)表示DCE已接通通信
37、鏈路,告知DTE準(zhǔn)備接收數(shù)據(jù)。當(dāng)本地的MODEM收到由通信鏈路另一端(遠(yuǎn)地)的MODEM送來(lái)的載波信號(hào)時(shí),使RLSD信號(hào)有效,通知終端準(zhǔn)備接收,并且由MODEM將接收下來(lái)的載波信號(hào)解調(diào)成數(shù)字兩數(shù)據(jù)后,沿接收數(shù)據(jù)線RxD送到終端。此線也叫做數(shù)據(jù)</p><p> 載波檢出(Data Carrier dectection-DCD)線。</p><p> 振鈴指示(Ringing-RI)——
38、當(dāng)MODEM收到交換臺(tái)送來(lái)的振呼</p><p> 叫信號(hào)時(shí),使該信號(hào)有效(ON狀態(tài)),通知終端,已被呼叫。 </p><p> ?。?)數(shù)據(jù)發(fā)送與接收線: </p><p> 發(fā)送數(shù)據(jù)(Transmitted data-TxD)——通過(guò)TxD終端將串行據(jù)</p><p> 發(fā)送到MODEM,(DTE→DCE)。 </p>
39、<p> 接收數(shù)據(jù)(Received data-RxD)——通過(guò)RxD線終端接收MODEM</p><p> 發(fā)來(lái)的串行數(shù)據(jù),(DCE→DTE)。 </p><p> ?。?)地線 : GND、Sig.GND——保護(hù)地和信號(hào)地,無(wú)方向。 </p><p> 上述控制信號(hào)線何時(shí)有效,何時(shí)無(wú)效的順序表示了接口信號(hào)的傳送過(guò)程。例如,只有當(dāng)DSR和DTR都
40、處于有效(ON)狀態(tài)時(shí),才能在DTE和DCE之間進(jìn)行傳送操作。若DTE要發(fā)送數(shù)據(jù),則預(yù)先將DTR線置成有效(ON)狀態(tài),等CTS線上收到有效(ON)狀態(tài)的回答后,才能在TxD線上發(fā)送串行數(shù)據(jù)。這種順序的規(guī)定對(duì)半雙工的通信線路特別有用,因?yàn)榘腚p工的通信才能確定DCE已由接收方向改為發(fā)送方向,這</p><p> 時(shí)線路才能開始發(fā)送。</p><p> 3.6 RS-232端口缺點(diǎn)<
41、/p><p> 1、接口的信號(hào)電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。</p><p> 2、傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps;因此在“南方的老樹51CPLD開發(fā)板”中,綜合程序波特率只能采用19200,也</p><p><b> 是這個(gè)原因。</b></p&
42、gt;<p> 3、接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形</p><p> 式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。</p><p> 4、傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50英尺,實(shí)際上也只能用在50米左右。(通過(guò)外接RS-232增強(qiáng)器可將傳輸距離擴(kuò)大到</p><p><b> 1000米左右)&l
43、t;/b></p><p><b> 4設(shè)計(jì)原理</b></p><p> 串口是計(jì)算機(jī)上一種非常通用設(shè)備通信的協(xié)議(不要與通用串行總線Universal Serial Bus或者USB混淆)。大多數(shù)計(jì)算機(jī)包含兩個(gè)基于RS232的串口。串口同時(shí)也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS-232口。同時(shí),串口通信協(xié)議也可以</p&g
44、t;<p> 用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。 </p><p> 串口通信的概念非常簡(jiǎn)單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總常不得超過(guò)20米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò)2米;而對(duì)于串口而言,</p>&
45、lt;p> 長(zhǎng)度可達(dá)1200米。 </p><p> 典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對(duì)于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配: </p><p> 1)
46、 波特率:這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個(gè)數(shù)。例如300波特表示每秒鐘發(fā)送300個(gè)bit。當(dāng)我們提到時(shí)鐘周期時(shí),我們就是指波特率例如如果協(xié)議需要4800波特率,那么時(shí)鐘是4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近</p><p> 的儀
47、器間的通信,典型的例子就是GPIB設(shè)備的通信。 </p><p> 2) 數(shù)據(jù)位:這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0~127(7位)。擴(kuò)展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡(jiǎn)單的文本(標(biāo)準(zhǔn) ASCII碼),那么每個(gè)數(shù)據(jù)包使用7位數(shù)據(jù)。每個(gè)包是指一個(gè)字節(jié),包括開始/停止位,
48、數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通</p><p> 信協(xié)議的選取,術(shù)語(yǔ)“包”指任何通信的情況。 </p><p> 3) 停止位:用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的位數(shù)越多,
49、不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同</p><p><b> 時(shí)也越慢。 </b></p><p> 4) 奇偶校驗(yàn)位:在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式。有四種檢錯(cuò)方式:偶、奇、高和低。當(dāng)然沒有校驗(yàn)位也是可以的。對(duì)于偶和奇校驗(yàn)的情況,串口會(huì)設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對(duì)于偶校驗(yàn),
50、校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個(gè)。如果是奇校驗(yàn),校驗(yàn)位位1,這樣就有3個(gè)邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡(jiǎn)單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會(huì)判斷是否有噪聲干擾了通信或者是否傳輸和接</p><p><b> 收數(shù)據(jù)是否不同步。</b></p><p> 5 通信功能實(shí)現(xiàn)步驟</p><p>
51、 單片機(jī)實(shí)現(xiàn)串口通訊一般使用UART接口或利用GPIO口模仿異步串行通訊數(shù)據(jù)格式,外加驅(qū)動(dòng)芯片連接RS-232口。</p><p><b> 1. 打開串口</b></p><p><b> 2. 配置串口</b></p><p> 配置串口是通過(guò)改變?cè)O(shè)備控制塊DCB(Device Control Block)的成員
52、變量值來(lái)實(shí)現(xiàn)的</p><p><b> 3. 數(shù)據(jù)讀寫</b></p><p> 對(duì)串口進(jìn)行讀寫與對(duì)文件進(jìn)行讀寫所用的函數(shù)相同,具體為可采用查詢、同步、異步或事件驅(qū)動(dòng)等方法對(duì)串口進(jìn)行讀寫。</p><p><b> 4. 程序的編制</b></p><p> 用VHDL進(jìn)行程序的編制首先要
53、對(duì)串口進(jìn)行初始化,設(shè)定端口,通信速率和校驗(yàn)方式,并在使用前打開串口。</p><p><b> 6仿真結(jié)果</b></p><p> 1 Quartus II調(diào)試</p><p> 打開QuartusⅡ軟件,選擇File>>New Project Wizard(新建工程向?qū)В┻M(jìn)入新建工程對(duì)話框>>單擊Next,設(shè)置
54、新建工程的路徑、名稱、頂層實(shí)體指定對(duì)話框(選擇好保存路徑、輸入工程名為wd_top),單擊Finish完成設(shè)置。</p><p> 建立VHDL程序文件(選擇File>>New打開新建文件對(duì)話框>>選擇VHDL File即可)。最后是輸入汽車尾燈控制電路程序代碼>>保存>>對(duì)該工程文件進(jìn)行全程編譯處理。如果在編譯的過(guò)程中發(fā)現(xiàn)有錯(cuò)誤,則找出并更正錯(cuò)誤,直至編譯成功為
55、止。</p><p><b> 2 時(shí)序仿真與分析</b></p><p> 選擇File>>New Other Files>>Vector Waveform File;</p><p> 選擇Edit>>End Time >>設(shè)置仿真時(shí)間;</p><p> 選擇
56、View>>Utility Windows>>Node Finder(或者使用快捷鍵Alt+1),將程序涉及到的輸入輸出端口添加到時(shí)序仿真文件中,設(shè)置相應(yīng)的信號(hào)并保存時(shí)序仿真文件,鼠標(biāo)單擊仿真按鈕進(jìn)行仿真</p><p><b> 仿真波形圖如下:</b></p><p><b> 7總結(jié)</b></p>
57、<p> 通過(guò)本次課程設(shè)計(jì)的學(xué)習(xí),我深深的體會(huì)到設(shè)計(jì)課的重要性和目的性。本次設(shè)計(jì)課不僅僅培養(yǎng)了我們實(shí)際操作能力,也培養(yǎng)了我們靈活運(yùn)用課本知識(shí),理論聯(lián)系實(shí)際,獨(dú)立自主的進(jìn)行設(shè)計(jì)的能力。它不僅僅是一個(gè)學(xué)習(xí)新知識(shí)新方法的好機(jī)會(huì),同時(shí)也是對(duì)我所學(xué)知識(shí)的一次綜合的檢驗(yàn)和復(fù)習(xí),使我明白了自己的缺陷所在,從而查漏補(bǔ)缺。希望學(xué)校以后多安排一些類似的實(shí)踐環(huán)節(jié),讓同學(xué)們學(xué)以致用。</p><p> 在設(shè)計(jì)中要求我要有
58、耐心和毅力,還要細(xì)心,稍有不慎,一個(gè)小小的錯(cuò)誤就會(huì)導(dǎo)致結(jié)果的不正確,而對(duì)錯(cuò)誤的檢查要求我要有足夠的耐心,通過(guò)這次設(shè)計(jì)和設(shè)計(jì)中遇到的問(wèn)題,也積累了一定的經(jīng)驗(yàn),對(duì)以后從事集成電路設(shè)計(jì)工作會(huì)有一定的幫助。在應(yīng)用VHDL的過(guò)程中讓我真正領(lǐng)會(huì)到了其并行運(yùn)行與其他軟件順序執(zhí)行的差別及其在電路設(shè)計(jì)上的優(yōu)越性。用VHDL硬件描述語(yǔ)言的形式來(lái)進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)方便靈活,利用EDA軟件進(jìn)行編譯優(yōu)化仿真極大地減少了電路設(shè)計(jì)時(shí)間和可能發(fā)生的錯(cuò)誤,降低了開發(fā)成本
59、,這種設(shè)計(jì)方法必將在未來(lái)的數(shù)字系統(tǒng)設(shè)計(jì)中發(fā)揮越來(lái)越重要的作用。</p><p><b> 8 附錄(程序)</b></p><p> library IEEE;</p><p> use IEEE.STD_LOGIC_1164.ALL;</p><p> use IEEE.STD_LOGIC_ARITH.ALL;
60、</p><p> use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> entity uart is</p><p> generic(ff:integer:=8);</p><p> Port (cs: out std_logic_vector(1 downto 0); </p>&
61、lt;p> --位選數(shù)碼管和發(fā)光二極管</p><p> clk : in std_logic; --系統(tǒng)時(shí)鐘</p><p> reset : in std_logic;--復(fù)位信號(hào)</p><p> set: in std_logic; --設(shè)置信號(hào)</p><p> cn : in std_
62、logic;--數(shù)據(jù)發(fā)送使能</p><p> rver: in std_logic; --RS232的信號(hào)接收端</p><p> data2: out std_logic_vector(7 downto 0);</p><p><b> --送出的8位數(shù)據(jù)</b></p><p> txd :
63、out std_logic); --RS232的信號(hào)發(fā)送端</p><p><b> end uart;</b></p><p> architecture Behavioral of uart is</p><p> type state1 is(t_indle,t_start,t_wait,t_shift,t_stop);&l
64、t;/p><p> signal c_state:state1;</p><p> type state2 is </p><p> (r_start,r_center,r_wait,r_sample,r_stop);</p><p> signal h_state: state2;</p><p> signa
65、l data1 : std_logic_vector(8 downto 0);</p><p> signal clk1,clk2: std_logic;</p><p> signal rver_synt:std_logic;</p><p><b> begin</b></p><p> bxfsq:proc
66、ess(clk,reset) --波特率發(fā)生器</p><p> variable clk0: std_logic;</p><p> variable count : integer range 0 to 325;</p><p><b> begin</b></p><p> if re
67、set='0' then count:=0;clk0:='0';</p><p> elsif clk'event and clk='1' then </p><p> if count=325 then count:=0;clk0:='1';</p><p> else count:=c
68、ount+1; clk0:='0';</p><p><b> end if;</b></p><p><b> end if;</b></p><p> clk1<=clk0;</p><p> end process;</p><p> p
69、ulze1:process(clk,reset)</p><p> variable clk0: std_logic;</p><p> variable count :integer range 0 to 2500000;</p><p><b> begin</b></p><p> if reset=
70、9;0' then clk0:='0';count:=0;</p><p> elsif clk'event and clk='1' then count:=count+1;</p><p> if count=1250000 then clk0:='1';</p><p> elsif coun
71、t=2500000 then clk0:='0'; count:=0;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> clk2<=clk0;</p><p> end process;</p&
72、gt;<p> leijia: process(clk2,reset,set) --數(shù)據(jù)累加器</p><p> variable c: integer range 0 to 50000;</p><p> variable data: std_logic_vector(7 downto 0);</p><p><b>
73、begin</b></p><p> if reset='0' then data:="00000000";</p><p> elsif clk2'event and clk2='1' then </p><p> if set='0' then c:=c+1;<
74、/p><p> if c=1 then data:=data+"00000001"; </p><p><b> end if;</b></p><p> else c:=0; </p><p><b> end if;</b></p><p&
75、gt;<b> end if;</b></p><p> data1<='1'&data;</p><p> end process;</p><p> transfer:process(clk1,reset,cn,data1) --數(shù)據(jù)發(fā)送部分</p><p> variab
76、le count1:std_logic_vector(4 downto 0);</p><p> variable ff1: integer range 0 to 8;</p><p> variable txds: std_logic;</p><p><b> begin</b></p><p> if re
77、set='0' then c_state<=t_indle;txds:='1'; </p><p> elsif clk1'event and clk1='1' then </p><p> case c_state is</p><p> when t_indle=></p>
78、<p> if cn='1' then c_state<=t_start;</p><p> else c_state<=t_indle;</p><p><b> end if;</b></p><p> when t_start=> </p><p> if
79、count1="00100" then</p><p> c_state<=t_wait; count1:="00000"; </p><p> else count1:=count1+1; c_state<=t_start;txds:='0';</p><p><b> end i
80、f;</b></p><p> when t_wait=> </p><p> if count1="01110" then </p><p> if ff1=ff then c_state<=t_stop; ff1:=0;</p><p> else c_state<=t_shif
81、t;</p><p><b> end if;</b></p><p> count1:="00000";</p><p> else count1:=count1+1;c_state<=t_wait;</p><p><b> end if;</b></p&
82、gt;<p> when t_shift=></p><p> txds:=data1(ff1);c_state<=t_wait;ff1:=ff1+1;</p><p> when t_stop =></p><p> if count1="01110" then </p><p>
83、 if cn='0' then c_state<=t_indle;</p><p> count1:="00000";</p><p> else count1:=count1;c_state<=t_stop; </p><p> end if; count1:="00000";</p
84、><p> else count1:=count1+1;c_state<=t_stop;txds:='1';</p><p><b> end if;</b></p><p> when others=>c_state<=t_indle;</p><p> end case;<
85、;/p><p><b> end if;</b></p><p> txd<=txds;</p><p> end process;</p><p> gz:process(clk,rver)</p><p><b> begin</b></p>&
86、lt;p> if clk'event and clk='1' then</p><p> if rver='1' then rver_synt<='1';</p><p> else rver_synt<='0';</p><p><b> end if;&l
87、t;/b></p><p><b> end if;</b></p><p> end process;</p><p> recevier:process(clk1,reset,rver_synt)--數(shù)據(jù)接收部分</p><p> variable c1: std_logic_vector(4 dow
88、nto 0) ;</p><p> variable c2: integer range 0 to 8;</p><p> variable data3:std_logic_vector(7 downto 0);</p><p><b> begin</b></p><p> if reset='0
89、9; then h_state<=r_start;data3:="11111111"; cs<="11"; data2<="11111111";</p><p> elsif clk1'event and clk1='1' then cs<="10";</p><
90、p> case h_state is</p><p> when r_start=> </p><p> if rver_synt='0' then h_state<=r_center; </p><p> else h_state<=r_start; </p><p><b&g
91、t; end if;</b></p><p> when r_center=> </p><p> if c1="00100" then h_state<=r_wait;c1:="00000";</p><p> else c1:=c1+1; h_state<=r_center;</
92、p><p><b> end if;</b></p><p> when r_wait=> </p><p> if c1="01110" then </p><p> if c2=ff then h_state<=r_stop; c1:="00000";c2:
93、=0;</p><p> else h_state<=r_sample;</p><p> end if; c1:="00000";</p><p> else c1:=c1+1; h_state<=r_wait;</p><p><b> end if;</b></p
94、><p> when r_sample=></p><p> data3(c2):=rver_synt;c2:=c2+1; h_state<=r_wait;</p><p> when r_stop=> </p><p> h_state<=r_start;data2<=data3(7 downto 0);&
95、lt;/p><p> when others=> h_state<=r_start;</p><p><b> end case;</b></p><p><b> end if;</b></p><p> end process;</p><p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)--矩陣鍵盤接口設(shè)計(jì)
- RS-485通信接口芯片的IC設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)設(shè)計(jì)193通信原理課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)193通信原理課程設(shè)計(jì)
- 微機(jī)接口課程設(shè)計(jì)--雙機(jī)間的串行通 信
- 畢業(yè)設(shè)計(jì)193通信原理課程設(shè)計(jì).doc
- 畢業(yè)設(shè)計(jì)193通信原理課程設(shè)計(jì).doc
- eda課程設(shè)計(jì)--eda課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 2016通信電子線路課程設(shè)計(jì)
- 接口與通信課程設(shè)計(jì)--雙機(jī)通信
- eda課程設(shè)計(jì)-- eda與數(shù)字系統(tǒng)課程設(shè)計(jì)
- 接口課程設(shè)計(jì)報(bào)告——雙機(jī)通信
- eda課程設(shè)計(jì)
- eda課程設(shè)計(jì)
- 接口與通信課程設(shè)計(jì)---雙擊串行通信
- eda課程設(shè)計(jì)
- rs485通信規(guī)范
- rs232通信接口芯片在0.6um工藝下的設(shè)計(jì)與實(shí)現(xiàn)
- eda課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)題庫(kù)
評(píng)論
0/150
提交評(píng)論