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