- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于TMS320DM64 46的数字电影放映系统设计
摘要:针对某设备运行状态实时监控的需要, 研制了一个高速数据采集装置, 该装置采用带USB 接口的C8051F340单片机为核心, 同时具有多路信号切换, A /D变换等功能。采用K eil uV is ion3进行固件开发, 实现了温度压力超限报警功能。该系统的电路结构简单、可靠。
1引言
电子设备运行状态的稳定性直接影响到现代企业的生产, 设备发生故障后高昂的维修费以及设备停机后给企业生产带来的损失, 使得各个企业纷纷采取措施, 降低设备的故障率。通过数据采集系统准确的获取设备运行特征数据, 并对数据进行分析,判断设备的运行状态是否良好, 达到提前预防故障出现、减少停机检修的目的。实际应用中对数据采集系统的可靠性, 准确性和便携性要求很高。目前常用的数据传输网络(如RS232 /RS485, CAN 等)已经不能满足大量采集数据和高速实时数据传输的要求。而USB传输具有高速可靠传输的优势, 具有成本低、可靠性高、维护方便等优点。本文以带有片上USB 和高速AD转换器的C8051F340为核心控制器件, 利用USB总线高速传输的特性, 设计了一款高速度低成本的数据采集系统, 采集信号包括该设备输出气体的温度、压力和流量等14个参数, 适用于特定设备运行状态的数据采集工作。
2系统设计
系统设计图如图1所示, 系统主要由C8051F340数据采集模块与上位PC机构成。需要监控的数据通过系统前端的传感器转换后送入预处理电路, 从预处理电路输出的数据通过I/O端口送入AD转换端口,经过AD转换将数据保存到C8051F340单片机, 最后通过USB把数据送入上位PC机保存处理。
图1 系统设计框图
3 硬件设计
在整个硬件设计中C8051F340 单片机是系统重要的组成部分。C8051F340单片机是S ilicon Laboratories公司推出的完全集成的混合信号片上系统型MCU。具有高速、流水线结构的8051兼容的微控制器内核( 可达48M IPS ); 通用串行总线(USB )功能控制器, 有8 个灵活的端点管道, 集成收发器和1K FIFO RAM; 真正10位200ksps的单端/差分ADC, 带模拟多路器; 片内电压基准和温度传感器; 精确校准的12MH z内部振荡器和4 倍时钟乘法器; 多达64KB 的片内FLASH 存储器; 多达4352字节片内RAM ( 256+ 4KB ); 多达40个端口I/O (容许5V 输入)采集系统的电路设计。
由于C8051F340本身集成众多硬件电路的特性, 硬件接口设计变得非常简单, 不需要再添加额外的电子元器件就能实现USB 的数据传输和AD转换等, 使得系统的硬件结构简单, 集成度高, 可靠性好。如图2所示, 单片机通过片上USB 接口与上位PC 机连接进行数据的传输。C8051F340上的P2. 0~ P2. 6引脚作为数据采集的输入端口, 接受来自预处理电路输送过来的数据, 最后通过单片机的模拟多路选择器( AMUX) 最终决定进入AD 转换的通道。
图2 数据采集硬件原理图。
4 软件设计
系统的软件部分包括单片机固件和上位PC 机客户端程序。单片机固件主要负责单片机初始化及与上位机的通信准备, 而客户端程序则负责对固件中相应控制的调用, 实现数据的传输控制、数据保存以及故障的预警。
4. 1 单片机固件( firmw are)
单片机固件采用K eil uV ision3软件进行编写,由主程序, AD数据转换, USB通讯三个模块组成。
主程序负责初始化单片机的各个端口和功能模块, 设置相应的IO 端口为数据输入端口, 完成各项初始化后通过vo id USB_API_TEST _ISR ( void)函数进入USB中断服务, 在中断服务中通过调用Get_Interrupt_Source( )函数获得USB 中断源。然后根据不同的入口情况, 来进行相应的处理。比如收到初始化命令时, 复位单片机内的各个状态参数。
AD数据转换模块主要负责AD转换时的转换时间间隔、采样精度的设置。C8051F340单片机的AD转换启动有6 种触发方式, 由ADC0CN 中的ADC0转换启动方式位( AD0CM2..0)的状态决定采用哪一种方式。本系统则是是通过单片机中的定时器2的每次计时溢出来触发AD 转换。为确保每次定时器触发AD 转换时上一次数据转换完全结束, 因此定时器2溢出后到下一次计时溢出的时间间隔( Tcon t)必须要大于AD 转换时间, 才能保证每次AD转换的完整进行。AD 转换时间由建立转换时间( Tsettle)和采样时间( Tsample)构成。图3所示为在差分方式下等效的AD 转换的输入电路。对于一个给定的建立精度( SA ) 的系统中, 所需要的ADC 建立时间( Tsettle)可以用方程1来确定。而采样时间( Tsamp le)通过查询技术手册得知需要10个SAR 时钟。Tcon t则必须要满足式( 2)和式( 3), 才能满足设计要求。
图3 AD 转换等效输入电路。
软件开发具体步骤如下:
①DSP端,在TI公司推出的CCS3.3开发环境下,把音视频解码算法修改成符合数字媒体标准(xDM)的形式,并编译生成一个算法的库文件*.lib(等同于Linux环境下的*.a64P,直接在Linux环境下修改文件后缀名即可)。
②生成一个在DSP上运行的可执行程序*.x64P(即.out文件),也就是Codec Server。本系统的Codec Server里集成了MPEG-2、MPEG-4、H.264、AAC、MP3、G.71l多种形式的音视频解码器。
③根据Codec Server的名称及其中包含的具体的音视频解码算法,创建Codec Engine的配置文件*.cfg,包括Engine的不同配置、名称,每个Engine里包括的Codec以及每个Codec运行在ARM还是DSP端等。例如,在.cfg文件中,可以修改取得Codec模块的相关语句,按需要引用Codec模块。取得不同模块的语句如下;
4. 2 上位PC 机客户端程序
上位PC 机客户端程序包括USB 驱动程序和用户应用程序两个部分。
USB驱动程序是一个软件组件, 封装了应用程序存取硬件设备的功能函数。有些设备具有相同的属性, 把它们归为一组标准类别, 可以定义设备类规范作为该类设备的主机驱动框架。设备类驱动程序使用相似的函数, 处理不同设备间的通信,这样使设备类驱动程序的开发可以脱离设备制造商。本系统的驱动程序使用了Silicon Laboratories公司提供的USB Xpress开发包, 在V isua l C ++ 6. 0环境下开发, 封装成动态链接库DLL 的形式供用户应用程序调用。
用户应用程序采用C + + 编写, 由客户交互界面, USB数据通信, 数据保存显示, 设备故障预警四个模块组成。在USB 数据通信模块设计中, 使用S ilicon Laboratories公司提供的S I_GetN umDevices,S I_GetProductString ( ), SI_Open( ), SI_C lose( ) , SI_Read( ) , SI_W rite( ) 等API函数, 屏蔽了对底层硬件操作中USB 复杂的通信协议, 简化了USB 通信开发, 使得开发USB 通信的程序变得更容易 。
程序流程图如图4所示。
图4 客户端应用程序流程图。
诱发设备出现故障的原因很多, 为保证设备正常运行需要检测多方面的数据, 本系统主要是检测设备的温度和压力等的数据, 检测获得的数据一旦超过某个界限, 表示设备可能出现故障。因此为了保证设备长时间的稳定工作, 需要对获取的实时数据与事先设好的临界值进行对比, 一旦超过临界值, 系统则发出警报提醒工作人员对设备进行故障排查, 起到了故障预警的效果。
5 结语
基于USB 数据采集系统可供选择的方案很多, 而本设计从便携式和高速传输考虑, 编写了固件和客户端数据传输协议, 使得该数据采集系统方便携带, 数据传输高速准确, 具有良好的人机交互界面, 并能对一定的设备故障进行预警提醒, 有较大的使用价值。而且单片机端口资源还没有用完,还有开发和扩展的空间。
上一篇:数字信号电平的测试与确定
下一篇:双向可控硅在交流调压电路中的使用