您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 1.7硬体结构介绍串行接口
2SunplusSPCE061A微控制器串行接口3概述SIO同步串行接口为凌阳科技定义的一个串行接口,多用于与外部设备进行数据传输。SPCE061A也提供了一个全双工的UART接口,与标准UART接口兼容。4SPCE061A的SIO接口5凌阳SIO串行接口SIO为凌阳科技定义的同步串行通讯接口1位串行接口;1个Clock(SCK)、1个Data(SDA);可设地址位数,或无地址模式;6SIO控制寄存器P_SIO_Ctrl(读/写)(701EH)bit7:SIO复用脚使能;bit6:SIO读定控制;bit34:SIO速率设置;bit01:SIO地址位数设置;7P_SIO_Ctrl设置对照表b4b3b1b0设置功能说明Clk_SelectAdd_SelectXX00串行设备地址(缺省)设置为16位(A0~A15)XX01无地址设置XX10串行设备地址设置为8位(A0~A7)XX11串行设备地址设置为24位(A0~A23)00XX数据传输速率设为CPUClk/16(缺省设置)01XX数据传输速率设为CPUClk/410XX数据传输速率设为CPUClk/811XX数据传输速率设为CPUClk/328P_SIO_Ctrl设置对照表b7b6b5设置功能说明SIO_configR/WR/W_EN1XX设置IOB0=SCK(串行接口时钟端口),IOB1=SDA(串行接口数据端口)。用户不必设置IOB0和IOB1的输入输出状态。0XX用作普通的I/O口(默认)X1X设置数据帧的写传输X0X设置数据帧的读传输(默认)XX1关断读/写帧的传输XX0接通读/写帧的传输(默认)9SIO数据与地址寄存器P_SIO_Data(读/写)(701AH)该单元为接收/发送串行数据的缓冲单元P_SIO_Addr_Low(读/写)(701BH)串行设备起始地址的低字节(默认值为00H)P_SIO_Addr_Mid(读/写)(701CH)串行设备起始地址的中字节(默认值为00H)P_SIO_Addr_High(读/写)(701DH)串行设备起始地址的高字节(默认值为00H)10SIO地址与数据寄存器b7b6b5b4b3b2b1b0D7D6D5D4D3D2D1D0b7b6b5b4b3b2b1b0A7A6A5A4A3A2A1A0b7b6b5b4b3b2b1b0A15A14A13A12A11A10A9A8b7b6b5b4b3b2b1b0A23A22A21A20A19A18A17A16P_SIO_DataP_SIO_Addr_LowP_SIO_Addr_MidP_SIO_Addr_High11P_SIO_Start应用P_SIO_Start(读/写)(701FH)向P_SIO_Start单元写入任意一个数值,可以启动数据传输第一次对P_SIO_Data(701AH)单元读写操作时会使SIO根据地址寄存器的内容传输读/写操作的起始地址再次读写P_SIO_Data时,不再传送地址12P_SIO_Start读P_SIO_Start(读/写)(701FH)读出P_SIO_Start(701FH)单元可获取SIO的数据传输状态,该单元的第7位Busy为占用标志位。b7b6b5b4b3b2b1b0busy-------13P_SIO_StopP_SIO_Stop(写)(7020H)向P_SIO_Stop单元写入任意一个数值,以停止SIO操作重新向地址寄存器写入新地址写入任意数到P_SIO_Start再次启动SIO向P_SIO_Stop单元写入任意一个数值,以停止SIO操作重新向地址寄存器写入新地址写入任意数到P_SIO_Start再次启动SIO向P_SIO_Start单元写入任意一个数值,可以启动数据传输第一次对P_SIO_Data(701AH)单元读写操作时会使SIO根据地址寄存器的内容传输读/写操作的起始地址再次读写P_SIO_Data时,不再传送地址14SIO时序15SPCE061A的UART串行接口16SPCE061A的UARTUART模块提供了一个全双工标准串行接口,用于完成SPCE061A与外设(如PC机)之间的串行通讯。利用UARTIRQ中断,可以同时完成UART接口的接收发送数据的过程。UART模块的接收管脚Rx和发送管脚Tx分别与IOB7和IOB10共用。17UART数据帧格式启动位D0D7D6D5D4D3D2D1startstop奇偶校验位结束位parity数据位18UART控制寄存器1P_UART_Command1(写)(7021H)UART控制端口控制奇偶校验UARTIRQ中断寄存器复位19P_UART_Command110b7RxIntEn允许UART接收中断(由RxRDY触发)禁止UART接收中断b6TxIntEn允许UART发送中断(由TxRDY触发)禁止UART发送中断b5I_Reset内部复位信号复位内部复位信号置位b4------b3Parity激活偶校检功能激活奇校检功能b2P_Check激活奇偶校验功能屏蔽奇偶校检功能P_UART_Command1单元20UART控制寄存器2P_UART_Command2(写)(7022H)该单元写入时为UART数据发送/接收控制端口,第6、7位分别控制着数据发送和接收管脚的允通/禁通。P_UART_Command2(写)(0x7022)单元的缺省值为0x00。b7b6b5b4b3b2b1b0RxPinEnTxPinEn------1:允通接收管脚0:禁止接收管脚1:允通发送管脚0:禁止发送管脚------21P_UART_Command2读P_UART_Command2(读)(7022H)该单元读出为UART状态信息。第7位是RxRDY标志位,当接收到数据时该标志位被置为“1”,读P_UART_Data单元将清除该标志位。第6位是TxRDY标志位,该标志位被置为“1”,表示发送器的数据缓存器为空,已准备好可以发送写入P_UART_Data单元的数据。22UART相关寄存器510b7RxRDY数据已接收完毕未接收到数据b6TxRDY数据发送已准备好数据发送未准备好b5FE存在帧错误无帧错误b4OE存在溢出错误无溢出错误b3PE存在奇偶校验错误无奇偶校验错误读P_UART_Command2单元23UART相关寄存器6错误类型原因解决方法FE(帧错误)数据帧的格式或波特率不一致1.使用一致的数据格式2.设置一致的波特率OE(溢出错误)接收端RX接收数据的速度低于发送端TX发送数据的速度,从而导致RX端数据溢出1.提高接收数据的速度2.降低数据传输速度PE(奇偶校验错误)传输条件差,可能有噪声干扰改善传输条件帧传输出错的原因及解决方法24UART数据、波特率寄存器P_UART_Data(读/写)(7023H)P_UART_BaudScalarLow(读/写)(7024H)P_UART_BaudScalarHigh(读/写)(7025H)串行口传输速率组合控制数据单元。b7b6b5b4b3b2b1b0数据25UART波特率计算P_UART_BaudScalarLow(读/写)(7024H)P_UART_BaudScalarHigh(读/写)(7025H)Scale为7024H单元和7025H单元组成的十进制整数波特率=(Fosc/4)/Scale--------当Fosc=49.152MHz,40.960MHz或32.768MHz波特率=(Fosc/2)/Scale--------当Fosc=24.576MHz或20.480MHz26波特率对照表波特率(bps)高字节低字节Scale实际波特率(bps)15001FHFFH81921500240014H00H5120240048000AH00H25604800960005H00H128096001920002H80H640192003840001H40H320384004800001H00H256480005120000HF0H240512005760000HD5H2135769010240000H78H12010240011520000H6BH107114841Fosc在24.576MH或者49.152MHz时27UART中断中断向量存储在0xFFFFH单元,该中断的优先级别最低(IRQ7);发送中断和串行口接收中断;读取或写相应数据寄存器自动清中断28UART常见问题1UART与RS232SPCE061A输出的是TTL的UART信号,而PC端的为RS232电平信号,两者间要通过232电平转换才能实现通讯。串口通讯速率匹配当通讯双方速率不匹配时,通常接收到的都是些错误数据。29UART常见问题2开接收中断后一直进入接收中断端口设置有误或出现导常。一般会由于IOB7与IOB10设置有误才导至问题的出现的;有时也会因为IOB7共用端口的器件使IO口信号发生变化造成。30与片外设备打交道SPCE061A提供的SIO口一般会用来与其它带SIO口的Flash、SRAM片子相连,扩展数据的存储空间,存放更多的语音资源。UART的存在,为多MCU协同工作提供了条件,在众多多MCU系统中、串行总线应用中广泛应用。31凌阳科技教育推广中心竭诚为您服务凌阳科技大学计划网站:凌阳科技大学计划邮箱:E_mail:unsp@sunplus.com.cn凌阳科技大学计划客服中心:Tel:010-62981668-2911凌阳科技大学计划技术支持中心:Tel:010-62981668-2919
本文标题:1.7硬体结构介绍串行接口
链接地址:https://www.777doc.com/doc-3724615 .html