异步串行通信接口的IP核设计
发布时间:2008/6/3 0:00:00 访问次数:458
摘要:异步串行通信接口(sci)因其结构简洁、使用方便,因而在各类mcu、dsp和mpu芯片设计中获得广泛的应用。本文给出一种以状态机为控制核心、以数据流为执行中心的异步串行通信接口ip核结构设计的通用方法。此方法已在笔者所设计的dsp芯片中得到验证。
关键词:sci ip核设计 状态机 数据流
引言
目前,基于传统ic芯片的微电子应用系统设计技术正在转向基于知识产权(ip,intellectual property)核的片上系统(soc,system on chip)技术发展。另外,ic设计在国内的发展很快,各种规模的ic设计中心和公司不断出现。因此,ip核的设计已开始逐渐成为国内微电子系统设计的一项支撑技术。从应用功能角度划分ip核有两大类:微处理器ip核(如8位8051核、32位arm核等)和各种接口ip核(如lcd控制器、各种串行总线接口ip核等)。本文以异步串行通信接口(sci,serial communication interface)接口ip核结构设计为例,说明sci、uart、spi、usb等接口ip核的设计方法。
sci的通信方式采用标准nrz格式来进行外设间的异步数字通信。因其结构简法,通常嵌入到dsp、mcu和mpu或外设控制芯片内部,作为芯片的一个接口功能模块。sci通常由三个功能单元构成:波特率脉冲产生单元、发送单元和接收单元。其结构如图1所示。在sci数据收发中,数据帧的数据格式要比地址帧的数据格式复杂得多。在不同的通信方式下,数据帧的格式是不同 的。为此在发送器和接收器中各引入了与数据帧格式相对应的状态机来实现数据流的控制。本文所介绍的就是基于这种设计思想的一种通用设计方法。
1 sci数据发送单元
数据发送单元主要功能是完成数据的并/串转换及发送,同时产生发送标志位。其结构如图2所示,字符发送状态机如图3所示。下面简要介绍发送单元各功能模块及其状态转换。
(1)txd时钟八分频器
对基于波特率时钟进行八分频,并输出两个基本脉冲—txd_clk_work(用于计数、移位等)和txd_clk_end(用于标志位的生成和数据流输出)。
(2)txd状态寄存器
通过此状态寄存器设置通信控制寄存器2的两个控制位—txempty和txrdy位,以表示数据写入sci_txbuf和启动发送过程。
(3)发送字符计数器
当字符状态机的输出状态为允许字符计数时,其开始对发送的字符计数。当计数器值等于编程的字符数时,输出tx_chap_reach信号作为字符状态机激励,使之进入非字符输出状态。
(4)发送空闲线计数器
当字符状态机进入发送空闲线数据状态时,开始工作。当计数到一定值时,输出信号tx_idlecout_reach作为字符状态机激励,使之进入非空闲线数据计数状态。
(5)发送数据流的形成
在txbuf2shift的高电平脉冲作用下,在sci_txbuf中待发送数据,经过选择器选择指定位数的数据送入sci_txshift低位,不足的高位清“0”。与此同时,txwake数据也送到wut寄存器,在地址位模式情况下,由addr_idle控制在wut中形成地址位;并由sci_txshift数据位、地址位和奇偶方式位三者逻辑或形成奇偶校验位。
(6)当前发送字符状态机
在启动、控制位、计数器溢出等激励作用下,实现发送字符状态的输出和转换。发送字符状态机的激励有:txempty(为“0”时启动txd发送)、addr_idle(地址/空闲线模式选择位)、parena(奇偶校验使能位)、stopbit(选择1或2个停止位)、wut(发送空闲位数据允许位)、tx_charcout_reach(发送字符数目已够位)、tx_idlecout_reach(发送空闲数目已够位)。发送字符状态机(见图3)的状态有:1为帧停止位(1位),3为帧第1停止位(2位),5为帧第2停止位(2位),8位帧起始位,9为待机状态,a为帧数据位,b为空闲线模式起始位,c为帧地址位,e为帧奇偶校验位,f为空闲线模式停止位,d为空闲线模式计数0~7。
摘要:异步串行通信接口(sci)因其结构简洁、使用方便,因而在各类mcu、dsp和mpu芯片设计中获得广泛的应用。本文给出一种以状态机为控制核心、以数据流为执行中心的异步串行通信接口ip核结构设计的通用方法。此方法已在笔者所设计的dsp芯片中得到验证。
关键词:sci ip核设计 状态机 数据流
引言
目前,基于传统ic芯片的微电子应用系统设计技术正在转向基于知识产权(ip,intellectual property)核的片上系统(soc,system on chip)技术发展。另外,ic设计在国内的发展很快,各种规模的ic设计中心和公司不断出现。因此,ip核的设计已开始逐渐成为国内微电子系统设计的一项支撑技术。从应用功能角度划分ip核有两大类:微处理器ip核(如8位8051核、32位arm核等)和各种接口ip核(如lcd控制器、各种串行总线接口ip核等)。本文以异步串行通信接口(sci,serial communication interface)接口ip核结构设计为例,说明sci、uart、spi、usb等接口ip核的设计方法。
sci的通信方式采用标准nrz格式来进行外设间的异步数字通信。因其结构简法,通常嵌入到dsp、mcu和mpu或外设控制芯片内部,作为芯片的一个接口功能模块。sci通常由三个功能单元构成:波特率脉冲产生单元、发送单元和接收单元。其结构如图1所示。在sci数据收发中,数据帧的数据格式要比地址帧的数据格式复杂得多。在不同的通信方式下,数据帧的格式是不同 的。为此在发送器和接收器中各引入了与数据帧格式相对应的状态机来实现数据流的控制。本文所介绍的就是基于这种设计思想的一种通用设计方法。
1 sci数据发送单元
数据发送单元主要功能是完成数据的并/串转换及发送,同时产生发送标志位。其结构如图2所示,字符发送状态机如图3所示。下面简要介绍发送单元各功能模块及其状态转换。
(1)txd时钟八分频器
对基于波特率时钟进行八分频,并输出两个基本脉冲—txd_clk_work(用于计数、移位等)和txd_clk_end(用于标志位的生成和数据流输出)。
(2)txd状态寄存器
通过此状态寄存器设置通信控制寄存器2的两个控制位—txempty和txrdy位,以表示数据写入sci_txbuf和启动发送过程。
(3)发送字符计数器
当字符状态机的输出状态为允许字符计数时,其开始对发送的字符计数。当计数器值等于编程的字符数时,输出tx_chap_reach信号作为字符状态机激励,使之进入非字符输出状态。
(4)发送空闲线计数器
当字符状态机进入发送空闲线数据状态时,开始工作。当计数到一定值时,输出信号tx_idlecout_reach作为字符状态机激励,使之进入非空闲线数据计数状态。
(5)发送数据流的形成
在txbuf2shift的高电平脉冲作用下,在sci_txbuf中待发送数据,经过选择器选择指定位数的数据送入sci_txshift低位,不足的高位清“0”。与此同时,txwake数据也送到wut寄存器,在地址位模式情况下,由addr_idle控制在wut中形成地址位;并由sci_txshift数据位、地址位和奇偶方式位三者逻辑或形成奇偶校验位。
(6)当前发送字符状态机
在启动、控制位、计数器溢出等激励作用下,实现发送字符状态的输出和转换。发送字符状态机的激励有:txempty(为“0”时启动txd发送)、addr_idle(地址/空闲线模式选择位)、parena(奇偶校验使能位)、stopbit(选择1或2个停止位)、wut(发送空闲位数据允许位)、tx_charcout_reach(发送字符数目已够位)、tx_idlecout_reach(发送空闲数目已够位)。发送字符状态机(见图3)的状态有:1为帧停止位(1位),3为帧第1停止位(2位),5为帧第2停止位(2位),8位帧起始位,9为待机状态,a为帧数据位,b为空闲线模式起始位,c为帧地址位,e为帧奇偶校验位,f为空闲线模式停止位,d为空闲线模式计数0~7。
上一篇:CAN总线与以太网互连系统设计