当前位置:首页 > 通信技术 > 通信技术
[导读]摘要:介绍了SoPC(System on a Programmable Chip)系统的概念和特点,给出了基于PLB总线的异步串行通信(UART)IP核的硬件设计和实现。通过将设计好的UART IP核集成到SoPC系统中加以验证,证明了所设计的UARTIP核可以正

摘要:介绍了SoPC(System on a Programmable Chip)系统的概念和特点,给出了基于PLB总线的异步串行通信(UART)IP核的硬件设计和实现。通过将设计好的UART IP核集成到SoPC系统中加以验证,证明了所设计的UARTIP核可以正常工作。该设计方案为其他基于SoPC系统IP核的开发提供了一定的参考。
关键词:SoPC;UKRT;PLB;IPIF;FPGA

    随着嵌入式技术的发展,基于SoPC技术的嵌入式系统所具有的软硬件可裁减、可扩充、可升级以及可在线修改的特点越来越受到人们的重视。SoPC系统通常具有以下基本特征:采用大容量可编程逻辑器件来实现,单芯片、低功耗;至少包含1个以上的嵌入式处理器IP核;具有一个或多条片上总线作为系统扩展功能的接口;具有充足的片上可编程逻辑资源,用户可以根据需要扩充功能部件。
    异步串行通信协议(UART)以低成本、高可靠性等优点而广泛应用于嵌入式系统中,多篇文献也讨论了UART协议的硬件设计方法,但多数只限于讨论UART协议的硬件实现,缺少从SoPC系统的角度论述UART IP核的设计方法。本文以UART IP核和PLB总线为例,讨论了在SoPC系统下UART IP核的设计方法,该方法对其他IP核的设计有一定的参考作用。

1 UART协议介绍
    UART是一种串行异步通信方式,它采用RS232电平在串行链路上进行全双工的通信,其数据传输格式如图1所示:UART协议在空闲时为高电平,通过发送起始位提示接收方数据传输即将开始,接着传输8位有效数据位和奇偶检验位,最后发送停止位表示一个字符传输完成。



2 SOPC UART通信系统介绍
    本文设计的SOPC UART通信系统主要包括MicroBlaze处理器、PLB总线、UART IP核和DDR2控制器IP核,如图2所示。


    MicroBlaze处理器是Xilinx公司针对其FPGA器件优化的32位微处理器核,它采用RISC(Reduced Instruction System Computer)架构和哈佛总线结构,具有独立32位数据和指令总线,能够高速执行和访问片上存储器和片外存储器上的程序与数据;提供本地块存储器总线(LMB)、处理器本地总线(PLB)等总线接口。
    PLB总线作为IBM CoreConnect总线协议簇中的一部分,广泛的应用于IBM PowerPC处理器架构中。该总线具有总线地址空间大,总线吞吐率高,能支持多个主从设备连接等特点。如图3所示,MicroBlaze处理器通过PLB总线与UARTIP核、DDR2控制器相互连接,各部件之间通过PLB总线协议进行交互。其中,MicroBlaze处理器作为主设备完成系统控制和UART通信流程控制,UART IP核作为从设备在主设备的控制下完成异步串行通信,DDR2存储指令和数据。
    MicroBlaze处理器和DDR2控制器采用Xilinx公司提供的IP核,UART IP核由用户编写逻辑,它是文中设计的主要内容,对此模块的设计将在下一节进行详细阐述。

3 UART IP核设计
3.1 PLB Slave Single模块介绍
    如上,UABT IP核作为PLB总线的从设备,必须提供PLB总线接口。但由于PLB总线协议复杂,实现其接口难度较大,Xilinx公司为了使用户编写的逻辑能够方便的连结到PLB总线上,提供了一种PLB总线与用户逻辑之间的接口模块(IPIF,IP Interface),利用它简化了PLB总线接口信号、总线协议和其他接口相关问题。IPIF接口逻辑中最简单的模块称为PLB Slave Single模块,它提供了一种轻量级的PLB总线接口,为PLB总线主设备提供了解析从设备地址空间,读写从设备寄存器/存储空间等基本服务。本文设计的UARTIP核与MicroBlaze处理器之间仅通过寄存器的读写进行交互,PLB Slave Single模块很好的满足了该设计要求,因此采用PLB Slave Single模块与UART逻辑共同构成了UART IP核。PLB Slave Single模块与UART逻辑之间的连接关系如图3所示,接口信号说明如表1所示。


    在系统中,UART IP核的内部寄存器组映射为处理器的某段地址空间,MicroBlaze处理器通过对该段地址的读写实现对UART IP核的访问。当MicroBlaze处理器访问UART IP核的某个寄存器时,PLB总线会产生相应的地址信号和读写信号,该信号被UART IP核中的PLB Slave Single模块解析并生成相应的IPIF信号,UART IP核中的UABT逻辑响应该IPIF信号,完成寄存器的读写。
3.2 UART IP核寄存器组设计
    文中设计的UART IP核提供了5个寄存器,如表2所示。其中发送寄存器和读接收寄存器完成UART数据的发送和接收。状态寄存器提供了UART IP核内部状态,包括接收数据有效,发送FIFO满,接收FIFO满,奇偶校验错等状态。控制寄存器提供了UART IP核复位功能。配置寄存器提供了波特率设置,奇偶校验位设置等功能。
