




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、題目名稱:FPGA與單片機實現(xiàn)串行通信目錄1設(shè)計任務(wù)及內(nèi)容12設(shè)計方案13系統(tǒng)硬件設(shè)計13.1單片機串行通信設(shè)計23.2 FPGA串行通信34系統(tǒng)軟件設(shè)計54.1 FPGA單元設(shè)計 54.2串行通信 MAX3232 65.系統(tǒng)調(diào)試106課程設(shè)計總結(jié)10附錄:111設(shè)計任務(wù)及內(nèi)容要求實現(xiàn)FPGA與單片的串行通信,熟悉單片機和VHDL語言的編寫,在設(shè)計 過程中對單片機與FPGA有進一步理解,能夠?qū)崿F(xiàn)串行通信。2設(shè)計方案整個設(shè)計采用模塊化的設(shè)計思想,可分為四個模塊:FPG數(shù)據(jù)發(fā)送模塊,F(xiàn)PGA 波特率發(fā)生控制模塊,F(xiàn)PG總體接口模塊以及單片機數(shù)據(jù)接收模塊。 在通信過程 中完全遵守RS23協(xié)議,并利用
2、VHD語言實現(xiàn)FPGAf單片機的串口異步通信電 路。本設(shè)計采用II位幀格式異步通信方式,一位起始位、一位停止位、一位奇偶 校驗位、8位數(shù)據(jù)位,基于有限狀態(tài)機原理進行 FPG設(shè)計。設(shè)計方案框圖如下:FPGA3系統(tǒng)硬件設(shè)計從機圖2工作模式3.1單片機串行通信設(shè)計單片機與FPG串行通信可采用單片機的SPI(串行外設(shè)接口)方式。相對于 UARTSPI 更簡單,速度更快。SPI 共四條線。MOSI(Master Out Slave In). MISO SCK(Serial Clock) , SS(Slave Select)。圖 1為SPI T作時序。當單片機向 FPGA 傳輸命令或數(shù)據(jù)時,應(yīng)用SPI的四
3、種模式中的SPIO模式。當片選SS拉低。然后在 每個時鐘(SCK)上升沿送出數(shù)據(jù)。將片選信號SS與移位寄存器使能端(En)相接, MOS與移位寄存器數(shù)據(jù)輸入端(SI)相接,SCI同時為移位寄存器提供時鐘信號。 在SS信號為低電平時,移位寄存器開始工作,在每個時鐘上升沿將接收到的數(shù)據(jù) 左移一位,等全部接受完畢,將SS置一 I”,移位寄存器工作完畢,同時為觸發(fā) 器提供時鐘,使移位寄存器接收到的數(shù)據(jù)并行輸出。當單片機從FPG讀取數(shù)據(jù)時,向FPG發(fā)送讀使能信號RE(可用任意空閑I /0 口)。在每個時鐘(SCK)上升沿.FPG送出一位串行數(shù)據(jù),單片機通過MISO取數(shù) 據(jù)。借助VHD硬件描述語言和EDA
4、ff發(fā)工具可方便的實現(xiàn)該系統(tǒng)。如下圖所示:P0.142P0.241POJ40P0 439P0.5羽P0.«J7P0.7羽KO24P3.1P2.22627 一P2.428P2.5対P27JIVD叩44R18.jI?:UP蟲牯32ALE3iMCU'ZKZI10POO43o 1 3 4 3 6 7 O.QO'.O.GO.O.G pppppppp0 12 3 4 5 6 7 工工工d2.!2_工 p p p p p p _p pIMO1M.1D<T2IMJXT.4L2XTAL1勺<®>LEPR£-WGPLCX3ph4pi?"3&
5、quot;Pl 3CPl .4F5&Pl 69Pl 711pa.oPM14P3.21SP3316P?.417P3.51£W酋15"Pj.723P4.Q54P4.1P4.2TxDPJlE<TDP3 2 r<flps_3TOP3.4 7:P5 5P:.O21Q I宀亠J4豈亠舌7 1A- B M * T* i 1 -TL» d-p-pppfpp2011.05!IZZI1C34圖一:單片機電路3.2 FPGA串行通信由于FPG具有豐富的引腳資源,且EP1C3T100C8的核電壓是3.3 V, STC89LE52 的輸出電壓也是3. 3 V,所以任選3
6、064A四個I /O與單片機4個I /O口連接即可, 若連接在單片機的Po口時需要加上拉電阻。在這里將 SS(CS)、SCK SDI、SDO分 別如圖所示連接。:-乂:Q-二二二 HACLO-匚WO1-二二二.-A - - 2 - -呂 go_(djg 工 UM1JIAa2-二-二亠=1602亠 Ego_Luwi.-: rxlcnx二FH<O1o-IOI loTioT ICE-IU5IUT7 IU-T rTIZT7 TUTT ionloIOIOIOIOIOIOIOgIOIOIOIOot三二三.s2-.- E>dl2 負專A.ol -£$od-r-H-t Jd 口 .otJ
7、lnrxJ- di:色 g 01rOIOCP & -£.二-二S& &苻9801-口-gC-1筈lzg«NE 口 Q30% 擔 A ”01HKTCHGfxH盤一3 5 !圖二:FPG電路4系統(tǒng)軟件設(shè)計4.1 FPGA單元設(shè)計FPG的設(shè)計是通信網(wǎng)絡(luò)的核心部分。依據(jù)功能要求,F(xiàn)PG內(nèi)部劃分成四大功 能模塊:SRA控制器、發(fā)送數(shù)據(jù)緩沖模塊、16個UAR模塊、接收數(shù)據(jù)緩沖模塊。 發(fā)送數(shù)據(jù)緩沖模塊劃分成16個RA區(qū),每個RA區(qū)分別連接1個UART當發(fā)送緩沖 模塊接收到主單片機下發(fā)的控制數(shù)據(jù)后, 啟動UAR將數(shù)據(jù)發(fā)送至從單片機。接收 緩沖區(qū)同樣分為16個 RA區(qū)
8、,發(fā)送控制數(shù)據(jù)后,UAR周期性地向從單片機發(fā)送狀 態(tài)查詢命令,從單片機將最新狀態(tài)發(fā)送至UAR模塊,UAR模塊將數(shù)據(jù)存入接收緩 沖模塊相應(yīng)的RA區(qū)。如圖3所示。SR.AM發(fā)送丿 接收iS沖 模塊16個 UART模塊匪J卜5內(nèi)訂曲綽按入世用fpg內(nèi)部共有16對讀/寫和數(shù)據(jù)總線,分別連 接UAR和相應(yīng)的發(fā)送緩沖區(qū)RA及接收緩沖區(qū)RAMFPG內(nèi)部模塊采用圖3 FPG內(nèi)部功能模塊示意圖自頂向下的設(shè)計方法,將復(fù)雜系統(tǒng)劃分為簡單系統(tǒng),然后通過邏輯和接口設(shè)計實現(xiàn)各個模塊功能。SRA控制器用 于FPG和C8O51FO20勺接口,負責內(nèi)部RA啲讀寫控制。UAR負責接收從單片機 上傳的串行信號,將其并行化后存入接收
9、數(shù)據(jù)緩沖 RAM另外也負責將發(fā)送緩沖 RAI中的數(shù)據(jù)轉(zhuǎn)換成符合RS23協(xié)議規(guī)范的串行信號發(fā)送給從單片機。FPG內(nèi)部系統(tǒng)采用同步有限狀態(tài)機(FSM)的設(shè)計方法實現(xiàn),F(xiàn)S碩責調(diào)配各功 能模塊之間的協(xié)作。狀態(tài)機米用獨熱(one hot)編碼,使電路的可靠性和速度有 顯著的提高。系統(tǒng)狀態(tài)轉(zhuǎn)移圖如圖4所示。N地址?命令井開發(fā)送 兄牛蠶卉向命令 屮斷關(guān)團接段到 正確JR據(jù)?'發(fā)送裂、 沖區(qū)RAM 按收鰲據(jù)j計時50m5搖收繩神JxRAM計時200 ms計時 30nw接收:緩沖區(qū) IAM<- "FF圖4有限址態(tài)機狀態(tài)轉(zhuǎn)移圖4.2串行通信 MAX3232主單片機和上位機的通信速率及 F
10、PGA和從單片機的通信速率均設(shè)置為 38. 4 Kbps,可以更精確的控制主單片機與各個從單片機之間的通信時間。 通信指令由 報頭、設(shè)備類型、設(shè)備號、命令號、命令數(shù)據(jù)、校驗等字段組成。報頭用于通知單片機開始串行通信。設(shè)備類型和設(shè)備號用于將指令正確傳達到相 應(yīng)的設(shè)備,命令號用于通知單片機指令,命令數(shù)據(jù)用于通知單片機具體的功能, 校驗則采用CRC校驗以保證通信的準確性。寫入控制命令號為 00H讀取命令號為01H,讀取指令命令數(shù)據(jù)為0字節(jié)。通信指令的幀格式如下:報頭1字*1 ? &1 TV1字VN字V1卞W果接收正確,返回00H,若錯誤則返回01Ho返回幀格式為:設(shè)備類野設(shè)備號命令號1字描1
11、字&1字打1字節(jié)丨字冇p報頭:設(shè)備號1宇節(jié)】字菸】t 1V接收后單片機返同幀格式為:郵頭1設(shè)備類型命令號設(shè)備狀憲i字|字借1字節(jié)1字節(jié)¥字卄】了卩系統(tǒng)發(fā)送、接受程序流程圖如下:FPGA發(fā)送數(shù)據(jù)結(jié)束仿真圖如下: Va<ue: IFlame:300.0ns500.0nsstartresetH 33553365400.0ns圖中Din寫入值為3355H波特率為2400Hz Start信號始終置邏輯1,即 隨時都能發(fā)送數(shù)據(jù)。Reset信號邏輯1時復(fù)位,邏輯0時電路開始工作。THR是 數(shù)據(jù)寄存器,文件頭、數(shù)據(jù)長度以及數(shù)據(jù)位都先寄存到 THR中,Len是數(shù)據(jù)長度, TSR是低8位數(shù)
12、據(jù)幀寄存器,TSR1是高8位數(shù)據(jù)幀寄存器。數(shù)據(jù)長度 Len定為 02H,發(fā)送時先發(fā)送低8位55H,后發(fā)送高8位33H, 共發(fā)送兩遍。發(fā)送的數(shù)據(jù) 格式說明:當發(fā)送55H時,其二進制為01010101,則發(fā)送的數(shù)據(jù)的二進制數(shù)為 00101010111( 1位開始位+8位數(shù)據(jù)位+1位奇校驗位+1位停止位)。單片機部分先對FPGA發(fā)送過來的文件頭進行確認,正確就接收文件,否則 放棄接收的數(shù)據(jù)。根據(jù)FPGA發(fā)送模塊的協(xié)議,對串口控制寄存器SCON口波特率 控制寄存器PCON勺設(shè)置即可實現(xiàn)。FPGA接收數(shù)據(jù)仿真圖:mdlrst恥A1EiwttuftoAdwre-rAr鬢4HQOHOCI串行數(shù)據(jù)幀和接收時鐘
13、是異步的,發(fā)送來的數(shù)據(jù)由邏輯1變?yōu)檫壿?可以視 為一個數(shù)據(jù)幀的開始。接收器先要捕捉起始位,確定 rxd輸入由1到0,邏輯0 要8個CLK16時鐘周期,才是正常的起始位,然后在每隔 16個CLK16時鐘周期 采樣接收數(shù)據(jù),移位輸入接收移位寄存器rsr,最后輸出數(shù)據(jù)dout。還要輸出一 個數(shù)據(jù)接收標志信號標志數(shù)據(jù)接收完。5.系統(tǒng)調(diào)試首先,檢查電路板上各個元器件的工作電壓正確, 電路板能正常工作;其次, 將調(diào)試的部分小程序下載到電路板上,檢測 R232能正常工作;再次,將單片機 發(fā)送,F(xiàn)PGA接受的子程序下入電路板,觀察現(xiàn)象正確,將 FPGA發(fā)送,單片機接 受的子程序下入電路板,觀察現(xiàn)象;最后,將總
14、程序下載到電路板中,觀察現(xiàn)象 正確。6課程設(shè)計總結(jié)此次課程設(shè)計,讓我們有機會把課本中學到的理論應(yīng)用到實際中去,理論聯(lián)系實際,在更好的掌握了書本中的知識的同時加強了動手能力,在調(diào)試工程中遇到了許多問題,這些問題是在書中學不到的,只有通過查閱大量資料,咨詢老師 和同學,我們才一步步排除電路錯誤,在調(diào)試排錯的同時收獲了很多單片機實際 應(yīng)用中的知識。這次實習讓我們受益匪淺,無論從知識上還是其他的各個方面。 上課的時候的學習從來沒有見過真正的單片機, 只是從理論的角度去理解枯燥乏 味。但在實習中見過甚至使用了單片機及其系統(tǒng),能夠理論聯(lián)系實際的學習,開闊了眼界,提高了單片機知識的理解和水平。 這幾周的實習
15、還是比較辛苦的,程 序里面的好多內(nèi)容不懂,自我感覺是單片機和 FPGA我們所學的內(nèi)容還不足以編 出這兩個程序,但是只好硬著頭皮去看去理解。但在學習過程中也充滿了樂趣, 當看懂了程序的一些語句,畫出了要求的設(shè)計圖,那我喜悅那種成就感油然而生。 在這次課程設(shè)計中又讓我體會到了集體的力量, 當遇到不會或是設(shè)計不出來的地方,我們就會向老師或者是同學請教。 團結(jié)就是力量,無論在現(xiàn)在的學習中還是 在以后的工作中,團結(jié)都是至關(guān)重要的,有了團結(jié)會有更多的理念、更多的思維、 更多的情感。這次課設(shè)是對我的學習態(tài)度的一次檢驗。對于這次課程設(shè)計,我的第一大心得體會就是作為一名工程技術(shù)人員,要求 具備的首要素質(zhì)絕對應(yīng)該
16、是嚴謹。我們這次實習所遇到的多半問題多數(shù)都是由于 我們不夠嚴謹。我們認識到,無論做什么事情,只要你足夠堅強,有足夠的毅力 與決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。通過這次單片機實習, 我不僅加深了對單片機理論的理解, 將理論很好地應(yīng)用到實際當中去,而且我還 學會了如何去培養(yǎng)我們的創(chuàng)新精神, 從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新可以 是在原有的基礎(chǔ)上進行改進,使之功能不斷完善,成為真己的東西。單片機和FPGA是電子信息工程的一門重要專業(yè)課,學好單片機和 EDA就 可以憑這個技術(shù)找一個好工作。為即將畢業(yè)的我們在面試時提供了一些實習經(jīng) 驗。我們要在今后的學習中進一步學習單片機知識, 培養(yǎng)對
17、其的興趣,為將來工 作打好基礎(chǔ),充實度過大學生活。附錄:Library ieee;use ieee.std_logic_1164.all;use ieee.stdo gic_arith.all;use ieee.std_logic_ un sig ned.all; en tity atel2_bi n is的波特率時鐘發(fā)送的數(shù)據(jù)port( txclk: in std_logic; -2400Hz reset: in std_logic;- 復(fù)位信號din: in stdo gic_vector(15 dow nto 0);- start: in std_logic;-允許傳輸信號sout: o
18、ut std_logic - 串行輸出端口 );end atel2_b in;architecture behav of atel2_bi n is sig nal thr,le n: stdo gic_vector(15 dow nto 0); sig nal txcnt_r: stdo gic_vector(2 dow nto 0);sig nal sout1: std_logic;sig nal cou: in teger:=0;sig nal oddb:std_logic;type s is(start1,start2,shift1,shift2,odd1,odd2,stop1,sto
19、p2);sig nal state:s:=start1;beg inprocess(txclk)beg inif risin g_edge(txclk) the nif cou<3 then thr<="0000000001010101"- 發(fā)送的文件頭elsif cou=3 the nthr<="0000000000000010"-發(fā)送的文件長度elsif (cou>3 and state=stop2) the n thr<=di n;-發(fā)送的數(shù)據(jù)end if; end if;end process;process(res
20、et,txclk)variable tsr,tsr1,oddb1,oddb2: std_logic_vector(7 dow nto 0);beg inif reset='1' the ntxcnt_r<=(others=>'0');sout1<='1'state<=start1;cou<=0;elsif txclk'eve nt and txclk='1' the ncase state iswhe n start1=>if start='1' thenif cou=3
21、 the nlen<=thr;end if;tsr:=thr(7 dow nto 0);oddb1:=thr(7 dow nto 0);sout1<='0'- 起始位txcnt_r<=(others=>'0');state<=shift1;elsestate<=start1;end if;whe n shift1=>oddb<=oddb1 xor oddb1 (6) xor oddb1 (5) xor oddb1 xor oddb1 (3) xor oddb1 (2) xor oddb1(1) xor oddb1(
22、0);sout1<=tsr(0);- 數(shù)據(jù)位tsr(6 dow nto 0):=tsr(7 dow nto 1);tsr:='0'txcn t_r<=txc nt_r 1;if (txc nt_r=7) the nstate<=odd1;cou<=cou 1;end if;when odd1=> -奇校驗位if oddb='1' thensout1<='0'state<=stop1;elsesout1<='1'state<=stop1;end if;whe n stop1=&g
23、t;sout1<='1'- 停止位if cou<4 the nstate<=start1;elsestate<=start2;end if;whe n start2=>tsr1:=thr(15 dow nto 8);oddb2:=thr(15 dow nto 8);sout1<='0'- 起始位txcnt_r<=(others=>'0');state<=shift2;whe n shift2=>oddb<=oddb2 xor oddb2 (6) xor oddb2 (5) xor oddb2 xor oddb2 (3) xor oddb2 (2) xor oddb2(1) xor oddb
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年03月寧波市海曙區(qū)古林鎮(zhèn)人民政府公開招聘3人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 廣東省東莞市實驗中學2024-2025學年高一下學期3月月考數(shù)學試卷(含答案)
- 南京郵電大學通達學院《中華音樂英文演繹》2023-2024學年第二學期期末試卷
- 西安外事學院《篆書》2023-2024學年第一學期期末試卷
- 寧夏大學新華學院《工程三級實訓(xùn)(數(shù)據(jù)可視化技術(shù))》2023-2024學年第一學期期末試卷
- 上海震旦職業(yè)學院《構(gòu)成基礎(chǔ)》2023-2024學年第二學期期末試卷
- 麗江文化旅游學院《醫(yī)學統(tǒng)計學實驗》2023-2024學年第一學期期末試卷
- 濱州職業(yè)學院《小學課堂觀察》2023-2024學年第二學期期末試卷
- 貴州航空職業(yè)技術(shù)學院《交通運輸工程》2023-2024學年第二學期期末試卷
- 渤海理工職業(yè)學院《體適能理論與實踐》2023-2024學年第一學期期末試卷
- GB/T 21566-2008危險品爆炸品摩擦感度試驗方法
- GB/T 17207-2012電子設(shè)備用固定電容器第18-1部分:空白詳細規(guī)范表面安裝固體(MnO2)電解質(zhì)鋁固定電容器評定水平EZ
- 國開電大《人員招聘與培訓(xùn)實務(wù)》形考任務(wù)4國家開放大學試題答案
- 臨時用電現(xiàn)場安全檢查表
- 豬營養(yǎng)體系課件
- 青少年模擬法庭劇本(敲詐勒索)
- 中考復(fù)習確定二次函數(shù)的解析式課件
- 萬用表校準報告
- 公司金融課件(完整版)
- 地鐵盾構(gòu)法施工技術(shù)試題
- 高處作業(yè)審批表
評論
0/150
提交評論