高速便携式RS 232/422信号模拟器设计
2. 2 电源管理电路模块设计
信号模拟器既有USB接口供电,也有AC/DC适配器供电,同时还有着电池供电,这里供电电源的管理显得异常重要。在电源管理电路的设计中,首先要有电源排序和自动切换电路,当同时存在这三个电路供电时,要求能自动切断AC/DC和电池供电,无缝的转向USB供电。当USB接口不供电时,转向了AC/DC适配器供电,最后才是电池供电。整个过程的供电顺序是USB供电→AC/DC供电→电池;其次是要求能够对供电电路的状态和信息进行监控。电源管理电路模块要求能提供供电是来自USB接口、AC/DC适配器或是电池的信息,当是电池供电时,还需要提供电池的电量信息,即电池还剩余多少电量;最后,还要有锂离子充电电池的放电和充电的管理。为保护锂离子电池因过度放电而无法再次使用,当电池放电到终止电压时,自动切断供电电路,使电池供电电路处于断开状态。当插入AC/DC适配器和USB接口供电时,电源管理电路模块可以对电池进行充电,同时,电池的放电是一个电源逐渐衰减的过程,还需要对电源进行稳压。鉴于这些原因,电源管理电路模块的设计是本文的重难点之一。本系统中电源管理电路模块原理图如图3所示。本文引用地址:http://www.amcfsurvey.com/article/185416.htm
2. 3 FPGA核心控制电路模块设计
FPGA核心控制电路监控以上各电路模块的工作状态,随时准备接收来自它们的数据和命令,并进行相应的控制。它包括了控制部分和串行数据生成部分,控制部分是在FPGA芯片内部嵌入Alter公司提供的NIOSⅡ的处理器IP软核,利用QuartusⅡ软件内部的SOPC工具生成FPGA内部的控制电路。串行数据生成部分利用VHDL硬件编程语言编制了波特率发生器和并串转换模块生成RS 232/422串行信号数据。所有的控制电路都是通过软件定制在一片FPGA芯片内,外围电路比较简单,除了正常的程序加载电路和程序存储芯片,仅需要一片时钟芯片即可。FPGA核心控制电路原理图如图4所示。
3 系统软件设计
3.1 波特率和串行数据产生模块设计
串行数据产生模块负责生成符合格式设置要求的串行数据,如起始位,数据位,效验位,停止位等。它主要是把控制器发送的并行数据转换成串行数据,并根据控制器发送的效验位,停止位等设置命令来设置数据的格式,以来自波特率产生模块的16倍的波特率作为全局时钟,生成要模拟的RS 232/422信号数据。
波特率产生模块根据控制器发送的命令数据来产生符合要求的波特率。在本系统中,要求产生24种标准和非标准的波特率,其中标准的波特率16种,非标准波特率8种,最高的波特率达到1 Mb/s,这样利用常规的分频器不能满足要求。
依据DDS(直接数字频率合成)的原理,结合积分分频电路,设计了频率字累加器,通过从NIOSⅡ控制器输入的频率字来控制累加器的累加步长,将累加器输出的最高位作为输出的时钟信号的方法实现所需要的波特率时钟,此时输出的时钟即可作为串行数据产生模块的全局时钟,也就是16倍的波特率。同时为了提高时钟的精确度,降低误码率,在系统时钟(这里采用的是22 11 8 4 MHz)进入分频器以前,利用PLL倍频电路提高时钟的频率。
波特率和串行数据产生模块在FPGA内部的原理实现框图如5图所示。它的实现是采用VHDL硬件描述语言实现的,框图中每个小的模块代表VHDL语言编制的模块程序。
评论