3. 3 UART协议逻辑模块设计
    本文设计的UART协议逻辑模块主要包括波特率产生模块,发送模块,接收模块,寄存器组等几个部分,其结构如图4所示。寄存器组说明如表2,其他几个模块的设计如图4所示。


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 IP核是否可以接收下一个发送数据。


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


    接收单元的设计同样采用了有限状态机的方法,其状态转换图如图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所示。


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


    UART IP核仿真通过后,用EDK工具提供的Peripheral Import Wizard生成一个采用PLB Slave Single模块的自定义IP核框架。在该IP核目录下的user_logic.v文件中例化波特率模块、发送模块、接收模块和寄存器组,并增加相应总线访同逻辑后即生成了本文设计的UART IP核。
    用EDK工具中的Base System Builder wizard新建一个如图3所示的SoPC系统,如图9所示。在Port界面下将UART IP核的收发管脚定义为External,并在UCF文件中加入收发管脚的管脚映射描述。在Address界面下生成UART IP核的地址空间,UART通信测试程序将通过该地址空间访问UART IP核。用EDK工具中Hardware菜单下Generate Bit Stream命令生成该SoPC系统的FPGA配置文件。用该配置文件配置ML505板载FPGA后,即生成了SoPC UART通信系统硬件。


    用EDK工具中的Xilinx SDK软件开发工具编写相应的UART通信测试程序,编译后将程序下载至MicroBlaze处理器程序空间。将ML505板串口与PC机串口连接后运行UART通信测试程序,在PC机上可以观察到此UART通信系统可以正确的发送和接收UART数据,证明了该UART IP核工作正常。

5 结论
    文中详细介绍了一种基于SoPC概念的UART IP核的设计。通过将Xilinx公司提供的PLB Slave Single模块和本文设计的UART逻辑模块结合,快速搭建了一个满足PLB总线接口要求的UART IP核,仿真与综合结果表明该UART IP核各项功能均达到预期要求。该设计方法既采用了成熟的商业IP核,也利用总线接口模块将用户自定义IP核与商业IP核连接成为一个完整的SoPC系统。该方法增加了系统的灵活性、扩展性,同时缩短了系统开发时间,降低了系统开发难度,可为其他嵌入式系统的开发提供有益的参考。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

异步串行通信是一种通信方式,其中字符或字节以一种串行的方式从一个设备传输到另一个设备。以下是异步串行通信的详细介绍:通信方式:在异步串行通信中,数据以字符为单位进行传输。每个字符都由起始位、数据位、奇偶校验位和停止位组成...

关键字: 异步串行通信 RS-232

IP核,也被称为知识产权核或知识产权模块,是经过反复验证的、可以重复使用的集成电路设计宏模块,主要应用于专用集成电路(ASIC)或者可编辑逻辑器件(FPGA)。IP核主要分为软IP核和硬IP核。

关键字: MCU器件 IP核

领先的半导体IP核提供商Arasan Chip Systems今天宣布,其MIPI DSI-2、CSI-2和C-PHY/D-PHY Combo IP已在Testmetrix...

关键字: STM TEST AN IP核

在这篇文章中,小编将对FPGA的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: FPGA SOPC 芯片

(全球TMT2022年4月27日讯)新思科技(Synopsys, Inc)近日宣布推出全新神经处理单元(NPU)IP核和工具链,可提供业界领先的性能并支持新兴的复杂神经网络模型。新思科技DesignWare® ARC®...

关键字: IP核 新思科技 NPU RC

新款DesignWare ARC NPX6 NPU IP核能够为汽车、消费类和数据中心芯片设计提供高达3500 TOPS的性能  摘要 DesignWare ARC NPX6 NPU IP核可提供业界...

关键字: IP核 处理器 新思科技 TOP

摘要:基于SOPC的在线分析仪器平台从数据采集到显示已经可以完成分析仪器的基本功能。通过添加与上位机的通信来方便数据的验证和平台与网络的链接以及数据传输,从而在非线性验证和TCP/IP通讯方面实现对上位机的信息管理,同时...

关键字: SOPC 信息管理 非线性 TCP/IP

摘 要:为了更好地实现物联网或工业控制领域中传感器网络设备的远程监控功能,本文设计了一种基于FPGA的嵌入式网关系统的随机方法。该设计通过构建可编程片上系统 (SOPC),并利用Nios II嵌入式系统通过串口通信来实现...

关键字: 嵌入式网关 FPGA NIOS II COS-II操作系统 SOPC

摘要:针对工业控制领域中对多串口通信的需求,采用SOPC技术并利用FPGA的可编程性,给出了一个基于NiosII的30路串口数据转发通信处理机的设计方法,同时定义了相应的数据通信协议,从而实现了30路下位机与上位机的串口...

关键字: 多串口通信 SOPC FPGA NIOS

摘要:给出了采用EDA软件Quartus II中的SOPC Builder来构建SOPC系统,再通过所构建的SOPC系统为平 台,在Altera公司的FPGA多媒体开发平台DE2上来设计物联网数字钟的具体方法。

关键字: 物联网 Quartus II SOPC FPGA DE2 数字钟
关闭
关闭