畢業(yè)設(shè)計(論文)基于VHDL語言的串行通信芯片的設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于VHDL語言的串行通信芯片的設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于VHDL語言的串行通信芯片的設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于VHDL語言的串行通信芯片的設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于VHDL語言的串行通信芯片的設(shè)計_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、摘 要本文主要介紹基于vhdl語言的串行通信芯片的設(shè)計。在本次設(shè)計中,主要是對可編程邏輯器件進行程序編譯,通過所編譯的程序來實現(xiàn)串行通信芯片所具有的功能??偟膩砜矗驹O(shè)計具有許多優(yōu)點,如結(jié)構(gòu)簡單,功能完善,使用方便,移植性強,成本低廉。關(guān)鍵字:可編程邏輯 串行abstract this design mainly introduces serial communication cmos chip according to vhdl language. in this design, it is mainly to translate and edit for the programmble l

2、ogic device, which realizes the function of serial communication cmos chip by procedure edition and translation. in a word, this design has many characteristic, such as construction simple, function integrity, usage convenient, transplant strong, cheap in cost. keyword: programmble serial目 錄1 緒論42 編

3、譯程序及過程52.1硬件描述語言vhdl簡介5 2.1.1 vhdl概述5 2.1.2 vhdl的結(jié)構(gòu)5 2.1.3 vhdl的特點6 2.2可編程邏輯器件簡介7 2.3 max+plusii簡介72.4編譯環(huán)境7 2.4.1 項目命名7 2.4.2 文件保存并檢查錯誤8 2.4.3 默認一個仿真文件.scf8 2.5編譯輸入結(jié)點波形92.6仿真設(shè)計項目9 2.6.1 打開仿真窗口9 2.6.2 設(shè)置仿真時間9 2.6.3 運行仿真時間9 2.6.4 分析仿真結(jié)果93 系統(tǒng)設(shè)計構(gòu)想103.1基本概念10 3.1.1串行通信10 3.1.2 并行通信10 3.1.3異步傳送方式10 3.2設(shè)計任

4、務(wù)及要求10 3.3設(shè)計方案114 主體設(shè)計134.1程序設(shè)計134.2 內(nèi)部各進程描述134.3 仿真14 4.3.1圖形中各部分的用途16 4.3.2波形分解16 4.3.3波形各個部分分析16 設(shè)計總結(jié)20 致謝21 參考文獻22 附錄123 附錄2 開題報告36 附錄3中期報告38 附錄4 英文資料40 附錄5 英文翻譯541 緒 論人類建立在信息交流的基礎(chǔ)上,通信是推動人類社會文明、進步與發(fā)展的巨大動力。現(xiàn)代通信系統(tǒng)是信息時代的生命?,F(xiàn)代通信網(wǎng)已經(jīng)不在是單一的電話網(wǎng)或電報文字通信網(wǎng),而是一個綜合性的為多種信息服務(wù)的通信網(wǎng)。為適應(yīng)世界性的政治與經(jīng)濟活動的需要,人類已經(jīng)建立起世界性的全球

5、通信網(wǎng)。而通信接口在整個通信系統(tǒng)中起這交通樞紐的作用,它決定著通信過程是否能夠順利有效的完成。目前串行通信應(yīng)用十分廣泛,串行接口已經(jīng)成為計算機的必須部件和接口之一。常見的串行接口有符合ieee國際電氣化標準的rs-232、rs-422、rs-232c等等。在ibmpc系列計算機中使用的是符合rs-232c串行傳輸協(xié)議的rs-232c串行接口。這個串行接口協(xié)議可以用于選擇遠程和近程通信,也可以連接具有符合rs-232c串行協(xié)議的外部設(shè)備。ibmpc系列的計算機系統(tǒng)最多可以控制4個串行接口,但程序同時只能對其中一個串行接口進行存取,此外,intel公司的8250及8251系列串行接口芯片應(yīng)用也十分

6、廣泛。串行接口的使用越來越廣泛,除了pc機之間的通信和控制外部設(shè)備外,還可以通過調(diào)制解調(diào)器(modem)和電話線進行遠程網(wǎng)絡(luò),例如:通過調(diào)制解調(diào)器和電話線,撥號實現(xiàn)pc機與互連網(wǎng)i nternet的互連。本次設(shè)計的異步串行通信接口芯片主要運用硬件描述語言vhdl對可編程邏輯器件進行程序編譯,使其能夠?qū)⒉⑿休斎氲臄?shù)據(jù)按照指定的格式串行輸出,也可以將串行輸入的數(shù)據(jù)按照指定的格式并行輸出。通過編程確定發(fā)送、接收的數(shù)據(jù)格式:如長度、停止位、收發(fā)功能等。本設(shè)計具有結(jié)構(gòu)簡單、功能完善、使用方便、成本低廉、可移植性強等特點。2 硬件描述語言及編譯環(huán)境由于本次設(shè)計的是傳輸系統(tǒng),重復(fù)性比較強,采用文本輸入比較方

