10kW中波数字调幅广播发射机的实时数据采集系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10kW中波数字调幅广播发射机的
实时数据采集系统设计
姚华
摘要:利用计算机网络实现对中波广播发射机群的监控、故障诊断与处理等,其中一个关键问题是解决发射机实时数据采集;通过采用ISP1581芯片设计实时数据采集的硬件电路、设备固件程序、驱动程序、应用程序及其程序框图等,详细介绍了实现10kW中波数字调幅广播发射机的实时数据采集系统的设计;该系统对实时数据采集速度快和采集数据质量稳定,不仅非常适合中波数字调幅广播发射机这样复杂的工作环境,而且为实现中波广播发射机群网络远程实时监控、故障分析、查询数据等提供了一种高效可靠的数据采集解决途径。
关键词:实时数据采集;通用串行总线;ISP1581;单片机
0引言
随着中央大资金的投人,我国西部地区新建或改造了无线广播电视发射、传输设备。我省也建立了覆盖全省的中小功率全固态中波广播发射机群的广播网络体系。利用计算机网络对区域内的设备进行实时监控、故障诊断与处理十分重要(特别是技术力量相对薄弱的少数民族地区)。本文重点介绍了10kW全固态中波数字调幅广播发射机的USB总线的实时数据采集系统设计,并简述在网络环境下以web方式提供远程实时监控、故障分析、查询数据等应用。
1数据采集和处理
1.1数据采集
10kW全固态中波数字调幅广播发射机的对外接口电路提供了外部监测与控制设备的接口。该接口不仅包括遥控设备和附加控制与监测面板上的信号,而且还为控制器与外部设备之间提供了隔离。二极管阵列在瞬间非正常电压突然加到对外接口端殿时,对电路进行保护。接口电路包括光隔离输出、模拟电压“监测”输出、集电极开路“状态”输出和对低压电源的外部监测电阻电压分压器,齐钠二极管防止瞬间过压冲击。齐钠二极管稳压器在板上提供±15VDC给板上的集成电路电源。三端稳压器输出的±15VDC电源供USB总线的实时数据采集系统使用。
1.2数据处理
由于10kW全固态中波数字调幅广播发射机工作环境比较复杂,实时高速数据采集极易受干扰而导致采集数据的失真。采用通用串行总线USB(Universal Serial Bus)能够很好地解决了这个问题。 USB是用来连接外围设备与计算机之间的新式标准接口总线。它是一种快速、双向、同步传输的并可以实现热拔插的串行接口,很容易实现便捷、低成本、易扩展、高可靠性的数据采集。
所有前板表头上的指示、LED显示面板的指示和控制都可以用外部接口电路实现。除了频响、失真、信杂比外,功放电压、低电压源、过荷指示、联锁、直流稳压、射频通路、低频数字通路、推动电流调整器、功率等数据采集均从对外接口板取出,并且模拟电压采样被置为±3.4V左右限高幅度指示。
2系统硬件设计
1.硬件总体结构
基于USB总线的实时数据采集系统设计思路是从广播发射机对外接,口板取出的多路模拟信号,经过模拟开关送人A/D转换器,经过模数转换后由单片机控制数据采集,采集到的数据被存储在USB接口芯片,并被上传至计算机。
提供了基于USB总线的实时数据采集系统硬件组成包括模拟开关、A/D转换器、单片机、USB接口芯片,其硬件总体结构如图1所示。
图1 硬件总体结构
多路模拟信号经过模拟开关传到A/D转换器,A/D转换器将其转换为数字信号。单片机控制采集,USB接口芯片存储采集到的数据并将其上传至计算机,同时也接收来自计算机USB 控制器的控制信息。
图2 ISP1581内部结构图
2.2 USB高速接口芯片
USB接口芯片采用PHILIPS公司的一种专用芯片ISP1581。该芯片是一个高速USB器件控制器。集成了串行接口引擎(SIE), 8K字节的多配置FIFO存储器、高速收发器、电压调整器、存储器管理单元(MMU)、微控制器/处理器的接口与管理器、DMA接口和控制器、系统控制器等,支持双电压工作、完全自动DMA操作、多中断模式,内部结构如图2所示。
ISP1581芯片实现了USB2.0/1.1物理层和数据协议层的任务,并且实现了连同端点EP0设置(用于访问设置缓冲器)在内的16个USB端点的共同协作。是一种价格低、功能强的通用串行总线(USB)接口器件,它支持USB.系统运作的自动检测,为基于微控制器或微处理器的系统提供了高速USB通信能力。
这种通信是通过一个高速的通用并行接口实现的。利用一个快速通用接口可以与大部分类型的微控制器/处理器的通信。
这个微控制器的接口由管脚BUS_CONF, MODEI和MODE0共同设置,适用于大部分类型的接口。ISP1581内部含有两种总线结构配置,上电时由BUS_CONF输人管脚进行选择:BUS_CONF=1为通用处理器工作模式;BUS_CONF=0为断开总线工作模式。和外部存储器或外部设备之间的高带宽的数据传输是通过集成的DMA控制器来控制完成的。
ISP1581工作频率为12MHz。内部集成的一个40×PLL时钟乘法器可产生480MHz的内部抽样时钟。,
图3 ISP1581与单片机的实现电路
单片机通过16位并行接口传送经过A/D转换的采集数据,存储在FIFO存储器中。一旦存满,串行接口引擎(SIE)立刻对数据进行处理,包括同步方式的识别、并行/串行转换、
位填充/解除填充、CRC校验/产生、分组标识(PID)校验/产生、地址识别和握手评估,处理完毕后数据由模拟收/发器通过D+、D-发送至计算机。上述过程遵循U5B2.0协议。ISP1581与单片机的具体实现电路如图3所示。
3系统软件设计
3.1 USB设备固件程序设计与实现
系统软件包括USB设备固件编程、驱动程序和应用程序。其中设备固件是整个系统的核心,它控制芯片采集数据、接收并处理USB驱动程序的请求和应用程序的控制指令等。
用C语言设计的设备固件的主要功能,是控制A/D模块的数据采集;接收并处理驱动程序的请求,如请求描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等USB2.0标准请求;控制芯片ISP1581接收应用程序的控制指令等。其程序主框图如图4所示。
单片机检测到ISP1581后进入主循环。此时计算机先发令牌包给ISP1581, ISP1581接收到令牌包后给中单片机发中断。单片机据中断类型设定标志位Status;最后执行相应标志位的中断服务程序。单片机通过A/D模块的中断入口控制A/D模块的数据采集。
3.2驱动程序设计与实现
USB系统驱动程序采用分层结构模型:较高级的USB设备驱动程序和较低级的USB函数层。其中函数层由通用串行总线驱动程序模块和主控制器驱动程序模块组成。
为了更具备通用性,同时简化程序的开发,可以编写提供应用程序调用的动态链接库。应用程序只需调用此库提供的接口函数即可完成对USB设备的操作。USB函数层由Windows 操作系统提供,负责管理USB设备驱动程序与其控制器之间的通信、加载及卸载USB驱动程序等。由于Windows操作系统提供的USB设备驱动程序不是针对实时数据采集设备设计的,必须采用开发工具设计专用的设备驱动程序。一般它由初始化、即插即用管理、电源管理以及I/O功能实现等四个模块组成。
初始化模块提供一个DriverEntry入口点的初始化过程。即插即用管理模块实现USB设备的热插拔及动态配置。比如当Windows操作系统检测到USB设备接入时,查找相应的驱动程序,并调用一系列相关例程直到设备被正确配置,驱动程序开始与硬件进行对话。电源管理模块负责设备的挂起与唤醒。I/O功能实现模块完成I/O请求的大部分工作。当动态链接库提出I/O请求时调用Win32API函数DeviceToControl向设备发出命令;然后由I/O管理器构造一个IRP并设置其Ma-jorFunction域为IRP_MJ_DEVICE_CONTROL。USB设备驱动程序收到该IRP后取出其中的控制码,并利用一个开关语句找到对应的例程入口。
3.3应用程序设计与实现
使用Delphi开发工具编写应用程序。应用程.序分低层的数据采集程序和数据应用管理系统。通过调用动态链接库,数据采集程序的开发比较容易实现。模块的主要功能包括:检测USB设备、开启或关闭USB设备、设置A/D状态和数据采集端口、实时数据存人SQL 数据库等。主框图如图5所示。
当缓冲区存满后自动将数据打包,由SIE自动发送数据包。程序获得数据包后需延迟至下组数据包准备完毕,从而保证程序与数据采集同步。另外程序还发出停止采集和关闭USB 设备的命令。