首页 接线图文章正文

基于无线和CDMA的活动气象站数传终端设计

接线图 2023年12月31日 18:25 171 admin

引言

气象数据的实时采集,在渔业、林业、航空、农业和国防等领域有着广泛的应用。活动气象站由于工作的环境复杂多变,与总控站点之间无法通过有线方式进行可靠的实时传输,而单一无线通信手段无法满足那些对数据可靠性和实时性要求较高的应用。因此,利用目前多种成熟的无线通信技术,设计一个能够满足复杂通信环境的多信道无线数传终端,具有很高的实用价值。

1硬件设计

系统结构框图如图1所示。整个终端以C8051F022为核心进行设计,C8051F022内置的两个UART端口通过电平转换作为RS232和RS485通信口,与气象数据采集设备通信;以SC16C2550B芯片作为MODEM串口扩展,连接CDMA模块DTM228C和无线数传模块SRWF1028,实现双信道的无线通信。电源系统负责将输入的直流12 V转化为核心电压3.3 V、无线数传模块工作电压5 V,以及CDMA模块工作电压4 V,3路分别稳压以避免无线发射时互相干扰。终端电路还有简单的信号指示、RTC电路以及参数存储功能。

基于无线和CDMA的活动气象站数传终端设计  第1张

图1系统结构框图

1.1主控芯片电路

采用美国Silicon Labs的高速混合信号ISP Flash微控制器C8051F022。该微控制器特点如下[1]:高速、流水线结构的8051兼容内核(可达25 MIPS);4 KB+256字节内部数据RAM,64 KB Flash存储器;8个耐5 V的I/O端口、可同时使用的硬件SMBus、SPI及2个UART串口、5个通用16位计数器/定时器阵列;功耗低(10mA@20MHz),多种节电休眠和停机方式。

1.2串口扩展电路

串口扩展电路如图2所示。由于C8051F022内置的UART口已经分配给气象采集数据设备,所以使用SC16C2550B扩展2个MODEM口,分别连接CDMA模块DTM228C和无线数传模块SRWF1028。SC16C2550B的中断输出是正脉冲形式,所以必须接到C8051F022的外部中断0和1,并配置中断模式为上升沿中断。C8051F022对SC16C2550B的访问通过相应的I/O口线,模拟静态RAM访问时序实现。

基于无线和CDMA的活动气象站数传终端设计  第2张

图2串口扩展电路

1.3无线数传模块电路

无线数传模块选择的是上海桑锐电子SRWF1028无线模块,透明传输,方便定制通信协议;工作在工业频率433 MHz、速率4 800 bps时,配置吸盘天线可以达到3 km,满足工作距离的要求。无线模块的接口采用5 V TTL的逻辑,与3.3 V CMOS的SC16C2550B的串口连接时,需要进行电平转换。无线数传模块电路如图3所示。其中,74LCX244MTC为低电压缓冲器/线与5 V容限输入和输出驱动器。

基于无线和CDMA的活动气象站数传终端设计  第3张

图3无线数传模块电路

1.4CDMA模块电路

CDMA模块电路如图4所示。CDMA模块选用AnyData公司推出的DTM228C模块,体积小,便于集成到用户的系统中。由于它具有内置的TCP/IP协议栈,微控制器可通过AT命令操控模块,使用其内置协议栈实现网络传输,简单方便。DTM228C模块需要工作在数据通信模式,因此MODEM的硬件数据流控线也必须连接。

基于无线和CDMA的活动气象站数传终端设计  第4张

图4CDMA模块电路

2软件设计

数传终端软件采用Keil C51设计,在程序结构上采用实时设计模式中的分层设计模式,并根据单片机系统的特点,将常见的5层体系结构模式简化为3层[2]。在通信类单片机终端产品的软件开发过程中,经常会出现2类变动:

① 接口通信协议的变化,可能是通信帧的格式出现增删,或内部信息数据段的位置发生变化,也可能是协议命令的交互处理定义发生变化;

② 外围的通信模块或微控制器发生硬件变动,导致软件上需要修改单片机底层代码或接口控制代码,但不需要修改上层的协议处理部分。

Keil C51作为使用广泛的51单片机编译器,其编译性能已经达到汇编语言的96%左右的效率,在实时性不是非常严苛的应用中,使用C语言可以提高软件的可移植性。使用C语言一些高级数据抽象所带来的效率上的损失,对于通信类单片机系统可以借助升级微控制器方式来避免。

整个数传终端的软件部分分为3个层次:硬件层、设备层和应用层,如图5所示。上层与下层之间的函数耦合关系是单向的,即下层提供函数供上层函数调用,但不访问上层的函数和变量。

