引言
物联网应用中,网络通信是必不可少的。任何本地数据,存放在本地而不接入互联网中进行数据处理与分析,则本地数据将失去意义。然而,多数的DTU(Data Transfer Unit,数据传输单元)没有3G通信功能,只能通过RJ45网口进行数据传输。此外,也很少有考虑到预留USB接口,以完成特定需求下的扩展,如U盘存储功能、WIFI无线网卡和视频接口等。故在3G网络和以太网非常普及的今天,研究新型DTU有着非常重要的意义。
1 系统框图
1.1 应用框图
DTU应用框架图如图1所示,DTU与节点C通过有线低速的方式通信,最终由DTU汇总数据,向业务平台服务器发送。节点C上传的数据称为业务数据,DTU只负责传输,不做任何处理;而发往监控中心的数据称为控制数据,主要报告自身的运行状态,与此同时,控制中心也可以对DTU下控制指令,让它执行如下线、重新登录和重启DTU等命令,达到监控的效果。
图1 DTU应用框架图
1.2 DTU结构图
DTU结构图如图2所示,本次设计采用Atmel公司的AT91SAM9260,该处理器是ARM926EJS内核的工业级微处理器[1],有大量丰富的外设接口,是一款经典的ARM9处理器,能够满足DTU的处理需求。尤其重要的是,它支持Linux操作系统,为整套DTU的稳定性提供了保障,提高了开发的便捷性。
图2 DTU结构图
串口数据接口为工业中常用的RS232与RS485接口,是业务数据的来源。而网络接口则是常用RJ45接口和3G网络接口,3G网络选用中国电信的EVDO网络,速度快、稳定性好,可以满足DTU不同场合的应用。为了满足扩展的需求,还预留了USB接口、话筒与听筒接口,可以一键拨打电话。
为了DTU可以更加完美地运行Linux操作系统,外接SDRAM和Flash芯片,保证足够的内存和存储空间。
2 硬件设计
图3 3G模块硬件电路图
图3为3G模块硬件连接图,本设计采用的是中兴MC8630模块,该模块支持中国电信的EVDO网络。
UIM_CLK、UIM_DATA和UIM_RST分别与UIM卡的对应引脚连接。本电路采取灵活方式控制模块的开关,R1为0 Ω电阻,如果不焊接该电阻,在关闭状态下向ON/OFF引脚输出一个持续1.5~2 s 的低电平脉冲,即可开启模块。如果在运行状态下收到这样的脉冲,则模块关闭;如果接上R1,模块则会自动开启,即使通过ON/OFF引脚关机,关机之后模块仍然会自动开启[2]。大多数情况下,DTU运作的时候,模块都需要运作,故实际应用中焊接上R1。
MC8630与芯片采用USB通信方式,以保证3G网络速度不受限制,故模块的USB_D和USB_D+引脚连接AT91SAM9260的USB+和USB-,为了保证USB的正常工作,需在VBUS引脚加上5 V的电压。
为了与外界更好地交互,MC8630模块留出一个控制LED的引脚——SIG_LED,当模块上电正常工作之后,该引脚会在3 s左右翻转一次电平,配合LED的电路实现闪烁;而当模块拨号上网发送数据的时候,翻转频率会变为1 s,所以LED是非常好的交互接口。为了保护该引脚,使用NPN型三极管来辅助驱动LED,防止LED灯电流过大损伤模块。
3 软件设计
3.1 M2M协议介绍
M2M(MachinetoMachine/Man)是一种以机器智能交互为核心的、网络化的行业应用与服务。它通过在机器内部嵌入通信模块,以网络通信为接入手段,为客户提供综合的信息化解决方案,从而满足客户多方面的信息化需求[3]。
中国电信的MDMP(M2M协议)是一个非常庞大而且复杂的协议,它的主要特点如下:
① 终端号与IMSI号唯一绑定:每个终端通过唯一的M2M卡登陆M2M控制平台。
② 心跳机制:周期性地向平台发送心跳消息,告知平台终端的连接状态。
3.2 系统程序
由于AT91SAM9260可以完美支持Linux操作系统,故为了DTU更加稳定运行,也为了降低开发系统难度,增加调试的便捷性,DTU运行内核版本为2.6的Linux操作系统,2.6内核的Linux系统经过长时间的应用,其稳定性得到了公众的认可。
系统程序框图如图4所示。DTU系统程序分为4大部分:协议相关部分(M2M协议)、协议无关部分(操作系统相关操作)、公共操作和协议无关部分调用接口。为了使得M2M协议可以在不同的操作系统中使用,因此将应用程序分为两部分主体:协议相关部分与协议无关部分。两者完全通过消息队列交互,只有非常少的交集,因此程序高内聚,低耦合。
图4 系统程序框图
操作系统相关操作主要包括MC8630模块的操作、RS232和RS485的串口操作,不管是从MC8630传入的网络数据还是从串口进入的业务数据,都通过MDMP消息队列传递给M2M协议,一切解析过程都交给M2M协议。M2M协议解析完之后,若想控制MC8630模块,则将消息传给CDMA消息队列;若想控制RS232和RS485相关串口,则将消息传递LOCAL消息队列。各部分收到消息之后,根据分析结果,执行动作。
如果所有的操作都通过消息队列,那么程序的灵活性会大大降低,所以对于一些简单的操作,则根据需求提供少量的接口,以供协议相关部分直接调用,提高执行效率。
4 测试
中国电信M2M平台最新网址为http://58.215.16.142:88/m2m_ec,其M2M协议的服务端口为15695,使用UDP协议通信。
M2M平台的最大特点是“机卡绑定”机制,现有测试卡的IMSI号为460030741010145,登陆M2M平台后查得其所对应的终端序列号为00EE0000000100000009,故手动修改DTU终端号,使得可以登录此平台。
如图5所示,终端登陆成功,则可以通过此平台页面,看到终端的其他信息,同时通过其他控件按钮,可以执行控制DTU的指令。
图5 终端登陆成功界面
结语
新型DTU不仅可以通过RJ45网口传送数据,也可以通过3G网络与网络交互。此外,它的USB接口有相当灵活的扩展性,整套系统稳定、实用、在未来,相信会有更广泛的应用和更好的改进。