侵權投訴

基于宏高效實現環形緩沖區教程

strongerHuang ? 2021-09-02 09:24 ? 次閱讀

來源 | 小麥大叔

循環緩沖區是嵌入式軟件工程師在日常開發過程中的關鍵組件。

多年來,互聯網上出現了許多不同的循環緩沖區實現和示例。我非常喜歡這個模塊,可以GitHub上找到這個開源的 CBUF.h 模塊。

地址:https://github.com/barraq/BRBrain/blob/master/firmware/CBUF.h

CBUF.h 模塊使用宏實現循環緩沖區,具體源碼如下所示;

#if !defined( CBUF_H )#define CBUF_H /**《 Include Guard *//* ---- Include Files ---------------------------------------------------- *//* ---- Constants and Types ---------------------------------------------- *//**

* Initializes the circular buffer for use.

*/

#define CBUF_Init( cbuf ) cbuf.m_getIdx = cbuf.m_putIdx = 0/**

* Returns the number of elements which are currently contained in the

* circular buffer.

*/#define CBUF_Len( cbuf ) ((typeof( cbuf.m_putIdx ))(( cbuf.m_putIdx ) - ( cbuf.m_getIdx )))/**

* Appends an element to the end of the circular buffer

*/#define CBUF_Push( cbuf, elem ) (cbuf.m_entry)[ cbuf.m_putIdx++ & (( cbuf##_SIZE ) - 1 )] = (elem)/**

* Retrieves an element from the beginning of the circular buffer

*/#define CBUF_Pop( cbuf ) (cbuf.m_entry)[ cbuf.m_getIdx++ & (( cbuf##_SIZE ) - 1 )]/**

* Retrieves the i‘th element from the beginning of the circular buffer

*/#define CBUF_Get( cbuf, idx ) (cbuf.m_entry)[( cbuf.m_getIdx + idx ) & (( cbuf##_SIZE ) - 1 )]/**

* Retrieves the i’th element from the end of the circular buffer

*/#define CBUF_GetEnd( cbuf, idx ) (cbuf.m_entry)[( cbuf.m_putIdx - idx - 1 ) & (( cbuf##_SIZE ) - 1 )]/**

* Determines if the circular buffer is empty

*/#define CBUF_IsEmpty( cbuf ) ( CBUF_Len( cbuf ) == 0 )/**

* Determines if the circular buffer is full.

*/#define CBUF_IsFull( cbuf ) ( CBUF_Len( cbuf ) == ( cbuf##_SIZE ))/**

* Determines if the circular buffer is currenly overflowed or underflowed.

*/#define CBUF_Error( cbuf ) ( CBUF_Len( cbuf ) 》 cbuf##_SIZE )#if defined( __cplusplus )template 《 class IndexType, unsigned Size, class EntryType 》

class CBUF

{public:

CBUF()

{

m_getIdx = m_putIdx = 0;

}

IndexType Len() const { return m_putIdx - m_getIdx; }

bool IsEmpty() const { return Len() == 0; }

bool IsFull() const { return Len() == Size; }

bool Error() const { return Len() 》 Size; }

void Push( EntryType val )

{

m_entry[ m_putIdx++ & ( Size - 1 )] = val;

}

EntryType Pop()

{

return m_entry[ m_getIdx++ & ( Size - 1 )];

}

private:

volatile IndexType m_getIdx;

volatile IndexType m_putIdx;

EntryType m_entry[ Size ];

};

#endif // __cplusplus/* ---- Variable Externs ------------------------------------------------- *//* ---- Function Prototypes ---------------------------------------------- *//** @} */#endif // CBUF_H

現在一般我不喜歡以這種方式使用宏,但實現已被證明是快速、高效且工作相對良好的,這是很難爭論的。

循環緩沖區的設置非常簡單。首先,需要定義循環緩沖區的大小。這是通過定義宏 myQ_SIZE 來完成的,同時記住緩沖區大小需要是 2 的冪。

然后通過創建一個 myQ 類型的變量來聲明循環緩沖區。例如,如果 myQ_SIZE 定義為 64 字節,則可以定義 UART 的發送和接收緩沖區,如下面的圖 1 所示。

1b3b1556-0b4a-11ec-8fb8-12bb97331649.png

圖 1 – 定義循環緩沖區

在此示例中,myQ 被定義為靜態以限制緩沖區的范圍并聲明為易失性,因為它們在中斷內被修改。定義循環緩沖區只是第一步。為了分配緩沖區,必須將這些變量傳遞給 CBUF_INIT 宏,如下圖 2 所示。

1b476e82-0b4a-11ec-8fb8-12bb97331649.png
圖 2 – 緩沖區初始化

除了這個初始設置之外,緩沖區相當簡單且易于使用。例如,可以使用 CBUF_PUSH 將通過串行接口接收 UART接收的字符推送到循環緩沖區,如圖 3 所示。

1b506712-0b4a-11ec-8fb8-12bb97331649.png

圖 3 – 推入緩沖區

開發人員不僅希望將數據推送到循環緩沖區上,還希望從緩沖區彈出或獲取數據??吹竭@一點的一個簡單示例是需要獲取字符并通過 UART 傳輸的串行發送器。圖 4 中可以看到一個示例傳輸函數。

1b7135fa-0b4a-11ec-8fb8-12bb97331649.png

圖 4 – 從緩沖區彈出數據

在健壯的應用程序中,還應檢查循環緩沖區長度和溢出狀態。CBUF 模塊確實提供了能夠檢查這些重要指標的宏。

要記住的一個重要問題是,如果需要對 CBUF 本身進行任何調試,這是不可能的。無法為宏設置斷點,因此如果出現問題,則需要對模塊進行功能化以逐步執行和調試。

多年來使用這個模塊雖然我沒有發現任何問題。循環緩沖區是在嵌入式系統中與串行設備通信的一個重要方面。

循環緩沖區也很好理解,應該創建它們以便它們可以模塊化并從一個應用程序到下一個應用程序重復使用。

到目前為止,CBUF 模塊已被證明是這樣一個模塊,所以在這里,我強烈推薦一下這個模塊。

免責聲明:本文來源網絡,版權歸原作者所有。如涉及作品版權問題,請與我聯系刪除。

編輯:jq

原文標題:用宏高效實現環形緩沖區

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
分享:

評論

相關推薦

簡述單片機常見的打印輸出方式及區別

作者 |strongerHuang 微信公眾號 | 嵌入式專欄 單片機開發中,打印輸出比較常見,也比....
的頭像 strongerHuang 發表于 09-23 09:58 ? 65次 閱讀
簡述單片機常見的打印輸出方式及區別

【視頻】 stm32 uart硬件實現及深入探討4

大家上午好!   今天來為大家深入講解STM32 uart,視頻為一個系列,請持續關注,會持續進行更新!有問題留言交流...
發表于 09-22 09:24 ? 0次 閱讀