基于无线和CDMA的活动气象站数传终端设计  第5张

图5软件层次结构

对于硬件层的中断函数中需要回调设备层处理代码的情况,可采取回调函数指针变量方式来解决:在硬件层增加一个回调函数变量指针,由设备层代码负责初始化,而中断函数则负责调用,避免发生下层依赖上层代码的情况。这样,在更换了微控制器,或者硬件发生变化而设备没有变化时,只需要修改硬件层的代码,只要函数接口不发生变化,上层代码基本无须改动。

对于绝大多数的单片机外设,不考虑其接口控制细节,就操作特性而言可以抽象为两大类设备:无中断事件设备和有中断事件设备。

无中断事件设备是指设备层的需求只有读和写两种操作的设备,诸如Flash、RAM、RTC芯片等。对于I2C接口的串行Flash,虽然在实现读写字节的控制过程中需要中断,但设备层的需求只有读和写,并不关心其读写实现的细节,因此也要归纳到无中断事件设备中。

有中断事件设备是指诸如RS232、RS485和其他以中断方式通知输入数据的设备。这类设备的实现,除了需要硬件层实现Read/Write函数外,还需要提供一个回调函数指针变量,实现中断事件回调。设备层的代码,主要是封装设备的数据交互和处理的细节。比如通过RS232进行的通信,为了保证数据传输的可靠,通常需要定义一个基于比特流或字节流的通信帧格式。设备层的主要工作就是把比特流或字节流的通信帧转化为无实现细节的通信帧的抽象数据结构,供应用层处理。这样,一旦发生诸如通信帧出现增加或删除某个数据信息段,调整了某个信息段在通信帧比特流或字节流的位置等情况时,可以将主要的变动控制在设备层处理该通信帧的函数处。而应用层的处理由于是依赖抽象后的通信帧数据结构,只需增加或去掉处理一个结构中变量的代码;对于调整位置这种情况,应用层的代码甚至可以不修改。在这个设计模式中,应用层的代码不但已经与硬件和编译器的特性无关,而且与通信的物理实现细节无关,基本上是完全可以移植的代码。

由于在本设计中,CDMA模块和无线数传模块提供的数据信道在实现连接后都是透明通信信道,两个模块的通信协议处理可以合并为一个模块;而且采集气象数据的RS232口和RS485口的通信协议,除去通信物理特性上双工和半双工的差别,对于应用层是相同的,也可以用一个模块实现。这样不仅可以解决代码空间问题,而且有利于提高代码的健壮性。

以CDMA模块DTM228C的通信实现过程为例,说明软件实现的具体方法。DTM228C的访问是通过SC16C2550B来实现的。接收数据会产生中断,而发送数据不需要,被抽象为一个有中断事件的设备。在硬件层,实现3个函数供设备层调用:BYTE readCDMAPort(),writeCDMAPort(BYTE byData)和setCDMAPort(LPFNCALLBACK lpfnOnReceive)。readCDMAPort()和writeCDMAPort()封装通过SC16C2550B访问DTM228C的控制细节,从DTM228C处读取或发送一个字节。setCDMAPort()则用于初始化中断回调指针。在SC16C2550B所占用的、分配给DTM228C的外部中断函数处理中,一旦发现有接收事件,直接通过回调函数指针回调设备层的OnReceive()函数。设备层的DevCDMA模块中实现以下函数:connectDevCDMA()、OnReceive()、parseDevCDMAIns()、composeDevCDMAIns()和sendDevCDMAIns()。connectDevCDMA()函数封装通过AT命令控制CDMA利用内置TCP/IP协议实现网络连接的细节。OnReceive() 函数是中断的回调函数,负责接收字符,判断通信帧格式以及帧数据的完整性处理,在其中调用readCDMAPort()读取接收的一个字节。parseDevCDMAIns()函数将接收字节缓冲区中的通信帧转化为数据结构STruct WIRELESS_PACKET,供应用层处理。当应用层需要通过CDMA模块发送无线数据包WIRELESS_PACKET时,需要先调用composeDevCDMAIns()函数,转化为发送通信帧的字节流后再调用sendDevCDMAIns()发送出去。

结语

本文基于无线数传模块和CDMA模块设计的活动气象站数传终端,在实际环境进行了测试和使用,软件和硬件的各项指标都得到了验证,获得了用户的好评。

版权与免责声明

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

标签: 无线通信 CDMA C8051F022 SC16C2550B

发表评论

接线图网Copyright Your WebSite.Some Rights Reserved. 备案号:桂ICP备2022002688号-2 接线图网版权所有 联系作者QQ:360888349