<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 元件/連接器 > 設計應用 > 一種基于FPGA的UART接口開(kāi)發(fā)方案

一種基于FPGA的UART接口開(kāi)發(fā)方案

作者: 時(shí)間:2014-09-11 來(lái)源:網(wǎng)絡(luò ) 收藏

  由于的功能日益強大,開(kāi)發(fā)周期短、可重復編程等優(yōu)點(diǎn)也越來(lái)越明顯,可以在芯片上集成功能模塊,從而簡(jiǎn)化電路,縮小PCB面積,提高系統可靠性。此外,的設計具有很高的靈活性,可以方便地進(jìn)行升級和移植。

本文引用地址:http://dyxdggzs.com/article/262819.htm

  設計背景

  通用異步收發(fā)器(Universal Asynchronous Receiver/Transmitter,)可以和各種標準串行接口,如RS 232和RS 485等進(jìn)行全雙工異步通信,具有傳輸距離遠、成本低、可靠性高等優(yōu)點(diǎn)。一般由專(zhuān)用芯片如8250,16450來(lái)實(shí)現,但專(zhuān)用芯片引腳都較多,內含許多輔助功能,在實(shí)際使用時(shí)往往只需要用到UART的基本功能,使用專(zhuān)用芯片會(huì )造成資源浪費和成本提高。

  一般而言UART和外界通信只需要兩條信號線(xiàn)RXD和TXD,其中RXD是UART的接收端,TXD是UART的發(fā)送端,接收與發(fā)送是全雙工形式。由于可編程邏輯器件技術(shù)的快速發(fā)展,FPGA的功能日益強大,其開(kāi)發(fā)周期短、可重復編程的優(yōu)點(diǎn)也越來(lái)越明顯,在FPGA芯片上集成UART功能模塊并和其他模塊組合可以很方便地實(shí)現一個(gè)能與其他設備進(jìn)行串行通信的片上系統。

  設計要求

  本接口作為一個(gè)關(guān)于內容保護系統的電路板的一部分,主要用于和計算機進(jìn)行通信,也可與其他帶UART接口的電路板進(jìn)行通信。對數據傳輸速率要求不高,傳輸距離也不要求很長(cháng),但傳輸數據要求準確可靠。該接口可用來(lái)監控電路內部狀態(tài),將FPGA內部信息通過(guò)串口輸出至計算機,以達到輔助調試電路的目的。另外,電路板上的FPGA外掛有串行Flash,可通過(guò)串口對Flash進(jìn)行調試,將Flash中的數據輸出至計算機,并可將數據通過(guò)串口寫(xiě)入Flash中。簡(jiǎn)而言之,該接口是作為計算機與電路板的一個(gè)可靠的雙向數據傳輸通道。

  UART的實(shí)現原理

  UART是異步通信方式,通信的發(fā)送方和接收方各自有獨立的時(shí)鐘,傳輸的速率由雙方約定。本設計采用最常用的每秒9600波特的傳輸速度。

  UART的通信協(xié)議十分簡(jiǎn)單,以低電平作為起始位,高電平作為停止位,中間可傳輸5~8比特數據和1比特奇偶校驗位,奇偶校驗位的有無(wú)和數據比特的長(cháng)度由通信雙方約定。一幀數據傳輸完畢后可以繼續傳輸下一幀數據,也可以繼續保持為高電平,兩幀之間保持高電平,持續時(shí)間可以任意長(cháng)。本方案采用不添加校驗位的方法,以提高數據傳輸效率。發(fā)送端發(fā)送數據時(shí)先發(fā)一低電平,然后發(fā)送8比特數據,之后馬上把信號拉高,從而完成一幀數據傳送。接收端接收到低電平時(shí)開(kāi)始計數,然后接收8比特信息位后如果檢測到高電平即認為已接收完一幀數據,繼續等待下一幀起始信號低電平的到來(lái),若接收完8比特數據后沒(méi)有檢測到高電平則認為這不是一幀有效數據,將其丟棄,繼續等待起始信號。時(shí)序關(guān)系如圖1所示,收發(fā)可同時(shí)進(jìn)行,互不干擾。

  

