嵌入式多路信号数据采集系统实现方案
2.3 GPRS终端
GPRS终端选用的是南京傲屹电子有限公司的AYG285C,它是采用GPRS模块专为工业集成设计的,在温度范围、震动、电磁兼容性和接口多样性等方面均采用特殊设计,保证了恶劣环境下的工作稳定性,基于GPRS公网的数据传输具有通信范围广,传输稳定可靠等特点。通过按键可以进行模块参数设置或者进行网络数据通信,串口波特率在300~115200bps可调,校验位可选:无校验,奇校验,偶校验。支持协议PPP、IP、TCP、UDP、DNS、PING的客户端功能。另外,电源、工作状态有LED指示,方便现场查看MODEM运行情况。
当需要进行多任务处理和调度时,一个嵌入式实时操作系统就必不可少。为此系统中采用源码公开的μC/OS2Ⅱ操作系统,它具有执行效率高、占用空间小、实时性能优良以及可扩展性强等特点,最小内核可编译至2K字节。
μC/OS2Ⅱ的移植需要满足以下要求:
1.处理器的C编译器可以产生可重入代码;
2.可以使用C调用进入和退出临界区代码;
3.处理器必须支持硬件中断,并且需要一个定时中断源;
4.处理器需要能够容纳一定数据的硬件堆栈;
5.处理器需要有能够在CPU寄存器与内核和堆栈交换数据的指令。
本系统使用的LPC2134ARM7处理器满足以上所有条件,因此可以对其进行移植。根据μC/OS2Ⅱ的要求,移植μC/OS2Ⅱ到一个LPC2134ARM7体系结构上需要提供2个或3个文件:OSCPU.H(C语言头文件)、OS-CPU-C.C(C程序源文件)及OS-CPU-A.ASM(汇编程序源文件)。
数据采集任务中,采用C语言进行编程,但对于系统的初始化,仍然采用汇编来制作启动代码,它可以实现向量表定义、堆栈初始化、系统变量的初始化、中断系统初始化、I/O初始化、外围初始化、地址映射等操作。
芯片复位后,系统初始化流程如图2所示。
图2 系统初始化流程图
3.2 接口程序及SD卡驱动的实现
在实时内核下,接口程序读取A/D采样数据的方法通常有三种:程序延时法、ADC转换完毕时产生中断法和程序循环等待的方法。其中循环等待的方法CPU开销小,不需要中断服务,比较适合嵌入式系统中采用。
循环等待A/D读取数据的伪代码如下:
之间通过串口相连,采集数据先通过开发板串口UART0发送到无线数据终端AYG285C的缓冲区,然后缓冲区将数据打成一个个数据包,通过GPRS网络发送到远程数据处理中心。因此,在μC/OS2Ⅱ下LPC2134的UART底层接口驱动显得尤为重要。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论