USART

USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)
通用同步/異步串行接收/發(fā)送器
USART是一個全雙工通用同步/異步串行收發(fā)模塊,該接口是一個高度靈活的串行通信設備。

USART基本信息

中文名 USART 外文名 Universal Synchronous/Asynchronous Receiver/Transmitter
主要特點 支持同步和異步操作 結構組成 時鐘發(fā)生器、數(shù)據(jù)發(fā)送器和接收器
三大部分 時鐘發(fā)生器、數(shù)據(jù)發(fā)送器和接收器

USART收發(fā)模塊一般分為三大部分:時鐘發(fā)生器、數(shù)據(jù)發(fā)送器和接收器??刂萍拇嫫鳛樗械哪K共享。

時鐘發(fā)生器由同步邏輯電路(在同步從模式下由外部時鐘輸入驅動)和波特率發(fā)生器組成。發(fā)送時鐘引腳XCK僅用于同步發(fā)送模式下,

發(fā)送器部分由一個單獨的寫入緩沖器(發(fā)送UDR)、一個串行移位寄存器、校驗位發(fā)生器和用于處理不同幀結構的控制邏輯電路構成。使用寫入緩沖器,實現(xiàn)了連續(xù)發(fā)送多幀數(shù)據(jù)無延時的通信。

接收器是USART模塊最復雜的部分,最主要的是時鐘和數(shù)據(jù)接收單元。數(shù)據(jù)接收單元用作異步數(shù)據(jù)的接收。除了接收單元,接收器還包括校驗位校驗器、控制邏輯、移位寄存器和兩級接收緩沖器(接收UDR)。接收器支持與發(fā)送器相同的幀結構,同時支持幀錯誤、數(shù)據(jù)溢出和校驗錯誤的檢測。

與UART兼容性

AVR USART 和AVR UART 兼容性 USART 在如下方面與AVR UART 完全兼容:

· 所有USART 寄存器的位定義。

· 波特率發(fā)生器。

· 發(fā)送器操作。

· 發(fā)送緩沖器的功能。

· 接收器操作。

然而,接收器緩沖器有兩個方面的改進,在某些特殊情況下會影響兼容性:

· 增加了一個緩沖器。兩個緩沖器的操作好象是一個循環(huán)的FIFO。因此對于每個接收到的數(shù)據(jù)只能讀一次!更重要的是錯誤標志FE 和DOR,以及第9 個數(shù)據(jù)位RXB8與數(shù)據(jù)一起存放于接收緩沖器。因此必須在讀取UDR 寄存器之前訪問狀態(tài)標志位。否則將丟失錯誤狀態(tài)。

· 接收移位寄存器可以作為第三級緩沖。在兩個緩沖器都沒有空的時候,數(shù)據(jù)可以保存于串行移位寄存器之中( 參見 Figure 61),直到檢測到新的起始位。從而增強了 USART 抵抗數(shù)據(jù)過速(DOR) 的能力。

下面的控制位的名稱做了改動,但其功能和在寄存器中的位置并沒有改變:

· CHR9改為UCSZ2。

· OR改為DOR。

時鐘產(chǎn)生時鐘產(chǎn)生邏輯為發(fā)送器和接收器產(chǎn)生基礎時鐘。USART 支持4 種模式的時鐘: 正常的異步模式,倍速的異步模式,主機同步模式,以及從機同步模式。USART 控制位UMSEL和狀態(tài)寄存器C (UCSRC) 用于選擇異步模式和同步模式。倍速模式( 只適用于異步模式) 受控于UCSRA 寄存器的U2X。使用同步模式 (UMSEL = 1) 時,XCK 的數(shù)據(jù)方向寄存器 (DDR_XCK)決定時鐘源是由內部產(chǎn)生(主機模式)還是由外部生產(chǎn)(從機模式)。僅在同步模式下XCK 有效。

片內時鐘產(chǎn)生-波特率發(fā)生器內部時鐘用于異步模式與同步主機模式。

