通用异步收发芯片SCC2691的原理及应用
辑单元通过地址译码和读写控制使CPU与UART相互通信。地址译码与读写控制之间的关系见表1。
表1寄存器地址表
A2A1A0读(RDN=0)写(WRN=0)000方式寄存器MR1/MR2方式寄存器MR1/MR2001状态寄存器SR时钟选择寄存器CSR010波特率生成器测试方式命令寄存器CR011接收保持寄存器RHR发送保持寄存器THR1001倍频/16倍频测试方式辅助控制寄存器ACR101中断状态寄存器ISR中断屏蔽寄存器IMR110计数器/定时器高位输出寄存器CTU计数器/定时器高位预置寄存器CTUR111计数器/定时器低位输出寄存器CTL计数器/定时器低位预置寄存器CTUR
方式寄存器1(MR1)和方式寄存器2(MR2)通过一个辅助指针来访问。当上电复位或通过命令寄存器(CR)执行复位命令时,指针指向MR1,以后对MR1的任何读写操作都使指针指向MR2,并一直指向MR2,直到再次执行复位命令。
(3)计数器/定时器
计数器/定时器的工作方式和输入时钟源的选择,可以通过编程辅助控制寄存器(ACR)从八种方式中选择。计数器/定时器的输出可以设置为多功能输出口MPO,定时器的输出也可以作为生成波特率的选择之一。
①定时方式:定时器的输出是一个方波,其周期是寄存器CTUR和CTLR中值的2倍。定时器溢出时,中断状态寄存器(ISR)中的计数器准备好(counterready)置位。当发布一个中断计数器命令时,定时器不会终止,仅影响ISR中的counterready位。当接收到一个开始计数/定时器命令时,定时器会终止当前的操作,以新的CTUR和CTLR开始一个定时周期。
②计数方式:计数器接收到开始计数命令后,将计数值送入CTU和CTL。当计数值达到预定的存入CTUR和CTLR中的值时,ISR中的counterready位置1,计数操作不会停止,直到接收到结束计数命令为止。CPU可以在任何时候设置寄存器CTUR和CTLR,但是该值仅有当结束本次计数并开始下一次计数命令时才有效。
(4)接收和发送
发送器接收来自CPU的并行数据,将其转换为串行数据流送往TxD端口,串行数据流被以一个开始位、可编程个数的数据位、可选择的奇偶校验位和可编程个数的停止位的组合形式发送出去。发送结束后,若没有新的数据被送往发送保持寄存器(THR),则TxD端脚保持高电平,并且状态寄存器(SR)中的位TxEMT置1。当CPU将一个新的数据送往THR后,TxEMT位清零,发送操作继续。发布一个开始break命令,可以使发送器发送一个break信号(持续的低电平)。发送器接收到一个终止发送的命令时,若其正在发送数据或THR中仍有数据,发送器会继续发送直到THR为空截止。
接收器从RxD引脚接收串行数据,检测其开始位、奇偶校验位、终止位,若有错误则设置状态寄存器(SR)中的相应位。接收器将数据送往接收保持寄存器(RHR),等待CPU以查询方式或以中断方式读取数据,并且将SR中的RxRDY和中断状态寄存器(ISR)的RxRDY位置1。
接收保持寄存器(RHR)是一个可容纳3个字符的先进先出队列(FIFO)。接收器将从RxD接收到的数据送往FIFO的开始位置,并将SR中的RxRDY置1。RxRDY=1,表示FIFO中有接收字符;而FFULL=1,表示FIFO已满。在方式寄存器1(MR1)中,可以选择RxRDY或FFULL作为接收中断源。读RHR可以将其中的数据连同在SR中的相应状态位一起从FIFO中弹出。
4寄存器
寄存器是CPU与UART之间进行操作的桥梁。CPU通过编程寄存器来支配UART操作,另外,各种状态寄存器的变化也体现了命令的执行结果。
5应用
(1)硬件电路
图1是使用SCC2691设计的扩展串口电路。其中AD0~AD7接CPU(亿恒C164CI)数据总线;A12~A14与CPU地址线相连;、分别与CPU的读写信号相连;RESET接CPU的RESETOUT;2691_CS是SCC2691的片选信号;INTRN接CPU的中断输入端。
(2)测试程序
测试程序采用TaskingC集成环境开发,具体程序见网络补充版 《通用异步收发芯片SCC2691的原理及应用(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/175687.html
表1寄存器地址表
A2A1A0读(RDN=0)写(WRN=0)000方式寄存器MR1/MR2方式寄存器MR1/MR2001状态寄存器SR时钟选择寄存器CSR010波特率生成器测试方式命令寄存器CR011接收保持寄存器RHR发送保持寄存器THR1001倍频/16倍频测试方式辅助控制寄存器ACR101中断状态寄存器ISR中断屏蔽寄存器IMR110计数器/定时器高位输出寄存器CTU计数器/定时器高位预置寄存器CTUR111计数器/定时器低位输出寄存器CTL计数器/定时器低位预置寄存器CTUR
方式寄存器1(MR1)和方式寄存器2(MR2)通过一个辅助指针来访问。当上电复位或通过命令寄存器(CR)执行复位命令时,指针指向MR1,以后对MR1的任何读写操作都使指针指向MR2,并一直指向MR2,直到再次执行复位命令。
(3)计数器/定时器
计数器/定时器的工作方式和输入时钟源的选择,可以通过编程辅助控制寄存器(ACR)从八种方式中选择。计数器/定时器的输出可以设置为多功能输出口MPO,定时器的输出也可以作为生成波特率的选择之一。
①定时方式:定时器的输出是一个方波,其周期是寄存器CTUR和CTLR中值的2倍。定时器溢出时,中断状态寄存器(ISR)中的计数器准备好(counterready)置位。当发布一个中断计数器命令时,定时器不会终止,仅影响ISR中的counterready位。当接收到一个开始计数/定时器命令时,定时器会终止当前的操作,以新的CTUR和CTLR开始一个定时周期。
②计数方式:计数器接收到开始计数命令后,将计数值送入CTU和CTL。当计数值达到预定的存入CTUR和CTLR中的值时,ISR中的counterready位置1,计数操作不会停止,直到接收到结束计数命令为止。CPU可以在任何时候设置寄存器CTUR和CTLR,但是该值仅有当结束本次计数并开始下一次计数命令时才有效。
(4)接收和发送
发送器接收来自CPU的并行数据,将其转换为串行数据流送往TxD端口,串行数据流被以一个开始位、可编程个数的数据位、可选择的奇偶校验位和可编程个数的停止位的组合形式发送出去。发送结束后,若没有新的数据被送往发送保持寄存器(THR),则TxD端脚保持高电平,并且状态寄存器(SR)中的位TxEMT置1。当CPU将一个新的数据送往THR后,TxEMT位清零,发送操作继续。发布一个开始break命令,可以使发送器发送一个break信号(持续的低电平)。发送器接收到一个终止发送的命令时,若其正在发送数据或THR中仍有数据,发送器会继续发送直到THR为空截止。
接收器从RxD引脚接收串行数据,检测其开始位、奇偶校验位、终止位,若有错误则设置状态寄存器(SR)中的相应位。接收器将数据送往接收保持寄存器(RHR),等待CPU以查询方式或以中断方式读取数据,并且将SR中的RxRDY和中断状态寄存器(ISR)的RxRDY位置1。
接收保持寄存器(RHR)是一个可容纳3个字符的先进先出队列(FIFO)。接收器将从RxD接收到的数据送往FIFO的开始位置,并将SR中的RxRDY置1。RxRDY=1,表示FIFO中有接收字符;而FFULL=1,表示FIFO已满。在方式寄存器1(MR1)中,可以选择RxRDY或FFULL作为接收中断源。读RHR可以将其中的数据连同在SR中的相应状态位一起从FIFO中弹出。
4寄存器
寄存器是CPU与UART之间进行操作的桥梁。CPU通过编程寄存器来支配UART操作,另外,各种状态寄存器的变化也体现了命令的执行结果。
5应用
(1)硬件电路
图1是使用SCC2691设计的扩展串口电路。其中AD0~AD7接CPU(亿恒C164CI)数据总线;A12~A14与CPU地址线相连;、分别与CPU的读写信号相连;RESET接CPU的RESETOUT;2691_CS是SCC2691的片选信号;INTRN接CPU的中断输入端。
(2)测试程序
测试程序采用TaskingC集成环境开发,具体程序见网络补充版 《通用异步收发芯片SCC2691的原理及应用(第2页)》