SJXXX串口扩展芯片 4串口芯片 UART串口芯片
SJXX串口擴展芯片
1 概述
SJ000是一款具備I2C總線/SPI總線/UART接口的四通道異步收發(fā)器件,通過模式選擇使得該器件工作于以上任何一種主接口模式下。器件的四個通道UART可提供高達2Mbps的數(shù)據(jù)率,低功耗模式和睡眠電流。每個通道含有一個接收器和一個發(fā)送器,并帶有64字節(jié)發(fā)送/接收FIFO,通道波特率、字長、校驗格式可獨立設(shè)置,也可以獨立設(shè)置IrDA紅外通信、RS-485自動收發(fā)控制、9位網(wǎng)絡(luò)地址自動識別、軟件/硬件自動流量控制、廣播接收等。器件還帶有可編程中斷功能,實現(xiàn)與主機的信息交互。
2 特征
2.1 通用特性
a) 3.3V工作電壓
b) 主接口可選擇為:I2C總線、SPI接口或UART接口
c) 子接口為:全雙工四通道UART
d) 子接口發(fā)送器帶有64字節(jié)發(fā)送FIFO
e) 子接口接收器帶有64字節(jié)接收FIFO,存儲有狀態(tài)標志及數(shù)據(jù)
f) 中斷方式時,可編程的發(fā)送和接收FIFO的觸發(fā)閾值
g) 軟件流/硬件流方式時,編程可選的接收FIFO觸發(fā)設(shè)置
h) 軟件流/硬件流控制特性,包括:
――可編程字Xon/Xoff
――可編程的自動RTS,和自動CTS
i) 支持自動/手動RS-485(自動網(wǎng)絡(luò)地址檢測)
j) 通過RTS信號的RS-485驅(qū)動器方向控制
k) RS-485驅(qū)動器方向極性可控制
l) 內(nèi)置IrDA編碼器和譯碼器接口
m) 可編程的波特率產(chǎn)生器
n) 可編程的軟件/硬件睡眠模式控制
o) Line break的產(chǎn)生和檢測
p) 內(nèi)部回送模式
q) 系統(tǒng)中斷控制
r) 紅外功能
s) 符合綠色環(huán)保無鉛封裝
2.2 I2 主接口特性
a) 400kbit/s(最大速率)
b) 僅為從機模式
c) 總線噪聲濾波
2.3 SPI主接口特性
a) 最高速率為5Mbit/s
b) 僅為從機模式
c) 16位,SPI模式0
2.4 UART主接口特性
a) 主接口為標準的UART串口,無需其它地址信號、控制信號線
b) 可編程波特率設(shè)置,最高速度可以達到2M bit/s
c) 可選擇的奇校驗,偶校驗和無校驗?zāi)J?br />d) UART主接口可以通過引腳設(shè)置為紅外模式
e) UART主接口可以通過引腳選擇是否采用轉(zhuǎn)義字符模式
2.5 UART子接口特性
a) 每個子串口為全雙工,每個子串口可以通過軟件開啟/關(guān)閉
b) 每個子串口波特率可以獨立設(shè)置
c) 每個子串口可以軟件設(shè)置為是否接收數(shù)據(jù)廣播
d) 每個子串口狀態(tài)查詢功能
e) 每個子串口提供可編程的串行接口特性,包括:
――8或9位字符長度
――奇校驗、偶校驗、強制校驗、無奇偶校驗的發(fā)生和檢測
――1或2個停止位產(chǎn)生和檢測
――校驗錯誤、幀錯誤及溢出錯誤檢測
f) FIFO特性
――每個子串口具備獨立的64級發(fā)送FIFO,發(fā)送FIFO具備4級可編程觸發(fā)點
――每個子串口具備獨立的64級接收FIFO,接收FIFO具備4級可編程觸發(fā)點
――增強功能下,發(fā)送/接收FIFO觸發(fā)點可獨立編程為4N,N=1、2…..15
――軟件FIFO使能和清空
――FIFO狀態(tài)和計數(shù)器輸出
g) 流量控制特性
――支持RTS、CTS的硬件自動流量控制
――支持XON/XOFF的軟件自動流量控制
――可編程XON/XOFF字符自動發(fā)送/識別
h) RS-485特性
――RTS控制的自動RS-485收發(fā)控制,且RTS極性可控制
――RS-485網(wǎng)絡(luò)地址自動識別功能
i) 錯誤檢測特性
――支持奇偶校驗錯,數(shù)據(jù)幀錯誤及溢出錯誤檢測
――支持起始位錯誤檢測
j) Line break的產(chǎn)生和檢測
k) 中斷特性
――接收/發(fā)送FIFO中斷
――接收錯誤中斷
――軟件/硬件流量控制中斷
――網(wǎng)絡(luò)地址中斷
――超時中斷
――各中斷特性可軟件開啟/關(guān)閉
l) 內(nèi)置IrDA紅外收發(fā)編解碼器
2.6 應(yīng)用領(lǐng)域
a) 多串口服務(wù)器/多串口卡
b) 工業(yè)/自動化現(xiàn)場RS-485控制
c) 通過CDMA/GPRS MODEM的無線數(shù)據(jù)傳輸
d) 車載信息平臺/車載GPS定位系統(tǒng)
e) 遠傳自動抄表(AMR)系統(tǒng)
f) POS/稅控POS/金融機具
g) DSP/嵌入式系統(tǒng)
3 訂購信息
| 器件型號 | 封裝類型 | ||
| 型號 | 說明 | ||
| SJ214 | SOP20 | 封裝體尺寸:12.8mm X 7.5mm,引腳間距:1.27mm | |
| SJ224 | |||
| SJ234 | |||
| SJ304 | QFN24 | 封裝體尺寸:4mm X 4mm,引腳間距:0.5mm | |
| SJ000 | QFN40 | 封裝體尺寸:6mm X 6mm,引腳間距:0.5mm | |
| 器件型號 | 接口 | 特性說明 | |
| 主接口 | 子接口 | ||
| SJ214 | UART | UART | UART主接口,無硬件流量控制端口 |
| SJ224 | SPI | UART | SPI主接口,無硬件流量控制端口 |
| SJ234 | IIC | UART | IIC主接口,無硬件流量控制端口 |
| SJ304 | UART/SPI/IIC | UART | 三種主接口,一個子口帶硬件控制端口 |
| SJ000 | UART/SPI/IIC | UART | 三種主接口,四個子口帶硬件控制端口 |
4 封裝及引腳功能說明
SJ000采用的封裝,如下圖所示。
?
該芯片的各引腳功能描述見表1:
5 功能概述
系統(tǒng)的主要功能框圖和結(jié)構(gòu)框圖分別如下圖所示。
SJ000實現(xiàn)I2C總線、SPI接口或UART接口與四個子UART之間的數(shù)據(jù)收發(fā)功能,主接口可以通過I2C/SPI/UART的方式將數(shù)據(jù)寫入的子UART,通過TX端口串行發(fā)送出去,也可以將子UART的RX串行接收的數(shù)據(jù)通過I2C/SPI/UART的方式送給外部單片機。
SJ000可以設(shè)置為FIFO模式或非FIFO模式,通過緩沖接收/發(fā)送的字符降低主機過多的軟件開銷。接收和發(fā)送FIFO都可存儲多達64字節(jié)(包括接收器FIFO的每字符4個附加狀態(tài)位)的數(shù)據(jù),并且具有可以選擇或者可以編程設(shè)置的觸發(fā)閾值。
SJ000具有可選擇的軟件流和硬件流控制,這兩種機制都可以通過自動控制串行數(shù)據(jù)流來減小軟件的開銷和提高系統(tǒng)的效率。硬件流使用RTSn管腳輸出和CTSn管腳輸入,軟件流使用可編程的Xon和Xoff字。
SJ000具有可編程波特率發(fā)生器,它可通過改變分頻比,實現(xiàn)波特率的切換。
5.1 復(fù)位與上、下電
SJ000上電完成后,與其相連接的端口方可允許輸入高電平邏輯;
SJ000通過RSTN端進行全芯片復(fù)位,復(fù)位電平為低電平。
5.2 時鐘選擇
通過CLKSEL端,可選擇使用晶振時鐘或外部輸入的時鐘EXTCLK。
CLKSEL端為低電平時,使用晶振時鐘;
CLKSEL端為高電平時,使用外部時鐘EXTCLK;
CLKSEL帶下拉電阻,懸空時,選擇使用晶振時鐘。
5.3 中斷控制
當IRQ引腳指示有中斷時,可以通過讀取全局中斷寄存器GIR以判斷當前中斷的類型,然后去讀取相應(yīng)的中斷狀態(tài)寄存器,以確定當前的中斷源。
每個子串口都有獨立的中斷系統(tǒng),包括:超時中斷、FIFO數(shù)據(jù)錯誤中斷,接收地址中斷(RS-485模式),XOFF發(fā)送中斷,RTS中斷,CTS中斷,發(fā)送FIFO觸發(fā)點中斷,接收FIFO觸發(fā)點中斷。
當任意一個中斷使能后,滿足中斷條件就會產(chǎn)生相應(yīng)的中斷。
通過GCR寄存器的IFMASK控制位,全局/子串口的中斷狀態(tài)寄存器有兩種模式:
1) IFMASK=1,中斷狀態(tài)位的值 = 中斷狀態(tài)位使能信號 & 內(nèi)部狀態(tài);
2) IFMASK=0,中斷狀態(tài)位的值 = 內(nèi)部狀態(tài);
5.3.1 超時中斷
芯片進入超時的條件為:
1) 接收FIFO至少有一個數(shù)據(jù);
2) 子口的RX端長時間沒有數(shù)據(jù)接收,默認為4個字節(jié)時間長度,由子串口寄存器
SECTLR 的STIM控制可選4、8、16、32字節(jié)時間長度;
3) 母口長時間沒有對接收FIFO進行讀操作,默認為4個字節(jié)時間長度,由全局寄存器GCR的STIM控制可選4、8、16、32字節(jié)時間長度;
當超時中斷發(fā)生時,主接口進行了讀FIFO操作、或子串口RX端收到數(shù)據(jù)即可清除該中斷。
5.3.2 FIFO數(shù)據(jù)錯誤中斷
FIFO數(shù)據(jù)錯誤中斷表明當前接收FIFO 中有一個或以上的數(shù)據(jù)錯誤,產(chǎn)生錯誤的條件包括OE (數(shù)據(jù)溢出錯誤)、FE(數(shù)據(jù)幀錯誤)、PE(奇偶校驗錯)以及BI(檢測到Break)。一旦有接收FIFO 中有出錯數(shù)據(jù),將產(chǎn)生該中斷,直到接收FIFO中的所有出錯數(shù)據(jù)都被讀取后,該中斷才被清除。該中斷清除后表明當前接收FIFO 中沒有出錯數(shù)據(jù)。
5.3.3 接收地址中斷
該中斷僅當工作在RS-485模式時產(chǎn)生。在RS-232模式下不會產(chǎn)生該中斷。
在自動地址識別模式下,子串口接收到與其設(shè)定地址一致的地址字節(jié)時,產(chǎn)生該中斷。直到
在手動地址識別模式下,一旦接收到地址字節(jié),都將產(chǎn)生該中斷。
當讀取中斷標志寄存器SIFR被讀取后,該中斷自動清除。
5.3.4 發(fā)送XOFF中斷
在軟件自動流量控制模式下,當子口RX接收到XOFF字符時產(chǎn)生該中斷。當讀取中斷標志寄存器SIFR、或接收到XON字符時,該中斷被清除。
5.3.5 RTS中斷
在自動或手動硬件流量控制模式下,當RTS信號從0變?yōu)?時,都可以產(chǎn)生該中斷。
在自動硬件流量控制模式下,當讀取中斷標志寄存器SIFR、或接收FIFO中的數(shù)據(jù)個數(shù)降低到設(shè)定的繼續(xù)發(fā)送觸發(fā)點時,該中斷被清除。
手動硬件流量控制模式下,向寄存器SECTLR 的SRTS寫入0將清除該中斷。
5.3.6 CTS中斷
在自動或手動硬件流量控制模式下,當CTS信號從0變?yōu)?時,將產(chǎn)生該中斷;當讀取中斷標志寄存器SIFR后將清除該中斷。
5.3.7 發(fā)送FIFO觸發(fā)點中斷
當發(fā)送FIFO中的數(shù)據(jù)個數(shù)小于設(shè)定的發(fā)送FIFO觸發(fā)點時,產(chǎn)生該中斷;當讀取中斷標志寄存器SIFR、或當發(fā)送FIFO中的數(shù)據(jù)個數(shù)大于設(shè)定的發(fā)送FIFO觸發(fā)點時,該中斷被清除。
5.3.8 接收FIFO觸發(fā)點中斷
當接收FIFO中的數(shù)據(jù)個數(shù)大于設(shè)定的發(fā)送FIFO觸發(fā)點時,產(chǎn)生該中斷。當接收FIFO中的數(shù)據(jù)個數(shù)小于設(shè)定的發(fā)送FIFO觸發(fā)點時,該中斷被清除。
5.4 廣播模式操作
SJ000支持子串口通道可獨立配置的數(shù)據(jù)廣播模式。
首先通過設(shè)置全局寄存器GCR中的GBDEN位,將主口的全局廣播設(shè)置為使能,然后設(shè)置需要接收廣播數(shù)據(jù)的相應(yīng)子串口通道的SCTLR的RDBEN位,使得該通道可以接收數(shù)據(jù)廣播。
設(shè)置完成后,主口發(fā)往任意通道的數(shù)據(jù)都能被設(shè)置為接收廣播使能的子串口接收,而未設(shè)置接收數(shù)據(jù)廣播的子串口將會忽略這些數(shù)據(jù)。
5.5 紅外模式操作
SJ000的主串口和子串口都可以設(shè)置成為紅外通信模式。當SJ000的UART設(shè)置為IrDA模式時,可以與符合SIR紅外通信協(xié)議標準的設(shè)備通信,或者直接應(yīng)用于光隔離通信中。
在IrDA模式下,一位數(shù)據(jù)的周期縮短到普通UART一位數(shù)據(jù)的3/16,小于1/16波特周期的脈沖將被作為干擾而忽略。
5.6 可編程波特率發(fā)生器
SJ000的主串口和子串口采用相同的獨立可編程波特率發(fā)生器。該波特率發(fā)生器產(chǎn)生固定十六分之一系統(tǒng)時鐘的波特率,分頻因子可以通過軟件設(shè)置。
下表給出了在不同系統(tǒng)時鐘頻率下的串口波特率設(shè)置表,其中標深色底的為復(fù)位后默認值。
5.7 數(shù)據(jù)校驗?zāi)J?br />SJ000的UART能提供強制校驗,計算校驗和無校驗的數(shù)據(jù)格式,通過SCONR(子串口配置寄存器)進行設(shè)置:
1) 強制校驗?zāi)J?br />SJ000支持強1校驗,強0校驗和用戶校驗?zāi)J健T谟脩粜r災(zāi)J较?#xff0c;串口的第9bit數(shù)據(jù)被bypass,芯片不處理該數(shù)據(jù)。
在RS-485模式下,推薦使用強制校驗?zāi)J?#xff0c;在該模式下,可以很方便的區(qū)分數(shù)據(jù)和地址。
2) 計算校驗?zāi)J?br />SJ000支持1校驗、0校驗,奇校驗、偶校驗?zāi)J健T谠撃J较?#xff0c;接收和發(fā)送的數(shù)據(jù)都進行奇偶校驗計算。
5.8 休眠和自動喚醒
SJ000支持軟件/硬件休眠和自動喚醒模式,在軟件/硬件休眠模式下,SJ000的系統(tǒng)時鐘將停止以降低功耗。
進入軟件休眠的條件為:
1) 向GCR的IDLE位寫入1;
2) 主口SCS、MRX或SDA為空閑,且空閑時間超過了TIM寄存器設(shè)置的字符長度;
3) 子口RX為空閑,且空閑時間超過了STIM寄存器設(shè)置的字符長度;
4) RX FIFO為空;
5) TX FIFO和TX移位寄存器為空;
6) 沒有中斷等待處理;
在軟件休眠模式下,可以被主口和子串口自動喚醒:
1) 復(fù)位芯片時,SJ000的系統(tǒng)時鐘將會被自動喚醒,進入正常收發(fā)。
2) SPI主接口模式下,一旦主口SCS或子串口RX有數(shù)據(jù)改變,SJ000的系統(tǒng)時鐘將會被自動喚醒,進入正常收發(fā)。
3) UART主接口模式下,一旦主口MRX或子串口RX有數(shù)據(jù)改變,SJ000的系統(tǒng)時鐘將會被自動喚醒,進入正常收發(fā)。
4) I2C主接口模式下,一旦子串口RX有數(shù)據(jù)改變,SJ000的系統(tǒng)時鐘將會被自動喚醒,進入正常收發(fā)。
在硬件休眠模式下,也即控制PDN端口為低電平時,芯片直接進入休眠模式,PDN端口為高電平時,系統(tǒng)時鐘將會被喚醒,進入正常收發(fā)。
5.9 數(shù)據(jù)長度
SJ000支持8位或9位數(shù)據(jù),以及1位或2位停止位模式。
6 寄存器描述
SJ000的寄存器按地址編號為6位地址編號,地址000000~111111,分為全局寄存器和子串口寄存器。
6.1 全局寄存器列表
全局寄存器共計16個,全局寄存器的地址如下表所示。
6.2.1 GCR全局控制寄存器:(00_0001)
6.2.3 GIR全局中斷寄存器:(00_0011)
6.2.5 GXON全局XON字符寄存器:(01_0010)
6.3 子串口寄存器列表
每一個子串口寄存器共計12個,其排列為:(C1,C0)、REG[3:0],其中高兩位(C1,C0)為子串口通道號,低4位REG[3:0]為寄存器地址,按低4位的寄存器地址如下表所示。
?
6.4 子串口寄存器描述
6.4.1 SECTLR子串口擴展控制寄存器:(0100)
...
6.4.2 SESR子串口擴展狀態(tài)寄存器:(0101)
...
6.4.3 SCTLR子串口控制寄存器:(0110)
...
6.4.4 SCONR子串口配置寄存器:(0111)
...
6.4.5 SFWCR子串口流量控制寄存器:(1000)
...
6.4.6 SFOCR子串口FIFO 控制寄存器:(1001)
...
6.4.7 SADR子串口自動識別地址寄存器:(1010)
...
6.4.8 SIER子串口中斷使能寄存器:(1011)
...
6.4.9 SIFR子串口中斷標志寄存器:(1100)
...
6.4.10 SSR子串口狀態(tài)寄存器:(1101)
...
6.4.11 SFSR子串口FIFO 狀態(tài)寄存器:(1110)
...
6.4.12 子串口FIFO 數(shù)據(jù)寄存器:(1111)
...
7 主接口操作
7.1 SPI主接口
7.1.1 SPI接口信號
端口M1=0,端口M0=0時,選擇使用SPI作為主接口,SPI接口包括如下四個信號:
SDI:SPI數(shù)據(jù)輸入;
SDO:SPI數(shù)據(jù)輸出;
SCLK:SPI串行時鐘;
SCS:SPI片選(從屬選擇)。
SPI 接口的操作時序如下圖所示:
7.1.2 SPI接口操作時序
SJ000 工作在SPI同步串行通信的從機模式下 ,支持SPI模式0 標準。為實現(xiàn)主機和SJ000的通信,在主機端需要設(shè)置CPOL=0(SPI時鐘極性選擇位),CPHA=0(SPI時鐘相位選擇位)。
SJ000 SPI接口的操作時序如下圖所示:
注意BIT15最開始發(fā)送或接受。
?
7.1.3 SPI總線協(xié)議描述
...
7.2 I2 主接口
7.2.1 I2 接口信號
端口M1=1,端口M0=0時,選擇使用I2C作為主接口,I2C接口包括如下四個信號:
SDA:I2C串行數(shù)據(jù)輸入/輸出;
SCL:I2C串行時鐘;
IA1:I2C地址選,MSB;
IA0:I2C地址選,LSB。
本芯片I2C接口僅作為從機使用。
7.2.2 I2 接口操作時序
SJ000 I2C接口的操作時序如下面協(xié)議描述所示。
7.2.3 I2 總線協(xié)議描述
...
8 子串口描述
8.1 子串口使能/禁止
SJ000 允許獨立使能或禁止每個子串口通道。
在使用中可以禁止不使用的子串口通道以降低功耗。
子串口通道只有處在使能狀態(tài)才能接收和發(fā)送數(shù)據(jù)。
8.2 收發(fā)FIFO控制
SJ000 提供了獨立的64級FIFO接收和發(fā)送FIFO。接收FIFO包含額外的4個bit,用于存儲錯誤狀態(tài)(BI、FE、PE、校驗位)。相關(guān)操作通過SFOCR(子串口FIFO控制寄存器)進行設(shè)置。
8.2.1 發(fā)送FIFO觸發(fā)點操作
SJ000 為每個通道提供獨立的可編程發(fā)送FIFO觸發(fā)點設(shè)置,以產(chǎn)生相應(yīng)的發(fā)送FIFO觸發(fā)點中斷。
當發(fā)送FIFO觸發(fā)點中斷使能時,發(fā)送FIFO中的數(shù)據(jù)數(shù)目小于設(shè)定的觸發(fā)點時產(chǎn)生相應(yīng)中斷。
8.2.2 接收FIFO觸發(fā)點操作
SJ000 為每個通道提供獨立的可編程接收FIFO觸發(fā)點設(shè)置,以產(chǎn)生相應(yīng)的接收FIFO觸發(fā)點中斷。
當接收FIFO觸發(fā)點中斷使能時,接收FIFO中的數(shù)據(jù)數(shù)目大于設(shè)定的觸發(fā)點時產(chǎn)生相應(yīng)中斷。
8.2.3 發(fā)送FIFO的使能/禁止
復(fù)位后,發(fā)送FIFO處于禁止狀態(tài)。如果希望將數(shù)據(jù)寫入發(fā)送FIFO,需要首先使能發(fā)送FIFO。
發(fā)送FIFO中的數(shù)據(jù)是否發(fā)送,取決于相應(yīng)的子通道UART是否使能。一旦相應(yīng)子通道UART處于使能狀態(tài),則發(fā)送FIFO中的數(shù)據(jù)將會立即發(fā)送,否則,發(fā)送FIFO中的數(shù)據(jù)將不會被發(fā)送,直到相應(yīng)的子通道被使能。
8.2.4 接收FIFO的使能/禁止
復(fù)位后,接收FIFO處于禁止狀態(tài)。如果希望接收子串口數(shù)據(jù),需要首先使能相應(yīng)的子串口通道及其接收FIFO。只有相應(yīng)的UART和接收FIFO使能后,接收到的數(shù)據(jù)才能寫入接收FIFO存儲。
如果子串口通道使能而接收FIFO禁止,子串口能接收數(shù)據(jù),但數(shù)據(jù)將寫入內(nèi)部RHR,而不會寫入接收FIFO,主口可以通過讀取數(shù)據(jù)寄存器來訪問該數(shù)據(jù)。
8.2.5 發(fā)送FIFO清空
當SFOCR中發(fā)送FIFO清空位(TFCL)被置1時,該子通道發(fā)送FIFO中的數(shù)據(jù)將被清空,發(fā)送FIFO計數(shù)器和指針都將清零。
TFCL位被置1后,將會在一個時鐘后被硬件自動清0。
8.2.6 接收FIFO清空
當SFOCR中接收FIFO清空位(RFCL)被置1時,該子通道接收FIFO中的數(shù)據(jù)將被清空,接收FIFO計數(shù)器和指針都將清零。
RFCL位被置1后,將會在一個時鐘后被硬件自動清0。
8.2.7 發(fā)送FIFO計數(shù)器
SJ000 用寄存器中的6位TCNT來反應(yīng)當前發(fā)送FIFO中的數(shù)據(jù)數(shù)目:當一個字節(jié)的數(shù)據(jù)寫入發(fā)送FIFO后,發(fā)送FIFO計數(shù)器自動加1;當一個發(fā)送FIFO中的數(shù)據(jù)被發(fā)送后,發(fā)送FIFO計數(shù)器自動減1。
注意:當發(fā)送FIFO計數(shù)器為63(111111)時,如果再寫入一個數(shù)據(jù)則計數(shù)器變?yōu)?(000000)。當發(fā)送FIFO計數(shù)器為1(000001)時,發(fā)送一個數(shù)據(jù)之后則計數(shù)器也變?yōu)?(000000)。因此,當發(fā)送FIFO計數(shù)器為0時,表明發(fā)送FIFO滿或者空,在這種情況下,需要結(jié)合子串口狀態(tài)寄存器(SSR/ SESR)中的相關(guān)狀態(tài)位進行判斷。
8.2.8 接收FIFO計數(shù)器
SJ000用寄存器中的6位RCNT來反應(yīng)當前接收FIFO中的數(shù)據(jù)數(shù)目:當一個字節(jié)的數(shù)據(jù)寫入接收FIFO后,接收FIFO計數(shù)器自動加1;當一個接收FIFO中的數(shù)據(jù)被讀取后,接收FIFO計數(shù)器自動減1。
注意:當接收FIFO計數(shù)器為63(111111)時,如果再接收一個數(shù)據(jù)則計數(shù)器變?yōu)?(000000)。當接收FIFO計數(shù)器為1(000001)時,讀取一個數(shù)據(jù)之后則計數(shù)器也變?yōu)?(000000)。因此,當接收FIFO計數(shù)器為0時,表明接收FIFO滿或者空,在這種情況下,需要結(jié)合子串口狀態(tài)寄存器(SSR/ SESR)中的相關(guān)狀態(tài)位進行判斷。
8.3 流量控制
SJ000 提供硬件流量控制,軟件流量控制和手動流量控制三種模式可選擇。硬件流量控制通過CTS和RTS引腳實現(xiàn)流量控制,可以減少軟件開銷并提高系統(tǒng)效率。軟件流量控制通過XON和XOFF可編程特殊字符實現(xiàn)流量控制操作。相關(guān)操作通過SFWCR(子串口流量控制寄存器)設(shè)置。
在RS-485模式下,該功能被禁止。
8.3.1 觸發(fā)點控制
當SJ000 設(shè)置為自動軟件/硬件流量控制時:
SFWCR中的HRTL3–HRTL0用于設(shè)置暫停發(fā)送觸發(fā)點,當接收FIFO中的數(shù)據(jù)個數(shù)達到暫停發(fā)送觸發(fā)點時,SJ000 將發(fā)出暫停發(fā)送信號,以通知發(fā)送端暫停發(fā)送數(shù)據(jù)。
SFWCR中的PRTL3–PRTL0用于設(shè)置繼續(xù)發(fā)送觸發(fā)點,在暫停發(fā)送狀態(tài)下,主機口可以通過讀取數(shù)據(jù)操作讀取接收FIFO中的數(shù)據(jù),當接收FIFO中的數(shù)據(jù)個數(shù)等于設(shè)置的繼續(xù)發(fā)送觸發(fā)點時,SJ000 將通知發(fā)送端繼續(xù)發(fā)送數(shù)據(jù)。
設(shè)置時,需要保證暫停發(fā)送觸發(fā)點大于繼續(xù)發(fā)送觸發(fā)點的數(shù)值。SJ000 不對該條件做自動判斷。
注意:HRTL3–HRTL 0或PRTL3–PRTL0為0時,觸發(fā)點將采用RFTL或TFTL設(shè)置的觸發(fā)點。
8.3.2 自動軟件流量控制操作
當SJ000 工作在自動軟件流量控制模式時,子串口通道通過RX發(fā)送和TX接收XOFF和XON字符實現(xiàn)軟件流量控制,無需其它控制線。XON和XOFF字符可以通過全局寄存器中的XON和XOFF寄存器設(shè)置。
在軟件流量控制模式下,傳輸?shù)臄?shù)據(jù)字節(jié)中不能出現(xiàn)XON和XOFF字符,否則將會被作為XON和XOFF控制字符,因此在軟件流量控制下,需要對數(shù)據(jù)中的XON和XOFF字符進行相應(yīng)的轉(zhuǎn)義處理。
8.3.3 XON/XOFF發(fā)送操作
在自動軟件流量控制模式下,一旦數(shù)據(jù)接收端接收FIFO中數(shù)據(jù)的個數(shù)達到設(shè)定的觸發(fā)點時,為防止接收FIFO溢出,SJ000 將自動通過TX發(fā)送一個XOFF字符,數(shù)據(jù)發(fā)送端收到該XOFF字節(jié)后,發(fā)送完當前字節(jié)后即暫停數(shù)據(jù)發(fā)送。
發(fā)送端暫停數(shù)據(jù)發(fā)送后,接收端的主機接口讀取接收FIFO中的數(shù)據(jù)以釋放接收FIFO空間,當接收FIFO中數(shù)據(jù)的個數(shù)減少到繼續(xù)發(fā)送觸發(fā)點時,接收端向發(fā)送端發(fā)送一個XON字符,發(fā)送端接收到該字符后,將恢復(fù)數(shù)據(jù)發(fā)送。
8.3.4 XON/XOFF接收操作
在軟件流量控制模式下,SJ000 接收到數(shù)據(jù)后,首先會與XOFF中的數(shù)據(jù)進行比較,當接收到XOFF字符時,在發(fā)送完當前字節(jié)后即暫停數(shù)據(jù)發(fā)送。
數(shù)據(jù)暫停發(fā)送狀態(tài)下,接收到XON字符后,將恢復(fù)數(shù)據(jù)發(fā)送。
8.3.5 XON/XOFF可見設(shè)置
在軟件流量控制模式下,特殊字符XON/XOFF可以通過設(shè)置SFWCR(子串口流量控制寄存器)XVEN位,使之在主機端為可見或不可見。
當設(shè)置為可見時,XON和XOFF字符作為數(shù)據(jù)寫入接收FIFO。
當設(shè)置為不可見時,XON和XOFF字符將作為控制字符不被寫入接收FIFO。
8.3.6 自動硬件流量控制
當SJ000 的子串口工作在自動硬件流量控制模式時,包含自動RTS控制和自動CTS控制。分別通過硬件自動設(shè)置RTS信號和判斷CTS信號來實現(xiàn)硬件流量控制。
典型的硬件流量控制的通過器件A的RTS連接器件B的CTS,器件A的CTS連接器件B的RTS,將器件A和B都設(shè)置為硬件自動流量控制模式即可實現(xiàn)硬件的自動流量控制。
在硬件自動流量控制模式下,一旦數(shù)據(jù)接收端接收FIFO中數(shù)據(jù)的個數(shù)達到設(shè)定的觸發(fā)點時,為防止接收FIFO溢出,接收端將自動拉高RTS,數(shù)據(jù)發(fā)送端的相應(yīng)的CTS變高,數(shù)據(jù)接收端檢測到CTS變高后,將發(fā)送完當前字節(jié)后即暫停數(shù)據(jù)發(fā)送。
發(fā)送端暫停數(shù)據(jù)發(fā)送后,接收端的主機接口讀取接收FIFO中的數(shù)據(jù)以釋放接收FIFO空間,當接收FIFO中數(shù)據(jù)的個數(shù)減少到繼續(xù)發(fā)送觸發(fā)點時,接收端的CTS自動變?yōu)榈碗娖?#xff0c;發(fā)送端相應(yīng)的RTS變?yōu)榈碗娖?#xff0c;發(fā)送端檢測到RTS為低后,將恢復(fù)數(shù)據(jù)發(fā)送。
...
8.3.7 手動硬件流量控制
當SJ000 的子串口工作在手動模式下,可以通過手動寫RTS寄存器(SECTLR Bit2)拉高或拉低RTS引腳信號。
在該模式下,其它的操作與硬件自動流量控制一樣,只是RTS由相應(yīng)的寄存器控制。手動設(shè)置RTS為1可以暫停數(shù)據(jù)發(fā)送端發(fā)送數(shù)據(jù),設(shè)置RTS為0則數(shù)據(jù)發(fā)送端繼續(xù)發(fā)送數(shù)據(jù)。
8.4 RS-485操作
SJ000 的子串口支持RS-485自動收發(fā)控制模式和自動網(wǎng)絡(luò)地址識別模式,網(wǎng)絡(luò)地址可見設(shè)置。
8.4.1 RS-485自動收發(fā)
在RS-485模式下,流量控制將被禁止。RTS信號用于控制RS-485收發(fā)器的自動收發(fā)控制。
默認情況下,只有在發(fā)送數(shù)據(jù)時,RTS才為高,其它情況下,RTS都保持低。可以通過設(shè)置寄存器(SECTLR的 Bit2)改變RTS極性。
SJ000 和RS-485 的收發(fā)器的連接如圖:
...
8.4.2 網(wǎng)絡(luò)地址和自動地址識別
RS-485 模式下,每個UART 有一個唯一的網(wǎng)絡(luò)地址,SJ000 提供了一個8 位寄存器進行RS-485網(wǎng)絡(luò)設(shè)置。
當自動網(wǎng)絡(luò)地址識別功能使能時,SJ000 對接收到的數(shù)據(jù)進行自動識別。
如果接收到的數(shù)據(jù)為數(shù)據(jù)字節(jié)或者是與SADR 中地址字節(jié)不匹配的地址字節(jié)時,SJ000 忽略這些數(shù)據(jù)。
如果該子串口接收到的數(shù)據(jù)為地址字節(jié)(即第9bit為1,表征為地址字節(jié)),且與SADR中的數(shù)據(jù)匹配,則SJ000 進入接收狀態(tài),將該地址字節(jié)后的數(shù)據(jù)字節(jié)寫入接收FIFO 中。
當該子串口在數(shù)據(jù)接收狀態(tài)下,接收到一個地址字節(jié),且該字節(jié)與SADR不匹配時,接收將被自動禁能。
8.4.3 自動和手動地址識別
RS-485模式下,SCONR子串口配置寄存器中的AOD位為數(shù)據(jù)地址選擇位。其默認值為1,表明該子串口只接收地址字節(jié)而忽略數(shù)據(jù)字節(jié)。
在RS-485自動地址模式下,當接收到的地址與SADR的地址一致時,AOD將自動變?yōu)?,此時該子串口可以繼續(xù)接收數(shù)據(jù)。當子串口接收到的下一個地址字節(jié)與SARD的地址不一致時,AOD位將自動置1,不再接收其后的數(shù)據(jù)字節(jié)。
在RS-485手動地址識別模式下,RS-485地址由上層軟件判斷,AOD位需要手動設(shè)置。AOD設(shè)置為0時表明可以接收其后的所有數(shù)據(jù),當AOD設(shè)置為1時,表明將忽略除了地址以外的所有數(shù)據(jù)。當接收到地址字節(jié)時,SJ000 將產(chǎn)生中斷,通知MCU將收到的地址字節(jié)進行判斷,以決定是否設(shè)置AOD以接收其后的數(shù)據(jù)。
8.4.4 網(wǎng)絡(luò)地址可見設(shè)置
當子串口設(shè)置為手動地址識別模式時,RS-485網(wǎng)絡(luò)地址總是可見。
在子串口設(shè)置為自動地址識別模式時,可以設(shè)置SCONR子串口配置寄存器中的AVEN位,改變網(wǎng)絡(luò)地址可見屬性。當設(shè)為地址可見時,接收到的網(wǎng)絡(luò)地址進入接收FIFO,否則將被忽略。
9 參數(shù)指標
9.1 極限工作條件
...
10 機械尺寸
10.1 QFN40
略。。。
轉(zhuǎn)載于:https://www.cnblogs.com/TEL18218088355/p/7196506.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的SJXXX串口扩展芯片 4串口芯片 UART串口芯片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。