本站小编为你精心准备了通信电源信息收集程序探索参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
作者:邹海东钱良单位:中国卫星海上测控部
软件平台采用WindowsCE系统,WindowsCE是一个可移植的、实时的、模块化操作系统,具有多线程、多任务和确定性的实时、完全抢占式优先级的操作系统。硬件开发部分采用标准ARM开发板,配合适当的参数采集模块,布局设计简单;应用软件部分采用模块化设计的思想,可以使得整个系统的应用设计显得简洁、高效。
系统硬件设计
1基于ARM处理器的采集系统
通信电源参数采集系统是基于ARM处理器的应用系统,其基本任务是实现对模拟电压、电流量的采集与A/D转换,并能够通过系统内部的软件进行适当处理,便于传输至远端进行集中处理。因此,在具体实现上,需要解决电压、电流模拟参数的采集、强参数到弱参数的转换、多路信号的同时采集与转换等技术性问题。在开发系统的硬件选择上,重点需要关注系统的A/D转换模块的基本性能。一般而言,分辨率、转换速率和量化误差3项指标就决定了整个系统的转换精度,这个需要根据实际应用进行取舍。图2显示了标准的ARM6410开发板的连接关系图,其中包括复位电路、LCD屏幕、以太网接口与RS-485串口模块、JTAG调试模块、标准电源模块、键盘以及A/D转换模块(AD7715)等。
2电源参数处理
本采集系统有两种类型的采集对象:1mA~5A电流信号与-15~24V电压信号,这也是通信设备电源中最常见的信号。对于大电流信号(>50mA),需要先通过电流互感器将大电流转换成小电流(≤50mA),然后再用采样电阻将所采集的电流信号转换成系统可以处理的电压信号(0~1V),接入到单通道A/D转换器的模拟输入正、负端口(IN+,IN-);而对于小电流信号(≤50mA),则可以直接接入采样电阻进行转换接入,如图3(a)所示。对于-15~24V的电压信号可以直接通过采样电阻进行适当降压,然后再接入到A/D转换器的模拟输入端口,如图3(b)、(c)所示。图4显示了16位模数转换芯片AD7715的A/D转换器的基本接口原理图。其中INP、INN端口为模拟信号的输入正、负端,系统开发应用的关键端口为CS(芯片选择信号)、SCLK(系统串行时钟信号)、DIN(串行数据输入)、DOUT(串行数据输出)以及DRDY(逻辑输出信号,高电平可读)等5个端口。
系统软件设计
1A/D转换处理流程
在WindowsCE系统中,对外围设备的控制与数据获取,需要通过驱动软件的流接口函数[5-6],来调用A/D转换模块中的寄存器来实现。对于本系统的A/D转换模块而言,驱动软件需要使用如下几种流接口函数。1)AD_Init():初始化A/D转换模块;2)AD_Open():打开A/D转换模块,应用程序通过CreateFile()函数来调用该函数;3)AD_Close():关闭A/D转换模块;4)AD_Read():从A/D转换模块中读取数据;5)AD_Write():向A/D转换模块中写入数据。当A/D转换模块工作时,操作系统可以通过调用入口点函数,完成驱动软件的初始化工作。之后,应用程序先通过执行CreateFile()函数,调用AD_Open()来打开模块;然后通过执行函数ReadFile()来调用AD_Read()。在函数AD_Read()中,通过传输函数来实现对所采集数据的读取。一般A/D转换模块中的寄存器配置均遵从I2C总线协议,因此,对应于读写操作均可以按照标准流程来进行。图5显示了一个完整的数据采集操作流程。
2数据缓存池设计
由于串口模块的工作频率与CPU的工作频率并不一致,因此需要设计一个数据缓存池来匹配二者之间的差异。当串口端以串行方式给CPU发送数据时,系统先将其逐一存入数据缓存池,待存满设定数量的数据后,再一并按照“先入先出”的顺序将其送给CPU进行集中处理,以提高处理效率。另外,出于对系统效率的考虑,需要区分CPU端对发送数据与接收数据的操作差异,故在系统内存设计两个数据缓存池,数据缓存池的数据结构按照环队列方式设计。图6为数据缓存池的设计示意图。而对于其大小的设计,也需要根据实际情况进行具体设定,一方面减少串行数据丢失的概率,同时能够避免过多的浪费系统存储空间。
结论
文中提出一种基于ARM平台的通信电源参数采集系统研究,可以应用于通信电源电压、电流以及工作温度等各种电子参数的数据采集与监视,同时通过RS485接口或者以太网接口将所采集的数据传送至远程监测服务器;系统采用了ARM处理器,不仅功耗低,成本低,而且可以运行WindowsCE、μC/OS-II、VxWorks等嵌入式实时操作系统,应用拓展性强,能够为系统的大型应用提供保证。