魏 辉,刘祖鹏
(河南机电高等专科学校,河南 新乡 453000)
目前国内各大城市常见LED(Light-Emitting-Diode)广告发布系统的搭建和信息内容的更新方式,多采用传统技术手段,无论是信息录入、终端管理制作和使用成本高。GSM网络主要提供语音、短消息、数据等多种业务,其SMS短消息通讯方式采用通常的无线GSM短消息模块实现短消息的传输。因此LED广告发布系统上位机和控制终端之间可以通过基于GSM公共网进行数据和相关的命令传送,从而为实现LED的广告发布系统的信息发布方式提供了无线工作的可能。
本系统主要由上位机管理系统和下位机控制终端两部分组成。上位机管理系统主要包括计算机及应用软件、GSM无线通讯模块和数据库系统组成。下位机控制终端包括单片机控制系统和GSM无线通讯模块。上位机管理系统运行在Windows操作系统的PC机上,采用面向对象的开发工具Microsoft Visual C#进行开发,与计算机数据库技术相结合,通过工业级GSM模块以现有的GSM网络为媒介来完成对终端的控制。其系统总体结构图如图1所示。
图1 系统总体结构图
上位机采用微机,GSM通讯模块电源、SIM卡接口电路、Sync引脚指示电路与下位机相同。由于微机串行口为RS-232C标准接口,与通讯模块在接口规范上不一致,因此必须将串行口的输入/输出电平进行转换,目前较为广泛地使用集成电路转换器件。设计中采用MAXIM公司的MAX232串口芯片来实现TTL电平到RS-232C串口电平的转换。[1]上位机通过RS-232C串口与TC35通信口进行控制命令和数据交换,实现异步串行收发功能。MAX809R电源监控芯片与TC35的启动口(15脚)相连,系统上电后Reset引脚产生延时240ms的低电压脉冲,启动TC35。TC35模块与PC机RS-232C串口实现通信的硬件接口电路如图2所示[2]。
根据本系统的特点,本系统的管理模块中的数据库部分选择应用较为广泛的Microsoft Office Access数据库。该数据库软件面向个人用户,应用广泛,操作简单,极为适合本系统的数据管理[3]。
管理系统只能让具有管理权限的用户登录,这就需要将管理员的信息在数据库中保存起来,在每次登录时对用户输入的信息进行核对,若与数据库中的信息相符合,则认为是合法用户,可以使用本系统;否则认为是不合法用户,对登录请求予以拒绝。设计数据库表结构如图3所示。
对发布过的信息必须保存在数据库中,这样用户可以对历史的发送记录进行查询,周期性的可以对发布信息进行统计,使用户对发布的信息有综合的了解同时对发信人的号码和备注进行关联,使管理员看到的不是枯燥的手机号码,而是自定义过后的备注信息。
在实际的应用中,用户往往要对终端信息进行大量的操作,如添加、修改、删除等等。日积月累,对于时间较久的操作往往不能完全回忆,本系统对用户的操作进行了跟踪,让用户在使用时不用再做记录,对于以前的操作可以进行查询及恢复,大大减轻了用户的工作量,突出了人性化设计的思想。
图2 TC35与MAX232的连接图
图3 用户管理模块数据库设计
用Microsoft Visual C#开发串行通信程序有两种方法:一是利用Windows的API函数;另一种是采用通信控件MSComm来实现。利用API函数编写串口通信程序较为复杂,其优点是可实现的功能更丰富、应用面更广、更适合于编写较为复杂的低层次通信程序。MSComm.用户通信控件提供了通过串口发送和接收数据的串行通信能力,它不但包括了Windows API中关于串行通信的16个函数所完成的全部功能,而且开拓了更多的对象属性,方便用户进行设计,满足不同用户的业务需求,可以较容易地解决串口通信问题[4]。
本系统中,利用PC机的串口COM1和下位机TC35进行通信,PC机应用程序设计采用Microsoft Visual C#编写。用Microsoft Visual C#编程时,用控件对串行口进行编程。Microsoft Visual C#采用事件驱动机制,编程时不必考虑程序实际的执行流程。创建图形用户界面时,只需在窗体上放置相关的控件等对象,并加入与对象相应的少量的功能代码,就可以实现界面的交互功能[5]。
MSCOMM通信控件有20多个属性,编程时使用了其中的11种属性。现简单介绍如下:
1)CDHolding属性
CDHolding的值为True时,载波检测线为高电平,表示Modem处于在线状态;否则,载波检测线为低电平,表示Modem处于挂机状态。
2)Comport属性
2.2 暴露方式及部位 暴露方式:锐器伤82名、占68.91%,黏膜暴露17名、占14.29%,皮肤暴露15名、占12.60%,其他5名、占4.20%;暴露部位:手指95名、占79.83%,手臂17名、占14.29%,眼7名、占5.88%。
在使用通信端口之前,必须先设定Comport属性的值。程序中选用PC机的COM1。
3)DSRHolding属性
DSR信号由Modem发送到与之相连的计算机以通知计算机准备处理操作。当DSR信号线处于高电平时,DSRHolding=True;当DSR信号线处于低电平时,DSRHolding=False。
4)InBuferCount属性
该属性在设计阶段不起作用,它返回存放在接收缓冲区中的字符个数。这表示已由Modem接收并已存放在接收缓冲区中的字符数。通过设置InBufer-Count的值为0可以将接收缓冲区清零。从下位机发送来的数据是有一定的格式的,上位机在读取时必须把每一个数据读完整才能保证读数的正确性。因此,在程序中可以通过该属性的值判断Modem缓冲区中的字符数,以确定数据是否完整地传送了过来。若是,则可读取该数,否则还需等待。
5)Handshaking属性
Handshaking属性的取值如表1所示。6)InBuferSize属性
?
InBuferSize表示接收缓冲区的总容,缺省值为1024字节。如果出现溢出错误,可再增大接收缓冲区以匹配传输速度。
其他属性如“Input属性”、“Input Len属性”、“Output属性”、“Port Open属性”、“Setting属性”设置比较简单,这里就不再一一赘述了。
在通信软件中,首先进行初始化。
1)设置MSComm控件的属性值:Comport属性设置为1,即系统利用串口COM1的第一个端口,Settings属性设置为9600,N,8,1,即波特率为 9600,无奇偶校验位8位数据位,1位停止位;
2)Port Open属性设置为True,InputLen属性设置为0,即读入全部字符;
3)Rthreshold属性设置为1,即当串口接受缓冲区达到所设置的字节数1时,将会引发OnComm事件中的接收事件。接收数据时,利用事件驱动的方法,当Rthreshold属性值为1时,MSComm控件的 On-Comm事件发生,将数据读入。
上位机使用MSComm控件与下位机进行串口通信,MSComm控件的Input与Output两个属性,分别对应串行端口的输入与输出操作。上位机接收下位机发采集数据,首先设置好MSComm控件的属性,打开端口,打开“开始”命令按钮,开始监控计算机串口工作情况,当有信息传送到达后,触发OnComm事件,同时Timer控件动作定时读取输入缓冲区内的数据将数据接收。数据接收结束后通过解码函数实现信息的解码。
由于信息发布系统的分散性,使得传统的维护方法工作量明显加大,尤其在更新其显示信息时更是如此。本系统依托覆盖广泛的GSM移动通讯公网提供的短消息业务传输更新数据,无需自行组网,系统运行费用低廉,数据传输可靠、迅速,是比较理想的通讯方式。尽管系统在实际通讯过程中会产生延时等现象,但是通过避开网络繁忙的时间段进行数据传输,或者通过设定更加完善的通讯协议,或者通过增加多个短信模块,用上位机控制多个模块对信息进行同时发布,就可以将发送速度提高。通过上述措施这种现象是可以减少和弥补的。
[1]李朝青.单片机原理及接口技术[M].北京:航空航天大学出版社,1999.
[2]杜清珍,马仙女.多道单片机测温接口电路的设计[J].现代电子技术,1996.(3):7 -9.
[3]袁小兵.基于GSM的数据采集与控制系统[J].工程物理研究院科技年报,2003(1):403 -404.
[4]冯伟,郭旭.煤矿地面监控系统中基于GSM-SMS的数据传输[J].煤炭科学技术,2007,35(10):55 -57.
[5]邬春明.基于 TC35i的小区远程报警系统[J].2007,33(11):129 -132.