7、便,更改方便。固本次軟件設(shè)計采用硬件描述語言vhdl(very high integrated circuit hardware description language ) 對可編程邏輯器件進行編程。并且使用altera公司的軟件max+plusii來對程序編譯、仿真。下面對其進行分別介紹:2.1、 硬件描述語言vhdl簡介目前,電子系統(tǒng)正向著集成化、大規(guī)模和高密度的方向發(fā)展,所需要的集成電路的規(guī)模越來越大,復(fù)雜程度也越來越高。對于如此大規(guī)模和復(fù)雜電路的設(shè)計問題,傳統(tǒng)的門及描述方法線的過于瑣碎,因而難以理解和管理,這就迫使人們尋求更高抽象層次的描述方法和采用高層次的、自頂向下的設(shè)計方法。 硬

8、件描述語言(hdl)就是順應(yīng)人們的這一需要而產(chǎn)生和發(fā)展起來的。2.1.1、 vhdl概述 vhdl(very high speed integrated circuit hardware description language) 是非常高速集成電路的硬件描述語言,是可以描述硬件電路的功能、信號連接關(guān)系及定時關(guān)系的語言,它能比電路原理圖更有效的表示硬件電路的特性。模塊化和自頂向下、逐層分解的結(jié)構(gòu)化設(shè)計思想貫穿于整個vhdl設(shè)計文件中。使用vhdl語言,可以就系統(tǒng)的總體要求出發(fā),自頂向下的將設(shè)計內(nèi)容細化,最后完成系統(tǒng)硬件的整體設(shè)計。vhdl語言已作為一種ieee的工業(yè)標準,涉及接過便于復(fù)用和交流

9、。目前,他還不能應(yīng)用于模擬電路的設(shè)計,但已有人投入研究。2.1.2、vhdl的結(jié)構(gòu) 一個完整的vhdl程序結(jié)構(gòu)通常包括五個部分:實體(entity)、結(jié)構(gòu)體(architecture)、配置(configuration)、程序包(package)及庫(library)。圖1表明了vhdl程序的基本結(jié)構(gòu)。vhdl將所涉及的任意復(fù)雜電路系統(tǒng)看作一個設(shè)計單元,實體(entity)和結(jié)構(gòu)體(architecture)是模塊最基本的兩個組成部分。其中,實體說明用于描述設(shè)計系統(tǒng)的外部接口信號,包括端口的數(shù)目、方向和類型等,其作用就相當于傳統(tǒng)設(shè)計方法中使用的元件符號;結(jié)構(gòu)體部分則描述該系統(tǒng)的行為、系統(tǒng)數(shù)據(jù)的

10、流程或系統(tǒng)組織結(jié)構(gòu)形式。配置用于從庫中選取所需的單元來組成系統(tǒng)設(shè)計的不同規(guī)格的不同版本,是被設(shè)計系統(tǒng)的功能發(fā)生變化。程序包存放設(shè)計模塊能共享的數(shù)據(jù)類型、常數(shù)、子程序等。庫用于存放以編譯的實體、結(jié)構(gòu)體、程序包及配置。一種是用戶自己開發(fā)的工程軟件,另一種是制造商提供的庫。vhdl文件vhdl設(shè)計庫(library):用以存儲預(yù)先完成的程序包和數(shù)據(jù)集合體。程序包(package):聲明在設(shè)計或?qū)嶓w中將用到的常數(shù)、數(shù)據(jù)類型、元件及子程序等。配置(configuration):為實體選定某個特定的機構(gòu)體。結(jié)構(gòu)體(architecture):定義實體的實現(xiàn),即電路的具體描述。實體(entity):聲明到其

11、他實體或其他設(shè)計的接口,即定義設(shè)計的輸入/輸出端口。圖1在用vhdl語言描述系統(tǒng)硬件行為時,按語句執(zhí)行順序?qū)ζ溥M行分類,可以分為順序描述語句和并發(fā)描述語句。例如,進程語句是一個并發(fā)語句。在一個構(gòu)造體內(nèi)可以有幾個進程語句同時存在,各進程語句是并發(fā)執(zhí)行的。但是,在進程內(nèi)部所有語句應(yīng)是順序描述語句,也就是說,是按書寫的順序自上而下,一個語句一個語句地執(zhí)行的。順序描述語句只能出現(xiàn)在進程或子程序中,由它定義進程或子程序所執(zhí)行的算法。語句中所涉及到的系統(tǒng)行為有時序流、控制、條件和迭代等;語句的功能操作有算法、邏輯運算,信號和變量的賦值,子程序調(diào)用等。順序描述語句像在一般高級語言中一樣,其語句是按出現(xiàn)的次序

12、加以執(zhí)行的。在vhdl語言中順序描述語句有以下幾種:wait語句、斷言語句、信號代入語句、變量賦值語句、if 語句、case語句、loop語句、next語句、exit語句、過程調(diào)用語句、null語句。在vhdl語言中能進行并發(fā)處理的語句有進程語句、并發(fā)信號代入語句、條件信號代入語句、選擇信號代入語句、并發(fā)過程調(diào)用語句和塊語句。 2.1.3、vhdl的特點(1)vhdl具有強大的功能,覆蓋面廣,描述能力強,可用于從門級、電路級直至系統(tǒng)級的描述、仿真和綜合。vhdl支持層次化設(shè)計,可以在vhdl的環(huán)境下,完成從簡練的設(shè)計原始描述,經(jīng)過層層細化求精,最終獲得可直接付諸生產(chǎn)的電路級或版圖參數(shù)描述的全過

