利用移动数据的LED显示屏使用目前覆盖范围最广、最稳定的GSM/GPRS/CDMA/小灵通网络,在任何有移动网络覆盖的地方都可实时方便地通过短消息方式更新LED显示屏的内容,有效解决了LED显示屏数据更新麻烦、无法监控的困难,减轻了管理部门的工作负担。随着移动通信技术的发展及LED显示屏幕应用范围的进一步推广,此种基于移动数据的LED显示屏幕具有较大应用价值。
LED电子显示屏幕作为一种信息显示设备,主要用于播放广告、新闻、通知、天气预报、时间、股票信息、航班信息、售票信息等,在站牌、交通路口、公交车、售票大厅、营业大厅、等候大厅、证券公司、机场、体育、气象、交通控制等场所得到了越来越多的应用,具有广阔的应用前景。
但是,传统的LED显示屏使用有线通信方式传输数据,受到地域和布线的严重限制。如果有大量的LED显示屏同时工作,为LED显示屏传输更新的数据就成为很麻烦的事,并且在没有其他附加控制设备的情况下,LED显示屏的管理部门也无法监控LED显示屏的实际运行情况。
1 系统构成及原理
此种基于移动数据的LED显示屏幕系统由GSM无线收发模块、MCU(单片机)、LED驱动电路、LED显示屏幕四部分组成。原理框图如图1所示。
系统的控制中心为MCU(单片机),本设计使用ATMEL公司的AT89C51芯片,它通过串口控制GSM无线模块收发移动数据,并控制LED驱动电路及显示屏幕将需要显示的内容用适当的方式显示出来。GSM无线收发模块使用西门子公司的TC35i,配一张市面上常见的普通SIM卡,负责接收合法用户通过移动网络发过来的显示内容,并将LED显示屏的状态数据通过移动网络回传给用户。LED驱动电路及显示屏幕与传统方式基本相同[1,2],采用具有“16 PIN 08接口”的LED单元板,可拼接成需要的屏幕尺寸。
使用时,用户只需将希望在LED屏幕上显示的内容在手机或电脑上按短信格式编辑好,然后像普通短信一样发送给插在TC35i模块中的SIM卡所对应的号码。带SIM卡的TC35i模块接收到发来的短信后,首先检查短信的发送者是否为合法用户。若不是合法用户,TC35i丢弃该短信;若是合法用户,则取出要显示的内容,并按要求的方式控制LED屏幕将信息显示出来。同时,TC35i可将LED屏幕的状态数据以短信格式发送给合法用户。如此,利用移动通信网络实现了显示内容及状态数据的双向实时传输。
考虑到简便性,本文以一块32×64点阵的LED单元板显示16×16点阵的汉字为例说明系统原理。至于更大尺寸的LED屏幕,只要将类似的多块LED单元板通过“16 PIN 08接口”依次级联即可。
2 硬件实现
2.1 TC35i模块与单片机的硬件接口电路
本系统中移动数据的收发都依靠TC35i模块进行。TC35i模块集射频电路和基带处理于一体,可工作在GSM 900 MHz和DCS 1 800 MHz两个频段,使用RS232串口与MCU(单片机)连接,其RS232数据接口符合GSM07.05和GSM07.07规范,使用标准的AT命令集。模块通过50 Ω的天线连接器连接天线,还通过40引脚的ZIF连接器实现电源和SIM卡支架的连接,以及指令、数据、语音信号及控制信号的双向传输[3]。
图2显示了单片机和TC35i接口的关键部分。
需要注意,系统加电后,为使TC35i进入工作状态,必须给IGT引脚加一延时大于100 ms的低脉冲,并且电平下降持续时间不可超过1 ms。启动后,IGT应保持高电平(3.3 V)。驱动IGT时,TC35i供电电压不能低于3.3 V,否则TC35i不能激活。另外,ZIF连接座的SIMPRES引脚用来检测SIM卡是否插好,如果连接正确,则SIMPRES引脚输出高电平,否则为低电平。
2.2 单片机及LED显示驱动电路
由于通过移动网络短消息得到的只是汉字的内码,而LED屏幕显示需要汉字的点阵信息,所以在本系统中必须存放GB2312汉字点阵字库,再加上LED屏幕显示时需要存放大量的显示数据,所以在单片机AT89C51的外围扩展了64 KB的RAM(62256)和512 KB的Flash 存储器(29F040)。其中29F040存放点阵字库(HZK16、ASC16)和UnICode转GB2312码表,62256做显示缓存。单片机收到短消息后先把待显示信息转换成GB2312码,显示时再从29F040中读出对应点阵信息存储在62256中。
单片机P1口用于控制LED屏幕的显示,其中P1.0~P1.3脚分别输出4位行选信号A、B、C、D,ABCD从0000变到1111,逐行扫描1~16行点,将显示数据依次显示出来;P1.4脚输出移位时钟信号SHCLK,使得显示数据可以依次进入LED单元板;P1.5脚输出锁存信号STB,使得显示数据可以稳定输出;P1.6脚输出LED单元板的上16行的显示数据R1,P1.7脚输出LED单元板的下16行的显示数据R2。
32×64点阵的LED单元板用于显示16点阵的汉字时,可以显示2行,每行4个汉字。其组成电路如图3。行驱动电路使用了2片74HC138芯片,上、下16行的列驱动电路都使用了8片74HC595芯片。具体显示时采用动态扫描方式,单片机输出的4位行选信号A、B、C、D经2片74HCl38译码后逐行扫描LED单元板的1~16行和17~32行;上16行的显示数据R1及下16行的显示数据R2在同一移位时钟信号SHCLK的作用下分别依次打入各自的74HC595,最后在共同锁存信号STB的作用下稳定输出在74HC595的并行输出端。
在实际制作LED单元板时,往往在74HCl38芯片输出的行扫描线上再加上4953芯片以增加驱动能力。
3 程序设计
3.1 短消息收发控制
单片机通过AT命令控制TC35i模块进行初始化和短消息的收发,对短消息的控制共有3种模式:BLOCk模式、PDU模式和Text模式。Text模式不支持中文,而使用Block模式需要手机生产厂家提供驱动支持,本系统使用PDU模式进行短消息接收和发送。
系统上电以后首先对TC35i进行初始化,内容主要包括:
(1)设置短消息中心号码AT+CSCA=“+8613800250500”
<CR>(该号码因地区不同而设置不同)。
(2)设置短消息格式AT+CMGF=0<CR>(0代表PDU格式)。
(3)设置短消息存放的位置AT+CPMS=“SM”<CR>(SM表示将短消息存放在SIM卡中)。
(4)设置短信到达通知AT+CNMI=1,1,0,0,1<CR>。此命令可使模块在短消息到达后向单片机发送指令<CR>+CMTI:“SM”,INDEX(信息存储位置)<CR>。
系统操作过程中,单片机通过AT命令控制TC35i模块接收或发送短消息。命令格式如下:
(1)读取短消息指令AT+CMGR=INDEX<CR>。
(2)发送短消息指令AT+CMGS=<length><CR>。
(3)删除短消息指令AT+CMGD=INDEX<CR>。
(4)SIM卡状态查询命令AT^SCKS。
接收和发送的短消息均以PDU串的数据形式被单片机处理,PDU串由数字“0”~“9”和字母“A”~“F”组成,是十六进制数或者BCD码十进制数。PDU串不仅包含可显示的消息本身,还包含很多其他信息,如SMS服务中心号码、目标号码、回复号码、编码方式和服务时间等。发送和接收的PDU串结构不完全相同。下面用2个实例说明PDU串的结构和编排方式。