基于FPGA技術(shù)實(shí)現(xiàn)與PC串行通信
摘要:本文主要介紹了基于FPGA技術(shù)實(shí)現(xiàn)與PC串行通信的過程,給出了各個(gè)模塊的具體實(shí)現(xiàn)方法,分析了實(shí)現(xiàn)結(jié)果,驗(yàn)證了串行通信的正確性。
本文引用地址:http://butianyuan.cn/article/192024.htm引言
串行通信即串行數(shù)據(jù)傳輸,實(shí)現(xiàn)FPGA與PC的串行通信在實(shí)際中,特別是在FPGA的調(diào)試中有著很重要的應(yīng)用。調(diào)試過程一般是先進(jìn)行軟件編程仿真,然后將程序下載到芯片中驗(yàn)證設(shè)計(jì)的正確性,目前還沒有更好的工具可以在下載后實(shí)時(shí)地對(duì)FPGA的工作情況和數(shù)據(jù)進(jìn)行分析。通過串行通信,可以向FPGA發(fā)控制命令讓其執(zhí)行相應(yīng)的操作,同時(shí)把需要的數(shù)據(jù)通過串口發(fā)到PC上進(jìn)行相應(yīng)的數(shù)據(jù)處理和分析,以此來判斷FPGA是否按設(shè)計(jì)要求工作。這樣給FPGA的調(diào)試帶來了很大方便,在不需要DSP等其他額外的硬件條件下,只通過串口就可以完成對(duì)FPGA的調(diào)試。本文采用QuartusⅡ3.0開發(fā)平臺(tái),使用Altera公司的FPGA,設(shè)計(jì)實(shí)現(xiàn)了與PC的串行通信。
總體設(shè)計(jì)
主要設(shè)計(jì)思想:PC向串口發(fā)送命令,F(xiàn)PGA通過判斷接收的控制字執(zhí)行相應(yīng)的操作,總體框圖如圖1所示。
圖1 總體框圖
設(shè)計(jì)包括三部分:1、通過向I/O端口發(fā)送高低電平以達(dá)到控制外部硬件的要求。2、完成芯片內(nèi)部邏輯的變化。3、將需要的數(shù)據(jù)先存起來(一般采用內(nèi)部或外部FIFO),然后通過串口將數(shù)據(jù)發(fā)送到PC,PC將接收的數(shù)據(jù)進(jìn)行處理和分析。串口采用標(biāo)準(zhǔn)的RS-232協(xié)議,主要參數(shù)的選擇:波特率28800bit/s、8位有效位、無奇偶校驗(yàn)位、1位停止位。
FPGA中各模塊的實(shí)現(xiàn)
分頻模塊
設(shè)計(jì)中需要將3.6864MHz的時(shí)鐘進(jìn)行64分頻變?yōu)?7600 波特作為其他模塊的時(shí)鐘基準(zhǔn)。具體實(shí)現(xiàn)時(shí)采用一個(gè)6位計(jì)數(shù)器,將計(jì)數(shù)器的溢出作為時(shí)鐘的輸出即可實(shí)現(xiàn)整數(shù)分頻。
發(fā)送接收模塊
此模塊是整個(gè)設(shè)計(jì)的核心部分。設(shè)計(jì)流程如圖2所示。
圖2 發(fā)送接收流程圖
在串行通信中,無論發(fā)送或接收,都必須有時(shí)鐘脈沖信號(hào)對(duì)所傳送的數(shù)據(jù)進(jìn)行定位和同步控制,設(shè)計(jì)中采用的時(shí)鐘頻率是波特率的兩倍(57600 bit/s)。接收過程:初始狀態(tài)是等待狀態(tài),當(dāng)檢測(cè)到0時(shí)進(jìn)入檢驗(yàn)狀態(tài),在檢驗(yàn)狀態(tài)下如果再檢測(cè)到0則進(jìn)入接收數(shù)據(jù)狀態(tài),當(dāng)接收完8位比特?cái)?shù)后判斷是否有停止位,如果有則結(jié)束接收過程重新進(jìn)入等待狀態(tài)。發(fā)送過程:初始狀態(tài)是等待狀態(tài),當(dāng)接收到開始發(fā)送的信號(hào)則進(jìn)入發(fā)送過程,先發(fā)送起始位,再發(fā)送8位比特?cái)?shù),每位寬度為2個(gè)周期,當(dāng)一個(gè)字節(jié)發(fā)送完畢后發(fā)送一個(gè)停止位,發(fā)送結(jié)束,重新回到等待狀態(tài)。
評(píng)論