13、程。(2)vhdl具有良好的可讀性。它可以被計算機接受,也容易被讀者理解。用vhdl書寫的源文件,既是程序又是文檔,即使技術(shù)人員之間交換信息的文件,又可作為合同簽約者之間的文件。(3)vhdl具有良好的可移植性。作為一種以被ieee承認的工業(yè)標準,vhdl事實上已成為通用的硬件描述語言,可以在不同的設(shè)計環(huán)境和系統(tǒng)平臺中使用。(4)使用vhdl可以延長設(shè)計的生命周期。因為vhdl硬件描述與工藝技術(shù)無關(guān),不會因工藝化而使描述過時。vhdl支持對大規(guī)模設(shè)計的分解和已有設(shè)計的再利用。vhdl可以描述復(fù)雜的電路系統(tǒng),支持對大規(guī)模設(shè)計進行分解,有多人、多項目組來共同承擔和完成。標準化的規(guī)則和風(fēng)格,為設(shè)計的

14、再利用提供了有利的支持。2.2、可編程邏輯器件簡介:可編程邏輯器件(pld)是一種半定制專用集成電路,其功能可由設(shè)計者根據(jù)自己的需要來加以定義。與中、小規(guī)模的標準邏輯器件(如74系列、4000系列等)相比,pld的工作速度快,集成度高,功耗低,適應(yīng)性強。利用高密度可編程邏輯器件(hdpld),甚至可以將一個較大規(guī)模的高性能數(shù)字系統(tǒng)集成于單片器件中,可大大減小數(shù)字設(shè)備的體積、重量和功耗,并顯著提高其可靠性。2.3、max+plusii簡介max+plusii提供了與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,確保了易于輸入設(shè)計、快速編譯及完成器件編程。設(shè)計者無需精通器件內(nèi)部結(jié)構(gòu),只需要自己熟悉的設(shè)計輸入工具,如高級行為

15、語言、原理圖或波形圖進行設(shè)計。它還提供了豐富的邏輯功能庫(包括74系列邏輯器件等效宏功能庫、特殊宏功能(macro function)模塊庫以及參數(shù)化的兆功能(mage function)模塊庫)供設(shè)計者使用。、max+plusii還具有開放核的特點,允許設(shè)計人員添加自己的宏功能模塊。充分利用這些邏輯功能模塊,可以大大減輕設(shè)計工作量。2.4、編譯過程2.4.1、指定項目名并建立一個新文件(1)選擇菜單命令file/project/name或點擊快捷鍵,在project對話框中寫入自己的項目名稱如sci。(2)選擇菜單命令file/new或點擊快捷鍵,在new對話框選擇text editor f

16、ile,再選擇ok即出現(xiàn)一個無標題的文本編譯器(text editor)窗口,將文本編輯窗口最大化。(3)選擇菜單命令file/save as,在file name框內(nèi)寫入sci。2.4.2、保存文件并檢查語法錯誤(1)將程序編譯完成后,選擇菜單命令file/project/save&check,或點擊快捷鍵(2)選擇菜單命令windows/項目文件,或者選擇菜單max+plusii/ text editor或者點擊快捷鍵,把操作切換回原來的文件編譯窗口。2.4.3一個默認的仿真通道文件. scf(1) 指定設(shè)計項目。點擊快捷鍵打開設(shè)計文件max2woketimesci.vhd文件,然后點擊快

17、捷鍵,將設(shè)計項目名指向sci.(2) 打開波形編輯窗口。選擇菜單命令file/new或點擊快捷鍵,在出現(xiàn)的對話框中選擇waveform editor file,并從下來的列表中選擇.scf擴展名,然后點擊ok,出現(xiàn)一個無標題的波形編輯器文件窗口。(3) 創(chuàng)建仿真器通道文件。點擊快捷鍵,在出現(xiàn)的對話框中選擇ok,則建立仿真器通道文件sci.scf.(4) 設(shè)定時間軸網(wǎng)格大小,顯示網(wǎng)格。選擇菜單命令option/grid size,鍵入271.2ns,并按下ok。通常用網(wǎng)格大小來表示信號狀態(tài)的基本維持時間。如有必要,選擇菜單項option/show grid,豎直網(wǎng)線就會以271.2ns的間隔顯示

18、在波形編輯窗口中。(5) 設(shè)定時間軸長度。選擇菜單命令file/size并鍵入結(jié)束時間值,它決定在仿真過程中仿真器如何終止施加輸出向量。網(wǎng)格大小和時間軸長度共同確定了仿真通道文件的大小。(6) 選擇菜單命令node/enter nodes from snf,(7) 關(guān)閉type框中的all選項,打開input,output和groups選項。然后選擇list,列出所需要的結(jié)點。(8) 選擇ok,即用所選的結(jié)點和組刷新波形編輯器。這里所未編輯的輸入結(jié)點的波形都默認為低邏輯電平,而所輸出和隱含結(jié)點波形默認為未定義(x)邏輯電平。(9) 為了便于觀察和管理波形文件可以按任意順序?qū)Y(jié)點組進行排序.例如

