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