【視頻】 stm32 uart硬件實現及深入探討3

大家上午好!   今天來為大家深入講解STM32 uart,視頻為一個系列,請持續關注,會持續進行更新!有問題留言交...
發表于 09-17 09:44 ? 101次 閱讀

東芝推出TXZ+?族高級系列新款M4G組微控制器

東芝電子元件及存儲裝置株式會社(“東芝”)宣布,已開始量產M4G組中用于高速數據處理的20種新器件。....
的頭像 東芝半導體 發表于 09-09 09:58 ? 325次 閱讀

嵌入式軟件開發怎么編程

嵌入式開發,除了掌握基本的編程語法之外,編程的思想也是很關鍵,下面說兩點編程思想。
的頭像 RTThread物聯網操作系統 發表于 09-03 14:48 ? 1734次 閱讀
嵌入式軟件開發怎么編程

OpenHarmony HDF 驅動框架概述及加載過程分析

OpenHarmony系統 HDF驅動框架概述 OpenAtom OpenHarmony(以下簡稱“....
的頭像 HarmonyOS開發者 發表于 09-03 09:32 ? 178次 閱讀
OpenHarmony HDF 驅動框架概述及加載過程分析

液壓緩沖器的工作原理 怎么使用

液壓緩沖器是在工作過程中防止硬性碰撞導致機構損壞的安全緩沖裝置,依靠液壓阻尼對作用在其上的物體進行緩....
的頭像 汽車玩家 發表于 08-25 17:37 ? 301次 閱讀

在cube中配好uart和rcc

1.在cube中配好uart和rcc2.在主函數中加入頭文件include 3.4.格式例如:printf("[\t main] info : stm32\r\n")5.效果:...
發表于 08-24 08:04 ? 0次 閱讀

PX4開發者手冊

參考資料PX4 Github主頁:PX4 Github(代碼有分支,請查看v1.10.0分支)        PX4開發...
發表于 08-23 07:42 ? 0次 閱讀

USART和UART的區別

介紹了USART和UART的區別、STM32的USART1的寄存器和配置方法以及常見的問題,適合速查!...
發表于 08-20 08:01 ? 0次 閱讀

調試USB-CAN的適配器

在調試USB-CAN的適配器的過程中,采用庫函數開發,在調試串口的過程中串口數據始終亂碼。思考一番,發現由于外部晶振的原因...
發表于 08-20 07:43 ? 0次 閱讀

spi,uart,iic協議之間的對比

spi,uart,iic協議之間的對比:spi和uart的區別,spi結構上可以實現一主多從進行通信,依靠時鐘進行傳輸數據的同步傳輸模式。S...
發表于 08-19 08:41 ? 0次 閱讀

CAN總線和UART、I2C、SPI總線最大的區別

CAN,Controller Area Network(控制器局域網絡),在汽車電子、工業控制領域的應用比較多,通常用于局域組網。這是第9篇學...
發表于 08-19 07:41 ? 0次 閱讀

STM32 UART常用的中斷接收有哪幾種

#include "sys.h"#include "usart.h"  #include "main.h"http://如果使用ucos,則包括下面的頭文件即可.#if SYSTEM_S...
發表于 08-18 08:13 ? 0次 閱讀

用MAX487將UART轉成485信號與上位機聯接

環境:使用STR912FAW44芯片,用MAX487將UART轉成485信號與上位機聯接。欲實現功能是:當從串口調試助手發一個數,進...
發表于 08-18 07:59 ? 0次 閱讀

如何在移動設備上訓練和部署自定義目標檢測模型

發布人:技術推廣工程師 Khanh LeViet,代表 TensorFlow Lite 團隊 在今年....
的頭像 硬件三人行 發表于 08-16 17:09 ? 387次 閱讀

嵌入式系統的軟件架構設計詳細解析

基于TL1的自動化測試極大的解放了測試人員。通過在PC上運行的測試腳本,回歸測試變得簡單而可靠。唯一....
的頭像 尖刀視 發表于 08-11 10:06 ? 2986次 閱讀

基于STM32的多種printf用法

在調試代碼的時候,最常用的就是使用printf函數來輸出一些打印信息,提示自己代碼的執行情況。 如果....
的頭像 汽車玩家 發表于 07-23 11:12 ? 305次 閱讀

什么是Modbus?Modbus的幾個常見問題

可能你還不知道什么是Modbus,其實,Modbus在現實生活中應用非常廣泛,很多工業電子設備的系統....
的頭像 strongerHuang 發表于 06-25 09:17 ? 766次 閱讀

UART寄存器的循環緩沖區實現以及中斷驅動的UART實現和硬件設置

緩沖區通常用作臨時數據存儲,通常用于流式傳輸數據。UART 軟件實現支持基本格式,即 8 個數據位、....
的頭像 汽車玩家 發表于 06-23 15:43 ? 313次 閱讀
UART寄存器的循環緩沖區實現以及中斷驅動的UART實現和硬件設置

通用異步收發器UART的工作原理及協議格式

通用異步收發器(Universal Asynchronous Receiver/Transmitte....
發表于 06-18 10:22 ? 250次 閱讀

一步一步教你如何去發布Python項目開源包?

注意:本文假設你在 GitHub 上已經有一個想要打包和發布的項目。
的頭像 馬哥Linux運維 發表于 06-10 14:22 ? 300次 閱讀

我猜你還不會UART!不信你點進來看看

1 UART發展歷史1.1 早期的串行通訊設備早期的電報機器使用長度可變的脈沖信號進行數據傳輸,比如....
的頭像 FPGA之家 發表于 06-01 11:09 ? 741次 閱讀
我猜你還不會UART!不信你點進來看看

基于FPGA的UART模塊設計與實現簡介

基于FPGA的UART模塊設計與實現介紹說明。
發表于 06-01 09:43 ? 98次 閱讀

UART:了解通用異步接收器/發送器的硬件通信協議

通信協議在組織設備之間的通信時扮演著重要角色。它基于系統要求而以不同方式進行設計。此類協議具有特定的....
發表于 05-14 14:32 ? 1301次 閱讀
UART:了解通用異步接收器/發送器的硬件通信協議

在dsPIC30F器件上實現自動波特率檢測

目前所有 dsPIC30F 器件都擁有一個具備自動波特率檢測能力的 UART 外設。UART 接收引....
發表于 05-11 10:34 ? 82次 閱讀

介紹一種常見的應用與驅動分離設計的方式

因為libdev.bin和app.bin是同時運行的(app.bin調用的libdev函數的實現在l....
的頭像 嵌入式ARM 發表于 05-08 17:27 ? 628次 閱讀

16路程控可調電流源電路

16路程控可調電流源電路免費下載。
發表于 05-06 10:46 ? 126次 閱讀

一種基于FPGA的UART電路的實現

UART即通用異步收發器,傳統上采用多功能的專用集成電路實現。但是在一般的使用中往往不需要完整的UA....
發表于 04-27 14:07 ? 100次 閱讀

USB轉UART芯片CP2101中文數據資料

USB轉UART芯片CP2101中文數據資料說明。
發表于 04-14 10:04 ? 129次 閱讀

USB轉UART芯片CP2101中文數據資料

USB轉UART芯片CP2101中文數據資料說明。
發表于 04-14 10:04 ? 158次 閱讀

如何獲取和使用Github上的開放資源

自從 Vitis 發布后,Xilinx 在 Github 上持續開源了很多資源,方便開發者進行自己的....
的頭像 OpenFPGA 發表于 04-09 11:51 ? 1074次 閱讀
如何獲取和使用Github上的開放資源

【紫光同創國產FPGA教程】【第二十八章】USB雙向測速例程

如何使用FTDI公司的FT232H驅動芯片進行USB數據傳輸,文中從底層FPGA、驅動層固件(FT2....
的頭像 FPGA技術專欄 發表于 04-09 10:46 ? 13727次 閱讀
【紫光同創國產FPGA教程】【第二十八章】USB雙向測速例程

ATK-USB-UART串口模塊的電路原理圖免費下載

本文檔的主要內容詳細介紹的是ATK-USB-UART串口模塊的電路原理圖免費下載。
發表于 04-02 16:31 ? 526次 閱讀
ATK-USB-UART串口模塊的電路原理圖免費下載

專門用于生成偽數據的神器faker.js推薦

在開發和測試過程中,以及在演示和培訓過程中,經常需要偽數據。 今天,猿妹就和大家推薦一個專門用于生成....
的頭像 人工智能與大數據技術 發表于 04-01 15:54 ? 546次 閱讀
專門用于生成偽數據的神器faker.js推薦

用于SAM D10的安全UART自舉程序

許多現代嵌入式系統需要通過固件更新來修復錯誤或支持新功能。同時,知識產權保護也起著重要作用。單片機具....
發表于 04-01 11:36 ? 99次 閱讀
用于SAM D10的安全UART自舉程序

針對SAM L10 /SAM L11的UART自舉程序

許多現代化的嵌入式系統需要更新應用程序映像,以修復錯誤或支持新功能。本文檔介紹了 SAM L10 和....
發表于 04-01 10:07 ? 129次 閱讀
針對SAM L10 /SAM L11的UART自舉程序

Microchip USB 2.0集線器中的USB轉UART橋接功能

Microchip USB 2.0集線器的USB轉UART橋接功能可為系統設計人員提供更多的系統控制....
發表于 03-31 09:36 ? 160次 閱讀
Microchip USB 2.0集線器中的USB轉UART橋接功能

云是AI的容器 云原生AI成過去式AI原生的云才是未來

大家有沒有發現一個現象,上云這場時代浪潮中,雖然載體是云,但決定了方向和路徑的卻是AI。 最明顯的,....
的頭像 腦極體 發表于 03-30 23:38 ? 3611次 閱讀

LIN規范包版本2.0

LIN(Local Interconnect Network,本地互連網絡)是專門為汽車開發的一種低....
發表于 03-29 16:52 ? 108次 閱讀

基于DOS實時嵌入式軟件測試工具的研究

由于實時嵌入式軟件主要是對外部接口設備進行控制,而被送檢的軟件需要大量不同的硬件環境,在進行測試時,....
發表于 03-29 11:15 ? 1212次 閱讀

BL602和BL604芯片的數據手冊免費下載

BL602/BL604 是一款 Wi-Fi + BLE 組合的芯片組,用于低功耗和高性能應用開發。無....
發表于 03-29 08:00 ? 332次 閱讀
BL602和BL604芯片的數據手冊免費下載

國產4口包MOS PSE 芯片DH2184特性概述 已通過SIFOS標準測試

一、什么是POE? POE(PowerOverEthernet)指的是在現有的以太網Cat.5布線基....
的頭像 思睿達小妹妹 發表于 03-26 17:38 ? 6910次 閱讀
國產4口包MOS PSE 芯片DH2184特性概述 已通過SIFOS標準測試

關于STM32中UART的一些特性分享

今天給大家分享關于STM32中UART的一些特性,主要針對較新系列STM32(如:STM32H7、G....
的頭像 strongerHuang 發表于 03-20 11:34 ? 2070次 閱讀

LPC2100系列PHILIPS 32位單片機選型指南免費下載

LPC2100系列是PHILIPS推出的以ARM7TDMI-S 處理器為內核的32位單片機典型應用于....
發表于 03-17 16:03 ? 125次 閱讀
LPC2100系列PHILIPS 32位單片機選型指南免費下載

如何使用樹莓派實現按鍵短信文本發送功能

如果您沒有備用的備用顯示器,鍵盤和鼠標,您可以通過 USB 串行電纜通過 SSH 連接到 Pi。這可....
發表于 03-17 15:31 ? 157次 閱讀
如何使用樹莓派實現按鍵短信文本發送功能

MM32F013x——UART 單線半雙工通信

本文將介紹在MM32F013x上實現UART單線半雙工的功能應用。
發表于 03-10 06:06 ? 281次 閱讀
MM32F013x——UART 單線半雙工通信

簡述嵌入式軟件開發到底是做些什么的

嵌入式開發就是指在嵌入式操作系統下進行開發,包括在系統化設計指導下的硬件、軟件以及綜合研發。
發表于 03-08 16:51 ? 3362次 閱讀

MSP430設計實例 MSP430F5504的USB混合信號處理器設計廣播系統

SoC已集成了很多數字功能,設計者們開始將目光投向復雜的模擬與射頻功能。模擬模塊不適用于構建SoC的....
發表于 03-08 11:22 ? 3873次 閱讀
MSP430設計實例  MSP430F5504的USB混合信號處理器設計廣播系統

由程序員研發的搶茅臺腳本等霸榜GitHub

作為國民心目中的”硬通貨“,茅臺在市場上一直很搶手,在終端市場上,能買到的現貨茅臺酒價格仍在2000....
的頭像 如意 發表于 03-03 15:48 ? 1270次 閱讀

Deskreen可以將任何具有Web瀏覽器的設備轉換為電腦的輔助屏幕

Deskreen將計算機屏幕共享到Web瀏覽器,這意味著使用Deskreen時,可以使用任何設備來擴....
的頭像 Linux愛好者 發表于 03-03 15:01 ? 879次 閱讀

CP2101 USB轉UART的單芯片橋接器的數據手冊免費下載

CP2101 是一種高度集成的 USB 轉 UART 橋接器提供一個使用最小化的元件和PCB空間實現....
發表于 03-01 16:12 ? 140次 閱讀
CP2101 USB轉UART的單芯片橋接器的數據手冊免費下載

UART通信轉CAN通信配置軟件

本文檔的主要內容詳細介紹的是UART通信轉CAN通信配置軟件。
發表于 03-01 08:00 ? 136次 閱讀
UART通信轉CAN通信配置軟件

BF7615BM的BYD的升級文件與工程包資料合集

BF7615BMXX 采用高速 8051 內核,1T 指令周期,相比于標準的 8051(12T)指令....
發表于 02-28 08:00 ? 896次 閱讀
BF7615BM的BYD的升級文件與工程包資料合集

RX-VO001全雙工數字音頻對講模塊的中文資料詳細說明

RX-VO001 是我司采用行業領先技術開發的一款高性價比RF 語音對講模塊,此模塊可工作在2.4G....
發表于 02-26 16:55 ? 141次 閱讀
RX-VO001全雙工數字音頻對講模塊的中文資料詳細說明

RX-VO001全雙工數字音頻對講模塊的中文資料詳細說明

RX-VO001 是我司采用行業領先技術開發的一款高性價比RF 語音對講模塊,此模塊可工作在2.4G....
發表于 02-26 16:55 ? 215次 閱讀
RX-VO001全雙工數字音頻對講模塊的中文資料詳細說明

Kinetis E系列上的UART引導加載程序設計

在一個特定的場合,很多應用或產品都需要升級固件,以修復 Bug 或提高性能。大多數人都不愿意使用專用....
發表于 02-24 08:00 ? 104次 閱讀
Kinetis E系列上的UART引導加載程序設計

Kinetis E系列上的I2C引導加載程序設計

在一個特定的場合,很多應用或產品都需要升級固件,以便修復某些發現的 Bug 或提高性能。 其中大多數....
發表于 02-24 08:00 ? 100次 閱讀
Kinetis E系列上的I2C引導加載程序設計

只需要一秒鐘,就可以使用VS Code閱讀Github代碼

【導語】:只需要一秒鐘,就可以使用 VS Code 閱讀 Github 代碼。 Github 是全世....
的頭像 Linux愛好者 發表于 02-23 11:38 ? 796次 閱讀

基于CN-0365模擬前端參考設計的高可靠精密數據采集與控制平臺

在許多惡劣環境系統中,一個不斷增長的趨勢是高精密電子器件離高溫區域越來越近。這一趨勢背后有多個推動因....
發表于 02-11 01:34 ? 1021次 閱讀
基于CN-0365模擬前端參考設計的高可靠精密數據采集與控制平臺

TL16C552 具有 16 字節 FIFO 和并行端口的雙路 UART

TL16C552是流行的TL16C550異步通信元件(ACE)的增強型雙通道版本。該器件在微機或微處理器系統中同時提供兩個串行輸入/輸出接口。每個通道對從外圍設備或調制解調器接收的數據字符執行串行到并行轉換,并對由CPU傳輸的數據字符進行并行到串行轉換。在功能操作期間,CPU可以隨時讀取雙ACE的每個通道的完整狀態。獲得的信息包括正在執行的傳輸操作的類型和條件以及錯誤條件。 除了雙通信接口功能外,TL16C552還為用戶提供了完全支持并行Centronics型打印機的完全雙向并行數據端口。并行端口和兩個串行端口為IBM PC /AT兼容計算機提供單個設備,以便為三個系統端口提供服務。 包含一個可編程波特率發生器,它可以將定時參考時鐘輸入除以1和(2 16 - 1)之間的除數。 TL16C552采用68引腳塑料引線芯片載體封裝。 特性 IBM PC /AT TM 兼容 兩個TL16C550 ACE 增強型雙向打印機端口 16字節FIFO減少CPU中斷 獨立控制每個通道上的發送,接收,線路狀態和數據集中斷 每個通道的各個調制解調器控制信號 每個通道的可編程串行接口特性: 5-,6-,7-或8位字符 Even - ,奇數或無奇偶校驗位生成和...
發表于 10-16 11:19 ? 366次 閱讀
TL16C552 具有 16 字節 FIFO 和并行端口的雙路 UART

TL16C550C 具有 16 字節 FIFO 及自動流控制的單路 UART

TL16C550C和TL16C550CI是TL16C550B異步通信元件(ACE)的功能升級,后者又是TL16C450的功能升級。功能上與TL16C450上電(字符或TL16C450模式)相同,TL16C550C和TL16C550CI(如TL16C550B)可以置于備用FIFO模式。這通過緩沖接收和傳輸的字符來減輕CPU過多的軟件開銷。接收器和發送器FIFO最多可存儲16個字節,包括接收器FIFO每字節的三個附加錯誤狀態位。在FIFO模式下,有一個可選擇的自動流控制功能,可以通過使用RTS \輸出和CTS \輸入信號自動控制串行數據流來顯著減少軟件過載并提高系統效率。 TL16C550C和TL16C550CI執行從外圍設備或調制解調器接收的數據的串行到并行轉換,以及從CPU接收的數據的并行到串行轉換。 CPU可以隨時讀取ACE狀態。 ACE包括完整的調制解調器控制功能和處理器中斷系統,可以對其進行定制,以最大限度地減少通信鏈路的軟件管理。 TL16C550C和TL16C550CI ACE都包含一個可編程的波特率發生器,能夠劃分參考時鐘由除數從1到65535,并為內部發送器邏輯產生16×參考時鐘。包括使用該16×時鐘作為接收器邏輯的規定。 ACE適用于1 Mbaud串...
發表于 10-16 11:19 ? 795次 閱讀
TL16C550C 具有 16 字節 FIFO 及自動流控制的單路 UART

PC16550D 具有 FIFO 的通用異步接收器/發送器

PC16550D設備是原始16450通用異步接收器/發送器(UART)的改進版本。功能上與16450上電時相同(CHARACTER模式:也可以在軟件控制下復位到16450模式)PC16550D可以進入備用模式(FIFO模式),以減輕CPU過多的軟件開銷。 在此模式下,內部FIFO被激活,允許在接收和發送模式下存儲16個字節(RCVR FIFO中每個字節的3位錯誤數據)。所有邏輯都在芯片上以最小化系統開銷并最大化系統效率。兩個引腳功能已更改為允許發送DMA傳輸信號。 UART對從外圍設備或MODEM接收的數據字符執行串并轉換,并對數據進行并行到串行轉換從CPU接收的字符。在功能操作期間,CPU可以隨時讀取UART的完整狀態。報告的狀態信息包括UART執行的傳輸操作的類型和條件,以及任何錯誤條件(奇偶校驗,溢出,成幀或中斷中斷)。 UART包含可編程波特率能夠將定時參考時鐘輸入除以1的除數(2 16 ?? 1),并產生16×時鐘以驅動內部發送器邏輯的發生器。還包括使用該16×時鐘來驅動接收器邏輯的規定。 UART具有完整的MODEM控制功能和處理器中斷系統。中斷可以根據用戶的要求進行編程,最大限度地減少處理通信鏈路所需的計算...
發表于 10-16 11:19 ? 460次 閱讀
PC16550D 具有 FIFO 的通用異步接收器/發送器

TL16C550D 具有自動流控制的異步通信元件

TL16C550D和TL16C550DI是TL16C550C異步通信元件(ACE)的速度和工作電壓升級(但功能等同物),后者又具有功能升級TL16C450。功能上與TL16C450上電(字符或TL16C450模式)相同,TL16C550D和TL16C550DI(如TL16C550C)可以置于備用FIFO模式。這通過緩沖接收和傳輸的字符來減輕CPU過多的軟件開銷。接收器和發送器FIFO最多可存儲16個字節,包括接收器FIFO每字節的三個附加錯誤狀態位。在FIFO模式下,有一個可選擇的自動流控制功能,可以使用 RTS 輸出和 CTS 輸入信號。 TL16C550D和TL16C550DI對從外圍設備或調制解調器接收的數據執行串行到并行轉換,并行轉換為對從其CPU接收的數據進行串行轉換。 CPU可以隨時讀取ACE狀態。 ACE包括完整的調制解調器控制功能和處理器中斷系統,可以對其進行定制,以最大限度地減少通信鏈路的軟件管理。 TL16C550D和TL16C550DI ACE都包含一個可編程的波特率發生器,能夠劃分參考時鐘由除數從1到65535,并為內部發送器邏輯產生16×參考時鐘。包括使用該16×時鐘作為接收器邏輯的規定。 ACE最高可支持1.5 Mbaud串行速率(24 MHz...
發表于 10-16 11:19 ? 184次 閱讀
TL16C550D 具有自動流控制的異步通信元件

TL16C2552 具有 16 字節 FIFO 的 1.8V 至 5V 雙路 UART

TL16C2552是雙通用異步接收器和發送器(UART)。它集成了兩個TL16C550D UART的功能,每個UART都有自己的寄存器組和FIFO。兩個UART僅共享數據總線接口和時鐘源,否則它們獨立運行。 UART功能的另一個名稱是異步通信元件(ACE),這些術語將可互換使用。本文檔的大部分內容描述了每個ACE的行為,并了解TL16C2552中集成了兩個這樣的設備。 每個ACE都是TL16C550C的速度和電壓范圍升級,而TL16C550則是TL16C450的功能升級。在上電或復位(單字符或TL16C450模式)時,功能相當于TL16C450,每個ACE都可以置于備用FIFO模式。這通過緩沖接收和傳輸的字符來減輕CPU過多的軟件開銷。每個接收器和發送器在其各自的FIFO中存儲多達16個字節,接收FIFO包括每個字節三個附加位用于錯誤狀態。在FIFO模式下,可選擇的自動流控制功能可以通過使用 RTS 輸出和 CTS 輸入,從而消除了接收FIFO中的溢出。 每個ACE對從外圍設備或調制解調器接收的數據執行串行到并行轉換并行數據存儲在其接收緩沖區或FIFO中,每個ACE在將并行數據存儲到其發送緩沖區或FIFO中后,對從其CPU發送的...
發表于 10-16 11:19 ? 95次 閱讀
TL16C2552 具有 16 字節 FIFO 的 1.8V 至 5V 雙路 UART

TL16C754B 具有 64 字節 FIFO 的四路 UART

TL16C754B是一款四通用異步接收器/發送器(UART),具有64字節FIFO,自動硬件/軟件流控制,數據速率最高可達3 Mbps的。 TL16C754B提供增強功能。它有一個傳輸控制寄存器(TCR),用于存儲接收的FIFO閾值電平,以便在硬件和軟件流控制期間啟動/停止傳輸。使用FIFO RDY寄存器,軟件在一次訪問中獲得所有四個端口的TXRDY /RXRDY狀態。片上狀態寄存器為用戶提供錯誤指示,操作狀態和調制解調器接口控制??梢远ㄖ葡到y中斷以滿足用戶要求。內部環回功能允許板載診斷。 UART在TX信號上發送從外設8位總線發送給它的數據,并接收RX信號上的字符。字符可以編程為5,6,7或8位。 UART具有64字節接收FIFO和發送FIFO,可編程為在不同觸發電平下中斷。 UART根據可編程除數及其輸入時鐘生成自己想要的波特率。它可以發送偶數,奇數或無奇偶校驗以及1,1.5或2個停止位。接收器可以檢測中斷,空閑或幀錯誤,FIFO溢出和奇偶校驗錯誤。發送器可以檢測FIFO下溢。 UART還包含用于調制解調器控制操作,軟件流控制和硬件流控制功能的軟件接口。 TL16C754B采用80引腳TQFP和68引腳PLCC封裝。 < /D...
發表于 10-16 11:19 ? 699次 閱讀
TL16C754B 具有 64 字節 FIFO 的四路 UART

TIR1000 獨立 IrDA 編碼器,解碼器

TIR1000x串行紅外(SIR)編碼器和解碼器是一種CMOS器件,可對符合IrDA規范的位數據進行編碼和解碼。 < p>需要一個收發器設備來連接光敏二極管(PIN)和發光二極管(LED)。需要UART來連接串行數據線。 特性 將紅外(IR)端口添加到通用異步接收器發送器(UART) 與紅外數據關聯兼容(IrDA?)和Hewlett Packard串行紅外線(HPSIR) 提供1200 bps至115 kbps的數據速率 工作電壓范圍為2.7 V至5.5 V < /li> 使用UART提供簡單接口 解碼負脈沖或正脈沖 提供兩個8端子塑料小外形封裝(PSOP) < li> PS封裝尺寸略大于PW封裝 參數 與其它產品相比?UART ? Number of Channels (#) FIFOs (bytes) Rx FIFO Trigger Levels (#) Tx FIFO Trigger Levels (#) Programmable FIFO Trigger Levels CPU Interface Baud Rate (max) at Vcc = 1.8V and with 16X Sampling (Mbps) Baud Rate (max) at Vcc = 2.5V and with 16X Sampling (Mbps) Baud Rate (max) at Vcc = 3.3V and with 16X Sampling (Mbps) Baud Rate ...
發表于 10-16 11:19 ? 137次 閱讀
TIR1000 獨立 IrDA 編碼器,解碼器

TL16C452 具有并行端口但沒有 FIFO 的雙路 UART

TL16C451和TL16C452提供單通道和雙通道(分別)串行接口以及單個Centronix型并行端口接口。串行接口為從外圍設備或調制解調器接收的數據提供串并轉換,并為CPU傳輸的數據提供并行到串行轉換。并行接口提供雙向并行數據端口,完全符合Centronix型打印機接口的要求。 CPU可以在操作中的任何位置讀取異步通信元素(ACE)接口的狀態。狀態包括調制解調器信號的狀態(CTS \,DSR \,RLSD \和RI)以及自上次讀取以來發生的這些信號的任何變化,發送器和接收器的狀態,包括檢測到的錯誤收到的數據和打印機狀態。 TL16C451和TL16C452提供對調制解調器信號(RTS \和DTR \),中斷使能,波特率編程和并行端口控制信號的控制。 特性 集成來自IBM PC /AT TM 的大多數通信卡功能或與單通道或雙通道串行兼容端口 TL16C451由一個TL16C450 Plus Centronix打印機接口組成 TL16C452由兩個TL16C450和一個Centronix型打印機接口組成 完全可編程串行接口特性: 5-,6-,7-或8-位字符 偶數,奇數或無奇偶校驗位生成和檢測 1,1 1 /2-或2停止位生成 可編程波特率(直流至256 kbit /s) 完全雙重緩沖以實現...
發表于 10-16 11:19 ? 127次 閱讀
TL16C452 具有并行端口但沒有 FIFO 的雙路 UART

TPIC8101 振動和發動機爆震傳感器接口

TPIC8101是一款雙通道信號處理IC,用于檢測內燃機的過早爆震。兩個傳感器通道可通過SPI總線選擇。爆震傳感器通常向放大器輸入提供電信號。通過可編程帶通濾波器處理感測信號以提取感興趣的頻率(發動機爆震或ping信號)。帶通濾波器消除了與燃燒相關的任何發動機背景噪聲。與預失真噪聲相比,發動機背景噪聲的幅度通常較低。 通過使用INT /HOLD信號對檢測到的信號進行全波整流和積分。積分級的數字輸出要么轉換為模擬信號,要么通過輸出緩沖器,要么直接由SPI讀取。 這個模擬緩沖輸出可以連接到A /D轉換器,由微處理器讀取。數字輸出可以直接連接到微處理器。 來自A /D的數據使系統能夠分析下一個火花點火正時周期的延遲時間量。通過微處理器閉環系統,提前和延遲火花正時可以優化特定發動機的負載/轉速條件(存儲在RAM中的數據)。 特性 符合汽車應用要求 AEC-Q100符合以下結果: 設備溫度等級1:?? 40°C至125°C 環境工作溫度范圍 設備HBM分類等級3A 設備CDM分類等級C6 雙通道爆震傳感器接口 可編程輸入頻率預分頻器(OSCIN) 帶微處理器的串行接口(SPI) 可編程增益 可編程帶通濾波器中心頻率 外部...
發表于 10-16 11:19 ? 96次 閱讀
TPIC8101 振動和發動機爆震傳感器接口

TL16C752CI-Q1 TL16C752CI-Q1 具有 64 字節 FIFO 的雙路 UART

TL16C752CI-Q1是一款雙路通用異步收發器(UART),具有64字節先入先出(FIFO)以及自動硬件和軟件流控制功能,數據傳輸速率最高可達3Mbps。該器件具備增強功能的磁場感測解決方案。該器件具有一個傳輸字符控制寄存器(TCR),可存儲接收到的FIFO閾值電平,用于在硬件和軟件流控制過程中啟動或停止傳輸。 憑借FIFO RDY寄存器,軟件只需執行單次訪問即可獲得兩個端口的TXRDY或RXRDY狀態。片上狀態寄存器可為用戶提供錯誤指示,運行狀態以及調制解調器接口控制。內部環回功能支持板上診斷.TL16C752CI-Q1整合了兩個UART的功能,每個UART具備各自的寄存器集和FIFO。兩個UART只有共享數據總線接口和時鐘源,除此之外都是獨立運行的.UART功能也稱作異步通信元件(ACE),這兩個術語可互換使用本文檔主要介紹每個ACE的行為,并讓讀者了解到TL16C752CI-Q1器件中整合了這兩個ACE。 特性 符合汽車級Q100標準 SC16C752B和XR16M752引腳兼容其他增強功能 支持1.8V,2.5V,3.3V或5V電源 運行溫度范圍為-40°C至+ 105°C 支持高達: 48MHz振蕩器輸入時鐘(3Mbps),面向...
發表于 10-16 11:16 ? 129次 閱讀
TL16C752CI-Q1 TL16C752CI-Q1 具有 64 字節 FIFO 的雙路 UART

TL16C754C 具有 64 字節 FIFO 的四路 UART

?? 754C是四通用異步接收器發送器(UART),具有64字節FIFO,自動硬件和軟件流控制,數據速率高達3 Mbps。它集成了四個UART的功能,每個UART都有自己的寄存器組和FIFO。四個UART僅共享數據總線接口和時鐘源,否則它們獨立運行。 UART功能的另一個名稱是異步通信元件(ACE),這些術語可互換使用。本文檔的大部分內容描述了每個ACE的行為,并理解將四個這樣的設備合并到?? 754C中。 ?? 754C提供增強功能。它有一個傳輸控制寄存器(TCR),用于存儲接收的FIFO閾值電平,以便在硬件和軟件流控制期間啟動或停止傳輸。使用FIFO RDY寄存器,軟件在一次訪問中獲得所有四個端口的TXRDY /RXRDY狀態。片上狀態寄存器為用戶提供錯誤指示,操作狀態和調制解調器接口控制??梢远ㄖ葡到y中斷以滿足用戶要求。內部環回功能允許板載診斷。 每個UART在TX信號上發送從外設8位總線發送給它的數據,并接收RX信號上的字符。字符可以編程為5,6,7或8位。 UART具有64字節接收FIFO和發送FIFO,可編程為在不同觸發電平下中斷。 UART根據可編程除數及其輸入時鐘生成自己想要的波特率。它可以傳輸偶數,奇...
發表于 10-16 11:16 ? 314次 閱讀
TL16C754C 具有 64 字節 FIFO 的四路 UART

TL16C2752 具有 64 字節 FIFO 的雙路 UART

TL16C2752是TL16C2552的速度和功能升級。由于它們的引腳排列和軟件兼容,如果需要,設計可以輕松地從TL16C2552遷移到TL16C2752。 TL16C2752內的附加功能可通過擴展寄存器組訪問。一些關鍵的新功能是更大的接收和發送FIFO,嵌入式IrDA編碼器和解碼器,RS-485收發器控制,軟件流控制(Xon /Xoff)模式,可編程發送FIFO閾值,中斷的擴展接收和發送閾值電平,以及流量控制暫停/恢復操作的擴展接收閾值電平。 TL16C2752是雙通用異步接收器和發送器(UART)。它集成了兩個獨立UART的功能:每個UART都有自己的寄存器組,發送和接收FIFO。兩個UART僅共享數據總線接口和時鐘源,否則它們獨立運行。 UART功能的另一個名稱是異步通信元素(ACE),這些術語可以互換使用。本文檔的大部分內容描述了每個ACE的行為,并了解TL16C2752中集成了兩個這樣的器件。 在上電或復位時功能相當于TL16C450(單字符或TL16C450模式),每個ACE都可以置于備用FIFO模式。這通過緩沖接收和待傳輸的字符來減輕CPU過多的軟件開銷。每個接收器和發送器在其各自的FIFO中存儲多達64個字節,接收FIFO包括每個...
發表于 10-16 11:16 ? 142次 閱讀
TL16C2752 具有 64 字節 FIFO 的雙路 UART

NS16C2552 具有 16 字節 FIFO 和高達 5 Mbit/s 數據速率的雙路 UART

NS16C2552和NS16C2752是雙通道通用異步接收器/發送器(DUART)。占位面積和功能與PC16552D兼容,同時為UART設備添加了新功能。這些功能包括低電壓支持,5V容限輸入,增強功能,增強的寄存器設置和更高的數據速率。 兩個串行通道完全相互獨立,除了常見的CPU接口和晶振輸入。上電時,兩個通道在功能上與PC16552D完全相同。每個通道都可以使用片上發送器和接收器FIFO(在FIFO模式下)。 在FIFO模式下,每個通道能夠緩沖16個字節(對于NS16C2552)或64個字節(對于NS16C2752)的數據在發射器和接收器中。接收器FIFO每個位置還有3位錯誤數據。所有FIFO控制邏輯都在片內,以最大限度地降低系統軟件開銷并最大限度地提高系統效率。 為了提高CPU處理帶寬,DUART和CPU之間的數據傳輸可以使用DMA控制器完成。 DMA傳輸的信令通過每個通道兩個引腳完成( TXRDY 和 RXRDY )。 RXRDY 函數在一個引腳上復用 OUT2 和BAUDOUT函數。配置是通過備用功能寄存器。 UART的基本功能是在并行和串行數據之間進行轉換。串行到并行轉換在UART接收器上完成,并且在發送器上進行并行到...
發表于 10-16 11:16 ? 152次 閱讀
NS16C2552 具有 16 字節 FIFO 和高達 5 Mbit/s 數據速率的雙路 UART

TL16C2550-Q1 具有 16 字節 FIFO 的汽車類 1.8V 至 5V 雙路 UART

TL16C2550是雙通用異步接收器和發送器(UART)。它集成了兩個TL16C550D UART的功能,每個UART都有自己的寄存器組和FIFO。兩個UART僅共享數據總線接口和時鐘源,否則它們獨立運行。 uart函數的另一個名稱是異步通信元素(ACE),這些術語可以互換使用。本文檔的大部分內容描述了每個ACE的行為,并了解TL16C2550中包含兩個這樣的設備。 每個ACE都是TL16C550C的速度和電壓范圍升級,而TL16C550則是TL16C450的功能升級。在上電或復位(單字符或TL16C450模式)時,功能相當于TL16C450,每個ACE都可以置于備用FIFO模式。這通過緩沖接收和傳輸的字符來減輕CPU過多的軟件開銷。每個接收器和發送器在其各自的FIFO中存儲多達16個字節,接收FIFO包括每個字節三個附加位用于錯誤狀態。在FIFO模式下,可選擇的自動流控制功能可以通過使用 RTS 輸出和 CTS 輸入,從而消除了接收FIFO中的溢出。 每個ACE對從外圍設備或調制解調器接收的數據執行串行到并行轉換并行數據存儲在其接收緩沖區或FIFO中,每個ACE在將并行數據存儲到其發送緩沖區或FIFO中后,對從其CPU發送的數據執...
發表于 10-16 11:16 ? 175次 閱讀
TL16C2550-Q1 具有 16 字節 FIFO 的汽車類 1.8V 至 5V 雙路 UART

TL16C752D-Q1 具有 64 字節 FIFO 的汽車類雙路 UART

TL16C752D-Q1是一款雙路通用異步收發器(UART),具有64字節FIFO以及自動硬件和軟件流控制功能,數據傳輸該率器件具有一個傳輸字符控制寄存器(TCR),可存儲接收到的FIFO閾值電平,從而在硬件和軟件流控制過程中啟動或停止傳輸。 憑借FIFO RDY寄存器,軟件只需執行單次訪問即可獲得兩個端口的TXRDY或RXRDY狀態。片上狀態寄存器可為用戶提供錯誤指示,運行狀態以及調制解調器接口控制??筛鶕脩粢蠖ㄖ葡到y中斷。內部環回功能支持板上診斷.TL16C752D-Q1整合了兩個UART的功能,每個UART具備各自的寄存器集和FIFO。 兩個UART只共享數據總線接口和時鐘源,除此之外都是獨立運行的.UART功能也稱作異步通信元件(ACE),這兩個術語可互換使用。檔主要介紹每個ACE的行為并讓讀者了解TL16C752D-Q1器件中整合了這兩個ACE。 特性 符合汽車級Q100標準 與TL16C2550引腳兼容,可通過改進的先入先出(FIFO)寄存器提供增強功能 支持1.62V至5.5V的寬電源電壓范圍 5V時為3Mbps(48MHz振蕩器輸入時鐘) 3.3V時為2Mbps(32MHz振蕩器輸入時鐘) 2.5V時為1.5Mbps(24M...
發表于 10-16 11:16 ? 130次 閱讀
TL16C752D-Q1 具有 64 字節 FIFO 的汽車類雙路 UART

TL16C752C 具有 64 字節 FIFO 的雙路 UART

TL16C752C是一款雙路通用異步收發器(UART),具有64字節先入先出(FIFO)以及自動硬件和軟件流控制功能,數據傳輸速率最高可達3Mbps。該器件具備增強功能的磁場感測解決方案。該器件具有一個傳輸字符控制寄存器(TCR),可存儲接收到的FIFO閾值電平,用于在硬件和軟件流控制過程中啟動或停止傳輸。 憑借FIFO RDY寄存器,軟件只需執行單次訪問即可獲得兩個端口的TXRDY或RXRDY狀態。片上狀態寄存器可為用戶提供錯誤指示,運行狀態以及調制解調器接口控制??筛鶕脩粢蠖ㄖ葡到y中斷。內部環回功能支持板上診斷.TL16C752C整合了兩個UART的功能,每個UART具備各自的寄存器集和FIFO。兩個UART只共享數據總線接口和時鐘源,除此之外都是獨立運行的.UART功能也稱作異步通信元件(ACE),這兩個術語可以互使用。本文檔要介紹每個ACE的行為,并讓讀者了解到TL16C752C器件中整合了這兩個ACE。 特性 SC16C752B和XR16M752引腳兼容其他增強功能 支持1.8V,2.5V,3.3V或5V電源< /li> 運行溫度范圍為-40°C至85°C 支持高達: 48MHz振蕩器輸入時鐘(3Mbps),面向5V工作電...
發表于 10-16 11:16 ? 196次 閱讀
TL16C752C 具有 64 字節 FIFO 的雙路 UART

TL28L92 3.3V/5V 雙路通用異步接收器/發送器

TL28L92是SC26C92的引腳和功能替代產品,工作電壓為3.3 V或5 V,具有更多功能和更深的FIFO。上電時的配置是SC26C92的配置。它與SC26C92的區別在于:16個字符接收器,16個字符發送FIFO,每個接收器的看門狗定時器,模式寄存器0,擴展波特率和整體更快的速度,可編程接收器和發送器中斷。 Pin編程將允許設備使用Motorola或Intel總線接口。如果要求嚴格符合SC26C92 FIFO結構,MR0A寄存器的第3位允許器件以8字節FIFO模式工作。 德州儀器TL28L92雙通用異步接收器/發送器(DUART)是單芯片CMOS-LSI通信器件,在單個封裝中提供兩個全雙工異步接收器/發送器通道。它直接與微處理器連接,可用于帶調制解調器和DMA接口的輪詢或中斷驅動系統。 每個通道的操作模式和數據格式可以獨立編程。此外,每個接收器和發送器可以選擇其工作速度作為28個固定波特率之一; 16×時鐘源自可編程計數器/定時器,或外部1×或16×時鐘。波特率發生器和計數器/定時器可以直接從晶振或外部時鐘輸入操作。獨立編程接收器和發送器的運行速度的能力使DUART特別適用于集群終端系統等雙速通道應用。 每個接收器和發送器由8或16個字符的F...
發表于 10-16 11:16 ? 149次 閱讀
TL28L92 3.3V/5V 雙路通用異步接收器/發送器

TL16C2550 具有 16 字節 FIFO 的 1.8V 至 5V 雙路 UART

TL16C2550是雙通用異步接收器和發送器(UART)。它集成了兩個TL16C550D UART的功能,每個UART都有自己的寄存器組和FIFO。兩個UART僅共享數據總線接口和時鐘源,否則它們獨立運行。 uart函數的另一個名稱是異步通信元素(ACE),這些術語可以互換使用。本文檔的大部分內容描述了每個ACE的行為,并了解TL16C2550中包含兩個這樣的設備。 每個ACE都是TL16C550C的速度和電壓范圍升級,而TL16C550則是TL16C450的功能升級。在上電或復位(單字符或TL16C450模式)時,功能相當于TL16C450,每個ACE都可以置于備用FIFO模式。這通過緩沖接收和傳輸的字符來減輕CPU過多的軟件開銷。每個接收器和發送器在其各自的FIFO中存儲多達16個字節,接收FIFO包括每個字節三個附加位用于錯誤狀態。在FIFO模式下,可選擇的自動流控制功能可以通過使用 RTS 輸出和 CTS 輸入,從而消除了接收FIFO中的溢出。 每個ACE對從外圍設備或調制解調器接收的數據執行串行到并行轉換并行數據存儲在其接收緩沖區或FIFO中,每個ACE在將并行數據存儲到其發送緩沖區或FIFO中后,對從其CPU發送的數據執...
發表于 10-16 11:16 ? 242次 閱讀
TL16C2550 具有 16 字節 FIFO 的 1.8V 至 5V 雙路 UART

NS16C2752 具有 64 字節 FIFO 和高達 5 Mbit/s 數據速率的雙路 UART

NS16C2552和NS16C2752是雙通道通用異步接收器/發送器(DUART)。占位面積和功能與PC16552D兼容,同時為UART設備添加了新功能。這些功能包括低電壓支持,5V容限輸入,增強功能,增強的寄存器設置和更高的數據速率。 兩個串行通道完全相互獨立,除了常見的CPU接口和晶振輸入。上電時,兩個通道在功能上與PC16552D完全相同。每個通道都可以使用片上發送器和接收器FIFO(在FIFO模式下)。 在FIFO模式下,每個通道能夠緩沖16個字節(對于NS16C2552)或64個字節(對于NS16C2752)的數據在發射器和接收器中。接收器FIFO每個位置還有3位錯誤數據。所有FIFO控制邏輯都在片內,以最大限度地降低系統軟件開銷并最大限度地提高系統效率。 為了提高CPU處理帶寬,DUART和CPU之間的數據傳輸可以使用DMA控制器完成。 DMA傳輸的信令通過每個通道兩個引腳完成( TXRDY 和 RXRDY )。 RXRDY 函數在一個引腳上復用 OUT2 和BAUDOUT函數。配置是通過備用功能寄存器。 UART的基本功能是在并行和串行數據之間進行轉換。串行到并行轉換在UART接收器上完成,并且在發送器上進行并行到...
發表于 10-16 11:16 ? 182次 閱讀
NS16C2752 具有 64 字節 FIFO 和高達 5 Mbit/s 數據速率的雙路 UART

TL16C752D TL16C752D 具有 64 字節 FIFO 的雙路 UART

TL16C752D是一款雙路通用異步收發器(UART),具有64字節FIFO以及自動硬件和軟件流控制功能,數據傳輸速率最高可達3Mbps。該器件具備增強功能的磁場感測解決方案。該器件具有一個傳輸字符控制寄存器(TCR),可存儲接收到的FIFO閾值電平,從而在硬件和軟件流控制過程中啟動或停止傳輸。 憑借FIFO RDY寄存器,軟件只需執行單次訪問即可獲得兩個端口的TXRDY或RXRDY狀態。片上狀態寄存器可用于用戶提供錯誤指示,運行狀態以及調制解調器接口控制??筛鶕脩粢蠖ㄖ葡到y中斷。內部環回功能支持板上診斷.TL16C752D整合了兩個UART的功能,每個UART都有自己的寄存器集和FIFO。 兩個UART只共享數據總線接口和時鐘源,除此之外都是獨立運行的.UART功能也稱作異步通信元件(ACE),這兩個術語可以互使用。本文檔主要介紹每個ACE的行為,并讓讀者了解到TL16C752D器件中整合了這兩個ACE。 特性 與 TL16C2550 引腳兼容,可通過 改進的先入先出 (FIFO) 寄存器 提供增強功能支持 1.62V 至 5.5V 的寬電源電壓范圍 5V 時為 3Mbps(48MHz 振蕩器輸入時鐘) 3.3V 時為 3Mbps(48MHz...
發表于 10-16 11:16 ? 210次 閱讀
TL16C752D TL16C752D 具有 64 字節 FIFO 的雙路 UART