19、:選定一結(jié)點,拖動鼠標,一條虛線將出現(xiàn),并且將隨著光標的移動而移動,把結(jié)點放在指定的地方。2.5、編輯輸入結(jié)點的信號波形 通過編輯輸入激勵波形為仿真器提供輸入向量。在對某一項目進行仿真時,仿真器根據(jù)輸入結(jié)點的邏輯電平算出并重寫未定義的隱含結(jié)點和輸出結(jié)點的邏輯電平。編輯結(jié)點波形的方法是:使用菜單命令edit/overwrite,或在待編輯處右擊菜單選中overwrite命令來編輯波形。2.6、仿真設(shè)計項目2.6.1、打開仿真器窗口選擇菜單命令max+plusii/simulator,即打開仿真器,并自動裝載sci的仿真網(wǎng)表文件和前面創(chuàng)建的與當前項目同名的仿真器通道文件sci。2.6.2、設(shè)置仿真

20、時間(1) 在start time對話框輸入仿真起始時間。起始時間應(yīng)處于. scf文件的時間軸范圍內(nèi),若超出這個范圍,則默認為0。(2) 在end time對話框中輸入仿真終止時間,終止時間應(yīng)處于. scf文件的時間軸范圍內(nèi)同時還應(yīng)大于起始時間,否則會出錯。2.6.3、運行仿真器(3) 按下start按鈕,即開始仿真sci項目。在仿真sci過程中,進度指示條將朝著100%的方向移動,仿真時間域?qū)討B(tài)更新,輸出邏輯電平將記錄到sci. scf中。(4) 在仿真過程中,可以根據(jù)情況點擊pause暫停仿真,或者點擊stop終止仿真。(5) 在仿真結(jié)束消息框中選擇ok2.6.4、分析仿真結(jié)果 (1)使

21、用波形編輯器窗口周圍的圖形縮、放、全景鈕及滾動條來查看整體波形和局部波形。 (2)動參考線,查看參考線所在位置的邏輯狀態(tài)。 (3)移動菜單項option/snap to grid,以便使參考線可以移動到非網(wǎng)絡(luò)格的位置。通過觀察光標的偏移時間,可以分析設(shè)計項目在所選定器件中的信號延遲關(guān)系。3 系統(tǒng)設(shè)計的構(gòu)想3.1、基本概念3.1.1、串行通信:串行通信就是計算機在接收數(shù)據(jù)時,由串行接口一位一位地收發(fā)數(shù)據(jù),當一幀數(shù)據(jù)完全傳送完后,由串行接口一次把數(shù)據(jù)送給處理器(cpu);當計算機發(fā)送數(shù)據(jù)時,由處理器(cpu)把數(shù)據(jù)傳送給串行接口,再由串行接口通過一條線路,一位一位地把數(shù)據(jù)傳送出去。3.1.2、并行

22、通信:并行通信是將要發(fā)送的數(shù)據(jù)按照一定的數(shù)據(jù)格式各個位同時傳送。在并行通信中,數(shù)據(jù)有多少位,就需要多少根通信線,因此與串行通信相比傳送速度快,但當距離比較遠時成本比較高。3.1.3、異步傳送方式:異步傳送的數(shù)據(jù)以字符為單,傳送時,各個字符可以連續(xù)傳送,也可以斷續(xù)傳送,由發(fā)送方根據(jù)需要來決定。數(shù)據(jù)傳輸?shù)乃俾剩úㄌ芈剩┦请p方事先約定好的幀。異步傳送的另一個特點是,雙方各自用自己的時鐘信號來控制發(fā)送和接收。異步通信以幀為傳送單位,其中包含了一個字符信息.一個幀由其起始位開始,終止位結(jié)束。兩個幀之間為空閑位,一幀信息由7-12位二進制組成。3.2、設(shè)計任務(wù)及要求:在max+plusii環(huán)境下,采用vh

23、dl語言對目標器件進行程序編寫,使其具有異步串行通信芯片的大部分功能。將并行輸入的數(shù)據(jù)按指定的格式串行輸出,也可以將串行輸入的數(shù)據(jù)并行輸出。通過編寫程序確定發(fā)送、接收的不同數(shù)據(jù)格式。3.2.1、數(shù)據(jù)位長度可以為5位、6位、7位、8位3.2.2、停止位長度可以為1位、2位、1.5位3.2.3、可進行任意分頻,如可為2分頻、4分頻、8分頻、16分頻3.2.4、通過編寫程序給出仿真波形,并分析結(jié)果3.3、設(shè)計方案:本次設(shè)計主要是軟件設(shè)計,即通過運用硬件描述語言vhdl來進行程序編譯,用以實現(xiàn)串行通信芯片所具有的功能。在進行程序編譯時,要將程序劃分成三個不同的部分,即控制部分、接收部分和發(fā)送部分,在這

