www.hj8828.com 3

www.hj8828.com0四 单片机最小系统

一个真正的服务器一般往往不需要连接键盘、显示器或鼠标等外设。而仅仅需要一个性能稳定的操作系统如Linux和一个网卡。诸如鼠标、键盘等外部设备则往往不必要连接。在运行Linux的机器上,通过网络进行远程管理是最好和最方便的解决方法。

分三部分详细介绍下小蛮定位器:设计思路、需求部分、脚本代码解析

单片机STC89C52学习——04 单片机最小系统

汇总:00 单片机STC89C52学习
参考教程:普中科技

单片机最小系统指:
(自己的理解)单片机芯片 + 必要的电路模块,使得单片机可以正常工作

在买服务器时应该确保在开机BIOS中有设定不需要检测键盘的选项。目前市场上大多数主板厂商的BIOS版本都有这样的选项。但是仍然有一些主板认为自己的的服务器将只运行windows,因此一定会在启动时需要一个键盘,因此不推荐使用这种机器作为服务器使用。

第一部分:设计思路

1 电源电路

USB接口供电:接电时,5V电压经滤波电容滤波。电源开关按下时,与VCC相连给单片机系统供电;开关未按下时,5V只在USB处,并通过CH340识别串口。

没有键盘和监视器的计算机非常适合于作为防火墙、web服务器、NFS服务器、邮件服务器的、ADSL网关、DNS服务器的概念等等。而且该机器不一定是功能非常强大的机器。即使一个老的Pentimu100机器,只要拥有足够的内存就可以同时服务数百个客户服务请求。

1,小蛮gps定位器是基于RDA8851平台的小型GPS定位器,单片机看门狗,APP对接时间线APP

2 复位电路

实现复位有两种方式:

  1. 平常情况下的上电复位:VCC —— 电容 —(RST)— 电阻—— GND
    上电后,电阻两端电压接近VCC,RST高电平复位 -> 电容慢慢充电,抢电阻的电 -> 电容两端电压接近VCC,RST低电平停止复位
  2. 按复位键时的按键复位:VCC —— 复位键 —— (RST)
    复位键按下 -> 电路导通,RST高电平复位 -> 复位键弹出 -> RST低电平停止复位

    www.hj8828.com 1

    复位电路

服务器不连接键盘、鼠标和显示器的好处是非常方便,因为服务器将只是一个简单的主机箱,可以放在任何适合的地方。但有时候你可能希望能有一个按键来实现安全的关闭服务器而无需首先远程登录服务器运行shutdown命令来实现关闭机器。也可能你现在就在服务器机房,而最近的工作站离你有100多米远;或者你希望某个没有root密码的普通用户关闭服务器。当然直接关闭电源并不是一个好的想法,因为这样可能导致丢失数据并且在下次启动时需要很长时间的文件系统检测。

2,小蛮gps定位器产品定义的核心是:简单,易用,稳定,应用场景是家长买给孩子用,当孩子不在自己身边上,只要孩子带着小蛮gps定位器,就可以随时随地了解ta的情况;

3 晶振电路

晶振两端接到单片机的XTAL1和XTAL2

www.hj8828.com 2

晶振电路

解决方法是按照本文的方法安装一个很小的、便宜的串口设备实现安全关机。

3,基于应用场景的需要,以APP功能为出发点来看,小蛮gps定位器需要完成几大功能:监听(有语音和数据两种方式供用户选择)、定位(实时定位命令)、事记(或者叫做时间轴,运动状态下固定以30分钟为间隔上报的轨迹点、实时定位点的记录、监听录音的记录、打电话的时间及相应时长、心跳,以及相应每次上报服务器时对应的电池电压);

4 下载电路:写程序必备,将单片机与PC连接

用下载软件(普中科技自己开发的)下载时,通过RTS和DTR的电位控制单片机电源开电和断电,瞬间将程序下载;若用官方STC下载软件,需要人工控制开关电源,瞬间将程序下载。

设计下载电路时,如果买下载器,设计时只需要把串口引出来。

www.hj8828.com 3

电源电路和下载电路

设备

4,终端本身的交互接口有:按键、三色灯、SIM卡插槽、充电接口、挂绳;其中,按键的作用有三个:长按开机+按键时LED按定义亮起以对应相应状态+实时上报当前位置(按多少次上报多少次);

我们将制作一个小小的、由两个LED和一个按键式开关组成的设备。其中绿色的LED亮表示当前按键式开关是处于激活状态,缓慢闪烁的黄色LED灯表示服务器正在启动或者仍然处于关闭状态。为了实现安全关闭服务器需要持续按下开关3秒钟。

注意:按键只能开机,不能关机;小蛮gps定位器不支持主动关机,除非电池用尽;

