1 控制器结构总体设计
系统以C8051F330D为主控芯片,供电范围为2.7~3.6 V,集成有24.54 MHz可±2%的精度调节的振荡器,同时内置8k Flash存储器和768字节的数据存储器不需外扩存储芯片,可方便地构成单片机最小系统。系统结构如图1所示。
单片机读取E531数据从而获得标准的格林威治时间,将格林威治时间加上八小时即得到标准的北京时间。用该时间对DS1302实时时钟芯片校时,这样DS1302的时钟始终不会偏离标准北京时间。当系统电源停止时DS1302利用备用电源在低功耗下计时,一旦系统上电DS1302会得到新的校时信息,从而保证了时间的连续性和准确性。打铃驱动部分采用继电器输出,这样可以适应不同的电铃电源接口。
2 硬件结构设计
2.1 系统电源设计
考虑到打铃器的使用方便,系统电源由交流220 V供电,内部通过开关电源得到DC5V电源。系统中打铃控制继电器由DC5V供电,C8051F 330D单片机、DS1302和E531模块均为3.3 V电源。电路中采用低压差线性稳压芯片AS1117—33CX作为电源转换模块,其电路如图2所示。输入DC5V电压输出直流3.3 V最大电流负载为800 mA,其内部主要由启动、偏置和过热过流保护电路以及功率管及其驱动电路组成。当系统电流大于1.4 A或芯片温度大于140℃时电源将自动进行过流和过热保护可以保证后级芯片和电路的安全。
2.2 控制器时间基准电路设计
控制器时间基准主要由GPS接收模块和时钟芯片DS1302两部分电路组成。GPS即全球定位系统,主要由空间部分、控制部分和用户部分组成。用户部分是各种定位工具的主要构成核心也就是常说的GPS接收模块。按照接收模块的不同用途主要分为测地型型接收模块、导航型接收模块和定时型接接收模块。在本控制器中采用GPS接收模块E531用作定时型方式。E531为12通道的GPS接收模块,可以同时跟踪多达12颗GPS卫星;它具有两个CMOS电气特性的串行接口,波特率可由软件设置为4 800、9 600、19 200等;串口0输入输出为NMEA0183协议的ASCII语句,串口1为二进制协议。E531的接口定义如图3所示,单片机仅需与其中的串口0的TX0、RX0、复位和硬件唤醒4根连线即可。
[page]
DS1302是一款涓流充电时钟芯片,包括实时时钟/日历和31字节的静态RAM。经过简单的同步串行数据接口和单片机通信,提供秒、分、时、日、周、月和年信息,对于闰年的天数和月天数可自动进行调整。掉电时可采用备用电池在功率小于1 mW的情况下工作。DS1302的VCC1和VCC2作为芯片的电源供电引脚,VCC2接系统的3.3 V电源,VCC1接备用充电电池,在正常工作时通过设置DS1302的控制字在正常工作时可以对备用电池进行充电。时间基准电路如图4所示。
设置单片机的交叉开关XBR1的值为0x40将XBARE位置1使能交叉开关,并设置交叉开关XBR0的值为0x01将单片机串口引脚TX0和RX0配置为P0.4与P0.5管脚。P0.4和P0.5分别连接到E531模块串口0的RX0和TX0进行通信。单片机P1.1,P1.2作为E531复位和硬件唤醒控制。DS13 02采用32.768kHz晶振作为独立定时基准。它的SCLK、I/O和/RST引脚分别连接到单片机P0.6、P0.7和P1.0管脚与之实现同步串行通信。
2.3 系统键盘显示部分结构设计
在满足需求的同时为尽量保证打铃控制器的结构简洁,打铃控制器设计了4个按键和一个液晶显示屏以实现人机接口。其中KEY1为数字按键,每按下一次当前光标的数字值加一,在数字‘0’和‘9’之间循环设置。KEY2键为光标移动键,选择控制器显示界面中的不同菜单进行设置或浏览。KEY3键为确认键当光标移动到一个菜单时或数字修改完成后按下确认键可保存该次设置和选择。KEY4键为‘返回/取消’功能键。液晶显示屏采用LCM128645采用串行方式的数据接口与单片机仅需3根线连接即可。
2.4 系统原理图设计
按照系统原理框图形成如图5所示的原理图。
当系统时间和设置的打铃时间相等时单片机P1.3输出高电平,通过9013的放大驱动使继电器K1线圈动作,其常开接点NO和COM断吸合(同时其常闭接点NC和COM端断开)控制外部电铃电源从而响铃。
3 软件设计
系统软件主要包括有时钟同步、打铃控制和显示键盘程序等几部分。时钟同步程序是单片机通过串口读取E531模块的实时信息,在信息有效地状态下提取当前的格林威治时间转换为北京时间后对DS1302时间进行校正。单片机和E531的通信采用NMEA0183协议中的RMC协议进行通信,波特率设置为9 600。因此单片机上电后对E531进行通信格式配置,协议格式为:“$PUNV,CONFIG,00,CM,00,1000,BPS,MASK*3 4”。该指令中$PUNV和CONFIG为指令码,固定不变。CM=0000表示采用NMEA0183协议,CM=0101则表示采用UBP协议。BPS为串口的波特率取值为9 600。GPS输出的信息数据和对应的代码如下所示:
GGA—01,GL—02,GSA—04,GSV—08,RMC—10,VTG—20,ZDA—40,DTM—80。MASK是要求GPS模块输出信息的代码和,比如要求GPS模块输出GGA和RMC信息则MASK值为01+10=11,本设计中主要为了读取标准时间和日期需要配置GPS输出RMC信息所以MASK取值为10。因此配置指令为:“$PUNV,CONFIG,00,0000,00,1000,9600,10*34”。
[page]
当E531捕捉到有效卫星信号后则主动通过串口0发出RMC信息,格式为:“$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
在配置好信息输出后,E531将每秒输出一次数据,数据信息以‘,’为区分符。当单片机收到一帧完整的RMC数据后,根据数据中<2>的内容判断定位是否有效,当定位有效单片机读取<1>和<10>得到时间和日期信息。根据系统各部分功能得到如图6所示程序流程图。
当获得有效格林威治时间后,对其进行加八小时调整,就得到北京时间然后对本地DS1302时钟芯片校时。在获得标准时间后读取单片机内设置的打铃时间判断是否和打铃时间相等若相等则进行打铃控制。
4 结束语
采用GPS模块E531以单片机最小系统为核心实现了一款应用灵活、操作方便、时间准确的打铃控制器。该控制器提供了打铃系统常用的接点接口因此在打铃电路不变的情况下可以直接替代原有的控制器。通过实际测试打铃控制器和北京时间的绝对误差小于100ms,该误差主要是由于GPS信息的读取以及单片机对时间转换和处理的时延所造成,对于一般的应用场合已经完全满足要求。
上一篇:城镇民用燃气安全联锁设计
下一篇:空调系统传感器故障诊断方法
推荐阅读最新更新时间:2024-05-02 21:57
- 热门资源推荐
- 热门放大器推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况