标签:spi 操作 驱动器 mask rdb 相同 网络 十六 4.4
SJXX串口扩展芯片
1 概述
SJ000是一款具备I2C总线/SPI总线/UART接口的四通道异步收发器件,通过模式选择使得该器件工作于以上任何一种主接口模式下。器件的四个通道UART可提供高达2Mbps的数据率,低功耗模式和睡眠电流。每个通道含有一个接收器和一个发送器,并带有64字节发送/接收FIFO,通道波特率、字长、校验格式可独立设置,也可以独立设置IrDA红外通信、RS-485自动收发控制、9位网络地址自动识别、软件/硬件自动流量控制、广播接收等。器件还带有可编程中断功能,实现与主机的信息交互。
2 特征
2.1 通用特性
a) 3.3V工作电压
b) 主接口可选择为:I2C总线、SPI接口或UART接口
c) 子接口为:全双工四通道UART
d) 子接口发送器带有64字节发送FIFO
e) 子接口接收器带有64字节接收FIFO,存储有状态标志及数据
f) 中断方式时,可编程的发送和接收FIFO的触发阈值
g) 软件流/硬件流方式时,编程可选的接收FIFO触发设置
h) 软件流/硬件流控制特性,包括:
――可编程字Xon/Xoff
――可编程的自动RTS,和自动CTS
i) 支持自动/手动RS-485(自动网络地址检测)
j) 通过RTS信号的RS-485驱动器方向控制
k) RS-485驱动器方向极性可控制
l) 内置IrDA编码器和译码器接口
m) 可编程的波特率产生器
n) 可编程的软件/硬件睡眠模式控制
o) Line break的产生和检测
p) 内部回送模式
q) 系统中断控制
r) 红外功能
s) 符合绿色环保无铅封装
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) 可编程波特率设置,最高速度可以达到2M bit/s
c) 可选择的奇校验,偶校验和无校验模式
d) UART主接口可以通过引脚设置为红外模式
e) UART主接口可以通过引脚选择是否采用转义字符模式
2.5 UART子接口特性
a) 每个子串口为全双工,每个子串口可以通过软件开启/关闭
b) 每个子串口波特率可以独立设置
c) 每个子串口可以软件设置为是否接收数据广播
d) 每个子串口状态查询功能
e) 每个子串口提供可编程的串行接口特性,包括:
――8或9位字符长度
――奇校验、偶校验、强制校验、无奇偶校验的发生和检测
――1或2个停止位产生和检测
――校验错误、帧错误及溢出错误检测
f) FIFO特性
――每个子串口具备独立的64级发送FIFO,发送FIFO具备4级可编程触发点
――每个子串口具备独立的64级接收FIFO,接收FIFO具备4级可编程触发点
――增强功能下,发送/接收FIFO触发点可独立编程为4N,N=1、2…..15
――软件FIFO使能和清空
――FIFO状态和计数器输出
g) 流量控制特性
――支持RTS、CTS的硬件自动流量控制
――支持XON/XOFF的软件自动流量控制
――可编程XON/XOFF字符自动发送/识别
h) RS-485特性
――RTS控制的自动RS-485收发控制,且RTS极性可控制
――RS-485网络地址自动识别功能
i) 错误检测特性
――支持奇偶校验错,数据帧错误及溢出错误检测
――支持起始位错误检测
j) Line break的产生和检测
k) 中断特性
――接收/发送FIFO中断
――接收错误中断
――软件/硬件流量控制中断
――网络地址中断
――超时中断
――各中断特性可软件开启/关闭
l) 内置IrDA红外收发编解码器
2.6 应用领域
a) 多串口服务器/多串口卡
b) 工业/自动化现场RS-485控制
c) 通过CDMA/GPRS MODEM的无线数据传输
d) 车载信息平台/车载GPS定位系统
e) 远传自动抄表(AMR)系统
f) POS/税控POS/金融机具
g) DSP/嵌入式系统
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 功能概述
系统的主要功能框图和结构框图分别如下图所示。
SJ000实现I2C总线、SPI接口或UART接口与四个子UART之间的数据收发功能,主接口可以通过I2C/SPI/UART的方式将数据写入的子UART,通过TX端口串行发送出去,也可以将子UART的RX串行接收的数据通过I2C/SPI/UART的方式送给外部单片机。
SJ000可以设置为FIFO模式或非FIFO模式,通过缓冲接收/发送的字符降低主机过多的软件开销。接收和发送FIFO都可存储多达64字节(包括接收器FIFO的每字符4个附加状态位)的数据,并且具有可以选择或者可以编程设置的触发阈值。
SJ000具有可选择的软件流和硬件流控制,这两种机制都可以通过自动控制串行数据流来减小软件的开销和提高系统的效率。硬件流使用RTSn管脚输出和CTSn管脚输入,软件流使用可编程的Xon和Xoff字。
SJ000具有可编程波特率发生器,它可通过改变分频比,实现波特率的切换。
5.1 复位与上、下电
SJ000上电完成后,与其相连接的端口方可允许输入高电平逻辑;
SJ000通过RSTN端进行全芯片复位,复位电平为低电平。
5.2 时钟选择
通过CLKSEL端,可选择使用晶振时钟或外部输入的时钟EXTCLK。
CLKSEL端为低电平时,使用晶振时钟;
CLKSEL端为高电平时,使用外部时钟EXTCLK;
CLKSEL带下拉电阻,悬空时,选择使用晶振时钟。
5.3 中断控制
当IRQ引脚指示有中断时,可以通过读取全局中断寄存器GIR以判断当前中断的类型,然后去读取相应的中断状态寄存器,以确定当前的中断源。
每个子串口都有独立的中断系统,包括:超时中断、FIFO数据错误中断,接收地址中断(RS-485模式),XOFF发送中断,RTS中断,CTS中断,发送FIFO触发点中断,接收FIFO触发点中断。
当任意一个中断使能后,满足中断条件就会产生相应的中断。
通过GCR寄存器的IFMASK控制位,全局/子串口的中断状态寄存器有两种模式:
1) IFMASK=1,中断状态位的值 = 中断状态位使能信号 & 内部状态;
2) IFMASK=0,中断状态位的值 = 内部状态;
5.3.1 超时中断
芯片进入超时的条件为:
1) 接收FIFO至少有一个数据;
2) 子口的RX端长时间没有数据接收,默认为4个字节时间长度,由子串口寄存器
SECTLR 的STIM控制可选4、8、16、32字节时间长度;
3) 母口长时间没有对接收FIFO进行读操作,默认为4个字节时间长度,由全局寄存器GCR的STIM控制可选4、8、16、32字节时间长度;
当超时中断发生时,主接口进行了读FIFO操作、或子串口RX端收到数据即可清除该中断。
5.3.2 FIFO数据错误中断
FIFO数据错误中断表明当前接收FIFO 中有一个或以上的数据错误,产生错误的条件包括OE (数据溢出错误)、FE(数据帧错误)、PE(奇偶校验错)以及BI(检测到Break)。一旦有接收FIFO 中有出错数据,将产生该中断,直到接收FIFO中的所有出错数据都被读取后,该中断才被清除。该中断清除后表明当前接收FIFO 中没有出错数据。
5.3.3 接收地址中断
该中断仅当工作在RS-485模式时产生。在RS-232模式下不会产生该中断。
在自动地址识别模式下,子串口接收到与其设定地址一致的地址字节时,产生该中断。直到
在手动地址识别模式下,一旦接收到地址字节,都将产生该中断。
当读取中断标志寄存器SIFR被读取后,该中断自动清除。
5.3.4 发送XOFF中断
在软件自动流量控制模式下,当子口RX接收到XOFF字符时产生该中断。当读取中断标志寄存器SIFR、或接收到XON字符时,该中断被清除。
5.3.5 RTS中断
在自动或手动硬件流量控制模式下,当RTS信号从0变为1时,都可以产生该中断。
在自动硬件流量控制模式下,当读取中断标志寄存器SIFR、或接收FIFO中的数据个数降低到设定的继续发送触发点时,该中断被清除。
手动硬件流量控制模式下,向寄存器SECTLR 的SRTS写入0将清除该中断。
5.3.6 CTS中断
在自动或手动硬件流量控制模式下,当CTS信号从0变为1时,将产生该中断;当读取中断标志寄存器SIFR后将清除该中断。
5.3.7 发送FIFO触发点中断
当发送FIFO中的数据个数小于设定的发送FIFO触发点时,产生该中断;当读取中断标志寄存器SIFR、或当发送FIFO中的数据个数大于设定的发送FIFO触发点时,该中断被清除。
5.3.8 接收FIFO触发点中断
当接收FIFO中的数据个数大于设定的发送FIFO触发点时,产生该中断。当接收FIFO中的数据个数小于设定的发送FIFO触发点时,该中断被清除。
5.4 广播模式操作
SJ000支持子串口通道可独立配置的数据广播模式。
首先通过设置全局寄存器GCR中的GBDEN位,将主口的全局广播设置为使能,然后设置需要接收广播数据的相应子串口通道的SCTLR的RDBEN位,使得该通道可以接收数据广播。
设置完成后,主口发往任意通道的数据都能被设置为接收广播使能的子串口接收,而未设置接收数据广播的子串口将会忽略这些数据。
5.5 红外模式操作
SJ000的主串口和子串口都可以设置成为红外通信模式。当SJ000的UART设置为IrDA模式时,可以与符合SIR红外通信协议标准的设备通信,或者直接应用于光隔离通信中。
在IrDA模式下,一位数据的周期缩短到普通UART一位数据的3/16,小于1/16波特周期的脉冲将被作为干扰而忽略。
5.6 可编程波特率发生器
SJ000的主串口和子串口采用相同的独立可编程波特率发生器。该波特率发生器产生固定十六分之一系统时钟的波特率,分频因子可以通过软件设置。
下表给出了在不同系统时钟频率下的串口波特率设置表,其中标深色底的为复位后默认值。
5.7 数据校验模式
SJ000的UART能提供强制校验,计算校验和无校验的数据格式,通过SCONR(子串口配置寄存器)进行设置:
1) 强制校验模式
SJ000支持强1校验,强0校验和用户校验模式。在用户校验模式下,串口的第9bit数据被bypass,芯片不处理该数据。
在RS-485模式下,推荐使用强制校验模式,在该模式下,可以很方便的区分数据和地址。
2) 计算校验模式
SJ000支持1校验、0校验,奇校验、偶校验模式。在该模式下,接收和发送的数据都进行奇偶校验计算。
5.8 休眠和自动唤醒
SJ000支持软件/硬件休眠和自动唤醒模式,在软件/硬件休眠模式下,SJ000的系统时钟将停止以降低功耗。
进入软件休眠的条件为:
1) 向GCR的IDLE位写入1;
2) 主口SCS、MRX或SDA为空闲,且空闲时间超过了TIM寄存器设置的字符长度;
3) 子口RX为空闲,且空闲时间超过了STIM寄存器设置的字符长度;
4) RX FIFO为空;
5) TX FIFO和TX移位寄存器为空;
6) 没有中断等待处理;
在软件休眠模式下,可以被主口和子串口自动唤醒:
1) 复位芯片时,SJ000的系统时钟将会被自动唤醒,进入正常收发。
2) SPI主接口模式下,一旦主口SCS或子串口RX有数据改变,SJ000的系统时钟将会被自动唤醒,进入正常收发。
3) UART主接口模式下,一旦主口MRX或子串口RX有数据改变,SJ000的系统时钟将会被自动唤醒,进入正常收发。
4) I2C主接口模式下,一旦子串口RX有数据改变,SJ000的系统时钟将会被自动唤醒,进入正常收发。
在硬件休眠模式下,也即控制PDN端口为低电平时,芯片直接进入休眠模式,PDN端口为高电平时,系统时钟将会被唤醒,进入正常收发。
5.9 数据长度
SJ000支持8位或9位数据,以及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子串口扩展状态寄存器:(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子串口状态寄存器:(1101)
...
6.4.11 SFSR子串口FIFO 状态寄存器:(1110)
...
6.4.12 子串口FIFO 数据寄存器:(1111)
...
7 主接口操作
7.1 SPI主接口
7.1.1 SPI接口信号
端口M1=0,端口M0=0时,选择使用SPI作为主接口,SPI接口包括如下四个信号:
SDI:SPI数据输入;
SDO:SPI数据输出;
SCLK:SPI串行时钟;
SCS:SPI片选(从属选择)。
SPI 接口的操作时序如下图所示:
7.1.2 SPI接口操作时序
SJ000 工作在SPI同步串行通信的从机模式下 ,支持SPI模式0 标准。为实现主机和SJ000的通信,在主机端需要设置CPOL=0(SPI时钟极性选择位),CPHA=0(SPI时钟相位选择位)。
SJ000 SPI接口的操作时序如下图所示:
注意BIT15最开始发送或接受。
7.1.3 SPI总线协议描述
...
7.2 I2 主接口
7.2.1 I2 接口信号
端口M1=1,端口M0=0时,选择使用I2C作为主接口,I2C接口包括如下四个信号:
SDA:I2C串行数据输入/输出;
SCL:I2C串行时钟;
IA1:I2C地址选,MSB;
IA0:I2C地址选,LSB。
本芯片I2C接口仅作为从机使用。
7.2.2 I2 接口操作时序
SJ000 I2C接口的操作时序如下面协议描述所示。
7.2.3 I2 总线协议描述
...
8 子串口描述
8.1 子串口使能/禁止
SJ000 允许独立使能或禁止每个子串口通道。
在使用中可以禁止不使用的子串口通道以降低功耗。
子串口通道只有处在使能状态才能接收和发送数据。
8.2 收发FIFO控制
SJ000 提供了独立的64级FIFO接收和发送FIFO。接收FIFO包含额外的4个bit,用于存储错误状态(BI、FE、PE、校验位)。相关操作通过SFOCR(子串口FIFO控制寄存器)进行设置。
8.2.1 发送FIFO触发点操作
SJ000 为每个通道提供独立的可编程发送FIFO触发点设置,以产生相应的发送FIFO触发点中断。
当发送FIFO触发点中断使能时,发送FIFO中的数据数目小于设定的触发点时产生相应中断。
8.2.2 接收FIFO触发点操作
SJ000 为每个通道提供独立的可编程接收FIFO触发点设置,以产生相应的接收FIFO触发点中断。
当接收FIFO触发点中断使能时,接收FIFO中的数据数目大于设定的触发点时产生相应中断。
8.2.3 发送FIFO的使能/禁止
复位后,发送FIFO处于禁止状态。如果希望将数据写入发送FIFO,需要首先使能发送FIFO。
发送FIFO中的数据是否发送,取决于相应的子通道UART是否使能。一旦相应子通道UART处于使能状态,则发送FIFO中的数据将会立即发送,否则,发送FIFO中的数据将不会被发送,直到相应的子通道被使能。
8.2.4 接收FIFO的使能/禁止
复位后,接收FIFO处于禁止状态。如果希望接收子串口数据,需要首先使能相应的子串口通道及其接收FIFO。只有相应的UART和接收FIFO使能后,接收到的数据才能写入接收FIFO存储。
如果子串口通道使能而接收FIFO禁止,子串口能接收数据,但数据将写入内部RHR,而不会写入接收FIFO,主口可以通过读取数据寄存器来访问该数据。
8.2.5 发送FIFO清空
当SFOCR中发送FIFO清空位(TFCL)被置1时,该子通道发送FIFO中的数据将被清空,发送FIFO计数器和指针都将清零。
TFCL位被置1后,将会在一个时钟后被硬件自动清0。
8.2.6 接收FIFO清空
当SFOCR中接收FIFO清空位(RFCL)被置1时,该子通道接收FIFO中的数据将被清空,接收FIFO计数器和指针都将清零。
RFCL位被置1后,将会在一个时钟后被硬件自动清0。
8.2.7 发送FIFO计数器
SJ000 用寄存器中的6位TCNT来反应当前发送FIFO中的数据数目:当一个字节的数据写入发送FIFO后,发送FIFO计数器自动加1;当一个发送FIFO中的数据被发送后,发送FIFO计数器自动减1。
注意:当发送FIFO计数器为63(111111)时,如果再写入一个数据则计数器变为0(000000)。当发送FIFO计数器为1(000001)时,发送一个数据之后则计数器也变为0(000000)。因此,当发送FIFO计数器为0时,表明发送FIFO满或者空,在这种情况下,需要结合子串口状态寄存器(SSR/ SESR)中的相关状态位进行判断。
8.2.8 接收FIFO计数器
SJ000用寄存器中的6位RCNT来反应当前接收FIFO中的数据数目:当一个字节的数据写入接收FIFO后,接收FIFO计数器自动加1;当一个接收FIFO中的数据被读取后,接收FIFO计数器自动减1。
注意:当接收FIFO计数器为63(111111)时,如果再接收一个数据则计数器变为0(000000)。当接收FIFO计数器为1(000001)时,读取一个数据之后则计数器也变为0(000000)。因此,当接收FIFO计数器为0时,表明接收FIFO满或者空,在这种情况下,需要结合子串口状态寄存器(SSR/ SESR)中的相关状态位进行判断。
8.3 流量控制
SJ000 提供硬件流量控制,软件流量控制和手动流量控制三种模式可选择。硬件流量控制通过CTS和RTS引脚实现流量控制,可以减少软件开销并提高系统效率。软件流量控制通过XON和XOFF可编程特殊字符实现流量控制操作。相关操作通过SFWCR(子串口流量控制寄存器)设置。
在RS-485模式下,该功能被禁止。
8.3.1 触发点控制
当SJ000 设置为自动软件/硬件流量控制时:
SFWCR中的HRTL3–HRTL0用于设置暂停发送触发点,当接收FIFO中的数据个数达到暂停发送触发点时,SJ000 将发出暂停发送信号,以通知发送端暂停发送数据。
SFWCR中的PRTL3–PRTL0用于设置继续发送触发点,在暂停发送状态下,主机口可以通过读取数据操作读取接收FIFO中的数据,当接收FIFO中的数据个数等于设置的继续发送触发点时,SJ000 将通知发送端继续发送数据。
设置时,需要保证暂停发送触发点大于继续发送触发点的数值。SJ000 不对该条件做自动判断。
注意:HRTL3–HRTL 0或PRTL3–PRTL0为0时,触发点将采用RFTL或TFTL设置的触发点。
8.3.2 自动软件流量控制操作
当SJ000 工作在自动软件流量控制模式时,子串口通道通过RX发送和TX接收XOFF和XON字符实现软件流量控制,无需其它控制线。XON和XOFF字符可以通过全局寄存器中的XON和XOFF寄存器设置。
在软件流量控制模式下,传输的数据字节中不能出现XON和XOFF字符,否则将会被作为XON和XOFF控制字符,因此在软件流量控制下,需要对数据中的XON和XOFF字符进行相应的转义处理。
8.3.3 XON/XOFF发送操作
在自动软件流量控制模式下,一旦数据接收端接收FIFO中数据的个数达到设定的触发点时,为防止接收FIFO溢出,SJ000 将自动通过TX发送一个XOFF字符,数据发送端收到该XOFF字节后,发送完当前字节后即暂停数据发送。
发送端暂停数据发送后,接收端的主机接口读取接收FIFO中的数据以释放接收FIFO空间,当接收FIFO中数据的个数减少到继续发送触发点时,接收端向发送端发送一个XON字符,发送端接收到该字符后,将恢复数据发送。
8.3.4 XON/XOFF接收操作
在软件流量控制模式下,SJ000 接收到数据后,首先会与XOFF中的数据进行比较,当接收到XOFF字符时,在发送完当前字节后即暂停数据发送。
数据暂停发送状态下,接收到XON字符后,将恢复数据发送。
8.3.5 XON/XOFF可见设置
在软件流量控制模式下,特殊字符XON/XOFF可以通过设置SFWCR(子串口流量控制寄存器)XVEN位,使之在主机端为可见或不可见。
当设置为可见时,XON和XOFF字符作为数据写入接收FIFO。
当设置为不可见时,XON和XOFF字符将作为控制字符不被写入接收FIFO。
8.3.6 自动硬件流量控制
当SJ000 的子串口工作在自动硬件流量控制模式时,包含自动RTS控制和自动CTS控制。分别通过硬件自动设置RTS信号和判断CTS信号来实现硬件流量控制。
典型的硬件流量控制的通过器件A的RTS连接器件B的CTS,器件A的CTS连接器件B的RTS,将器件A和B都设置为硬件自动流量控制模式即可实现硬件的自动流量控制。
在硬件自动流量控制模式下,一旦数据接收端接收FIFO中数据的个数达到设定的触发点时,为防止接收FIFO溢出,接收端将自动拉高RTS,数据发送端的相应的CTS变高,数据接收端检测到CTS变高后,将发送完当前字节后即暂停数据发送。
发送端暂停数据发送后,接收端的主机接口读取接收FIFO中的数据以释放接收FIFO空间,当接收FIFO中数据的个数减少到继续发送触发点时,接收端的CTS自动变为低电平,发送端相应的RTS变为低电平,发送端检测到RTS为低后,将恢复数据发送。
...
8.3.7 手动硬件流量控制
当SJ000 的子串口工作在手动模式下,可以通过手动写RTS寄存器(SECTLR Bit2)拉高或拉低RTS引脚信号。
在该模式下,其它的操作与硬件自动流量控制一样,只是RTS由相应的寄存器控制。手动设置RTS为1可以暂停数据发送端发送数据,设置RTS为0则数据发送端继续发送数据。
8.4 RS-485操作
SJ000 的子串口支持RS-485自动收发控制模式和自动网络地址识别模式,网络地址可见设置。
8.4.1 RS-485自动收发
在RS-485模式下,流量控制将被禁止。RTS信号用于控制RS-485收发器的自动收发控制。
默认情况下,只有在发送数据时,RTS才为高,其它情况下,RTS都保持低。可以通过设置寄存器(SECTLR的 Bit2)改变RTS极性。
SJ000 和RS-485 的收发器的连接如图:
...
8.4.2 网络地址和自动地址识别
RS-485 模式下,每个UART 有一个唯一的网络地址,SJ000 提供了一个8 位寄存器进行RS-485网络设置。
当自动网络地址识别功能使能时,SJ000 对接收到的数据进行自动识别。
如果接收到的数据为数据字节或者是与SADR 中地址字节不匹配的地址字节时,SJ000 忽略这些数据。
如果该子串口接收到的数据为地址字节(即第9bit为1,表征为地址字节),且与SADR中的数据匹配,则SJ000 进入接收状态,将该地址字节后的数据字节写入接收FIFO 中。
当该子串口在数据接收状态下,接收到一个地址字节,且该字节与SADR不匹配时,接收将被自动禁能。
8.4.3 自动和手动地址识别
RS-485模式下,SCONR子串口配置寄存器中的AOD位为数据地址选择位。其默认值为1,表明该子串口只接收地址字节而忽略数据字节。
在RS-485自动地址模式下,当接收到的地址与SADR的地址一致时,AOD将自动变为0,此时该子串口可以继续接收数据。当子串口接收到的下一个地址字节与SARD的地址不一致时,AOD位将自动置1,不再接收其后的数据字节。
在RS-485手动地址识别模式下,RS-485地址由上层软件判断,AOD位需要手动设置。AOD设置为0时表明可以接收其后的所有数据,当AOD设置为1时,表明将忽略除了地址以外的所有数据。当接收到地址字节时,SJ000 将产生中断,通知MCU将收到的地址字节进行判断,以决定是否设置AOD以接收其后的数据。
8.4.4 网络地址可见设置
当子串口设置为手动地址识别模式时,RS-485网络地址总是可见。
在子串口设置为自动地址识别模式时,可以设置SCONR子串口配置寄存器中的AVEN位,改变网络地址可见属性。当设为地址可见时,接收到的网络地址进入接收FIFO,否则将被忽略。
9 参数指标
9.1 极限工作条件
...
10 机械尺寸
10.1 QFN40
略。。。
标签:spi 操作 驱动器 mask rdb 相同 网络 十六 4.4
原文地址:http://www.cnblogs.com/TEL18218088355/p/7196506.html