新闻中心

EEPW首页>手机与无线通信>设计应用> 基于SOPC技术的异步串行通信IP核的设计与实现

基于SOPC技术的异步串行通信IP核的设计与实现

作者: 时间:2012-05-30 来源:网络 收藏

3. 3.1 波特率模块
波特率模块根据PLB总线提供的时钟产生需要的发送时钟和接收时钟。由于UABT在发送数据时只需要按照发送波特率将数据地发出就可以了,因此发送时钟就等于发送波特率。而当UART在接收数据时,需要对数据进行采样以判断接收数据。由于接收方和发送方的时钟不可能完全同步,所以需要对每一位接收数据持续电平的时间进行分段。分段越多,接收出现误判的概率就越低,但系统开销也越大。在实际的中通常采用发送时钟的16倍作为接收时钟。波特率模块的分频功能由两个16位计数器,它将PLB总线时钟按配置寄存器的设定进行分频,产生发送时钟和接收时钟。
3.3.2 发送模块
发送模块主要包括发送FIFO和发送单元两部分,如图5(a)所示。发送FIFO数据位宽度为8bit,深度为16字节。发送FIFO缓存MicroBlaze处理器需要发送的数据。当FIFO空间满时,发送模块将状态寄存器中“发送FIFO满”标志位置1,MicroBlaze处理器通过查询该位以判断UART核是否可以接收下一个发送数据。

本文引用地址://m.amcfsurvey.com/article/154802.htm

g.jpg


发送单元的用有限状态机的方法,其状态转换图如图5(b)所示。系统在复位后,发送单元处于空闲状态。当FIFO有发送数据时(Empty管脚为低),发送单元发出读FIFO操作,并进入数据准备状态。当数据从FIFO中读出,发送单元首先发送起始位,进入发送状态。在发送状态下,发送单元依次发送8比特数据,并计算当前的奇偶校验码。在数据发送结束后,若配置寄存器中奇偶校验位为1,则发送奇偶校验位。最后发送单元发送停止位,回到空闲状态,完成次数据发送。
3.3.3 接收模块
接收模块由接收FIFO和接收单元两部分组成,如图6(a)所示。接收FIFO数据位宽度为8bit,深度16字节,它负责缓存接收单元收到的数据,并在收到数据后将状态寄存器中“接收数据有效”标志位置1。MicroBlaze处理器通过查询该位来判断是否有数据到达。

h.jpg


接收单元的同样采用了有限状态机的方法,其状态转换图如图6(b)所示。系统在复位后接收单元处于就绪状态。当接收单元在接收管脚连续检测到8个低电平时认为起始位有效,进入接收状态。在接收状态下,接收单元每16个接收时钟采集一次接收数据。8个接收数据都采集完成后,接收单元根据配置寄存器中“奇偶校验位”是否为1决定是否进行奇偶校验。若奇偶校验通过,接收单元将接收到的数据写入接收FIFO。若奇偶校验未通过接收FIFO满,接收单元丢弃收到的数据,并在状态寄存器中置“奇偶校验出错”位或“接收FIFO满”位为1。

4 实验验证
4. 1 系统硬件介绍
本文采用Xilinx公司提供的ML505 V5 FPGA Demo板作为SoPC系统硬件平台。ML505 FPGA演示验证板主要由一块Virtex-5 XC5VLX50T FPGA构成,此外还包括RAM、Flash、以太网接口芯片、USB接口芯片以及ADM3202 RS-232电平转换芯片等外围扩展芯片,其中ADM3202电路原理图如图7所示。

i.jpg


实验采用Xilinx公司ISE工具完成UART核的逻辑综合和仿真,仿真波形如图8所示,发送数据为0x01。



评论


相关推荐

技术专区

关闭