新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 高速便携式RS232/422信号模拟器设计

高速便携式RS232/422信号模拟器设计

作者:时间:2016-12-16来源:网络收藏

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


2. 3 FPGA核心控制电路模块设计
FPGA核心控制电路监控以上各电路模块的工作状态,随时准备接收来自它们的数据和命令,并进行相应的控制。它包括了控制部分和串行数据生成部分,控制部分是在FPGA芯片内部嵌入Alter公司提供的NIOSⅡ的处理器IP软核,利用QuartusⅡ软件内部的SOPC工具生成FPGA内部的控制电路。串行数据生成部分利用VHDL硬件编程语言编制了波特率发生器和并串转换模块生成RS232/422串行信号数据。所有的控制电路都是通过软件定制在一片FPGA芯片内,外围电路比较简单,除了正常的程序加载电路和程序存储芯片,仅需要一片时钟芯片即可。FPGA核心控制电路原理图如图4所示。



3 系统软件设计
3.1 波特率和串行数据产生模块设计
串行数据产生模块负责生成符合格式设置要求的串行数据,如起始位,数据位,效验位,停止位等。它主要是把控制器发送的并行数据转换成串行数据,并根据控制器发送的效验位,停止位等设置命令来设置数据的格式,以来自波特率产生模块的16倍的波特率作为全局时钟,生成要模拟的RS232/422信号数据。
波特率产生模块根据控制器发送的命令数据来产生符合要求的波特率。在本系统中,要求产生24种标准和非标准的波特率,其中标准的波特率16种,非标准波特率8种,最高的波特率达到1 Mb/s,这样利用常规的分频器不能满足要求。
依据DDS(直接数字频率合成)的原理,结合积分分频电路,设计了频率字累加器,通过从NIOSⅡ控制器输入的频率字来控制累加器的累加步长,将累加器输出的最高位作为输出的时钟信号的方法实现所需要的波特率时钟,此时输出的时钟即可作为串行数据产生模块的全局时钟,也就是16倍的波特率。同时为了提高时钟的精确度,降低误码率,在系统时钟(这里采用的是22 11 8 4 MHz)进入分频器以前,利用PLL倍频电路提高时钟的频率。
波特率和串行数据产生模块在FPGA内部的原理实现框图如5图所示。它的实现是采用VHDL硬件描述语言实现的,框图中每个小的模块代表VHDL语言编制的模块程序。


3.2 NIOSⅡ控制器系统定制和内部程序设计
传统的MCU,DSP或ARM等硬处理器或控制器,它们的功能和片内外设都是固化好的,用户只能使用,而不能做任何改动。而NIOSⅡ处理器是FPGA芯片生成厂商Altera公司无偿提供的软IP核,可以通过QuanusⅡ软件对它进行设置,随时可以添加在片的ROM或RAM,并去掉不必要的外设,使得整个系统的搭建灵活,方便,简洁。并且,在硬件系统的设计上,一片FPGA芯片内就可以完成整个的数字控制系统,使得硬件系统的设计非常的简单可靠,性能也非常的稳定。
在本系统的设计中,NIOSⅡ处理器和传统的MCU,DSP或ARM等硬处理器或控制器一样,也可以用C语言编程实现需要的控制功能,也可以嵌入各种嵌入式操作系统,并进行调试等。编程的开发环境是专用的NIOS2-IDE集成开发环境。


评论


技术专区

关闭