USART 的波特率寄存器UBRR 和降序計數(shù)器相連接,一起構成可編程的預分頻器或波特率發(fā)生器。降序計數(shù)器對系統(tǒng)時鐘計數(shù),當其計數(shù)到零或UBRRL 寄存器被寫時,會自動裝入UBRR 寄存器的值。當計數(shù)到零時產(chǎn)生一個時鐘,該時鐘作為波特率發(fā)生器的輸出時鐘,輸出時鐘的頻率為fosc/(UBRR 1)。發(fā)生器對波特率發(fā)生器的輸出時鐘進行2、8或16 的分頻,具體情況取決于工作模式。波特率發(fā)生器的輸出被直接用于接收器與數(shù)據(jù)恢復單元。數(shù)據(jù)恢復單元使用了一個有2、8或16個狀態(tài)的狀態(tài)機,具體狀態(tài)數(shù)由UMSEL、U2X 與 DDR_XCK 位設定的工作模式?jīng)Q定。

USART造價信息

市場價 信息價 詢價
材料名稱 規(guī)格/型號 市場價
(除稅)
工程建議價
(除稅)
行情 品牌 單位 稅率 供應商 報價日期
暫無數(shù)據(jù)
材料名稱 規(guī)格/型號 除稅
信息價
含稅
信息價
行情 品牌 單位 稅率 地區(qū)/時間
暫無數(shù)據(jù)
材料名稱 規(guī)格/需求量 報價數(shù) 最新報價
(元)
供應商 報價地區(qū) 最新報價時間
OLED觸摸顯示屏 3.5寸USART HMI 電阻智能顯示屏 類型:電阻式觸摸屏; 大小:3.5寸; 電壓:5v; 顯示屏通過4針接口與主板TTL串口連接,同時使用主板提供的5v電源,觸摸屏上面編輯報警內容顯示界面和左右翻頁,播放按鈕,可以調取主板保存的歷史報警信息播放,也可以顯示主板實時發(fā)送過來的報警信息.|15套 1 查看價格 河南云飛科技發(fā)展有限公司 全國   2022-05-26

STM32 USART的使用(基于庫函數(shù)版本)

USART步驟說明

對中斷需要用到的的默認的兩個管腳PA9和PA10的模式進行設置.

* 注意:不要忘記RCC的設置!STM32的結構決定了用任何一個外設 * 就必須設置相應的使能時鐘。USART1的使能時鐘位是在APB2中的 * 本例中對應函數(shù)UART1_GPIO_Configuration()

* 2: 對USART的數(shù)據(jù)格式進行設置,即發(fā)送數(shù)據(jù)的數(shù)據(jù)位、校驗位等.

* 本例對應函數(shù)為UART1_GPIO_Configuration()

* 注:對于數(shù)據(jù)是以上升沿還是下降沿有效,可以設置也可以不設 * 置,如果不設置,則系統(tǒng)采用默認值。本例中將其屏蔽。 * 3: 在主函數(shù)中調用以上兩個函數(shù),然后用庫函數(shù)USART_SendData()

* 發(fā)送數(shù)據(jù),用USART_GetFlagStatus(USART1, USART_FLAG_TXE) * 查詢中斷即可。

USART程序如下

#include

void delay(u32 x) //延時函數(shù),u32是庫函數(shù)中定義好的宏,意為無符號32位整數(shù) {

while(x--);}

/********************************************************************** * Name : UART1_GPIO_Configuration * Deion : Configures the uart1 GPIO ports. * Input : None * Output : None * Return : None

void UART1_GPIO_Configuration(void) //注意:不是庫函數(shù),而是自己定義的GPIO初始化函數(shù),

{

GPIO_InitTypeDef GPIO_InitStructure;

//定義GPIO管腳初始化結構體

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

//本函數(shù)(使能時鐘)參數(shù)中,RCC_APB2Periph_USART1是必不可少的,有人會問,對于串口用到的PA9和

//PA10不用使能時鐘嗎?其實由于USART1默認的就是PA9和PA10,所以這一個就行了,當然你要是加上 //這個|RCC_APB2Periph_GPIOA也是不報錯的,只是重復了。

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;

//選中串口默認輸出管腳

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//定義輸出最大速率

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //定義管腳9的模式

GPIO_Init(GPIOA, &GPIO_InitStructure); //調用函數(shù),把結構體參數(shù)輸入進行初始化

// Configure USART1_Rx as input floating

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //同上

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//設置上浮模式

GPIO_Init(GPIOA, &GPIO_InitStructure);

//同上

* Name : UART1_Configuration * Deion : Configures the uart1 * Input : None * Output : None * Return : None

*******************************************************************************/ void USART_Configuration(void) {

USART_InitTypeDef USART_InitStructure; //定義串口初始化結構體

/*USART_ClockInitTypeDef USART_ClockInitStructure;//定義串口模式初始化結構體

USART_ClockInitStructure.USART_Clock = USART_Clock_Enable;// USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low; USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge; USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable; USART_ClockInit(USART1,&USART_ClockInitStructure); */

USART_InitStructure.USART_BaudRate = 9600; //設置串口通信時的波特率9600

USART_InitStructure.USART_WordLength = USART_WordLength_8b;//設置數(shù)據(jù)位的長度8個位 USART_InitStructure.USART_StopBits = USART_StopBits_1; //設置1個停止位 USART_InitStructure.USART_Parity = USART_Parity_No //設置校驗位“無”

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //設置硬件控制流失能(失能:就是不管用的意思。使能:就是讓某個功能起作用。) USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //設置發(fā)送使能,接收使能 USART_Init(USART1, &USART_InitStructure);

//將以上賦完值的結構體帶入庫函數(shù)USART_Init進行初始化

USART_Cmd(USART1, ENABLE);//開啟USART1,注意與上面RCC_APB2PeriphClockCmd()設置的區(qū)別

}

