资本复劈:DSP28

来源:百度文库 编辑:九乡新闻网 时间:2024/05/02 08:54:18
SCI即串行通信接口,是一个双线的异步串口,即具有接收和发送两根信号线的异步串口,一般可以看作是UART(通用异步接收/发送装置)。F2812的SCI模块支持DSP与采用NRZ(non-return-to-zero 不归零)标准格式的异步外围设备之间进行数字通信。
F2812内部有两个单独的SCI模块,SCIA与SCIB,每一个SCI模块都各有一个接收器和发送器。SCI的接收器和发送器各具有一个16级深度的FIFO队列,它们还都有自己独立的使能位和中断位,可以在半双工通信中进行独立的操作,或者在全双工通信中同时进行操作。需要注意的是,SCIA的13个寄存器都是8位的。
表1. SCI寄存器地址映射表

1. SCICCR

Bit(s) Name Description
7 STOP BITS SCI停止位个数,该位决定了发送停止位的个数,接收器仅对一个停止位进行检查。
0   1位停止位
1   2位停止位
6 EVEN/ODD PARITY 奇偶校验设置位,奇偶校验是否有效取决于SCICCR(5)的设置
0   奇校验
1   偶校验
5 PARITY ENABLE SCI奇偶校验使能位,如果SCI处于address-bit
multiprocesser模式(SCICCR(3)置1),地址位也包含在奇偶计算中,对于少于位的字符,剩余的无用位排除在奇偶校验之外。
0   禁用奇偶校验
1   使能奇偶校验
4 LOOPBACK ENA 测试模式使能位,使能此位,Rx与Tx在内部连接在一起。
0   禁止此模式
1   使能此模式
3 ADDR/IDLE MODE SCI多机模式控制位,多机模式与普通模式不同,需要使能SLEEP与TXWAKE功能。多机模式增加了一个地址位到数据帧中,普通模式(空闲模式)无此位,与典型的RS232通信兼容。
0   空闲模式
1   多机模式
2-0 SCICHAR2-0 字符长度控制位,1-8位长度可选,不够8位时,SCIRXBUF和SCIRXEMU寄存器中的数据是右对齐的,且SCIRXBUF中的无用位填0,SCITXBUF中的无用位不用填0。
000     1
001     2
010     3
011     4
100     5
101     6
110     7
111     8
2. SCICTL1

Bit(s) Name Description
7 Reserved 读为0,写无效
6 RX ERR INT ENA SCI接收错误中断使能位
0   禁用此中断
1   使能此中断
5 SW RESET 软件复位,写0,复位SCI状态机与操作标志(SCICTL2与SCIRXST),不影响其余配置位。直至写1,所有起作用的逻辑均保持确定的复位状态,系统复位后,此位写1,才可使能SCI,当检测到一个接收间断时(BRKDT,SCIRXST(5)),清除该位。SW RESET影响的标志位如下
Value After
SW  RESET     SCI Flag                    Register Bit
1              TXRDY                SCICTL2, bit 7
1              TX EMPTY           SCICTL2, bit 6
0              RXWAKE              SCIRXST, bit 1
0              PE                      SCIRXST, bit 2
0              OE                     SCIRXST, bit 3
0              FE                      SCIRXST, bit 4
0              BRKDT                 SCIRXST, bit 5
0              RXRDY                 SCIRXST, bit 6
0              RX ERROR             SCIRXST, bit 7
4 Reserved 读为0,写无效
3 TXWAKE SCI发送器唤醒方式选择,取决于ADDR/IDLE模式的设定(SCICCR(3))
0   在空闲模式下写1到TXWAKE,然后写数据到SCITXBUF,产生一个11个数据位的空闲周期;在地址位模式下,写1到TXWAKE,然后写数据到SCITXBUF,以设置地址位为1。
1   传输特性别选择。
TXWAKE不由SW RESET复位,它由一个系统复位清除。
2 SLEEP 休眠位,根据ADDR/IDLE MODE选择的工作模式,TXWAKE选择的发送特征,在多机配置中,该位控制接收器的休眠功能。清除该位,唤醒SCI。当SLEEP置位时,接收器仍可工作,但是除非地址位被检测到,RXRDY与BRKDT,FE,OE,PE位不会被更新。当地址字节为被检测到时,SLEEP不会被清除。
0   禁用SLEEP
1   使能SLEEP
1 TXENA 发送器使能位,TXENA置位,SCITXD管脚才会发送数据,如果发生复位,只有当写入到SCITXBUF中的数据发动完毕,发送才能挂起。
0   禁止发送
1   使能发送
0 RXENA 接收器使能位,清除RXENA,停止将接收到的字符传到接收缓冲器,不产生中断,但是接收移位寄存器仍在工作,所以,如果接收一个字符的过程中,RXENA置位,完整的字符会被发送到SCIRXBUF与SCIRXEMU寄存器。
0   禁止字符发送到SCIRXBUF与SCIRXEMU寄存器
1   允许字符发送到SCIRXBUF与SCIRXEMU寄存器
3. SCIHBAUD,SCILBAUD

