下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于FPGA異步串行通信接口模塊設(shè)計與實現(xiàn)摘要:在基于FPGA芯片的工程實踐中,經(jīng)常需要FPGA與上位機(jī)或其他處理器進(jìn)行通信,為此設(shè)計了用于短距離通信的UART接口模塊。該模塊的程序采用VHDL語言編寫,模塊的核心發(fā)送和接收子模塊均采用有限狀態(tài)機(jī)設(shè)計,詳述了各子模塊的設(shè)計思路和方法,給出了它們的仿真時序圖。綜合實現(xiàn)后,將程序下載到FPGA芯片中,運行正確無誤。又經(jīng)長時間發(fā)送和接收測試,運行穩(wěn)定可靠。相對參數(shù)固定的設(shè)計,該UART的波特率、數(shù)據(jù)位寬、停止位寬、校驗位使能及校驗?zāi)J竭x擇均可以在線設(shè)置,為FPGA與其他設(shè)備的通信提供了一種可靠途徑,具備較強(qiáng)的實用價值。0引言通用異步收發(fā)器(universalasynchronousreceivertransmitter,UART)盡管自20世紀(jì)70年代就已出現(xiàn),但因其簡單可靠,目前仍是一種使用廣泛的串行通信接口。各種微處理器,不論是單片機(jī),還是DSP、ARM,UART都是基本外圍模塊。許多場合如系統(tǒng)監(jiān)控、數(shù)據(jù)采集都要用到串口通信[1-3],甚至要用多個串口,如開發(fā)串口服務(wù)器[4-6]。此時通常采用專用芯片,如16C554、VK3224等擴(kuò)展串口。專用芯片使用簡單,然而缺乏靈活性,同時專用芯片集成的串口數(shù)量也有限,有時需使用多個芯片才能滿足要求[5],增加了系統(tǒng)的復(fù)雜度,降低了可靠性。FPGA(fieldprogrammablegatearray)作為一種可編程芯片,其資源豐富、工作效率高,常用于高速數(shù)據(jù)采集、算法的高速并行執(zhí)行[7-8]。用戶可通過硬件描述語言或電路原理圖,設(shè)計出個性化的高性能電路模塊,具有設(shè)計靈活,升級方便的優(yōu)點。在基于FPGA的工程實踐中,常需要其與串口設(shè)備通信,但在Xilinx現(xiàn)有的開發(fā)環(huán)境ISE中沒有相關(guān)的IP核。目前也有使用FPGA設(shè)計UART的例子[9-13]后,但有的參數(shù)固定,缺乏通用性。本文設(shè)計和實現(xiàn)了參數(shù)可在線配置的UART接口模塊,為FPGA與其他設(shè)備通信提供了一種可靠途徑。1UART串行通信簡介標(biāo)準(zhǔn)的RS232接口常采用DB-9連接器,其有2根數(shù)據(jù)線,6根控制線,1根信號地線。本文設(shè)計的UART符合RS232串行通信標(biāo)準(zhǔn),但在實際中,RS232標(biāo)準(zhǔn)中諸多控制信號使用較少,故文中的UART只使用其中的3根信號線,即TXD、RXD和信號地,這也是很多微處理器UART模塊所采用的信號線。UART屬于異步通信接口,通信雙方需約定好波特率。國際上規(guī)定了一系列標(biāo)準(zhǔn)的波特率,如9600b/s、19200b/s、115200b/s等。UART每一數(shù)據(jù)幀,依次由起始位(1位)、數(shù)據(jù)位(5~8位),奇偶校驗位(可選的1位)以及停止位(1~2位)組成。其中數(shù)據(jù)位部分是從最低位先開始傳送的;奇偶校驗位是對1幀數(shù)據(jù)中的數(shù)據(jù)部分和校驗位計算,使‘1’的個數(shù)滿足奇數(shù)個或偶數(shù)個。當(dāng)UART空閑時,收發(fā)引腳RXD與TXD均是高電平。一旦需要發(fā)送數(shù)據(jù),則首先向TXD引腳輸出低電平作為起始位,表示1幀數(shù)據(jù)的開始。而在接收數(shù)據(jù)時,檢測到起始位將啟動一次數(shù)據(jù)接收流程。2系統(tǒng)設(shè)計本文設(shè)計的UART通信接口主要由波特率產(chǎn)生模塊、發(fā)送模塊、接收模塊以及微處理器接口模塊組成。各模塊使用VHDL語言來表述,模塊之間的信號連接是通過頂層文件中的元件例化語句實現(xiàn)。整個設(shè)計的結(jié)構(gòu)框圖如圖1所示。設(shè)計和實現(xiàn)的UART通信模塊主要功能如下:
1)實現(xiàn)了串行數(shù)據(jù)的發(fā)送和接收。
2)停止位可設(shè)置(1位或2位)。3)可設(shè)置是否啟用奇偶校驗功能,以及校驗?zāi)J皆O(shè)置即選擇奇校驗還是偶校驗。4)波特率可配置。標(biāo)準(zhǔn)的波特率系列中從9600~115200b/s均可設(shè)置,同時還支持自定義的波特率。
5)設(shè)計了微處理器接口,通過接口可訪問UART內(nèi)部寄存器,配置UART參數(shù),讀寫收發(fā)數(shù)據(jù)。該UART通信接口包含2個數(shù)據(jù)緩沖寄存器(TxHolder和RxHolder)、3個控制寄存器(UartCon、UartBaud及UartIntEn)、3個狀態(tài)寄存器(UartState、UartError、UartIntPend)。考慮到需要在線更新UART參數(shù),設(shè)計UartCon與UartBaud為雙緩沖寄存器。第一級緩沖用于存儲外部處理器寫入的配置數(shù)據(jù),第二級緩沖即用于設(shè)置UART內(nèi)核。當(dāng)UART內(nèi)核空閑時,才將第二級緩沖內(nèi)容更新為第一級緩沖內(nèi)容,防止破壞收發(fā)中的數(shù)據(jù)。3UART各模塊的設(shè)計下面詳細(xì)介紹UART各模塊的設(shè)計思路和方法,同時給出了主要模塊的行為仿真時序圖。3.1波特率發(fā)生模塊波特率發(fā)生模塊的作用是產(chǎn)生UART工作所需的時鐘信號,其頻率定為實際波特率的16倍。波特率發(fā)生模塊本質(zhì)是1個可預(yù)置初值的計數(shù)器,每當(dāng)計數(shù)達(dá)到預(yù)置值時輸出高電平,其余值輸出低電平。3.2發(fā)送模塊發(fā)送模塊按照用戶設(shè)置,將TxHolder中的并行數(shù)據(jù)串行發(fā)送出去,其核心為1個有限狀態(tài)機(jī),其狀態(tài)轉(zhuǎn)換如圖2所示。1)Idle狀態(tài)
當(dāng)系統(tǒng)上電復(fù)位之后,發(fā)送狀態(tài)機(jī)即進(jìn)入此狀態(tài)。若不向發(fā)送緩沖器寫入數(shù)據(jù),那么TxDataValid為低電平,表示發(fā)送緩沖器空,狀態(tài)機(jī)始終在此狀態(tài)循環(huán)等待,TXD引腳輸出高電平。2)Start狀態(tài)
一旦向發(fā)送緩沖器TxHolder中寫入數(shù)據(jù),TxDataValid即變?yōu)楦唠娖?。狀態(tài)機(jī)由Idle狀態(tài)切換到Start狀態(tài),TXD輸出低電平,輸出起始位。3)Shift狀態(tài)
1位波特時間過后,狀態(tài)機(jī)無條件的轉(zhuǎn)換到Shift狀態(tài),即使能發(fā)送移位寄存器,開始將并行數(shù)據(jù)逐位右移,實現(xiàn)并串轉(zhuǎn)換并輸出到TXD。當(dāng)輸出的數(shù)據(jù)個數(shù)達(dá)到Databit設(shè)定的數(shù)據(jù)位寬時,便轉(zhuǎn)換到Parity或者Stop_1bt狀態(tài),否則仍轉(zhuǎn)換到該狀態(tài)。4)Parity狀態(tài)
若數(shù)據(jù)位部分發(fā)送完畢,且奇偶校驗使能位ParityEn=‘1’時,則轉(zhuǎn)換到該狀態(tài)。該狀態(tài)下,根據(jù)已發(fā)送的數(shù)據(jù)和選擇的校驗?zāi)J剑l(fā)送校驗位。5)Stop_1bit狀態(tài)
無論停止位為1位還是2位,都先轉(zhuǎn)換到Stop_1bit狀態(tài),先輸出1位停止位。由該狀態(tài)轉(zhuǎn)換下一狀態(tài)時,次態(tài)會有多種情況。若設(shè)置了stopbit為‘1’即選擇2位停止位時,次態(tài)為stop_2bit;若stopbit為‘0’且發(fā)送緩沖器為空時,次態(tài)即轉(zhuǎn)換到idle狀態(tài),否則轉(zhuǎn)換到start狀態(tài)開始新一輪的數(shù)據(jù)發(fā)送。6)Stop_2bit狀態(tài)
若選擇2位停止位時,才會進(jìn)入此狀態(tài)。持續(xù)1個波特時間后,根據(jù)TxDataValid狀態(tài),進(jìn)入Idle狀態(tài)待命,或進(jìn)入Start狀態(tài)開始新1輪的數(shù)據(jù)發(fā)送。發(fā)送模塊的行為仿真時序圖如圖3所示。其UART參數(shù)設(shè)置為偶校驗、8位數(shù)據(jù)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智能交通系統(tǒng)純勞務(wù)分包合同模板4篇
- 2025版高端牧場直供生鮮乳品質(zhì)保障銷售合同4篇
- 2025年度個人房屋抵押貸款信用保險合同
- 二零二五年度電梯設(shè)備安裝與質(zhì)量監(jiān)督合同4篇
- 2025年度新能源車輛采購合同風(fēng)險評估3篇
- 2025年度校園綠化工程承包及維護(hù)服務(wù)合同3篇
- 2025年度廢棄礦井打井修復(fù)及資源回收合同范本3篇
- 二零二四年人力資源智能化辦公系統(tǒng)研發(fā)與推廣合同3篇
- 數(shù)據(jù)中心能效優(yōu)化技術(shù)研究-第1篇-深度研究
- 2025年度個人房產(chǎn)租賃抵押借款擔(dān)保合同3篇
- 有砟軌道施工工藝課件
- 兩辦意見八硬措施煤礦安全生產(chǎn)條例宣貫學(xué)習(xí)課件
- 40篇短文搞定高中英語3500單詞
- 人教版高中數(shù)學(xué)必修二《第九章 統(tǒng)計》同步練習(xí)及答案解析
- 兒科護(hù)理安全警示教育課件
- 三年級下冊口算天天100題
- 國家中英文名稱及代碼縮寫(三位)
- 人員密集場所消防安全培訓(xùn)
- 液晶高壓芯片去保護(hù)方法
- 使用AVF血液透析患者的護(hù)理查房
- 拜太歲科儀文檔
評論
0/150
提交評論