1.jpg

 

  圖1 接口的工作時(shí)序

  硬件電路原理圖及說(shuō)明

  一個(gè)完整的接口是一個(gè)25針的D型插頭座,25針的連接器實(shí)際上只有9根連接線(xiàn),所以就產(chǎn)生了一個(gè)簡(jiǎn)化的9針D型插頭座,常用的就是一個(gè)9針的D型插頭座。通常只用到一根發(fā)送信號線(xiàn)、一根接收信號線(xiàn)和一條地線(xiàn),其余的振鈴指示、請求傳送、清除傳送、準備就緒及數據載波檢測等線(xiàn)可以做懸空處理。

  RS-232標準規定邏輯1的電平為 -15~-3V,邏輯0的電平為+3~+15V。CMOS電路的電平范圍一般是從0V到電源電壓,FPGA的I/O輸入輸出電壓通常為0~3.3V,為了與FPGA 供電電壓保持一致,必須加電平轉換芯片。選用Maxim公司的MAX3232電平轉換芯片,電路原理圖如圖2所示。

  

2.jpg

 

  圖2 RS-232接口電路

  連線(xiàn)采用最簡(jiǎn)單的3 線(xiàn)制連接模式,即只需要兩根信號線(xiàn)和一根地線(xiàn)來(lái)完成數據收發(fā)。而FPGA 只需要選擇兩個(gè)普通I/O引腳分別與接口芯片MAX3232 對應引腳T2IN、R2OUT相連即可完成將串口電平轉換為設備電路板的工作電平,即實(shí)現RS-232電平和TTL/ CMOS 電平的轉換。一個(gè)MAX3232芯片可以支持兩個(gè)串口的電平變換,我們選擇其中的一組接口,圖中的4個(gè)電阻可以省去。在電路中加入了0Ω的跳線(xiàn)電阻,是為了在這組接口出故障時(shí)可以方便地跳線(xiàn),使用另一組接口。

  軟件設計

  異步收發(fā)器由波特率發(fā)生器、UART接收器和UART發(fā)送器三個(gè)模塊構成。采用的是每秒9600波特的傳輸速度,而系統提供的時(shí)鐘是 10MHz,這就要求進(jìn)行速率變換。在實(shí)際中由于電路中存在干擾等因素,在數據邊緣進(jìn)行采樣容易發(fā)生誤判,只有在數據的中央進(jìn)行采樣出錯的概率才能降到最低,所以使用16倍于波特率的時(shí)鐘,即9600×16Hz=15600Hz。因此波特率發(fā)生器輸出的時(shí)鐘頻率應為15600Hz,UART 收發(fā)的每一個(gè)數據寬度都是波特率發(fā)生器輸出的時(shí)鐘周期的16倍,采用Altera公司芯片內部自帶的鎖相環(huán)可以方便地實(shí)現。UART接收器和UART發(fā)送器均采用Verilog語(yǔ)言編程實(shí)現。

  通常使用的數據多為并行數據,為了方便與系統中其他電路互連,UART接收器的輸出數據和UART發(fā)送器的輸入數據均為8比特并行數據。 UART接收器將串行數據接收下來(lái)并將其轉化為并行數據送出,UART發(fā)送器將輸入的并行數據轉換為串行數據并按照UART的幀格式輸出。

  

3.jpg

 

  圖3 UART接收器符號圖

  圖3為UART接收器的符號圖,其中rst為全局復位信號,rxd為串行數據輸入端,baudClk16x為輸入時(shí)鐘,dataOut[70] 為并行數據輸出口,irq為輸出數據的指示信號。首先接收器等待起始位的到來(lái),在每個(gè)時(shí)鐘上升沿檢測輸入數據是否為低電平,若檢測到低電平,則開(kāi)始計數,如果連續8個(gè)時(shí)鐘內輸入數據均為低電平,則認為起始信號有效,其中若有一次采樣得到的為高電平則認為起始信號無(wú)效,返回初始狀態(tài)重新等待起始信號的到來(lái)。認定起始信號有效后,每隔16個(gè)時(shí)鐘采樣一次,這樣就可以保證每次都在數據的中點(diǎn)出采樣,將采樣結果送入8比特的移位寄存器,8比特數據采樣結束后,間隔 16個(gè)時(shí)鐘采樣停止位。如果采得的是高電平,則認為這幀數據有效,將移位寄存器中的數據并行送出同時(shí)將輸出數據的指示信號置高,然后接收器復位,重新等待下一幀的到來(lái);若采得的為低電平,則認為這不是一幀有效數據,不將移位寄存器中的數據輸出,直接返回初始狀態(tài)。

電氣符號相關(guān)文章:電氣符號大全


fpga相關(guān)文章:fpga是什么


鎖相環(huán)相關(guān)文章:鎖相環(huán)原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA UART RS-232

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>