基于NiosII的多通道PWM信号测量/产生器节点设计
针对于列车控制系统半实物仿真平台测速测距模块的多通道PWM信号测量/产生的要求,提出了一种利用NiosII软核处理器替代通讯用MCU的智能多通道PWM信号测量/产生器的设计方案。
引言
列车控制系统半实物仿真平台是基于HLA规范,将各种铁路通信信号系统内的设备通过建模或实物连接到一起,构建成的一个完整的列车运行控制仿真平台,用以进行系统研究、系统仿真及新系统的开发。
实物测控接口平台是列车控制系统半实物仿真平台的重要组成部分,是实物设备和HLA仿真环境的接口,实现实物系统和仿真环境之间的信息交互,保证其协同并行工作。接口平台使用了嵌入式Linux的架构以提供HLA界面,同时提供和实物设备对应的物理信号接口,其中包括车载实物系统中的测速测距模块需要的多路PWM信号测量/产生器节点。
常用的MCU或者PWM芯片最多能提供16路PWM信号输出通道,如果用MCU来实现PWM信号周期和占空比的测量,需要占用大量的硬件资源并且效率不高,因此使用MCU实现较多通道的PWM信号测量/产生器对MCU的处理能力要求较高,成本较高。若采用MCU/DSP作为外界通讯接口,使用FPGA实现多通道PWM信号测量/产生器,可以完成设计目标,但是系统复杂度较高。本文提出了一种利用NiosII软核处理器替代通讯用MCU的智能多通道PWM信号测量/产生器的设计方案。该设计仅使用单片FPGA构建SOPC,系统复杂度低,可靠度高。
节点硬件设计
Nios II是一款基于哈佛结构的32位RISC 处理器,包括3 种内核。
智能PWM节点设计的核心在于NiosII软核处理器的配置和利用FPGA实现多通道PWM信号测量/产生器。
节点硬件方框图如图1所示,FPGA选择了Altera公司低成本FPGA Cyclone EP1C6Q240C8,电源模块选择了Murata公司的可提供3路1.0~3.6V可调输出的MPD5S025S,直接提供FPGA需要的3.3V,2.5V和1.5V电源;NiosII的程序代码保存在FPGA的配置芯片中,配置芯片选择了16Mbit串行EPCS16,足够保存NiosII应用程序;外扩2MByte SDRAM芯片AS4LC1M16S1;通讯接口为RS-485,采用磁隔离的方式,使用的隔离器件是ADuM3301磁隔离芯片,由一个5V/5V的DC/DC电源隔离器件B0505D提供隔离端的电源。FPGA输入/输出的多通道PWM信号通过接插件连出。整个节点设计非常简洁,可以做到很小的体积。

图1 智能PWM节点硬件方框图
Nios II软核处理器配置
NiosII软核处理器使用Quartus II集成的SOPC Builder进行配置,配置图如图2。根据节点设计的需要,使用Nios II/s为处理器核心,UART为通讯接口,添加SDRAM控制器和EPCS控制器。使用32bit+12bit PIO作为PWM控制器,这个控制器是基于总线方式的控制器与FPGA内的PWM信号测量/产生器相连读取/写入周期和占空比信息,具体定义为:32bit数据,8bit通道地址,1bit读/写,1bit配置允许和1bit配置测量/产生,这2bit可以配置对应地址PWM通道为测量或产生,1bit预留。使用这种总线方式控制器配置PWM通道信息的速度快并且易于编程。

图2 智能PWM节点NiosII处理器配置图
FPGA内多通道PWM信号测量/产生器模块
多通道PWM信号测量/产生器模块FPGA功能框图如图3所示。用FPGA实现PWM信号的产生和测量的核心就是计数器的使用,每个通道的PWM需要8个计数器,其中4个是PWM信号产生用的预置高电平计数器,预置低电平计数器,高电平计数器和低电平计数器;其余4个是PWM信号测量用的高电平计数器和低电平计数器以及对应的最大值寄存器,由于资源的限制,这些计数器必须用RAM实现。