int main(void)

UART1_GPIO_Configuration(); //調用GPIO初始化函數(shù) USART_Configuration(); //調用USART配置函數(shù) while(1)

//大循環(huán)

{

USART_SendData(USART1, 'A'); //發(fā)送一位數(shù)據(jù)

while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); //判斷是否發(fā)送完畢 delay(0XFFFFF); //延時

2100433B

1. 全雙工操作(相互獨立的接收數(shù)據(jù)和發(fā)送數(shù)據(jù));

2. 同步操作時,可主機時鐘同步,也可從機時鐘同步;

3. 獨立的高精度波特率發(fā)生器,不占用定時/計數(shù)器;

4. 支持5、6、7、8和9位數(shù)據(jù)位,1或2位停止位的串行數(shù)據(jù)幀結構;

5. 由硬件支持的奇偶校驗位發(fā)生和檢驗;

6. 數(shù)據(jù)溢出檢測;

7. 幀錯誤檢測;

8. 包括錯誤起始位的檢測噪聲濾波器和數(shù)字低通濾波器;

9. 三個完全獨立的中斷,TX發(fā)送完成、TX發(fā)送數(shù)據(jù)寄存器空、RX接收完成;

10.支持多機通信模式;

11.支持倍速異步通信模式。

USART常見問題

UART與USART單片機串口通信的區(qū)別

UART與USART都是單片機上的串口通信,他們之間的區(qū)別如下:

首先從名字上看:

UART:universal asynchronous receiver and transmitter通用異步收/發(fā)器

USART:universal synchronous asynchronous receiver and transmitter通用同步/異步收/發(fā)器

從名字上可以看出,USART在UART基礎上增加了同步功能,即USART是UART的增強型,事實也確實是這樣。但是具體增強到了什么地方呢?

其實當我們使用USART在異步通信的時候,它與UART沒有什么區(qū)別,但是用在同步通信的時候,區(qū)別就很明顯了:大家都知道同步通信需要時鐘來觸發(fā)數(shù)據(jù)傳輸,也就是說USART相對UART的區(qū)別之一就是能提供主動時鐘。如STM32的USART可以提供時鐘支持ISO7816的智能卡接口。

任何一個微處理器都要與一定數(shù)量的部件和外圍設備連接,但如果將各部件和每一種外圍設備都分別用一組線路與CPU直接連接,那么連線將會錯綜復雜,甚至難以實現(xiàn)。為了簡化硬件電路設計、簡化系統(tǒng)結構,常用一組線路,配置以適當?shù)慕涌陔娐罚c各部件和外圍設備連接,這組共用的連接線路被稱為總線。采用總線結構便于部件和設備的擴充,尤其制定了統(tǒng)一的總線標準則容易使不同設備間實現(xiàn)互連。

微機中總線一般有內部總線、系統(tǒng)總線和外部總線。內部總線是微機內部各外圍芯片與處理器之間的總線,用于芯片一級的互連;而系統(tǒng)總線是微機中各插件板與系統(tǒng)板之間的總線,用于插件板一級的互連;外部總線則是微機和外部設備之間的總線,微機作為一種設備,通過該總線和其他設備進行信息與數(shù)據(jù)交換,它用于設備一級的互連。

