基于C8051F02X的无线数据传输系统
扫描二维码
随时随地手机看文章
本文介绍的一种基于C8051F02X的无线数据传输系统应用了计算机技术和GSM网络通信技术,是一种新型无线通信系统。该系统依托GSM网络,采用短消息进行数据通信,即在传统的单片机数据采集系统中增加支持短消息、数据通信等业务的GPRS模块,并为其分配一个独立的SIM卡,结合单片机系统通过串行通信接口,实现了数据的远程无线传输。
这里介绍的数据传输系统是监控系统中重要的一个环节,是一个既有监控功能,又有强大管理功能的完善系统,由主控端系统、GSM通信网络及远程监控终端系统组成。监控终端通过GSM网络和主控端监控中心进行双向的信息传输。它将采集到的数据信息送到监控中心,同时接收监控中心的操作命令,对受控设备实施相应的操作。整个系统实现了以下的主要功能:
数据采集 通过串口接收数据采集器采集的现场数据。
定时发送数据 系统定时(0:OO,8:00,16:00)将实时数据以短信息的方式通过GSM网络发送给主控端。如果在规定的时间内主控端没有收到短信息,主控端将会向系统返回信息,系统收到信息后重发数据。
数据远程查询 操作人员可随时在值班室操作主控端软件,发送命令查询远端数据采集器采集的当前数据,系统接收到该命令后即将采集到的当前数据发送给主控端。
远程控制 操作人员可操作主控端软件向系统发送用于监控被控对象的参数值,系统接收到这些参数值后通过串口传输给数据采集器,从而实现远程控制。
数据记录 主控端软件将接收到的数据储存在数据库中,以备日后检索查看。
2 系统的硬件结构
图1为采用的无线数据传输系统的硬件连接图。
由图1可以看到,系统由控制模块和数据收发模块两部分组成。
控制模块主要由C8051F021单片机和DSl2887时钟芯片组成,主要是控制数据收发模块发送数据的时间,同时也可以通过串口与上位机相连,通过上位机控制数据采集器的相关参数。
数据收发模块主要由C8051F020单片机,数据采集器以及GPRS模块三部分组成。数据采集器将采集到的数据通过串口0发送给单片机,单片机对接收的数据进行处理后,通过串口1发送相应的AT指令给GPRS模块,然后GPRS模块将数据以短信息的形式通过GSM网络发送到接收端。
控制模块和数据收发模块之间通过SPIO进行通信,其中C8051F021为主机,C8051F020为从机。总控模块主要向数据收发模块发送两类控制信息:
(1)当到了采集数据的时刻,向数据收发模块发送一个字符‘S’,数据收发模块收到该信息以后就将该时刻接收的数据通过GPRS模块发送给远程终端;
(2)需要对数据采集器的相关参数进行修改时,将修改好的参数以一定的格式发送给数据收发模块,数据收发模块判断之后通过串口O将该信息发送给数据采集器。2.1 C8051F02X单片机
美国Cygnal公司的系统型MCU芯片C8051F020是完全集成的混合信号片上系统型MCU芯片,是真正能独立工作的片上系统(SoC)。与普通单片机相比较,它具有高速、功能强,外设及功能部件齐全,扩展芯片少,升级维护容易等优点,而其具有的片内调试功能,设计人员可通过JTAG接口进行非侵入式、全速的在系统调试,是复杂系统高效、高可靠性的数字信号处理芯片。
本系统设计选用此款单片机作为MCU的最主要原因,一方面是由于CIP-51与MCS-51指令完全兼容,可使用标准的8051的汇编器、编译器及软件包进行软件开发,同时也方便使用人员进行软件移植;另一方面可充分利用其丰富的通用数字端口资源,而不用地址/数据线复用,其外围电路的设计也可以大大简化。C8051F02X丰富的端口资源及其分配的灵活性通过使用优先权交叉开关译码器实现,而且所有引脚都采用5 V电压,且都可以配置为漏极开路或推挽输出方式和弱上拉。
2.2 DSl2887时钟芯片
DSl2887是DALLAS公司推出的一款时钟芯片。该芯片内置晶振及电池,无需担心掉电停走问题,另外还提供了114 B通用非易失RAM,同时可完成闰年补偿和夏令时自动调整功能,支持Motorola和IN2TEL两种总线时序。这些优点使得该芯片被广泛应用在工业控制领域中。时钟芯片与单片机之间的电路连接如图2所示。
2.3 MC35i模块
MC35i是西门子公司的第一款GPRS模块,它不仅支持GPRS技术,还具有TC35i的全部功能:可以在GSM网上进行数据、语音、短消息以及传真的服务;采用标准的工业接口,易于集成。MC35i支持GSM900和GSMl800双频网络,内置SlM卡阅读器以及支持即插即用的特性,可以把它作为通用的双频带模块,用来简单、快速地传送数据。
MC35i有40个引脚,通过一个零阻力插座(Zero Insertion Force,ZIF)连接器引出。这40个引脚可以划分为五类,即电源、数据输入/输出、SIM卡、音频接口和控制。其中第18,19引脚分别作为输入/输出引脚与C8051F020的串口1相连;C8051F020通过向MC35i的第18引脚发送AT命令控制数据传输,同时根据第19引脚的返回数据来判断是否有新短信并读取短信内容。第15引脚为点火线IGT(Ignition),是控制引脚,与C8051F020的P1.5引脚相连;当MC35i通电后必须给IGT一个大于100 ms的低电平,模块才启动。
3 系统的软件设计
本设计分为主机和从机两个部分,主机部分主要是实现对数据发送时间以及数据采集器参数的控制,从机部分主要是实现数据的接收和发送。
3.1 通信协议的设置
主机与从机之间要实现相互通信,首先必须规定用以传输数据的协议。一般来说,主机发送命令和配置信息给从机,而从机则向主机发送反馈信息。
本系统主要实现的是主机对从机数据发送时间的控制,当主机响应时钟芯片DSl2887的中断请求进入INTO中断服务程序时,主机向从机发送一个字符‘s’,从机接收到该指令后就开始发送数据。同时数据收发模块与接收终端之间同样需要通信协议以保证传输的可靠性。当接收终端在一定的时间内(比如5 min)没有收到数据时,向数据收发模块发送一条内容为‘N’的短信息,示意重发数据。数据收发模块收到短信息后,提取短信息内容并判断是否为‘N’,是则重发数据。从机与数据采集器之间的通信也规定了相应的协议,每一组数据前都有相应的起始位和长度位,从机通过判断每一组数据的起始位和长度位以保证数据接收的正确性。
3.2 主机部分的软件设计
在主机部分,关键点在于如何对时钟芯片进行初始化。初始化过程中,关闭周期性中断和时钟更新结束中断,而将时间性中断设为每整点一次,每次产生中断后,读取小时值,判断是否能被8整除,如能整除,说明该时刻为O:00,8:00或16:00,则向从机发送控制信息‘S’,通知数据收发模块发送数据。主机的INTO中断服务程序流程图如图3所示。
在从机部分,通过串口0接收数据采集器的数据并不断刷新,当从机接收到主机发送的指令‘S’时,通过串口1发送相应的AT指令给GPRS模块,将当前数据以短信息的形式发送到远程终端。由于GPRS只能发送字符数据,如果发送的数据大于127将发送失败,所以将每个数据都转换为相应的字符发送,比如十六进制数9F,就转换为字符9和F再发送,终端接收到以后如需要可再转换为十六进制数9F。
从机要实现的另一项功能是数据重发,该功能是在串口1中断服务程序中实现的。因此从机程序中有串口0、串口1、SPIO三个中断服务程序,其中串口O中断的优先级别最高,其次是SPIO中断,串口1中断优先级别最低。而串口0中断几乎是在不停地发生着,因此必须将串口1中断和SPIO中断的中断优先级设置位置1(默认为0),使CPU优先响应串口1中断和SPIO中断,否则串口1中断和SPIO中断的中断请求几乎得不到响应。
串口0中断服务程序流程图如图4所示。
4 结 语
本系统采用工业级芯片C8051F02X系列单片机结合GSM网络实现数据的无线传输,系统稳定、可靠性高,在很多应用领域,比如水文监测、地质勘探等,都可以使用本系统通过无线传输手段完成远程数据采集和对采集数据的实时传输。