基于GPRS的大屏幕LED显示系统的设计方案
2.2 终端显示模块设计
2.2.1 I2C 总线
本系统选用的是通过I2C 总线进行数据处理单元和终端显示模块进行通信。I2C(Inter-Integrated Circuit) 总线是一种由PHILIPS 公司开发的两线式串行总线, 用于连接微控制器及其外围设备。I2C 总线是用2 根双向I/O信号线(串行时钟线SCL 和串行数据线SDA) 把多种器件连接起来, 并实现器件之间的串行通信。I2C 总线最主要的优点是其简单性和有效性。由于接口直接在组件之上, 因此I2C 总线占用的空间非常小, 减少了电路板的空间和芯片管脚的数量, 降低了互联成本。MSP430F169内部集成有2 个16 bit 定时器,1 个高速12 bit A/D 转换器,12 bit 或8 bit 的双重D/A 转换器,2 个通用同步/异步通信接口和1 个I2C 模块。本文即利用I2C 模块来对MSP430F169 单片机进行扩展。
2.2.2 驱动电路
LED 显示屏驱动电路设计根据驱动芯片的选择不同有着很大差异。LED 驱动芯片可分为通用芯片和专用芯片两种。通用芯片是指其芯片本身并非专门为LED而设计, 而是一些符合LED 显示屏逻辑功能需求的芯片(如串、并移位寄存器)。通用芯片一般用于LED 显示屏的低档产品, 如户内的单色屏、双色屏等。专用芯片是指按照LED 发光特性而专门设计用于LED 显示屏的驱动芯片。LED 是电流特性器件, 即在饱和导通的前提下, 其亮度随着电流的变化而变化, 而不是靠调节其两端的电压而变化。因此专用芯片一个最大的特点就是提供恒流源。
本系统采用行扫描方式, 行选通电路由集成电路74HC154 构成。74HC154 是4 线-16 线高性能译码器, 在点阵屏幕不大的情况下, 一般的单片机可以直接驱动点阵LED 的亮灭, 但是考虑扩展为大屏幕尺寸时, 因单片机的I/O 口不足以提供足够的驱动电流, 但可在74HC154 和点阵的行接口接上一个PNP 型8550 三极管开关电路用来提供足够的电流, 当74HC154 发出低电平时, 三极管Q 导通, 输出高电平。此外, 可用带有2 级锁存移位输出功能的74HC595 锁存器来对列线进行驱动控制。LED 点阵的列线接到74HC595 的8 bit 并行输出口上, 由单片机控制数据的输出, 利用74HC595 的锁存输出功能, 电路共用同一个移位时钟SCK 和数据锁存时钟RCK, 可级联多片74HC595 以构成更大LED 点阵屏的列驱动电路。此结构还可在75HC595 的使能端通过PWM 波进行灰度调节。以一个16 行×160 列的LED 点阵单元为例, 本系统采用的驱动电路原理如图3 所示。
图3 LED 驱动电路示意图
3 系统软件设计
系统软件设计包括上位机软件的设计、下位机程序设计两部分。上位机软件完成图像和文字的编辑, 通过计算机串行接口把显示数据传送到GPRS 的发送模块上。GPRS 发送模块把信息及时地传到终端显示控制卡的GPRS 的接收部分, 然后终端的CPU 控制单元把接收的数据进行分割处理后通过I2C 总线传给各个显示终端, 并且完成显示数据不同方式的处理。
3.1 下位机程序设计
下位机程序设计主要由两个部分构成: (1)GPRS 的发送单元的程序设计, 该单元把上位机处理好的显示信息及时准确地传到远程的终端控制单元; (2) 终端控制单元的程序设计, 该单元主要完成接收GPRS 发送过来的信息然后把数据分割后传给各个显示终端。本文主要介绍第二部分的程序设计。
该下位机软件设计包括主程序、显示子程序和通信服务程序的设计。主程序主要完成中断的初始化和串口的初始化设置。显示程序主要完成数据的各种显示, 显示部分采用动态扫描的方式, 实现对显示屏要显示的汉字、图像、字符等数据信息进行传输控制以及显示等功能。通信服务程序主要完成GPRS 的数据接收、数据的分割处理、数据的发送等任务。本文采用模块化程序设计, 程序各部分的功能由各个模块分别实现。程序模块有: 系统初始化模块、GPRS 通信模块、数据的处理和存储模块、I2C 通信模块。为了保证系统工作的实时性和高效性, 本系统采用了实用单片机系统MS3 ,MS3 是一套针对MCU51 的开发平台, 借签了VC 编程的消息机制,把各个功能有效地组织起来。RTOS 的系统时钟, 实现高效的按键扫描和快速的响应中断, 执行例行程序。显示终端主程序如图4 所示。
图4 显示终端主程序流程图
GPRS 通信模块主要的功能是接收到GPRS 发送模块的信息,然后从外面的Flash 中查询相应的代码,然后在显示终端显示信息,显示屏可按不同显示方式进行汉字或表格显示。GPRS 接收模块设计程序的流程图如图5 所示。
图5 GPRS 接收模块设计程序流程图
3.2 上位机管理软件设计
在基于GPRS 的LED 的显示系统中, 上位机机管理软件主要负责文本信息的编辑, 对显示的数据根据TEXT 或PDU 模式进行编码, 然后通过GSM 的发送模块把信息发送出去。上位机软件使用可视化编程工具VisualC++6.0 开发, 首先根据LED 显示屏的大小设置上位机文字和图像处理的尺寸, 然后对输入的数据和图像进行编辑, 最后把提取有用的数据通过通信接口传给下位机。在通信的过程中为了保证应用的广泛性,PC 机的控制系统中采用了Microsoft Visual C++6.0 开发工具中非常好用的多线程串口编程工具CSerialPort 类, 与自带的MSComm 控件相比, 这个类打包的时候不需要加入其他的文件,而且函数都是开放透明的允许用户改造。
通过终端处理单元可以接收GPRS 模块发送的数据, 然后将数据通过I2C总线传给各个显示终端。终端显示采用串行移位输出方式可以实现一组字符的各种预定模式显示。本电路可扩展实现由30 多个160×16 点阵LED 模块组成的LED电子显示屏显示控制。经实际应用表明, 该电路稳定可靠, 效果良好, 具有一定的实用价值。但是本设计所用的控制卡只能控制显示屏的单色显示, 如果能显示双色, 甚至三色那就更方便了。如何使LED 显示屏可以显示变化的数字、文字、图形图像, 甚至视频, 这需要在数据的存储和处理算法方面进一步研究。
- 太阳能照明原理、组成及控制系统(08-05)
- 基于ARM9和GPRS的实时电力负控管理系统的设计(04-24)
- ZigBee、GPRS在充电桩中的应用(04-18)
- GPRS网络电能表的设计方案(04-29)
- 中国移动GPRS路灯监控系统解决方案(07-17)
- mC/OS-II在GPRS终端系统中的应用(12-01)