基于SIM300的无线LED显示屏控制系统设计

时间:2012-03-07来源:网络

4 软件设计

本系统的软件设计包括两部分: 上位机软件和AVR 单片机的控制程序。上位机软件完成与GPRS 模块的通信, 控制LED 显示屏上显示的数据信息;AVR单片机的控制软件主要完成系统初始化,GPRS 网络连接,接收上位机发送的信息,分析接收信息内容,完成指令, 并按需将发布信息转换为点阵信息, 送到LED显示屏进行显示。

4.1 AVR 单片机的控制程序

AVR 单片机的控制程序主要完成以下功能:连接GPRS 网络、数据传输、控制LED 屏显示。

(1)初始化系统及SIM300 模块,连接GPRS 网络;(2)依照显示屏控制器与上位机的通信协议,与上位机通信握手,接收指令,解析指令,并将显示数据等信息存储与处理;(3)通过串口驱动LED 屏,进行信息的显示等。

下面简单介绍SIM300 模块与上位机实现TCP/IP无线通信流程。

  AT+CGDCONT=1,IP,CMNET --注册中国移动网络

  OK

  AT+CGCLASS? --显示GPRS 信息移动的类型

  +CGCLASS: B

  OK

  AT+CGATT? --GPRS 服务附加/分离

  +CGATT: 1

  OK

  AT+CGACT=1,1 --环境激活

  OK

  AT +CIPSTART = TCP,202.196.87.7,2020 -- 启动

  TCP 连接(上位机IP 地址及端口号)

  OK

  CONNECT OK --连接成功

  AT+CIPSEND --通过TCP 发送数据

  > HELLO

  SEND OK --发送成功

4.2 上位机软件

本系统的上位机软件主要采用VC 设计一个通信界面,实现与LED 远程控制器通信。用户界面部分采用MFC 框架基于Dialog 实现。在利用Visual C++进行通过TCP/IP 协议网络传输数据开发时, 采用IOCP 框架来实现Windows Socket 的完成端口模型。

IOCP 即I/O 完成端口(I/O Completion Port),是一个异步I/O 的API,它可以高效地将I/O 事件通知给应用程序。一个套接字在被创建后,与一个完成端口进行关联。当一个事件发生的时候,此完成端口就将被操作系统加入一个队列中, 然后应用程序可以对核心层进行查询以得到此完成端口。当某项I/O 操作一旦完成, 某个可以对该操作结果进行处理的工作线程就会收到一则通知。在此应用程序中创建一定数量的工作线程来处理重叠I/O 请求的通知。

IOCP 框架的启动流程如图6 所示。

IOCP 框架的启动流程

IOCP 框架的实现步骤如下:

(1)初始化Winsock 工作环境,并创建完成端口,创建完成端口线程,建立一个监听套接字,使套接字与完成端口关联起来;

(2)监听套接字开始工作,当监听套接字接收到客户端TCP 的连接请求时,IOCP 会获取并处理该消息,创建对应的Socket 对象进行接收处理,完成连接工作;

(3)当客户端完成TCP 连接后,可以开始数据通信,由I/O 线程来负责分发I/O 请求,通过线程池来分配逻辑处理环境;

(4)在接收数据后,将微软提供的一个I/O 数据结构(WSAOVERLAPPED)进行扩展,完成协议解析和数据处理。

此外,这里的线程池只是一个管理队列,用于处理线程资源的管理, 用最少的线程完成最大业务逻辑的处理。真正执行的线程函数也不完成详细的业务处理,仅仅完成对I/O 请求的再调用,而由虚函数实现I/O 请求的再处理。

为了提高软件的友好性, 框架采用Windows 的消息机制,与UI 进行交互,通过窗口消息将框架的相关信息传递给UI 窗口。因此在框架中保留了一个指针成员, 并在需要的时候通过该指针调用消息响应函数向窗口发送消息,UI 根据消息反映框架的运行信息。

5 结语

根据近年来GSM/GPRS 数据通信技术等发展的趋势,本文提出了基于GPRS 网络的、使用低成本SIM300模块的无线LED 屏控制器的设计方案, 该系统利用TCP/IP 协议实现了基于GPRS 网络的无线数据的传送。上位机将文字或图片信息数据通过GPRS 网络传输到远程LED 屏终端, 也可以接收客户端发送的数据,再根据数据的内容相应地完成各种命令,控制LED屏显示相应的信息。该系统设计经测试取得了良好的效果。

1 2 3

关键词: 控制系统 设计 显示屏 LED SIM300 无线 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版