基于FPGA器件XC2S50芯片實現(xiàn)串口接收數(shù)據(jù)系統(tǒng)的應用方案_第1頁
基于FPGA器件XC2S50芯片實現(xiàn)串口接收數(shù)據(jù)系統(tǒng)的應用方案_第2頁
基于FPGA器件XC2S50芯片實現(xiàn)串口接收數(shù)據(jù)系統(tǒng)的應用方案_第3頁
基于FPGA器件XC2S50芯片實現(xiàn)串口接收數(shù)據(jù)系統(tǒng)的應用方案_第4頁
基于FPGA器件XC2S50芯片實現(xiàn)串口接收數(shù)據(jù)系統(tǒng)的應用方案_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于FPGA器件XC2S50芯片實現(xiàn)串口接收數(shù)據(jù)系統(tǒng)的應用方案1前言隨著FPGA的飛速發(fā)展與其在現(xiàn)代電子設計中的廣泛應用,越來越多的實驗和設計中會運用FPGA與RS232通信。與此同時,F(xiàn)PGA具有功能強大、開發(fā)過程投資小、周期短、可反復編程等特點。在FPGA芯片上集成了串行接收功能模塊,從而簡化了電路、縮小了電路板的體積、提高了可靠性。本文主要介紹圍繞FPGA所設計的符合RS232標準的串行接收模塊。2異步串行通信原理串行通信分為兩種類型:同步通信方式和異步通信方式。本設計采用的是異步通信方式,其的特點是:通信的發(fā)送方和接收方各自有獨立的時鐘,傳輸?shù)乃俾视呻p方約定。國際上規(guī)定的一個串行通信波特率標準系列是:110、300、600、1200、1800、2400、4800、9600、19200,單位是bps。本文采用的是19200bps。異步傳輸是一個字符接一個字符傳輸。一個字符的信息由起始位、數(shù)據(jù)位、奇偶校驗位和停止位組成。每一個字符的傳送靠起始位來同步,字符的前面是一位起始位,用下降沿通知接收方傳輸開始,緊跟著起始位之后的是數(shù)據(jù)位,傳輸時低位在前、高位在后,字符本身由5~8位數(shù)據(jù)位組成。數(shù)據(jù)位后面是奇偶校驗位,昀后是停止位,停止位是高電平,標志一個字符的結束,并為下一個字符的開始傳送做準備。停止位后面是不定長度的空閑位。停止位和空閑位都規(guī)定高電平,這樣可以保證起始位開始處有一個下降沿,如圖1所示。3硬件接口電路原理設計在串行通信中,普遍采用的是RS232-C接口的標準。RS232-C接口信號引腳的連接方式規(guī)定了25芯的D型連接器DB-25,本設計采用的是一個9芯的D型連接器DB-9,并且用昀為簡單常用的三線制接法,即地、接受數(shù)據(jù)和發(fā)送數(shù)據(jù)三腳相連。本設計的硬件接口電路圖如圖2所示,由三部分組成:FPGA串口接收模塊、MAX232和DB-9。FPGA采用的是Xilinx公司的SPARTAN系列的XC2S50芯片,其封裝為TQ144。MAXIM公司的MAX232CPE是為滿足EIA/TEA-232E的標準而設計的,具有功耗低、波特率高、價格低等優(yōu)點。工作電源為+5V,外界電容僅為luF,為雙組RS-232收發(fā)器。MAX232有兩個發(fā)送器,本設計只用其中一個發(fā)送器,另外一個發(fā)送器的輸入端接地、輸出端懸空。異步數(shù)據(jù)接收過程可作為一個整體來實現(xiàn),數(shù)據(jù)由DB-9的RxD端輸入,經過MAX232進行電平轉換由FPGA串口接收模塊的RxD端進入,然后在串口接收模塊內部對接收來得數(shù)據(jù)進行判斷,并昀終實現(xiàn)對FPGA輸出信號的控制。4FPGA接收串行數(shù)據(jù)的軟件設計本方案采用的串行異步通信的幀格式為:1位起始位+5位數(shù)據(jù)位+1位停止位。經檢測與分析,如果已經確定異步通信的幀格式,那么每個字符就可以分別用固定的7位數(shù)據(jù)表示。比如:字符‘0’:‘0000011’;字符‘1’:‘0100011’。其中第1位數(shù)據(jù)‘0’為起始位,昀后1位數(shù)據(jù)‘1’為停止位,中間5位數(shù)據(jù)為數(shù)據(jù)位。例如:用串口調試助手軟件發(fā)送字符串‘100’,則會在FPGA的RxD引腳測得如圖3的波形。其中,st1,st2,st3表示先后發(fā)送的3個字符,t1,t2,t3則表示對每個字符進行檢測時所經過的3種狀態(tài)。正如圖3波形所示,接收邏輯首先通過檢測輸入數(shù)據(jù)的下降沿來檢查起始位。然后產生接收時鐘,利用接收時鐘來采樣串行輸入數(shù)據(jù)。由于字符‘0’和‘1’在5位數(shù)據(jù)位中的僅第一位有區(qū)別,因此只要準確地將第一位數(shù)據(jù)檢測出來就可以得出串口調試助手所發(fā)送的字符串。再利用移位操作,將字符串存儲在緩存器(即另一組可以更新的字符串)中。至于剩下的4位數(shù)據(jù)位和一位停止位,就可以不隨接收時鐘采樣。待串口調試組手發(fā)送的字符串全部存儲之后,一起在該模塊中進行判斷,并根據(jù)字符串的不同來控制FPGA不同的輸出。接收時鐘是根據(jù)數(shù)據(jù)傳輸?shù)牟ㄌ芈十a生的:接收時鐘=16×19200Hz。它始于起始位的下降沿,終于第5位數(shù)據(jù)位的上升沿。下面是實現(xiàn)檢測第1個字符的VHDL源程序。if(clk0‘eventandclk0=’1‘)then----外部時鐘casestateiswhenst1=》----第1個字符開始casetateiswhent1=》----起始位開始if(rxd=’1‘)then----未到下降沿不計數(shù)cnt16《=“0000”;cnt48《=“000000”;----所有時鐘清零elsecnt16《=cnt16+1;----下降沿來,起始位計數(shù)開始endif;if(cnt16=“1111”)thentate《=t2;----起始位完,進入數(shù)據(jù)位endif;whent2=》----進入第1位數(shù)據(jù)位if(cnt16=“1111”)thencnt16《=“0000”;elsecnt16《=cnt16+1;endif;if(cnt16=“0011”)thensdata《=rxd;----采樣第1位數(shù)據(jù)位endif;if(cnt16=“0111”)thenif(sdata=’0‘)thendata(0)《=’0‘;elsedata(0)《=’1‘;----判斷采樣值,如果為0,則發(fā)送字符為0,反之亦然endif;endif;if(cnt16=“1111”)thentate《=t3;----第1位數(shù)據(jù)位完,進入下一狀態(tài)endif;whent3=》----進入第2位,第3位和第4位數(shù)據(jù)狀態(tài)if(cnt16=“1111”)thencnt48《=“000000”;elsecnt48《=cnt48+1;----不對剩下的數(shù)據(jù)采樣,直接計數(shù)endif;if(cnt48=“101111”)thensdata《=’0‘;----采樣位清零tate《=t1;----進入采集下一字符的準備狀態(tài)state《=st2;----第1個字符采集完,進入下一字符endif;endcase;fdata(0)《=data(0);----采集完的字符存入緩存區(qū)………………對每個字符的采集過程是相同的。筆者根據(jù)實際需要只讓計算機發(fā)送3個二進制字符,由此能控制FPGA的8種輸出狀態(tài)。在整個VHDL源程序編寫完之后,用Modelsim6.0進行仿真,如圖4。鑒于發(fā)送字符與其異步傳輸幀格式的特殊關系,此仿真中的rxd用周期為16×clk0的波形代替,因此就會接收到字符串‘111’。串口調試助手需要每隔一段時間(大于1ms)發(fā)送一組字符串,則等待狀態(tài)st4是必須的,它也是接收下一字符的準備狀態(tài)。緩存區(qū)為3位空數(shù)組fdata,它在接收下一字符之前必須清零。5結語盡管目前串行通信速度慢的特點已經越來越明顯,但是因為其傳輸線少且成本低,多數(shù)電子產品開發(fā)中都會繼續(xù)使用串行通信。本文所介紹的串行接收模塊是筆者根據(jù)實驗要求自行設計,并在實驗中成功地完成了計算機對FPGA的準確控制。因此,本文

溫馨提示

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

最新文檔

評論

0/150

提交評論