首先分析了CDMA 授时信号用于单片机的可行性及其准确性,同时给出了总体的硬件、软件设计方案。
通过制作实物,较好地达到了设计的目的。
1 CDMA 授时信号方法与应用
1.1 CDMA授时信号的接收
CDMA 无线通信技术的关键在于精准的时钟标准,而世界上大多数精确的授时标准都使用GPS 时钟进行授时。CDMA 基站在获取GPS 授时信号后将其搭载在CDMA 频段上发射出去,这也是CDMA 手机无时间调整选项的原因。AnyData 公司的DTGS800 CDMA 模块是一款用于CDMA 研发的实验模块,可以执行AT CDMA 指令。通过使用此模块即可以实现CDMA 授时信号的接收。
1.2 CDMA 模块与单片机的通信
DTGS 800 CDMA 模块可使用标准的RS 232 电平信号,这样就可以实现单片机与CDMA 模块的数据通信。单片机通过发出AT + TIME? 指令询问CDMA 模块当前时间,CDMA 模块在接收到此信号并且有网络信号的情况下就可以返回给单片机以时间、日期、星期等信息,从而实现授时信号的获取。
其计时精度经过在线实验,与国家天文授时台提供的北京时间一致,误差不超过1s/ h。
1.3 授时信号的分析与应用
CDMA 模块传回的时间信号为标准的ASCII码,通过编程很容易实现信息的分析与处理。单片机将分析处理后的时间信息授给DS1302 时钟芯片,DS1302 接收到初始的时间后开始计时同时将时间实时地通过串口传回单片机以供外部设备使用。
2 系统硬件设计
2.1 系统功能模块设计
2. 1. 1 CDMA 授时模块设计
DTGS 800 CDMA 模块是AnyData 公司的CDMA模块中同类型产品中体积最小,速度最快,功能最齐全的模块,可成功用于本设计中。主要特点有: 标准的RS 232C 接口、工作频段800 MHz、数据传输率高达153 kbps、可通过AT 命令进行远程控制、外部重启功能等。DTGS 800 CDMA 模块典型应用结构如图1 所示。
图1 DTGS 800 典型应用示意图
DTGS 800 CDMA 模块主要的接口有: 通用异步串行口UART、通用I/O 口GPIO、编解码器接口CODEC、用户接口User Interface、PM 接口。详细介绍如下:
①通用异步串行口UART,串行数据的通信符合标准RS 232 接口协议。UART2 除了作为串行口外,还可以做用户识别模块(UIM) 卡接口;
②通用I/O 口GPIO 可配置成输入中断源。此外,一些GPIO 引脚也可用于输出控制引脚;
③编解码器接口CODEC。模拟音频接口电路,可支持会话及音频放大,用于耳机输入,*和辅助音频输出;
④PM 接口具有外部硬件复位控制和掉电存储功能。有2 种方式可以重启模块。第1 种方法是:发送AT+ RESET 命令到主处理器; 第2 种方法是:凭借外部硬件复位。DTGS 800 CDMA 模块还具有掉电存储功能。在掉电之前,会发送掉电信息AT+POWEROFF 命令到CDMA 基站,以使其存储能力最长可保持12 s;
⑤用户接口User Interface 包括5* 6 的键盘接口和8 / 16 位并行LCD 显示接口。
2. 1. 2 DS1302 计时模块设计
DS1302 时钟芯片是DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,附加31 字节静态RAM,采用SPI 三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31 天时可以自动调整,且具有闰年补偿功能。系统的主要计时功能由此模块完成,当按下人工授时按键或系统自动查询时间后,可以将授时的精确时间信息写入此芯片中,由此芯片继续计时。与单片机连接电原理图如图2 所示。
图2 ATmega16 与DS1302 连接电原理图
2.2 系统总体硬件设计
系统以Atmega16 单片机最小系统作为处理核心,以DTGS 800 CDMA 模块作为授时信号源,以DS1302 时钟芯片作为辅助计时模块。
系统开机后,单片机首先查询CDMA 模块的信号情况,当确认CDMA 信号存在后,发出查询时间指令并确认返回时间信息,接着将获取得时间信息进行分析处理并初始化DS1302 时钟芯片,最后将时间信息通过串口发给外部设备。
采用ATmega16 作为中央处理器是因为其具有2 个串口通信端口以满足系统的数据传输需要。使用DS1302时钟芯片作为为系统的主计时芯片,这样就可以使DTGS 800 CDMA 模块处于待机状态从而达到减小系统的功耗的目的。键盘按键主要完成系统复位、人工授时、手动调整时间等功能。系统组成如图3 所示。
图3 系统硬件组成框图
3 系统软件设计
系统开机后,各模块进行初始化。ATmega16 打开串口向DTGS 800 CDMA 模块发出查询网络信号指令“ AT+ CAD?”同时开启键盘按键I/O 中断,当查询返回值为% OK&即网络可用时,再发出时间查询指令“AT + TIME?”,否则将继续查询网络信号情况。
DTGS 800 CDMA 模块收到“ AT+ TIME?”查询指令后向单片机返回时间信息,单片机对时间信息进行分析处理并将处理后的时间信息通过SPI 通信对DS1302 时钟芯片进行初始化时间设置,此时系统就以DS1302 时钟芯片作为系统的主计时器并由单片机读取其时间信息,再由单片机通过串口将时间信息发给外部设备。系统每小时进行一次自动授时也可以通过获取外部中断进行人工授时。
软件流程如图4所示。
图4 软件设计流程图
4 结束语
针对传统的授时源室内信号差、成本高等问题,对CDMA 无线通信技术在自动授时上的应用进行了研究,采用Atmega16 单片机设计开发了自动授时源,并成功运用到万年历、电子时钟等系统中,实践证明了本设计方案合理可行,能满足一般的计时系统对时间的精确性和实时性的要求。该设计具有室内信号好、自动智能授时、低成本、低功耗等特点,有一定的市场竞争力。