另外,從廣義上說,計算機通信方式可以分為并行通信和串行通信,相應的通信總線被稱為并行總線和串行總線。并行通信速度快、實時性好,但由于占用的口線多,不適于小型化產(chǎn)品;而串行通信速率雖低,但在數(shù)據(jù)通信吞吐量不是很大的微處理電路中則顯得更加簡易、方便、靈活。串行通信一般可分為異步模式和同步模式。

隨著微電子技術和計算機技術的發(fā)展,總線技術也在不斷地發(fā)展和完善,而使計算機總線技術種類繁多,各具特色。下面僅對微機各類總線中目前比較流行的總線技術分別加以介紹。

一、內部總線

1.I2C總線

I2C(Inter-IC)總線10多年前由Philips公司推出,是近年來在微電子通信控制領域廣泛采用的一種新型總線標準。它是同步通信的一種特殊形式,具有接口線少,控制方式簡化,器件封裝形式小,通信速率較高等優(yōu)點。在主從通信中,可以有多個I2C總線器件同時接到I2C總線上,通過地址來識別通信對象。

2.SPI總線

串行外圍設備接口SPI(serialperipheralinterface)總線技術是Motorola公司推出的一種同步串行接口。Motorola公司生產(chǎn)的絕大多數(shù)MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI總線是一種三線同步總線,因其硬件功能很強,所以,與SPI有關的軟件就相當簡單,使CPU有更多的時間處理其他事務。

3.SCI總線

串行通信接口SCI(serialcommunicationinterface)也是由Motorola公司推出的。它是一種通用異步通信接口UART,與MCS-51的異步通信功能基本相同。

4.CAN總線

屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制或實時控制的串行通信網(wǎng)絡。較之目前許多RS-485基于R線構建的分布式控制系統(tǒng)而言,基于CAN總線的分布式控制系統(tǒng)在以下方面具有明顯的優(yōu)越性。只有2根線與外部相連,并且內部集成了錯誤探測和管理模塊。

二、系統(tǒng)總線

1.ISA總線

ISA(industrialstandardarchitecture)總線標準是IBM公司1984年為推出PC/AT機而建立的系統(tǒng)總線標準,所以也叫AT總線。它是對XT總線的擴展,以適應8/16位數(shù)據(jù)總線要求。它在80286至80486時代應用非常廣泛,以至于現(xiàn)在奔騰機中還保留有ISA總線插槽。ISA總線有98只引腳。

2.EISA總線

EISA總線是1988年由Compaq等9家公司聯(lián)合推出的總線標準。它是在ISA總線的基礎上使用雙層插座,在原來ISA總線的98條信號線上又增加了98條信號線,也就是在兩條ISA信號線之間添加一條EISA信號線。在實用中,EISA總線完全兼容ISA總線信號。

3.VESA總線

VESA(videoelectronicsstandardassociation)總線是1992年由60家附件卡制造商聯(lián)合推出的一種局部總線,簡稱為VL(VESAlocalbus)總線。它的推出為微機系統(tǒng)總線體系結構的革新奠定了基礎。該總線系統(tǒng)考慮到CPU與主存和Cache的直接相連,通常把這部分總線稱為CPU總線或主總線,其他設備通過VL總線與CPU總線相連,所以VL總線被稱為局部總線。它定義了32位數(shù)據(jù)線,且可通過擴展槽擴展到64位,使用33MHz時鐘頻率,最大傳輸率達132MB/s,可與CPU同步工作。是一種高速、高效的局部總線,可支持386SX、386DX、486SX、486DX及奔騰微處理器。

4.PCI總線

PCI(peripheralcomponentinterconnect)總線是當前最流行的總線之一,它是由Intel公司推出的一種局部總線。它定義了32位數(shù)據(jù)總線,且可擴展為64位。PCI總線主板插槽的體積比原ISA總線插槽還小,其功能比VESA、ISA有極大的改善,支持突發(fā)讀寫操作,最大傳輸速率可達132MB/s,可同時支持多組外圍設備。PCI局部總線不能兼容現(xiàn)有的ISA、EISA、MCA(microchannelarchitecture)總線,但它不受制于處理器,是基于奔騰等新一代微處理器而發(fā)展的總線。