如果你按了按键开关,亮着的绿色的LED将熄灭,表示正在关机,这时候命令”/sbin/shutdown
-t2 -h
now”被执行。在服务器关闭过程中黄色的LED将连续闪烁以进行指示。当黄色LED不再闪烁时,你仍然需要等待10秒钟才能关闭服务器电源。当所有的进程被杀掉,磁盘被卸载以后黄色LED将不再闪烁。若你的服务器支持自动关机则你不需要考虑10秒的等待时间,因为服务器会自动关闭电源。

第二部分:需求介绍

串口

一,名词定义

关于串口令人感兴趣的是我们可以通过ioctl系统调用来控制其中的几个管脚。这意味着你不需要修改任何内核代码就可以控制连接到串口的LED
或这读取按键式开关的状态。串口有足够的电压来驱动两个低电压LED。我们将使用RTS和DTR针来连接LED,并且”Carrier
Detect line”被用来读取按键开关的状态。

1,静止状态:运动状态下,连续5个60秒内均无振动产生,进入静止状态;

串口母头连接器的管脚定义:

2,运动状态:静止状态下,连续3个10秒内均有振动产生,进入运动状态;

9 PIN-connector 25 PIN-connector Name Dir Description

3,振动状态:连续2个10秒内均有振动产生,即为1个有效的振动状态;

1 8 CD input Carrier Detect

4,低电压状态:无论何种状态下,电池电压电压低于3.5V时;

2 3 RXD input Receive Data

5,充电状态:充电器插入,电池电压未充满时;

3 2 TXD output Transmit Data

6,充电完成状态:充电器插入,电池电压充满时;

4 20 DTR output Data Terminal Ready

7,充电器插入状态:无论电池电压是否充满,充电器插入时;

5 7 GND — System Ground

8,GPS实时定位:使用GPS进行定实时位的动作(包含时间、电池电压等当前实时信息);

6 6 DSR input Data Set Ready

9,GPS历史定位:设备尝试GPS实时定位1分钟后如仍不能定位成功,该设备则使用最近一次GPS定位成功的位置信息作为该次上报的位置信息(时间、电池电压仍使用当前的实时信息),这个过程称之为GPS历史定位;

7 4 RTS output Request to Send

二,智能定位模式

8 5 CTS input Clear to Send

1,运动状态下位置信息默认上报间隔30分钟,不可由App更改上报时间间隔;

9 22 RI input Ring Indicator

2,运动状态下优先GPS实时定位,1分钟内GPS定位不成功则改为GPS历史定位;

电路

3,静止状态下心跳间隔默认30分钟,不可由App更改上报时间间隔;

用户需要下面元器件来制作这个串口关机设备:

4,充电器插入状态下不影响运动状态和静止状态的判断,以及相应状态下的参数设置;

1 绿色低电压LED (一个普通LED同样可以工作,但是亮灯过低)

5,任何状态下,开机默认GPS实时定位,GPS定位成功后蓝灯长亮5秒,设备异常重启GPS定位成功后蓝灯不亮;

1 黄色低电压LED

三,低电压关机

2 1.5K欧姆的电阻

1,任意模式下,当电池电压低于3.5V时,设备自动关机,关机时红灯快闪,关机后所有灯熄灭。关机前将关机信息上报服务器。

1 6.8K欧姆的电阻

2,充电器插入后即刻退出关机模式,根据实际情况进入静止状态或者运动状态;

1 小按键开关

3,关机动作执行时三颗LED要依次亮起,关机动作执行完毕时自然熄灭;

1 串口母头连接器

四,报警内容

这些元器件按照如下的电路图连接在一起。串口电压范围是+/-
10伏特。1.5K电阻适合于低电压的LED,但是普通LED同样适合。不推荐修改电阻器电压和使用外部电源,因为串口控制芯片是主板的一部分,一旦你烧了其中的芯片,你只有修改整个主板。

1,低电报警,设备上报信息给后台,App和后台推送信息给用户,一直开通,APP无对应开通和关闭的选项;

上图是实际的电路板样品图。最后的设备如文章开始图片所示。

五,异常处理

软件

1,报文上报不成功
任意定位模式下,报文发送不成功时,设备自动延长1分钟报文发送时间;
若终端12小时内报文发送均不成功,则终端自动重新启动;

软件部分是一个小的守护进程。它可以通过/etc/rc.d/rc3.d/的脚本被启动。它通过使用ioctl(fd,
TIOCMSET,…)和ioctl(fd, TIOCMGET,
…)函数来读取和写串口。你可以从这里下载程序。软件中包含一个Makefile和安装指示。

2,设备重启开机后不执行正常开机时的LED亮灭(电池电压、充电、SIM卡工作、后台连接、GPS定位等状态显示)操作提示,三颗灯全部关闭;

六,通用定义

1,指示灯定义

慢闪定义:亮一秒钟,灭一秒钟;

快闪定义:亮100毫秒,灭200毫秒;

插入充电器充电中:红灯常亮;

插入充电器充满:绿灯长亮;