24、三個部分中又包含不同的進程,如圖2所示。其中還用到了一些內(nèi)部寄存器,如:發(fā)送緩沖器(寫)、接收緩沖器(讀)、通信線控制寄存器、通信線狀態(tài)寄存器、除數(shù)寄存器(低字節(jié))、除數(shù)寄存器(高字節(jié))。通過程序編寫來確定數(shù)據(jù)傳輸,工作方式,通信參數(shù)設(shè)置。對接收移位寄存器空滿狀態(tài)進行操作,并將接收移位寄存器的值放入接收數(shù)據(jù)寄存器 數(shù)據(jù)接收控制對通信狀態(tài)寄存器進行操作 控制部分對發(fā)送移位寄存器空滿標志進行操作對發(fā)送數(shù)據(jù)寄存器空滿標志進行操作,并將發(fā)送數(shù)據(jù)寄存器的值傳入發(fā)送移位寄存器寫進程 發(fā)送部分發(fā)送停止位移位發(fā)送進程發(fā)送數(shù)據(jù)進程讀進程移位接收進程接收數(shù)據(jù)進程 接收部分4 主體設(shè)計4.1 程序設(shè)計見附錄14.2

25、 內(nèi)部各進程描述4.2.1 、第一個進程是對移位寄存器空滿狀態(tài)進行操作,并將接收移位寄存器中的值放入接收數(shù)據(jù)寄存器。當rd、cs、ccreg(7)、a2、a1、a0、為0時,接收移位寄存器空;當shrecregfull置1時,表示接收移位寄存器滿,向計算機表示數(shù)據(jù)已經(jīng)準備好,可以轉(zhuǎn)入接收數(shù)據(jù)寄存器。當通信控制寄存器低四位為1100 、1101、1110、1111時分別表示數(shù)據(jù)位為5位、6位、7位、8位。4.2.2、 二個進程是寫進程。當寫信號為低電平時,將數(shù)據(jù)值寫入內(nèi)總線。若復(fù)位鍵置0,則接收數(shù)據(jù)寄存器賦00000000;當寫信號為高電平,將數(shù)據(jù)寫入通信控制寄存器,當?shù)刂肪€a2、a1為0時,若

26、a0為0,將數(shù)據(jù)寫入除數(shù)寄存器低8位;若a0為1,將數(shù)據(jù)寫入除數(shù)寄存器高8位。當?shù)刂肪€全為0時,將數(shù)據(jù)寫入發(fā)送寄存器。4.2.3、第三個進程是發(fā)送接收過程。當時鐘信號為高電平時,若串行輸入置0,表示數(shù)據(jù)開始接收;若sinf置1且接收計數(shù)器低四位為1111時表示數(shù)據(jù)接收完成;除數(shù)寄存器高四位為通信控制寄存器低四位。4.2.4、四個進程是對發(fā)送過程的各標志操作。當soutf置0時,表示開始發(fā)送數(shù)據(jù);soutf置1時表示發(fā)送完畢。當shsendregempty置0時,表示 發(fā)送移位寄存器滿;當shsendregempty置1時,表示發(fā)送移位寄存器空。4.2.5、第五個進程是讀進程。當通信控制寄存器最

27、高位置0,表示要訪問接收數(shù)據(jù)寄存器;若通信控制寄存器最高位置1,表示訪問除數(shù)寄存器。當a2、a1、a0置0時,訪問除數(shù)寄存器低8位;a2、a1置0,a0置1,訪問除數(shù)寄存器高8位。當a2置0,a1、a0置1,訪問通信控制寄存器;當a2、a0置1,a1置0,訪問通信控制寄存器。4.2.6、 六個進程是接收控制進程。當時鐘信號為高電平,串行信號賦1,啟動位到來,scir_v開始計數(shù);sin賦1時,scir_v賦0。當接收到所設(shè)定的數(shù)據(jù)長度是scir_v置0。4.2.7、 七個進程是產(chǎn)生停止位和boudout信號的進程。通信控制寄存器中的第二位為0(ccreg(2)=0)時,表示發(fā)送1位停止位;當c

28、creg(2)=1、ccreg(1)=0、ccreg(0)=時,表示發(fā)送1.5位停止位;當ccreg(2)=1時、stop_counter=64,表示發(fā)送2位停止位。4.2.8、 八個進程是發(fā)送控制進程。當通信控制寄存器低四位為1100 、1101、1110、1111時分別表示數(shù)據(jù)位為5位、6位、7位、8位。當發(fā)送移位寄存器空時,發(fā)送狀態(tài)寄存器將數(shù)據(jù)傳送給發(fā)送移位寄存器,然后按照規(guī)定的數(shù)據(jù)格式和波特率,加入起始位奇偶校驗位和停止位進行數(shù)據(jù)發(fā)送。4.2.9、 九個進程是接收移位寄存器的接收進程。接收移位寄存器對數(shù)據(jù)線輸入端sin輸入的串行數(shù)據(jù)進行移位接收。4.2.10、第十個進程是數(shù)據(jù)的移位發(fā)送

29、進程。發(fā)送狀態(tài)寄存器將微處理器送來的并行數(shù)據(jù)發(fā)送給移位寄存器,發(fā)送移位寄存器在發(fā)送時鐘的作用下,把并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù);在上述的轉(zhuǎn)換過程中,按照程序設(shè)定的數(shù)據(jù)格式自動添加起始位奇偶校驗位和停止位。4.2.11、第十一個進程是對發(fā)送數(shù)據(jù)寄存器空滿標志進行操作的進程。當通信線狀態(tài)寄存器第五位為1時(sendregf=1),表示發(fā)送數(shù)據(jù)寄存器空,然后發(fā)送狀態(tài)寄存器將數(shù)據(jù)傳送給發(fā)送移位寄存器。當ccreg(7)、 a2、 a1、a0 cs都置0時,表示發(fā)送狀態(tài)寄存器滿。4.2.12、第十二個進程是對通信狀態(tài)寄存器進行操作的進程。當發(fā)送數(shù)據(jù)寄存器滿時通信狀態(tài)寄存器第5位清0 ;當發(fā)送數(shù)據(jù)寄存器空時 ,