5.CompactPCI

以上所列舉的幾種系統(tǒng)總線一般都用于商用PC機中,在計算機系統(tǒng)總線中,還有另一大類為適應工業(yè)現(xiàn)場環(huán)境而設計的系統(tǒng)總線,比如STD總線、VME總線、PC/104總線等。這里僅介紹當前工業(yè)計算機的熱門總線之一——CompactPCI。

CompactPCI的意思是“堅實的PCI”,是當今第一個采用無源總線底板結構的PCI系統(tǒng),是PCI總線的電氣和軟件標準加歐式卡的工業(yè)組裝標準,是當今最新的一種工業(yè)計算機標準。CompactPCI是在原來PCI總線基礎上改造而來,它利用PCI的優(yōu)點,提供滿足工業(yè)環(huán)境應用要求的高性能核心系統(tǒng),同時還考慮充分利用傳統(tǒng)的總線產(chǎn)品,如ISA、STD、VME或PC/104來擴充系統(tǒng)的I/O和其他功能。

三、外部總線

1.RS-232-C總線

RS-232-C是美國電子工業(yè)協(xié)會EIA(ElectronicIndustryAssociation)制定的一種串行物理接口標準。RS是英文“推薦標準”的縮寫,232為標識號,C表示修改次數(shù)。RS-232-C總線標準設有25條信號線,包括一個主通道和一個輔助通道,在多數(shù)情況下主要使用主通道,對于一般雙工通信,僅需幾條信號線就可實現(xiàn),如一條發(fā)送線、一條接收線及一條地線。RS-232-C標準規(guī)定的數(shù)據(jù)傳輸速率為每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。RS-232-C標準規(guī)定,驅動器允許有2500pF的電容負載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時,最大通信距離為15m;若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號傳送,存在共地噪聲和不能抑制共模干擾等問題,因此一般用于20m以內的通信。

2.RS-485總線

在要求通信距離為幾十米到上千米時,廣泛采用RS-485串行總線標準。RS-485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測低至200mV的電壓,故傳輸信號能在千米以外得到恢復。RS-485采用半雙工工作方式,任何時候只能有一點處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號加以控制。RS-485用于多點互連時非常方便,可以省掉許多信號線。應用RS-485可以聯(lián)網(wǎng)構成分布式系統(tǒng),其允許最多并聯(lián)32臺驅動器和32臺接收器。

3.IEEE-488總線

上述兩種外部總線是串行總線,而IEEE-488總線是并行總線接口標準。IEEE-488總線用來連接系統(tǒng),如微計算機、數(shù)字電壓表、數(shù)碼顯示器等設備及其他儀器儀表均可用IEEE-488總線裝配起來。它按照位并行、字節(jié)串行雙向異步方式傳輸信號,連接方式為總線方式,儀器設備直接并聯(lián)于總線上而不需中介單元,但總線上最多可連接15臺設備。最大傳輸距離為20米,信號傳輸速度一般為500KB/s,最大傳輸速度為1MB/s。

4.USB總線

通用串行總線USB(universalserialbus)是由Intel、Compaq、Digital、IBM、Microsoft、NEC、NorthernTelecom等7家世界著名的計算機和通信公司共同推出的一種新型接口標準。它基于通用連接技術,實現(xiàn)外設的簡單快速連接,達到方便用戶、降低成本、擴展PC連接外設范圍的目的。它可以為外設提供電源,而不像普通的使用串、并口的設備需要單獨的供電系統(tǒng)。另外,快速是USB技術的突出特點之一,USB的最高傳輸率可達12Mbps比串口快100倍,比并口快近10倍,而且USB還能支持多媒體。

系列:ATMEGA

閃存容量:32KB

EEPROM存儲器容量:1KB

存儲器容量,:RAM 2KB

輸入/輸出線數(shù):32

模數(shù)轉換器輸入數(shù):7

計時器數(shù):3

PWM通道數(shù):4

時鐘頻率:16MHz

接口類型:JTAG, SPI, USART

電源電壓:2.7V to 5.5V

封裝類型:QFP

針腳數(shù):44

工作溫度范圍:-40°C to 85°C

USART相關推薦
  • 相關百科
  • 相關知識
  • 相關專欄