1. <th id="uou7b"></th>
        2. <tbody id="uou7b"></tbody>
          <tbody id="uou7b"></tbody>
        3. <span id="uou7b"></span>

          <tbody id="uou7b"></tbody>
          <em id="uou7b"></em>

          專注電子技術學習與研究
          當前位置:單片機教程網 >> STM32 >> 瀏覽文章

          USART筆記-基于STM32F107VCT6

          作者:佚名   來源:本站原創   點擊數:  更新時間:2014年08月18日   【字體:

          USART   通用同步異步收發器

          通用同步異步收發器(USART)提供了一種靈活的方法與使用工業標準NRZ異步串行數據格式的外部設備之間進行全雙工數據交換。USART利用分數波特率發生器提供寬范圍的波特率選擇。 支持同步單向通信和半雙工單線通信,也支持LIN( 局部互連網) ,智能卡協議IrDA(紅外數據組織)SIR ENDEC 規范,以及調制解調器(CTS/RTS) 操作。它還允許多處理器通信。使用多緩沖器配置的DMA方式,可以實現高速數據通信。
           
          簡單點講:
          USART模式支持:通用的全雙工異步通信模式(UART)、智能卡模式(ISO7816-3,單線半雙工異步模式,但與UART是有區別的)、同步模式(類SPI)、硬件流控模式(調制解調器)、IrDA 模式、LIN通信模式。
           
          USART UART在功能上的區別如下圖[摘自用戶手冊]

          USART的中斷可以查看用戶手冊,使能中斷,需要使能NVIC中的,同時還要使能USART模塊中的中斷使能位:【如果按照步驟做后,程序運行不正確,可直接通過偏移地址直接查看各硬件寄存器的相關位,來看程序配置的結果是否正確】
             NVIC_InitStruct.NVIC_IRQChannel = USART2_IRQChannel;
             NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 2;
             NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;
             NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
             NVIC_Init(&NVIC_InitStruct);
           
             USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);

          部分主要特性:
          ●  全雙工的,異步通信 
          ●  NRZ標準格式 
          ●  分數波特率發生器系統 
              ─   發送和接收共用的可編程波特率,最高達4.5Mbits/s 
          ●  可編程數據字長度(8 位或9位) 
          ●  可配置的停止位-支持1 或2個停止位 
          ●  LIN主發送同步斷開符的能力以及LIN從檢測斷開符的能力 
              ─   當USART硬件配置成LIN時,生成13位斷開符;檢測10/11位斷開符 
          ●  發送方為同步傳輸提供時鐘 
          ●  IRDA SIR  編碼器解碼器 
              ─   在正常模式下支持3/16 位的持續時間 
          ●  智能卡模擬功能 
              ─   智能卡接口支持ISO7816-3 標準里定義的異步智能卡協議 
              ─   智能卡用到的0.5和1.5個停止位 
          ●  單線半雙工通信 
          ●  可配置的使用DMA的多緩沖器通信 
              ─   在SRAM 里利用集中式DMA緩沖接收/發送字節
          ●  單線半雙工通信
          ●  單獨的發送器和接收器使能位
          ●  校驗控制 【硬件完成】
              ─   發送校驗位 
              ─   對接收數據進行校驗 
          ●  檢測標志 
              ─   接收緩沖器滿 
              ─   發送緩沖器空 
              ─   傳輸結束標志 
          ●  四個錯誤檢測標志 
              ─   溢出錯誤 
              ─   噪音錯誤 
              ─   幀錯誤 
              ─   校驗錯誤
          ● 10個帶標志的中斷源 
              ─  CTS改變 
              ─  LIN斷開符檢測 
              ─   發送數據寄存器空 
              ─   發送完成 
              ─   接收數據寄存器滿 
              ─   檢測到總線為空閑 
              ─   溢出錯誤 
              ─   幀錯誤 
              ─   噪音錯誤 
              ─   校驗錯誤 
          ●  多處理器通信 -- 如果地址不匹配,則進入靜默模式
          ●  兩種喚醒接收器的方式:地址位(MSB ,第9位),總線空閑 

          USART功能概述
          接口通過三個引腳與其他設備連接在一起( 見圖248 ) 。任何USART雙向通信至少需要兩個腳:接
          收數據輸入(RX)和發送數據輸出(TX) 。 
          RX:接收數據串行輸。通過過采樣技術來區別數據和噪音,從而恢復數據。 
          TX:發送數據輸出。當發送器被禁止時,輸出引腳恢復到它的I/O 端口配置。當發送器被激活,并且不發送數據時,TX引腳處于高電平。在單線和智能卡模式里,此I/O 口被同時用于數據的發送和接收。

          USART的智能卡模式
          簡介
             CPU卡:也稱智能卡,卡內的集成電路中帶有微處理器CPU、存儲單元(包括隨機存儲器RAM、程序存儲器ROM(FLASH)、用戶數據存儲器EEPROM)以及芯片操作系統COS。裝有COS的CPU卡相當于一臺微型計算機,不僅具有數據存儲功能,同時具有命令處理和數據安全保護等功能。CPU卡芯片通俗地講就是指芯片內含有一個微處理器,它的功能相當于一臺微型計算機。人們經常使用的集成電路卡(IC卡)上的金屬片就是CPU卡芯片。

           

          智能卡接口
             智能卡時鐘發生器為與之相連的智能卡提供時鐘信號。智能卡使用這個時鐘產生在智能卡與USART模塊之間進行串行通信的波特率時鐘。如果智能卡上有CPU,該時鐘將同時提供給CPU使用。智能卡接口操作要求,在卡上的CPU運行代碼時可以調整時鐘速率,這樣可以改變通訊的波特率,或者可以提升智能卡的性能。在ISO7816-3標準中詳細描述了,協商時鐘速率和改變時鐘速率的協議。這個時鐘被用作智能卡內CPU的時鐘,因此更新微控制器輸出的時鐘頻率必須和智能卡時鐘同步,應注意保證沒有比短周期的40%更短的脈沖。
             ISO 7816-3標準為異步協議定義了時間基準單位,稱作ETU(elementary time units),它與輸入至智能卡的時鐘頻率有關。一個ETU的長度是一個位時間。USART接收器和發送器在內部通過Rx_SW信號相連接。必須將USART模塊設置為智能卡模式,才能實現從STM32F10xxx向智能卡傳輸數據。

                RST(智能卡復位)、3/5V(3V或5V)、VCC (管理VCC)以及OFF信號(智能卡檢測信號)由軟件控制GPIO
                的端口實現(USART硬件只提供CLK、IO兩個引腳,其他的都是軟件模式實現)。為了使數據信號以
                正確的驅動連接到智能卡IO引腳,應當把USART_TX端口的GPIO位編程為復用開漏輸出模式,為把
                時鐘發生器連接到Smartcard_CLK的引腳,USART_CK端口的GPIO位應配置為復用推挽輸出模式。

             智能卡接口是異步通信接口,但是是單線半雙工異步通信,通信與微處理器通信的過程沒有直接的關系,但是該時鐘輸送至智能卡,智能卡時鐘發生器為與之相連的智能卡提供時鐘信號。智能卡使用這個時鐘產生在智能卡與
          USART模塊之間進行串行通信的波特率時鐘。如果智能卡上有CPU,該時鐘將同時提供給CPU使用。
              智能卡是一個單線半雙工通信協議,當與智能卡相連接時,USART的TX驅動一根智能卡也驅動的雙向線【usart端收發都在一個引腳上,在智能卡模式下在芯片內部通過媒介連接,這也是與智能卡的異步模式與UART通用的異步模式的區別,且智能卡的異步模式處理器還要外送時鐘給智能卡使用】。為了做到這點,SW_RX必須和TX連接到相同的I/O 口。在發送開始位和數據字節期間,發送器的輸出使能位TX_EN被置起,在發送停止位期間被釋放( 弱上拉) ,因此在發現校驗錯誤的情況下接收器可以將數據線拉低。如果TX_EN不被使用,在停止位期間TX被拉到高電平:這樣的話,只要TX配置成開漏,接收器也可以驅動這根線。
          關閉窗口
          日日噜噜夜夜狠狠久久无码区

              1. <th id="uou7b"></th>
              2. <tbody id="uou7b"></tbody>
                <tbody id="uou7b"></tbody>
              3. <span id="uou7b"></span>

                <tbody id="uou7b"></tbody>
                <em id="uou7b"></em>