版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于安卓平台的分布式防拆报警控制系统目录摘 要3第1章 绪论51.1研究背景和意义51.2安卓应用的发展及前景6第2章 硬件介绍72.1 ARM-STM3272.2 A88第3章 系统需求与总体设计93.1 市场需求93.2 系统整体设计9第4章 系统实现104.1 硬件实现104.1.1信号模拟104.1.2 RS485通信原理 RS485接口 通信方式 串口连接124.2软件实现134.2.1信号检测134.2.2信号接收144.2.3 信号传递15参考文献19摘 要随着城市的建筑当中所使用的监控设备逐渐的增加,很多的人开始关注监控设备
2、的使用。人们在社会中对自身安全度和生活舒适度的认知提高了,财产安全等等都需要得到更大范围的保护,因此各种安全防范系统就应运而生了,其中防拆报警系统是具有代表性的安全防范设施之一。 本系统是使用ARM Cortex-M3处理器内核的32位微控制器STM32,通过RS485总线技术实现单片机和A8之间的通信,单片机上的按键模拟现实生活中的拆开信号,按键按下去表示有拆开信号, 然后利用RS485总线技术将信号传给A8, A8上的serial port app接受信号报警并报警,组成一个简易的防拆控制报警系统。 系统的开发主要由三个模块组成,一个是在keil环境下实现按键检测,作为前端报警控制器检测报
3、警信息,另一个是在Android平台下实现对报警信号的接收,作为后台对报警信号进行处理。第三个也就是最重要的部分是通过RS485总线技术实现报警信号的传递。 本系统的开发,RS485通信是重点,主要是向大家介绍如何通过RS485总线技术实现单片机与A8的通信。关键词: RS485,ARM Cortex-M3,Android平台 AbstractWith the construction of the city of the monitoring equipment used by gradually increased, many people begin to pay close atten
4、tion to the use of monitoring equipment. People in society is to improve the safety and comfort of life cognition, property safety and so on all need to get a wider range of protection, so the various security system is born, including tamper alarm system is one of the typical safety facilities.This
5、 system is to use the 32-bit microcontrollers STM32 which is ARM Cortex-M3 processor core, through the RS485 bus technology to realize the communication between the microcontroller and A8, the buttons on the single chip microcomputer analog signal in real life apart, press button show opened signal,
6、 then use RS485 bus technology to transmit signals to the A8, the serial port app on A8 receive alarm signal and alarm, which forms a simple tamper alarm control system.System development is mainly composed of three modules, one is in the keil environment for detecting buttons, as a front-end detect
7、ion alarm controller alarm information, the other is in the Android platform to realize the alarm signal interpretation, as a background to deal with alarm. The most important part is to realize the alarm signal transfer through the RS485 bus technology.The development of this system, the RS485 comm
8、unication is the key, mainly introduce how to implement microcontroller and A8 communications through the RS485 bus technology. Keywords: RS485,ARM Cortex-M3,Android platform 第1章 绪论1.1研究背景和意义在我们的生活中,门禁已经成为我们安防生活中愈发不可或缺的安全保障了。如果说这个楼门没有装门禁,恐怕在住户看来就像自己家没有装防盗门般的忧心。从曾经的奢侈设备,到如今遍布各地的基础防护设施,门禁系统角色的这种转变,既说明
9、了门禁在我们心中地位的提升,同时也意味着随着门禁技术的发展,这项技术已经能够满足我们日常生活中更多的安全需求。出入口门禁系统顾名思义就是对出入口通道进行管制的系统,它是在传统的门锁基础上发展而来的。传统的机械门锁仅仅是单纯的机械装置,无论结构设计多么合理,材料多么坚固,人们总能用通过各种手段把它打开。在出入人很多的通道(象办公室,酒店客房)钥匙的管理很麻烦,钥匙丢失或人员更换都要把锁和钥匙一起更换。为了解决这些问题,就出现了电子磁卡锁,电子密码锁,这两种锁的出现从一定程度上提高了人们对出入口通道的管理程度,使通道管理进入了电子时代,但随着这两种电子锁的不断应用,它们本身的缺陷就逐渐暴露,磁卡锁
10、的问题是信息容易复制,卡片与读卡机具之间磨损大,故障率高,安全系数低。密码锁的问题是密码容易泄露,又无从查起,安全系数很低。同时这个时期的产品由于大多采用读卡部分(密码输入)与控制部分合在一起安装在门外,很容易被人在室外打开锁。这个时期的门禁系统还停留在早期不成熟阶段,因此当时的门禁系统通常被人称为电子锁,应用也不广泛。最近几年随着感应卡技术,生物识别技术的发展,门禁系统得到了飞跃式的发展,进入了成熟期,出现了感应卡式门禁系统,指纹门禁系统,虹膜门禁系统,面部识别门禁系统,乱序键盘门禁系统等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,门禁系统的应用领域也越来越广。归根到底,
11、门禁系统的应用还是出于用户对自己人身、财产安全等方面的需求,既然有需求,那么门禁系统的防拆报警控制功能也就应运而生了。1.2安卓应用的发展及前景安卓智慧型手机由谷歌在2007年底推出,并与本年底组成开放手持设备联盟以建立行动装置上的业界开放标准。在2008年第一台安卓实体机上市,越来越多移动设备加入安卓市场,市场占有率不断攀升,目前更是达到了前所未有的高度。基于安卓平台的开发也是越来越火热,很多应用程序的出现也大大提高了手机的利用效率,很多的事情不必去找专业的工具去解决,手机可以上网可以游戏可以娱乐,可以照相等等。目前也加入很多功能,比如红外感应遥控就可以远距离控制一些家电的启动关闭,联网的功
12、能更是可以让我们只需一部安卓手机即可远程遥控很多东西,大大地提升了便利性。安卓移动应用市场呈现出更加多元化发展的景象。近两年,安卓操作系统的全球市场份额一直稳居第一位,App开发者的大多数新的应用项目都建立在Android平台上。分析机构StrategyAnalytics的报告显示,截止到2014年第二季度,安卓操作系统的全球市场份额已达84.6%,达到历史最高纪录,在此前一直不占优势的平板市场,安卓也实现了反超,以65.8%的份额占据了平板市场的大部分。Android设备在全球范围内的出货量为2.496亿部。在中国市场上,安卓平台的日均活跃用户已经突破2.7亿,几乎是全球Android日均活
13、跃用户的30%。目前国内多家互联网企业与终端厂商的跨界合作消息纷纷推出,足以表明包括硬件厂商、运营商、互联网巨头等为开发者搭建的移动应用推广平台纷纷问世,重点的行业化应用也更加突出并逐渐走向成熟。特别是基于安卓平台的可穿戴设备、智能云电视、智能汽车、智能家居等智能终端的跃世新生加速了家庭信息化网络的升级,移动互联网的智能化发展方兴未艾。 第2章 硬件介绍2.1 ARM-STM32STM32系列是基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。ARM Cortex-M3 处理器是行业领先的32位处理器,显著地简化了编程和调试的复杂度,处理能力也更加强大。除
14、此之外,还突破性地引入了很多新的技术,专门满足单片机应用程序的需求(不可屏蔽中断、嵌套向量中断系统、位操作、可选的内存保护单元),适用于具有较高确定性的实时应用。它经过专门开发,可使合作伙伴针对广泛的设备(包括微控制器、汽车车身系统、工业控制系统以及无线网络和传感器)开发高性能低成本平台。此处理器具有出色的计算性能以及对事件的优异系统响应能力,同时可应实际中对低动态和静态功率需求的挑战。此处理器配置十分灵活,从而支持广泛的实现形式。 图片2.1 STM32103RXT62.2 A8Cortex-A8内核基于ARMv7指令架构,是ARM公司有史以来性能最强劲的一款处理器,适用于复杂操作系统及用户
15、应用,运行速度可以达600MHz至1GHz,功耗在300mW以下,而性能却高达2000MIPS。Cortex-A8处理器具有复杂的流水线架构,是基于双对称的、顺序发射的13级流水线,带有先进的动态分支预测,可实现2.0 DMIPS/MHz,10级NEON媒体流水线,专用的L2缓存,带有可编程的等待状态,支持多项与L3存储器之间的未完成事务,以充分利用CPU。采用核心板外加底板的模式,提供了7寸TFT 24位液晶触摸屏,接口资源丰富,扩展了通用的存储器、通讯接口。在很小的体积下构成了高性能、低功耗的嵌入式最小系统,用来满足需要高性能、高功效、经常集成 Web 连接的市场需求。 图片2.2
16、60;CORTEX A8开发底板 第3章 系统需求与总体设计3.1 市场需求生活的改善使得人们对于自身安全和财产安全有了更高的要求,各种高科技的发展不仅为提高了我们的生活水平,也为不法分子提供各种便利,所以安全防护成为我们生活中愈发不可或缺的安全保障,防拆控制报警系统也是其中一部分。随着信息技术和互联网的飞速发展,以及计算机、通讯、数码产品等领域的高速增长,数字化时代已经来临。嵌入式设备是数字化时代的主流产品,嵌入式软件是数字化产品的核心,作为嵌入式软件的基础和关键,嵌入式操作系统在产业发展过程中扮演着越来越重要的角色,应用遍及工业自动化、网络通信、航空航天、医疗仪器等领域。此次防拆报警控制系
17、统应用的单片机是典型的嵌入式微控制器(Microcontroller Unit),这也是本系统的一大特点,符合时代的发展。3.2 系统整体设计 单片机上的按键模拟现实生活中的拆开信号,按键按下去表示有拆开信号, 然后利用RS485总线技术将信号传给A8, A8上的serial port app接受信号报警并报警,组成一个简易的防拆控制报警系统。其整体图如下:单片机 A8报警 图3.1 防拆报警系统整体图第4章 系统实现 系统的开发主要由三个模块组成,一个是在Keil环境下实现按键检测,作为前端报警控制器检测报警信息,另一个是在Android平台下实现对报警信号的接受,作为后台对报警信号进行处理
18、。第三个也就是最重要的部分是通过RS485总线技术实现在单片机和A8之间报警信号的传递。4.1 硬件实现4.1.1信号模拟要实现防拆控制报警,在硬件方面如何模拟现实生活的拆开信号是首要问题。因为本系统的主要关注点在于RS485通信,手边上的资源有限,所以最终选择单片机开发板上的独立按键模拟现实生活中的拆开信号,按键按下去表示有拆开信号,是一个简易的检测报警信息的前端报警控制器。4.1.2 RS485通信原理RS485总线接口是一种常用的串口,具有网络连接方便、抗干扰性能好、传输距离远等优点。RS485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上收发器具有高的灵敏度,能检测到低
19、达200mv的电压,理论上可靠通信的传输距离可达数千米。使用RS485总线组网,只需一对双绞线就可实现多系统联网构成分布式系统、设备简单、价格低廉、通信距离长。 RS485接口RS485是RS422A的变型:RS422A用于全双工,而RS485则用于半双工。RS485是一种多发送器标准,在通信线路上最多可以使用32 对差分驱动器/接收器。如果在一个网络中连接的设备超过32个,还可以使用中继器。 RS485的信号传输采用两线间的电压来表示逻辑1和逻辑0。 图 RS485接口 通信方式单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的
20、不是同一个时钟,通信双方使用各自的时钟控制数据的发送和接收。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。异步串行通信通常以字符(或者字节)为单位组成字符帧传送。字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。(1)字符帧的帧格式 字符帧由四部分组成,分别是起始位、数据位、奇偶校验位、停止位。1) 起始位:位于字符帧的开头,只占一位,始终位逻辑低电平,表示发送端开始发送一帧数据。2) 数据位:紧跟起始位后,可取5、6、7、8位,低位在前
21、,高位在后。 3)奇偶校验位:占一位,用于对字符传送作正确性检查。奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定。4)停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位,表示一帧字符传送完毕。(2)数据传送速率 串行通信的速率用波特率来表示,所谓波特率就是指一秒钟传送数据位的个数。每秒钟传送一个数据位就是1波特。即:1波特1bps(位/秒) 。在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率高,则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢。 串口连接本系统使用的USART是一个全
22、双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。当使用UASRT的时,如果你只用RX和TX两个引脚时,你只需对PA9和PA10进行相应的初始化。单片机的PB口(十六位数据格式,JP10和JP11)的低八位(JP11)与独立按键相连,作为数据的输入口,PA口(十六位数据格式,JP9和JP8)的PA9(p3.1)与TXD相连、PA10(p3.0)与RXD相连,作为与A8进行数据通信的接口。 串口的两根数据线TXD是用来发送数据,RXD是用来接收数据的。在此系统中,单片机作为输出,DIR置高电平,所以DIR接上一个5V的高电平,就可以实现单片机与A8的通信。 图 硬
23、件实物连接图4.2软件实现 软件实现包括三个方面,一个是在Keil环境下实现按键检测,另一个是在Android平台下实现对报警信号的接收,第三个是两者之间的信号传递。 开始判断按键是否按下发送数据接收数据报警并结束 是 图4.2 系统流程图 4.2.1信号检测 void kb_Init(void) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); /使能GPIOB时钟,激活 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;/指定0脚 GPIO_InitStructure.GPIO_Mode=GPIO_Mode
24、_IPU; /上拉输入 GPIO_Init(GPIOB,&GPIO_InitStructure); /配置GPIOB 4.2.2信号接收private class ReadThread extends Thread public void run() super.run();while(!isInterrupted() int size;try byte buffer = new byte64; if (mInputStream = null) return;size = mInputStream.read(buffer);if (size > 0) onDataReceived
25、(buffer, size); catch (IOException e) e.printStackTrace();return;private void DisplayError(int resourceId) AlertDialog.Builder b = new AlertDialog.Builder(this);b.setTitle("Error");b.setMessage(resourceId);b.setPositiveButton("OK", new OnClickListener() public void onClick(Dialog
26、Interface dialog, int which) SerialPortActivity.this.finish(););b.show();protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);mApplication = (Application) getApplication();try mSerialPort = mApplication.getSerialPort();mOutputStream = mSerialPort.getOutputStream();mI
27、nputStream = mSerialPort.getInputStream();/* Create a receiving thread */mReadThread = new ReadThread();mReadThread.start(); catch (SecurityException e) DisplayError(R.string.error_security); catch (IOException e) DisplayError(R.string.error_unknown); catch (InvalidParameterException e) DisplayError
28、(R.string.error_configuration);protected abstract void onDataReceived(final byte buffer, final int size);protected void onDestroy() if (mReadThread != null)mReadTerrupt();mApplication.closeSerialPort();mSerialPort = null;super.onDestroy();4.2.3 信号传递 发送方:初始化串口参数设置,初始化串口中断,初始化NVIC,以及发送数
29、据。USART_InitTypeDef USART_InitStructure; void USART_Configuration(void) RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);USART_InitStructure.USART_BaudRate = 9600;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure
30、.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;USART_Init(USART1,&USART_InitStructure); USART_Cmd(USART1, ENABLE);USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); USART_ITConf
31、ig(USART1,USART_IT_TXE ,ENABLE); void EXIT_Configuration(void) EXTI_InitTypeDef EXTI_InitStructure;GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0); EXTI_ClearITPendingBit(EXTI_Line0); / EXTI_ClearFlag/*/ EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger =
32、 EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure);void NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_I
33、RQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC
34、_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);void USARTnvicSend(u8 senddata) USART_SendData(USART1,senddata); void EXTI0_IRQHandler(void) if(EXTI_GetITStatus(EXTI_Line0)!= RESET) EXTI_ClearITPendingBit(EXTI_Line0);
35、USARTnvicSend(0x41); EXTI_ClearITPendingBit(EXTI_Line0); void USART1_IRQHandler(void) if(USART_GetITStatus(USART1,USART_IT_RXNE)!= RESET) GPIO_ResetBits(GPIOB,GPIO_Pin_8); 接收方:打开和关闭串口,以及配置串口参数,包括的参数有path(需要打开的串口设备文件路径),baudrate(波特率),flags(打开串口的参数,如O_NONBLOCK之类的,可以随不同情况设置) 其串口数据的读取是用FileDescript
36、or来实现的 。public class SerialPort private static final String TAG = "SerialPort"private FileDescriptor mFd;private FileInputStream mFileInputStream;private FileOutputStream mFileOutputStream;public SerialPort(File device, int baudrate) throws SecurityException, IOException /* Check acce
37、ss permission */if (!device.canRead() | !device.canWrite() try /* Missing read/write permission, trying to chmod the file */Process su;su = Runtime.getRuntime().exec("/system/bin/su");String cmd = "chmod 666 " + device.getAbsolutePath() + "n"+ "exitn"su.getOut
38、putStream().write(cmd.getBytes();if (su.waitFor() != 0) | !device.canRead()| !device.canWrite() throw new SecurityException(); catch (Exception e) e.printStackTrace();throw new SecurityException();mFd = open(device.getAbsolutePath(), baudrate);if (mFd = null) Log.e(TAG, "native open returns null");throw new IOExc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 坚强宪法监督制度
- 售楼处管理监督制度
- 国外陶瓷砖监督制度
- 刑事合规法律监督制度
- 人大审计监督制度
- 2026年考计算机测试题及答案
- 单位内部财务监督制度
- 2016年村务监督制度
- 厂区安全监督制度
- 不定期抽查监督制度
- 园林花卉中职PPT完整全套教学课件
- 微型消防站物资器材配置一览表
- 提名辽宁自然科学奖
- 刑法学(上册)马工程课件 第2章 刑法的基本原则
- GB/T 26955-2011金属材料焊缝破坏性试验焊缝宏观和微观检验
- GB/T 1508-2002锰矿石全铁含量的测定重铬酸钾滴定法和邻菲啰啉分光光度法
- 大学物理绪论
- 1财政与金融-财政学导论
- 国内外渔人码头案例分析
- 化工企业安全标准化管理制度
- 人音版初中音乐☆游击队歌课件
评论
0/150
提交评论