30、通信狀態(tài)寄存器第5位置1 ;當接收數(shù)據(jù)寄存器空時,通信狀態(tài)寄存器第0位清0 ;當接收數(shù)據(jù)寄存器滿時,通信狀態(tài)寄存器第0位置1 ;當發(fā)送移位寄存器滿時,通信狀態(tài)寄存器第6位清0;當發(fā)送移位寄存器空時 ,通信狀態(tài)寄存器第6位置1。4.3、仿真 4.3.1:圖中各信號的用途: wr: 寫信號 (低有效) reset: 復(fù)位信號 (低有效) cs: 片選信號 (低有效) a2、a1、a0: 8250內(nèi)部寄存器選擇信號 d: 數(shù)據(jù)線(輸入) sout: 串行輸出信號 dsr: 數(shù)據(jù)裝置準備好信號 (低有效) dtr: 數(shù)據(jù)終端準備好信號 (低有效) rclk: 接收時鐘信號 rd: 讀信號 (低有效)

31、sin: 串行信號輸入端 d: 數(shù)據(jù)線(輸入) recreg: 接收數(shù)據(jù)寄存器 baudout: 波特率輸出4.3.2:整個波形圖分為四個部分: 第一部分:0-1ms 數(shù)據(jù)位長度8位,停止位1位, 2分頻。發(fā)送數(shù)據(jù)36h、12h、5ah,接收數(shù)據(jù)e3h、f5h. 第二部分:1-2ms 數(shù)據(jù)位長度7位,停止位2位, 4分頻。發(fā)送數(shù)據(jù)36h、12h, 接收數(shù)據(jù)63h、75h. 第三部分:2-3.4ms 數(shù)據(jù)位長度6位,停止位1位, 8分頻。發(fā)送數(shù)據(jù)36h、12h, 接收數(shù)據(jù)23h、35h. 第四部分:3.4-5.5ms 數(shù)據(jù)位長度5位,停止位1.5位, 16分頻。發(fā)送數(shù)據(jù)16h、12h, 接收數(shù)據(jù)

32、03h、15h.4.3.3:各部分分析: 第一部分:0-1ms 數(shù)據(jù)位長度8位,停止位1位, 2分頻。發(fā)送數(shù)據(jù)36h、12h、5ah, 接收數(shù)據(jù)e3h、f5h. 1、初始化在4us時,將80寫入通信控制寄存器。(通信控制寄存器d7)在11us時,將02寫入除數(shù)寄存器低8位。(2分頻)在18us時,將00寫入除數(shù)寄存器高8位。在25us時,將03寫入通信控制寄存器。(通信控制寄存器d70,d20,d11,d01。即數(shù)據(jù)位長度8位,停止位1位) 2、發(fā)送在32us時,將待發(fā)送數(shù)據(jù)36h寫入發(fā)送數(shù)據(jù)寄存器,輸出dtr數(shù)據(jù)終端準備好信號(負脈沖)。在得到dsr數(shù)據(jù)裝置準備好信號(負脈沖)后開始發(fā)送數(shù)據(jù)

33、36h.在39us時,cpu以查詢方式工作,讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)20h(d50,即發(fā)送數(shù)據(jù)寄存器空)后,在47us時,將待發(fā)送數(shù)據(jù)12h寫入發(fā)送數(shù)據(jù)寄存器。在56us時,cpu以查詢方式讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)00h(d51,即發(fā)送數(shù)據(jù)寄存器滿)后,不斷查詢,直到222us時讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)20h(d50,即發(fā)送數(shù)據(jù)寄存器空)后,在234us時,將待發(fā)送數(shù)據(jù)5ah寫入發(fā)送數(shù)據(jù)寄存器 。在sout端口發(fā)送出正確數(shù)據(jù)。3、接收在317us時,cpu以查詢方式讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)00h(d00,即接收數(shù)據(jù)寄存器空)后,不斷查詢,直到420us時讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)21h(d00,

34、即接收數(shù)據(jù)寄存器滿)后,在452us時,將接收到的數(shù)據(jù)e3h讀入到數(shù)據(jù)線上。數(shù)據(jù)f5h的接收過程與上述過程類似。注:(recreg 為接收數(shù)據(jù)寄存器) 4、baudout輸出clk的二分頻波形。第二部分:1-2ms 數(shù)據(jù)位長度7位,停止位2位, 4分頻。發(fā)送數(shù)據(jù)36h、12h, 接收數(shù)據(jù)63h、75h. 將04寫入除數(shù)寄存器低8位,將00寫入除數(shù)寄存器高八位(四分頻)。 通信控制寄存器d7=0,d2=1,d1=1,d0=0,即7位數(shù)據(jù)長度,停止位2位。 將待發(fā)送數(shù)據(jù)36h寫入發(fā)送數(shù)據(jù)寄存器,輸出dtr數(shù)據(jù)終端準備好信號(負脈沖)。在得到dsr數(shù)據(jù)裝置準備好信號(負脈沖)后開始發(fā)送數(shù)據(jù)36h.