图3 多通道PWM信号测量/产生器模块FPGA功能框图
具体实现的流程如下:
·根据具体需要依次配置每个通道为PWM测量或者产生通道,由PWM配置控制器实现,该控制器与NiosII处理器的PWM控制器相连。
·使用一个基准地址计数器给出的循环地址信号对所有的RAM读写进行同步,该基准地址计数器给出不同延迟周期的地址计数,以修正RAM读取产生的延时。
·PWM产生:将高/低电平周期数写入预置高/低电平计数器,计数器自加器按基准地址计数器给出的修正延迟的地址读出计数并+1后重新写入计数器RAM;比较器按基准地址计数器给出的修正延迟地址计数读出预置高/低电平周期数进行比较决定输出的是高/低电平。
这种方法得到频率为:
其中为该模块的时钟频率,
为预置数计数器,采用循环方式时一个周期的时间为通道数与预置数和之积
;本节点中
,因此
,满足测速测距模块0~10KHz的设计需要;若需要更高频率,可以提高fCLK或者进行通道分组,以降低每组的Nch,占空比的精度与频率有关,频率越低,可调精度越高。
·PWM测量:是PWM产生的逆过程,测量的精度与产生的PWM信号的精度相同。每隔一个脉冲更新一次测得的周期和占空比值,因此可用于周期快速变化PWM信号的测量。
·死区控制器:仅仅对应于PWM产生部分,该模块输出的PWM信号初始间隔为1个TCLK,根据具体的需要配置相应的延时即可。
节点软件设计
上位机通过RS-485发送命令包来控制智能节点的动作,该命令包顺序由8bit标识码,8bit包长度,16bit目标节点号,16bit包编号,命令区和16bit CRC16校验码组成,NiosII处理器负责解包,校验CRC码是否正确,并且根据命令动作PWM控制器。当需要读取PWM周期和占空比测量值时,NiosII处理器还需要把从高/低电平计数保存器RAM读出的值组包发送给上位机。
NiosII处理器采用中断方式接受通过RS-485总线发来的命令包,中断处理通过状态机的方式处理每一个接收到的字节,具体功能描述如下:
·检查标识码,检查是否为智能PWM节点类型的命令包,启动状态机,并打开定时器,防止当命令包不完整时接受状态机无法回到初始状态;
·读取包长度信息,检查是否目标为本节点,是则记录包编号;
·如果标识码不是智能PWM节点类型的命令包则不对命令进行处理,是则将命令放入缓冲中待处理;
·检查CRC校验码是否正确,如正确,则将缓冲中的命令写入命令队列;如果不正确,则将错误信息写入待发送信息队列。
命令包括配置某位为PWM测量/产生,配置某位的预置数计数器,读取某位的计数保存器三类。
主循环中完成的工作是:
·检查命令队列中是否有未处理的命令并处理;
·检查待发送信息队列长度是否达到预定值,是则启动一次发送,将待发送信息打包发送给上位机。
实验结果
使用ModelSim进行仿真,配置使用了10通道作为PWM信号输出,随机赋值了给每个通道不同的周期和占空比,得到的仿真结果如图4所示。

图4 智能PWM信号产生器仿真结果图
将这10个通道与另外配置为PWM信号测量的10个通道相连接,进行周期和占空比测量,得到的高低电平周期测量结果与实际值误差限为,由此导致的频率误差为:
当取f=10KHz时,Δf≈200Hz;取f=1KHz时,Δf≈2Hz,频率越低,测量精度越高。
结语
针对于列车控制系统半实物仿真平台测速测距模块的多通道PWM信号测量/产生的要求,本文提出了一种利用NiosII软核处理器替代通讯用MCU的智能多通道PWM信号测量/产生器的设计方案,给出了利用FPGA实现多通道PWM信号测量/产生器模块的方法,并且编写了NiosII处理器的通讯控制软件。
本设计将应用在北京全路通通信信号研究设计院列控实验室的实物测控接口平台中,连接测速测距模块,将仿真端与实物端相连。除此之外,本设计还可应用在多电机控制等领域。
参考文献:
1. 徐光辉、程东旭、黄如等,基于FPGA的嵌入式开发与应用,电子工业出版社, 2006.
2. 李旭、谢运祥,PWM技术实现方法综述,电源技术应用,2005,02:40~43
本文来源:电子产品世界 作者:清华大学freescale MCU/DSP应用研究中心 代刚 邵贝贝
关于 测试测量 的相关解决方案
- 2008-08-04一种小型高集成智能测试装置的设计与实现
- 2008-07-30CPLD器件在时间统一系统中的应用
- 2008-07-25用自动脚本测试进行视频质量分析
- 2008-07-24手机智能天线测试系统开发及应用
- 2008-07-24高效实现手机RF测试的技巧
测试测量 相关产品动态
- 2008-08-06风河公司推出软件测试自动化解决方案
- 2008-07-02安捷伦推出首款可简化多重播放测试的解决方案
- 2008-06-11TI发布SC70封装零漂移双向电流分流监测器IC INA210系列
- 2008-01-23安捷伦科技推出可适应-55℃~150℃温度的测试线方案
- 2008-01-10NI发表USB-5680首款由USB控制的RMS RF功率计