Bit(s) Name Description
15-0 BAUD 两个8为寄存器构成16位波特率设置寄存器。如果寄存器值为0,SCI BAUD = LSPCLK/16;如果寄存器值为1~65535,SCI BAUD = LSPCLK/(BRR+1)/8
4. SCICTL2

Bit(s) Name Description
7 TXRDY 发送缓冲寄存器准备标志,置位时,表示SCITXBUF准备好接收另一个字符,向SCITXBUF写数据自动清除该位。如果该位置位时,相应的中断使能位置位,则产生一个发送中断。使能SW RESET或系统复位,可以置位此位。
0   SCITXBUF满
1   SCITXBUF准备接收下一个字符
6 TX EMPTY SCI发送器空标志,该位指示SCITXBUF与TXSHT寄存器的内容,一个有效的SW RESET或系统复位置位该位,该位但不会引起中断
0   SCITXBUF或TXSHT或两者都装入数据
1   均为空
5-2 Reserved 读为0,写无效
1 RX/BK INT ENA 该位控制由RXRDY与BRKDT引起的中断请求,但是不能阻止RXRDY与BRKDT位置位。
0   禁止中断
1   使能中断
0 TX INT ENA 该位控制由TXRDY引起的中断请求,但是不能阻止TXRDY置位
0   禁止中断
1   使能中断
5. SCIRXST

Bit(s) Name Description
7 RX ERROR 接收器错误标志,此位为BRKDT,FE,OE,PE的或值,如果对应的中断使能位有效,该位出现1,将会引起中断。在中断服务程序中,该位可以作为快速的故障检测条件。此位不能被直接复位,只能通过SW RESET或系统复位清除。
0   无故障
1   存在故障
6 RX RDY 接收器准备好标志,当此位置位时,说明SCIRXBUF中已经有一个可以被读取的字符。该位可以通过读数据,SW RESET或者系统复位清除。
0   无需要读取的数据
1   有数据
5 BRKDT SCI传输间断检测位,冲丢失第一个停止位开始,SCIRXD连续保持10位的低电平,产生此中断。但是不会重载接收缓冲器。即使SLEEP设为1,也可以发生BRKDT中断。SW RESET或系统复位可以清除此位。检测到一个间断后,接收字符并不能清除该位。
0   无此条件
1   发生间断
4 FE 帧错误标志位,当检测不到一个需要的停止位时,置位该位。只检测第一个停止位,丢失停止位说明没能和启动位同步,字符帧发生错误。SW RESET或系统复位可以清除此位。
0   无错误
1   发生帧错误
3 OE 覆盖错误,SCIRXBUF与SCIRXEMU中的字符还未被CPU或者DMAC完全读取,新的字符又写入了SCIRXBUF与SCIRXEMU中,置位该位。前一个字符被覆盖和丢失。SW RESET或系统复位可以清除此位。
0   无错误
1   发生覆盖错误
2 PE 奇偶校验错误,使能奇偶校验时,此位有效,发生校验错误,置位该位。SW RESET或系统复位可以清除此位。
0   无错误或奇偶检验禁用
1   奇偶校验错误
1 RXWAKE 接收器唤醒检测标志位,该位为1,表示监测到了唤醒接收器的条件。RXWAKE为只读位,它由下列条件清除:
* 地址位传送到SCIRXBUF(NON-FIFO模式)后传送第一个字节
* 读SCIRXBUF
* SW RESET
* 系统复位
0 Reserved 读为0,写无效