35、cpu以查詢方式工作,讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)40h(d50,即發(fā)送數(shù)據(jù)寄存器空)后,將待發(fā)送數(shù)據(jù)12h寫入發(fā)送數(shù)據(jù)寄存器。在sout端口發(fā)送出正確數(shù)據(jù)。cpu以查詢方式讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)00h(d00,即接收數(shù)據(jù)寄存器空)后,不斷查詢,讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)41h(d00,即接收數(shù)據(jù)寄存器滿)后,接收到的數(shù)據(jù)63h讀入到數(shù)據(jù)線上;用同樣的方法接收75h并讀入到數(shù)據(jù)線上。baudout輸出clk的四分頻波形。第三部分:2-3.4ms 數(shù)據(jù)位長度6位,停止位1位, 8分頻。發(fā)送數(shù)據(jù)36h、12h, 接收數(shù)據(jù)23h、35h. 將08寫入除數(shù)寄存器低8位,將00寫入除數(shù)寄存器高八位(八分頻)

36、。 通信控制寄存器d7=0,d2=0,d1=0,d0=1,即6位數(shù)據(jù)長度,停止位1位。 將待發(fā)送數(shù)據(jù)36h寫入發(fā)送數(shù)據(jù)寄存器,輸出dtr數(shù)據(jù)終端準備好信號(負脈沖)。在得到dsr數(shù)據(jù)裝置準備好信號(負脈沖)后開始發(fā)送數(shù)據(jù)36h. cpu以查詢方式工作,讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)80h(d50,即發(fā)送數(shù)據(jù)寄存器空)后,將待發(fā)送數(shù)據(jù)12h寫入發(fā)送數(shù)據(jù)寄存器。在sout端口發(fā)送出正確數(shù)據(jù)。 cpu以查詢方式讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)00h(d00,即接收數(shù)據(jù)寄存器空)后,不斷查詢,讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)81h(d00,即接收數(shù)據(jù)寄存器滿)后,接收到的數(shù)據(jù)23h讀入到數(shù)據(jù)線上;用同樣的方法接收35h并讀

37、入到數(shù)據(jù)線上。baudout輸出clk的八分頻波形。第四部分:3.4-5.5ms 數(shù)據(jù)位長度5位,停止位1.5位, 16分頻。發(fā)送數(shù)據(jù)16h、12h, 接收數(shù)據(jù)03h、15h. 將0b寫入除數(shù)寄存器低8位,將00寫入除數(shù)寄存器高八位(十六分頻)。 通信控制寄存器d7=0,d2=1,d1=0,d0=0,即5位數(shù)據(jù)長度,停止位1.5位。 將待發(fā)送數(shù)據(jù)36h寫入發(fā)送數(shù)據(jù)寄存器,輸出dtr數(shù)據(jù)終端準備好信號(負脈沖)。在得到dsr數(shù)據(jù)裝置準備好信號(負脈沖)后開始發(fā)送數(shù)據(jù)36h. cpu以查詢方式工作,讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)b0h(d50,即發(fā)送數(shù)據(jù)寄存器空)后,將待發(fā)送數(shù)據(jù)12h寫入發(fā)送數(shù)據(jù)寄存器

38、。在sout端口發(fā)送出正確數(shù)據(jù)。 cpu以查詢方式讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)00h(d00,即接收數(shù)據(jù)寄存器空)后,不斷查詢,讀出通信狀態(tài)寄存器內(nèi)數(shù)據(jù)c0h(d00,即接收數(shù)據(jù)寄存器滿)后,接收到的數(shù)據(jù)03h讀入到數(shù)據(jù)線上;用同樣的方法接收15h并讀入到數(shù)據(jù)線上。baudout輸出clk的十六分頻波形。 設(shè)計總結(jié)在儲妮晟老師的指導(dǎo)下,畢業(yè)設(shè)計到此已經(jīng)完全結(jié)束。在按照設(shè)計的任務(wù)書進行設(shè)計的過程中,我對通信系統(tǒng)有了全面的認識和理解。在此過程中,我遇到了許多問題,通過詢問老師和同學(xué)以及自己查閱資料等多種途徑,解決了許多問題,也提高了自己獨立思考問題、分析問題、解決問題的能力,同時也提高了動手能力。此次

39、設(shè)計,我不僅鞏固了大學(xué)四年來學(xué)習(xí)的基本知識,而且學(xué)會了寫一般論文,用自己已有的知識來分析問題、解決問題,并學(xué)到了許多課本以外的知識,提高了自己的綜合分析能力。同時也培養(yǎng)了細心、嚴謹?shù)膶W(xué)習(xí)態(tài)度,在撰寫論文的過程中,掌握了一般論文的寫作格式,提高了語言組織能力和文字駕馭能力。次次設(shè)計使我受益非淺,這是大學(xué)四年來的理論和綜合能力的考察。在本次設(shè)計中我有如下心得體會:(1) 設(shè)計中盡量使設(shè)計結(jié)構(gòu)簡單,清晰,讓人一目了然。(2) 要對每個細節(jié)仔細設(shè)計,考慮周全,否則一個小的失誤都會導(dǎo)致設(shè)計的失敗。 致謝感謝儲妮晟老師的關(guān)心、指導(dǎo)和教誨。儲老師追求真理,嚴以律己,寬以待人的崇高品質(zhì)對我將是永遠的鞭策。在此

