移动数据的led显示屏构成原理与仿真技术
基于移动数据的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”
(该号码因地区不同而设置不同)。
(2)设置短消息格式at+cmgf=0(0代表pdu格式)。
(3)设置短消息存放的位置at+cpms=“sm”(sm表示将短消息存放在sim卡中)。
(4)设置短信到达通知at+cnmi=1,1,0,0,1。此命令可使模块在短消息到达后向单片机发送指令+cmti:“sm”,index(信息存储位置)。
系统操作过程中,单片机通过at命令控制tc35i模块接收或发送短消息。命令格式如下:
(1)读取短消息指令at+cmgr=index。
(2)发送短消息指令at+cmgs=<length><cr>。
(3)删除短消息指令at+cmgd=index。
(4)sim卡状态查询命令at^scks。
接收和发送的短消息均以pdu串的数据形式被单片机处理,pdu串由数字“0”~“9”和字母“a”~“f”组成,是十六进制数或者bcd码十进制数。pdu串不仅包含可显示的消息本身,还包含很多其他信息,如sms服务中心号码、目标号码、回复号码、编码方式和服务时间等。发送和接收的pdu串结构不完全相同。下面用2个实例说明pdu串的结构和编排方式。
例1:接收。smsc号码是+8613800-
250500,对方号码是13851872468,消息内容是“你好!”。单片机从tc35模块读取到的pdu串是——08 91 68 31 08 20 05 05 f0 84 0d 91 68 31 58 81 27 64 f8 00 08 30 30 21 80 63 54 80 06 4f 60 59 7d 00 21。
例2:发送。smsc号码是+8613800-
250500,对方号码是13851872468,消息内容是“你好!”。单片机向tc35模块发出的pdu串是——08 91 68 31 08 20 05 05 f0 11 00 0d 91 68 31 58 81 27 64 f8 00 08 00 06 4f 60 59 7d 00 21。
3.2 led显示控制程序
led的动态扫描功能通过使用单片机的定时器0中断实现。定时器0计数初值的设定满足每秒中断1 000次以上,每次中断扫描显示一行,这样每行在每秒钟内至少被扫描60次以上。根据人眼的视觉暂留效应,达到了较理想的显示效果。
定时器0中断服务程序:
void int0(void) interrupt 1
{
tr0=0; //关定时器t1
tl0=0x80; //设置初值的低8位
th0=0xff; //设置初值的高8位
tr0=1; //开定时器t1
if(i<16) //i为扫描的行号,取值0~15,
//依次扫描1~16行
{
p1_5=0; //关hc595锁存
while(z0) //假串口p1.7,输出下16行
//的显示数据b
p1_7=1;
else
p1_7=0;
p1_4=1; //将p1.4口线置高,产生移位
//脉冲shclk
au=au<<1;
j++;
}
j=0;
au=0x01;
z++;
}
k=0;
z=0;
}
p1=(p1&0xf0)|i; //通过p1.0~p1.3产生4位
//行扫描信号abcd
p1_5=1; //开595锁存
i++;
if(i==16) i=0;
}
4 proteus仿真实现
本设计结合使用keil μvision2和proteus软件实现系统的软件设计和硬件仿真调试。
proteus软件可以仿真包括51系列在内的多种常用单片机及其外围电路(如lcd、ram、rom、键盘、马达、led等),是目前最好的模拟单片机外围器件的工具。仿真时只需在proteus软件中画好单片机的外围控制及led显示驱动电路,然后在单片机芯片的属性中设置好晶振频率,将用keil c51编写的源程序生成的.hex文件保存到芯片中,就可以仿真调试了[4,5]。仿真过程中如有硬件问题可在proteus isis中直接修改,如有软件问题可在keil μvision2中直接修改。通过keil与proteus的联合调试就可以得到满意的结果,避免了一开始就直接制作实物,从而缩短了系统的开发周期,降低了开发调试成本。
在proteus软件中没有gsm模块tc35i,但可以利用proteus提供的串口仿真功能来实现单片机与tc35i模块通信的仿真调试。具体电路如图4所示。单片机的串口(p3.0、p3.1脚)通过串行接口器件compim连接tc35i模块(图中未画出tc35i模块)。首先在仿真主机上利用虚拟串口软件vspdxp(virtual serial port driver xp)设置出2个相互连接的虚拟串口com3和com4,再启动 “串口调试助手”软件,将其中的串口设置为com4,波特率选择为4 800 b/s,然后将proteus仿真电路中的compim器件的串口设置为com3,波特率也选择为4 800 b/s。必须注意com3和com4中波特率的设置值与单片机软件中的波特率设置值要相同,在此都设定为4 800 b/s,最后运行proteus仿真,此时就可以通过“串口调试助手”软件模拟tc35i输出的数据格式向单片机发出数据了。例如,正常情况下如果从“串口调试助手”发送16进制数据串“08 91 68 31 08 20 05 05 f0 84 0d 91 68 31 58 81 27 64 f8 00 08 30 30 21 80 63 54 80 06 4f 60 59 7d 00 21”,仿真电路中的led屏幕将显示“你好!”。而单片机发给tc35i模块的at命令串将在“串口调试助手”的接收窗口里实时显示出来。如果不正确,则可以借助proteus软件中的虚拟串口终端等虚拟仪器和图表进行代码级跟踪调试。
将仿真成功的电路稍加修改后,制作出电路实物,将程序固化到实物的单片机芯片中,得到的实物运行结果与proteus的仿真结果完全一致。
基于移动数据的led显示屏,使用移动通信网络实时更新led显示屏的内容,避免了原有系统铺设线路或建造专用无线收发装置的麻烦,有效降低了系统成本,对远离办公场所、特别是室外led显示屏幕的设计提供了一种新思路。同时,在开发此系统过程中,充分利用嵌入式系统软硬件设计仿真平台proteus软件的强大功能,进行系统虚拟开发,成功后再进行实际制作,大大提高了开发效率,降低了开发成本,对单片机及嵌入式系统的开发具有实用意义。
参考文献
[1] 诸昌钤.led显示屏系统原理及工程技术[m].成都:电子科技大学出版社,2002.
[2] 张明波.基于单片机的点阵led显示系统的设计[j].微计算机信息,2007,2(2):85-86.
[3] siemens tc35i terminal user guide[db/0l].http://www.siemens.com/wm.
[4] 倪升跃.proteus——一种集单片机模拟和spice分析于一身的软件[j].电子世界,2004(12):38-39.
[5] 黄夙绚.proteus与ultra edit、keil的联合使用[j].无线电,2005(7):36-37.
西安交通大学微电子校友论坛在苏州高新区成功举办
如何正确操作电子万能试验机进行手机外屏玻璃四点弯曲测试?步骤讲解
基本放大电路的讲解-1
中科融合国产自主芯片解决“卡脖子”难题
车和家收购力帆汽车 未来规划早已明确
移动数据的LED显示屏构成原理与仿真技术
未来我国的机动车保有量将持续增加,新能源车辆的占比也将进一步提高
机器视觉究竟给工业机器人一双怎么样的“慧眼”
我国装载机销售市场旺盛,装载机产销率超80%
魅族PRO7什么时候上市?魅族PRO7最新消息:三星Exynos 8895样片送到,魅族PRO7即将现世
电梯视频对讲机的工作原理和优势|深圳梯云物联科技有限公司
安规电容出现后对电子产品有哪些影响呢?
华为荣耀9什么时候上市最新消息:OPPOR11穷追不舍,小米6先发制人!华为荣耀8升级版荣耀9能生存吗?
用于自主系统设计的激光雷达:对象分类还是对象检测
良好的数字模拟基础-Well Grounded, Digit
美国着力研发能几秒钟充好电的超级电池
带你了解最热门的三款FRAM产品
四大生物识别技术 巨头为何看好脸部识别?
如何从GCC源码学编译原理
世界未必需要比特币,背后的区块链才是价值所在