UART(UniversalAsynchronous Receiver/Transmitter)即通用異步收發(fā)傳送器,工作于數(shù)據(jù)鏈路層,包含了RS-232、RS-422、RS-485串口通信。它具有傳輸線少、成本低和可靠性高等優(yōu)點(diǎn),廣泛應(yīng)用于通信、醫(yī)療及消費(fèi)電子、汽車電子和工業(yè)及數(shù)據(jù)處理等領(lǐng)域。
Actel公司免費(fèi)提供兩種形式的UART IP核:CoreUART和CoreUARTapb。CoreUART使用普通的總線形式,用戶可以很方便地將它和其他模塊進(jìn)行連接;CoreUARTapb基于APB總線形式,它的好處是可以連接到Core8051或者是CortexMl處理器上,方便用戶進(jìn)行soc設(shè)計(jì),本文將主要介紹基于Actel FPGA的IP-CoreUARTapb,其內(nèi)部的設(shè)計(jì)原理與CoreUAKT是一樣的,區(qū)別僅在于接口部分。
1CoreUARTapb介紹
(1)UART協(xié)議簡(jiǎn)介
UAKT協(xié)議的工作原理是將傳輸數(shù)據(jù)的每個(gè)字符按比特位進(jìn)行傳輸,之所以稱它為異步的,是因?yàn)樵趥鬏敂?shù)據(jù)時(shí),不需要同時(shí)傳送時(shí)鐘。圖1給出了它的工作模式。
其中各位的意義如下。
·起始位:發(fā)出低電平“0”的信號(hào),表示傳輸字符的開始。
·數(shù)據(jù)位:緊接著起始位之后是數(shù)據(jù)位,數(shù)據(jù)的個(gè)數(shù)可以是5、6、7、8等,構(gòu)成一個(gè)字符,通常采用ASCII碼,從最低位開始傳送。
·奇偶校驗(yàn)位:根據(jù)數(shù)據(jù)位“1”的個(gè)數(shù)確定為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此位來校驗(yàn)數(shù)據(jù)的正確性。
·停止位:它是1位的字符數(shù)據(jù)結(jié)束標(biāo)志。可以是1位、1.5位、2位的高電平。
·空閑位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒有數(shù)據(jù)傳輸。
·波特率:衡量數(shù)據(jù)傳送的速率,表示每秒鐘傳送二進(jìn)制的位數(shù)。
(2)內(nèi)部結(jié)構(gòu)框圖
如圖2所示,CoreUARTapb的結(jié)構(gòu)框圖可以分為APB總線接口、波特率發(fā)生器、發(fā)送緩沖器、發(fā)送狀態(tài)機(jī)、接收狀態(tài)機(jī)和接收緩沖區(qū)模塊。APB總線接口模塊提供了UART和APB總線進(jìn)行通信的接口;波特率發(fā)生器主要為發(fā)送和接收狀態(tài)機(jī)提供時(shí)鐘;發(fā)送和接收狀態(tài)機(jī)模塊主要完成數(shù)據(jù)的發(fā)送和接收的功能;發(fā)送和接收緩沖區(qū)提供了一個(gè)字節(jié)的發(fā)送和接收緩沖區(qū)。
CoreUARTapb分為兩種模式:FIFO模式和正常模式。FIFO模式的結(jié)構(gòu)框圖如圖3所示,F(xiàn)IFO模式和正常模式的區(qū)別是使用發(fā)送FIFO和接收FIFO代替了正常模式下的發(fā)送和接收緩沖區(qū),保證了接收和發(fā)送數(shù)據(jù)的正確性。其發(fā)送FIFO和接收FIFO各為256字節(jié)。
(3)內(nèi)部寄存器
CoreUARTapb的寄存器的地址映射如表l所示。
·發(fā)送數(shù)據(jù)寄存器(只寫)
保存了要發(fā)送的七位或八位數(shù)據(jù)。
·接收數(shù)據(jù)寄存器(只讀)
存放著接收的七位或八位數(shù)據(jù)。
·控制寄存器#1(讀寫)
控制寄存器1包含了波特率的值,它是用來設(shè)置CoreUARTapb的波特率的值。波特率值的計(jì)算公式為:
·控制寄存器#2(讀寫)
它是用來控制CoreUARTapb的一些配置參數(shù),如表3所示。
(4)時(shí)序圖
·CoreUARTapb發(fā)送數(shù)據(jù)時(shí)序
CoreUARTapb發(fā)送數(shù)據(jù)是在PWRITE信號(hào),PSEL信號(hào)和PENABLE信號(hào)為高,并且地址線上的地址有效時(shí),將要發(fā)送的數(shù)據(jù)被鎖存到發(fā)送緩沖區(qū)中,當(dāng)TXRDY為低時(shí)。表明發(fā)送緩沖區(qū)已滿,下一個(gè)時(shí)鐘周期就可以開始發(fā)送數(shù)據(jù),如圖4所示。
·CoreUARTapb接收數(shù)據(jù)時(shí)序
CoreUARTapb接收數(shù)據(jù)是在RX線上檢測(cè)到一個(gè)開始位信號(hào),數(shù)據(jù)被存入到接收緩沖區(qū)中。當(dāng)RXRDY信號(hào)為高時(shí),表明接收緩沖區(qū)已滿;當(dāng)PWRITE信號(hào)為低、PSEL信號(hào)和PENABLE信號(hào)為高,并且地址線上地址有效時(shí),接收緩沖區(qū)中的數(shù)據(jù)才被總線取走,RxRDY信號(hào)同時(shí)也被拉低。如圖s所示。
(5)應(yīng)用場(chǎng)合
UART的通信被應(yīng)用于多種場(chǎng)合,多串口的擴(kuò)展便是其典型的應(yīng)用之一。多串口擴(kuò)展的普遍應(yīng)用于電力集中抄表、便攜式設(shè)備、自動(dòng)化和制造進(jìn)程控制以及智能家居行業(yè)等場(chǎng)合。采用Actel FPGA來實(shí)現(xiàn)的多串口擴(kuò)展模塊具有單芯片、小封裝、擴(kuò)展通道多、靈活性好、可裁減或添加用戶自定義功能等優(yōu)勢(shì),如圖6所示。
2小結(jié)
本文主要介紹了基于Actel PPGA的UART Ip設(shè)計(jì)與應(yīng)用,除了UART IP以外,Actel公司還提供了SPI、I2C、PWM、Timer等IP核,請(qǐng)關(guān)注周立功公司的網(wǎng)站獲得更多的信息。我們有著一個(gè)強(qiáng)大的FPGA團(tuán)隊(duì)提供強(qiáng)有力的售后服務(wù),解決用戶在產(chǎn)品使用和研發(fā)過程中遇到的困難。若有更多的需求可以與我們聯(lián)系。我們將會(huì)竭誠為您服務(wù),并能關(guān)注下期的FPGA專題技術(shù)講座。