40、次設(shè)計中,儲老師敏銳的思維、民主而嚴謹?shù)淖黠L(fēng),給我留下了深刻的印象,尤其是她那認真負責(zé)的態(tài)度、一絲不茍的精神、細致入微的指導(dǎo)使我深受感動。最后,我還要感謝大學(xué)四年所有幫助過我的老師、同學(xué)和朋友,是你們讓我的大學(xué)生活充滿了生機和活力,給我留下了美好的回憶。參考文獻1.vhdl數(shù)字系統(tǒng)設(shè)計 林敏、方穎立 北京電子工業(yè)出版社 2002.2.可編程邏輯器件原理、開發(fā)與應(yīng)用 趙曙光、郭萬有、楊頌華 西安電子科技大學(xué)出版社 2002. 3.現(xiàn)代微型計算機與接口技術(shù) 楊文顯 清華大學(xué)出版社 2003.4.微型計算機系統(tǒng)原理及應(yīng)用 周明德 清華大學(xué)出版社 1999.5cdma蜂窩移動通信與網(wǎng)絡(luò)安全 袁偉超 北

41、京電子工業(yè)出版社 2002.6. 單片機基礎(chǔ) 李廣弟、朱月秀、王秀山 北京航空航天大學(xué)出版社 2001.附錄1library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all; entity s8250 isport(clk, rclk, reset, sin, rd, wr, cs, a2, a1, a0, dsr: in std_ulogic; baudout, sout, dtr, rts: out std_ulogic; d: inout std_u

42、logic_vector(7 downto 0);end s8250;architecture rtl of s8250 issignal scir: std_ulogic_vector(7 downto 0); signal scit: std_ulogic_vector(7 downto 0);signal sh_r: std_ulogic_vector(3 downto 0);signal sl_r: std_ulogic_vector(3 downto 0);signal sh_t: std_ulogic_vector(3 downto 0);signal sl_t: std_ulog

43、ic_vector(3 downto 0);signal shrecreg: std_ulogic_vector(7 downto 0); -接收移位寄存器 signal shsendreg: std_ulogic_vector(7 downto 0); -發(fā)送移位寄存器 signal recreg: std_ulogic_vector(7 downto 0); -接收數(shù)據(jù)寄存器 signal soutf, sinf: std_ulogic;signal shsendregempty: std_ulogic:=1;signal shrecregfull: std_ulogic:=0;signa

44、l ad: std_ulogic_vector(2 downto 0); signal internal_bus_out: std_ulogic_vector(7 downto 0); -內(nèi)總線 signal internal_bus_in: std_ulogic_vector(7 downto 0); -內(nèi)總線 signal ccreg: std_ulogic_vector(7 downto 0); -通信控制寄存器 signal divl: std_ulogic_vector(7 downto 0); -除數(shù)寄存器低8位 signal divh: std_ulogic_vector(7 d

45、ownto 0); -除數(shù)寄存器高8位 signal sendreg: std_ulogic_vector(7 downto 0); -發(fā)送數(shù)據(jù)寄存器 signal sendregf: std_ulogic;signal csreg: std_ulogic_vector(7 downto 0); -通信狀態(tài)寄存器 signal divf: std_ulogic;signal sendover: std_ulogic:=1;-發(fā)送結(jié)束標志 signal dlength: std_ulogic_vector(3 downto 0); signal dtrf: std_ulogic; begindt

46、r=dtrf; rts=dtrf;dlength = 11&ccreg(1)&ccreg(0); -通信控制寄存器低四位,用于控制數(shù)據(jù)位長度 sh_r = scir(7 downto 4);sl_r = scir(3 downto 0);sh_t = scit(7 downto 4);sl_t = scit(3 downto 0);-p1:對接收移位寄存器空滿標志進行操作,將 -并將接收移位寄存器中的值放入接收數(shù)據(jù)寄存器中 process(rclk, rd, cs)variable shrecreg_v:std_ulogic_vector(7 downto 0); begin if(rd=0

47、and cs=0 and ccreg(7)=0 and a2=0 and a1=0 and a0=0) thenshrecregfull=0; -接收移位寄存器空 elsif(rclkevent and rclk=1) thenif(sinf=1) and (sh_r=dlength) and(sl_r=1111) then shrecregfull for i in 0 to 4 loop -數(shù)據(jù)位數(shù)為5位 shrecreg_v(i):=shrecreg_v(i+3); end loop; shrecreg_v:=shrecreg_v and 00011111; when 1101 = for i in 0 to 5 loop -數(shù)據(jù)位數(shù)為6位 shrecreg_v(i):=shrecreg_v(i+2); end loop; shrecreg_v:=shrecreg_v and 00111111; when 1110 = for i in 0 to 6 loop -數(shù)據(jù)位數(shù)為7位 shrecreg_v(i):=shr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論