本系统的定时模块主要根据用户设置的定时时间来定时,当定时时间到时,系统将自动向远程监测节点发送采集数据的命令。本系统采用S3C44BOX处理器内部集成的RTC模块的秒中断实现定时功能。程序的设计思想是定义一整形变量(16位)来记录秒中断的次数,这样,其最大定时时间可达到18 h。本系统定时时间为每1b采集1次数据,所以,该方法能够满足系统的定时需求。当定时时间到达后,系统将向各远程监测终端发送数据采集命令,并等待数据的到来。 3.3 数据存取模块 系统的数据存取模块主要完成对E2PROM存储器的读取和写入操作,并负责对从远程终端节点采集来的数据进行分析后按照规定的格式存入E2PROM中。与此同时,当其它系统需要时,就会从E2PROM存储器中读出这些数据,并把它传送给请求的系统或设备。本系统采用的E2PROM存储器为AT24C64,是基于I2C总线的外围器件。I2C总线是Philips推出的一种双向二线制总线。它只包括一条数据线(SDA)和一条串行时钟线(SCL),故可大大节省微处理器的IO口线 3.4 串口部分软件设计 本系统的GSM无线模块是通过串行接口与EduKit-III开发板相连的,该模块的软件设计工作主要遵循GSM无线模块提供的串行通信协议来实现短信息的接收和发送。与GSM无线模块相关的串行通信协议标准有:1位起始位,8位数据位,1位停止位,无校验位,9600b/s波特率。 由于系统已经有串口操作的基本函数,本文重点考虑利用中断方式来实现串口数据接收与发送所涉及的相关问题,它主要包括串口中断的初始化和串口数据的接收及处理工作。串口中断的初始化主要包括设置S344B0X微处理器的中断模式、使能串口中断、清除串口中断标志位和设置串口中断的中断服务程序。其代码在这里就不再详述。串行数据接收部分的程序流程图如9所示。
本程序的设计思想是:当串口接收到来自GSM模块的数据时,程序首先保护现场,然后判断FIFO是否为空,若还有数据,则存入数据接收缓冲区,并调用数据处理程序判断是否收到“OK 0AH 0DH”。如果是,则将数据有效标志置为1,否则置为0,同时修改指针,否则说明数据已经接收完毕,需要进行错误处理并恢复现场后返回。 3.5 液晶显示模块软件设计 液晶屏(Liquid Crystal Display,LCD)主要用于显示文本及图形信息。本系统主要包括ASCII字符、语言文字字符和图形图像的显示。由于ASCII码字符和汉字字符所使用的点阵是不同的,所以,系统采用了不同的字库文件,但通过LCD屏幕向用户显示提示信息时,难免会同时出现汉字和ASCII字符,比如,,“当前温度:23”。在这种情况下,为了方便程序的处理,需要编写中英文同时显示的程序,其程序流程图如10所示。该显示程序的设计思想是:首先获得字符所需要显示的区域(左上角坐标,右下角坐标),然后读取需要显示的字符串。如果当前字符为ASCII码字符,则调lcd_disp_ascii8x16函数显示,同时指针移1个字符,x坐标加8;否则,连续读取2个字符,调用lcd_disp_hz16函数显示,同时指针移动2个字符,x坐标加16。最后判断是否需要换行。如此反复循环,直到所有字符显示结束为止。
3.6 触摸屏模块的软件设计 本系统采用对角线定位方法来确定触摸屏的原点。触摸屏的控制程序软件包括触摸屏中断的初始化、触摸屏定位、用户动作响应等。 触摸屏中断的初始化工作主要包括设置S344B0X微处理器的中断模式、使能触摸屏所对应的外部中断、清除外部中断标志位和设置触摸屏中断的中断服务程序。 触摸屏定位部分的功能是获得用户输入的坐标,主要包括A/D转换、坐标计算、坐标存储等。其程序流程图如图11所示。 4 结语 本文针对当前远程控制系统存在的问题进行了分析和研究,给出了带以太网接口的、基于GSM的无线数据传输系统的总体设计方案,并对系统涉及的软硬件技术进行了详细介绍,最后在此基础上完成了系统设计和系统实现。本系统具有技术先进、系统互联、远程监控、性价比高、升级容易、扩展性强等优点,对提高远程监控的数据传输效率及降低监控系统的运营成本具有重要的意义,值得进一步研究与推广。 (责任编辑:laiquliu) |