实验一嵌入式系统网络安全基础
- 格式:docx
- 大小:290.46 KB
- 文档页数:9
电子产品世界基于STM32的远程厨房安全系统设计*Design of remote kitchen security system based on STM32赵丹丹,李 红 (平顶山学院信息工程学院,河南 平顶山 467036)摘 要:基于用户日常家庭生活安全的需要,设计了一种可靠、实用的远程厨房安全系统。
该系统以STM32单片机为核心处理器,结合烟雾传感器、火焰传感器、OLED显示屏、蜂鸣器等外围设备进行设计,并且采用WiFi模块进行无线传输,把从STM32主控芯片传输过来的数据传送到阿里云服务器,以便用户可通过登录实时查看家庭厨房环境状态。
该系统安装方便,适用于家庭厨房等场合。
关键词:STM32芯片;WiFi通信;远程控制;阿里云服务器*基金项目:本文系平顶山学院教学改革研究项目(JY19296)的研究成果0 引言21世纪以来,小区住宅的厨房都已随着社会的发展越来越现代化。
现代化厨房里的智能电器也成为人们家居生活水平的一项标准。
因油烟重、电气线路隐患大等原因引起的厨房失火事件屡见不鲜。
小区厨房火灾的发生影响的不只是一个家庭的生活,还可能会涉及小区邻居的安全。
因此,家庭厨房安全系统的设计也需不断提高[1-2]。
基于此目的,研发出一套功能更加完整、使用更加便捷、性价比更好的远程厨房安全系统,最大程度的降低居民损失。
本系统采用STM32F103C8T6芯片作为核心处理器,搭配WiFi技术实现无线传输,从而把烟雾传感器和火焰传感器实时采集到的厨房烟雾浓度和火焰传送到阿里云服务器。
再结合OLED显示屏、蜂鸣器进行数据的显示和报警。
1 远程厨房安全系统设计1.1 系统性能目标系统设计目标主要是每个家庭厨房内的烟雾、火焰等环境状态。
现代化信息技术以及物联网技术的发展,人们的生活变得更加舒适,从而对厨房的安全性也有了更高的期待。
其总体设计主要体现在以下几个方面。
1)将厨房的远程控制优势发挥出来,使用户可通过阿里云服务器随时查看厨房内各类电器的相关参数。
第1篇一、基础知识1. 什么是嵌入式系统?请简要描述其特点和应用领域。
解析:嵌入式系统是指将计算机硬件与软件集成在一起,用于实现特定功能的系统。
特点包括:实时性、可靠性、资源受限、功耗低等。
应用领域广泛,如智能家居、工业控制、医疗设备、汽车电子等。
2. 嵌入式系统中的硬件资源有哪些?请分别简述其作用。
解析:嵌入式系统中的硬件资源主要包括:中央处理器(CPU)、存储器(RAM、ROM)、输入/输出接口(I/O)、定时器/计数器、中断控制器、串行通信接口等。
它们分别用于处理计算任务、存储程序和数据、与外部设备进行数据交换、实现定时功能、处理中断请求、进行串行通信等。
3. 什么是通信协议?请举例说明几种常见的嵌入式通信协议。
解析:通信协议是指计算机网络中,为了实现数据交换而制定的一系列规则和约定。
常见的嵌入式通信协议有:UART、SPI、I2C、CAN、USB、以太网等。
4. 请简述UART通信协议的基本原理和特点。
解析:UART(通用异步收发传输器)是一种串行通信协议,用于实现点对点或多点通信。
基本原理是通过发送和接收数据线进行数据传输,不使用时钟信号。
特点包括:通信速率高、传输距离远、接口简单、成本低等。
5. 什么是SPI通信协议?请简述其工作原理和特点。
解析:SPI(串行外设接口)是一种高速的串行通信协议,主要用于微控制器与外设之间的通信。
工作原理是:主设备通过主从模式,通过主设备和从设备之间的时钟信号,实现数据的串行传输。
特点包括:通信速率高、传输距离远、支持多主从设备、接口简单等。
6. 什么是I2C通信协议?请简述其工作原理和特点。
解析:I2C(两线式串行总线)是一种低速的串行通信协议,主要用于微控制器与外设之间的通信。
工作原理是:通过两根数据线和一根时钟线,实现数据的串行传输。
特点包括:通信速率较低、传输距离远、支持多设备通信、接口简单等。
二、协议应用1. 请简述CAN总线通信协议的特点和应用场景。
嵌入式题库一、嵌入式系统基础1. 什么是嵌入式系统?(5分)答案:嵌入式系统是一种专用的计算机系统,它被嵌入到其他设备或系统中,通常执行特定的功能。
例如,我们常见的智能手表,里面的系统就是嵌入式系统,它主要负责处理时间显示、健康监测(如心率检测)等特定功能,而不是像普通计算机那样可以进行多种通用的操作。
2. 嵌入式系统由哪些部分组成?(5分)答案:嵌入式系统一般由硬件和软件两部分组成。
硬件部分包括处理器、存储器、输入输出接口等。
软件部分包括操作系统、驱动程序和应用程序等。
比如一个嵌入式的车载导航系统,硬件上有处理导航计算的芯片(处理器)、存储地图数据的存储器,以及连接屏幕和按键等的输入输出接口;软件方面有专门的操作系统来管理硬件资源,驱动程序来使硬件正常工作,还有应用程序实现导航功能。
3. 嵌入式系统的特点有哪些?(5分)答案:嵌入式系统具有专用性、小型化、低功耗、高可靠性等特点。
专用性就是针对特定的任务,像微波炉里的嵌入式系统就是专门用来控制加热时间和功率的。
小型化使得它可以被嵌入到各种设备中,像手机这么小的空间里也能容纳嵌入式系统。
低功耗能保证设备长时间使用,比如智能手环的嵌入式系统,靠很小的电池就能工作很久。
高可靠性是为了保证设备正常运行,像飞机上的嵌入式系统,要是不可靠那可就危险啦。
二、嵌入式系统硬件相关1. 嵌入式处理器有哪些类型?(5分)答案:嵌入式处理器主要有微控制器(MCU)、数字信号处理器(DSP)、微处理器(MPU)等类型。
微控制器通常集成了CPU、存储器和输入输出接口等,常用于简单的控制设备,像电子玩具里的控制芯片。
数字信号处理器主要用于处理数字信号,在音频、视频处理设备中很常见,比如MP3播放器里的芯片。
微处理器功能更强大,常用于需要复杂运算的嵌入式设备,像一些高端的工业控制设备。
2. 嵌入式系统中存储器的作用是什么?(5分)答案:存储器在嵌入式系统中的作用主要是存储程序和数据。
XXXX学院XX级嵌入式系统设计实验报告班级:指导老师:学期:小组成员:姓名学号组长成员成员实验一我的第一个工程实验一.实验简介我的第一个工程,流水灯实验二.实验目的掌握STM32开发环境,掌握从无到有的构建工程。
三.实验内容熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现流水灯工程。
通过ISP下载代码到实验板,查看运行结果。
使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。
四.实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。
五.实验步骤1.熟悉MDK KEIL开发环境2.熟悉串口编程软件ISP3.查看固件库结构和文件4.建立工程目录,复制库文件5.建立和配置工程6.编写代码7.编译代码8.使用ISP下载到实验板9.测试运行结果10.使用JLINK下载到实验板11.单步调试12.记录实验过程,撰写实验报告六.实验结果及测试七.实验总结实验二带按键控制的流水灯实验一.实验简介在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。
二.实验目的熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。
三.实验内容实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。
使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。
四.实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。
五.实验步骤1在实验1代码的基础上,编写中断初始化代码2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序3编写中断服务程序4编译代码,使用JLINK下载到实验板5.单步调试6记录实验过程,撰写实验报告六.实验结果及测试七.实验总结实验三串口发送和接收实验一.实验简介编写代码实现串口发送和接收,将通过串口发送来的数据回送回去。
1.什么是嵌入式系统?举例。
嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统;水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能2.嵌入式发展历经四个阶段,分别说明各阶段特点。
无操作系统阶段:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。
简单操作系统阶段:出现了大量高可靠、低功耗的嵌入式CPU(如PowerPC等),各种简单的嵌入式操作系统开始出现并得到迅速发展实时操作系统阶段:操作系统的实时性得到了很大改善,已经能够运行在各种不同类型的微处理器上,具有高度的模块化特点和扩展性面向Internet阶段:嵌入式技术与Intemet技术的结合正在推动着嵌入式技术的飞速发展,嵌入式系统的研究和应用会出现更多的新的显著变化3.简述嵌入式三个基本要素三要素:嵌入式系统的三个基本要素是嵌入性、专用性与计算机系统。
(1)嵌入性是把软件嵌入到Flash存储器中,(2)专用性是指针对某个具体应用领域和场合,量体裁衣式的定制适用该场合的专用系统,(3)计算机系统是指必须具有计算机系统的组成,核心是计算机系统。
4.简述嵌入式的几个重要特征系统内核小专用性强系统精简高实时性的系统软件(OS) 嵌入式系统开发需要开发工具和环境使用多任务的操作系统5.一切皆是文件是。
分门别类举例介绍为什么设备文件也可以共用操作系统对所有文件(目录、字符设备、块设备、套接字、打印机等)操作,读写都可用fopen()/fclose()/fwrite()/fread()等函数进行处理。
屏蔽了硬件的区别,所有设备都抽象成文件,提供统一的接口给用户。
这就是“一切皆是文件”的思想。
因为Linux系统把任何设备都抽象为文件了.设备文件分为:字符设备,块设备,网络设备,这些在Linux里都以文件的形式存在5.目录和分区在linux和windows上的实现具体哪些不一样Windows是以驱动器的盘符为基础,每一个目录与对应的分区对应,而linux相反,文件系统是一棵树,文件和外部设备都是以文件的形式挂载在文件树上的。
实验一、嵌入式系统网络安全基础1.traceroute:可以使用traceroute命令显示数据包到达目的主机所经过的路由。
2.curl & wget: 使用curl或wget命令,不用离开终端就可以下载文件。
如你用curl,键入curl -O后面跟一个文件路径。
wget则不需要任何选项。
下载的文件在当前目录。
stat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态(InterfaceStatistics),masquerade 连接,多播成员(Multicast Memberships) 等等。
常见参数-a (all)显示所有选项,默认不显示LISTEN相关-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在Listen (监听) 的服務状态-p 显示建立相关链接的程序名-r 显示路由信息,路由表-e 显示扩展信息,例如uid等-s 按各个协议进行统计-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到3.1列出所有端口netstat –a.3.2列出所有tcp 端口netstat –at3.3 只显示监听端口netstat –l3.4显示TCP 或UDP 端口的统计信息netstat -st 或–su3.5 netstat -p 可以与其它开关一起使用,就可以添加“PID/进程名称” 到netstat 输出中,这样debugging 的时候可以很方便的发现特定端口运行的程序。
3.6 找出程序运行的端口并不是所有的进程都能找到,没有权限的会不显示,使用root 权限查看所有的信息。
3.7显示网络接口列表3.8 IP和TCP分析查看连接某服务端口最多的的IP地址4.Whois信息下载最新版wget https:///pub/blfs/conglomeration/whois/whois_5.2.18.tar.xz #xz -d whois_5.2.18.tar.xz#tar xvf whois_5.2.18.tar# cd whois-5.2.18/#make#make install注意在linux命令终端里查询一个域名的注册信息时,要把前面的www去掉。
5.Iptables 配置第一步,首先确定你的系统已经安装Iptables.打开SSH终端,输入whereis iptables如果能看到如下类似信息,说明你已经安装了iptables第二步:查看Iptables目前的配置信息可以使用如下命令查看iptables -L如果你是第一次安装配置iptables,你可能会看到如下结果:第三步:配置Iptables配置Iptables,先把一个基本的Iptables的规则文件保存起来,这个规则文件做为测试用vim /etc/iptables.test.rules然后在这个文件中输入如下规则内容。
保存本文件,使之生效,注意,iptables不需要重启,加载一次规则就成:iptables-restore < /etc/iptables.test.rules尝试对该设备进行ping操作,里面上是允许的:修改iptables,禁止进行ping操作(千万不要禁止22端口)修改文件,保持文件,使其生效,然后再尝试对设备进行ping操作则应出现如下效果。
第四步:保存生效的配置,让系统重启的时候自动加载有效配置编辑创建如下文件:vim /etc/network/if-pre-up.d/iptables添加如下内容:#!/bin/bash/sbin/iptables-restore < /etc/iptables.test.rules最后,设置可执行仅限chmod +x /etc/network/if-pre-up.d/iptables详解::INPUT ACCEPT [0:0]# 该规则表示INPUT(进)表默认策略是ACCEPT:FORWARD ACCEPT [0:0]# 该规则表示FORWARD(转)表默认策略是ACCEPT:OUTPUT ACCEPT [0:0]# 该规则表示OUTPUT(出)表默认策略是ACCEPT-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 意思是允许进入的数据包只能是刚刚我发出去的数据包的回应,ESTABLISHED:已建立的链接状态。
RELATED:该数据包与本机发出的数据包有关。
-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibited# 这两条的意思是在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包。
并且发送一条host prohibited的消息给被拒绝的主机。
#REJECT 是用来返回一个错误的包来回应匹配包,其他的等价于DROP,所以它是一个拒绝TARGET,在规则的结束。
这个TARGET仅仅用在INPUT,FORWARD和OUTPUT链和用户自定义的链,下列选项是用来定义返回错误的结果的:icmp-host-unreachableicmp-port-unreachable-m state --state <状态> 有数种状态,状态有:▪ INVALID:无效的封包,例如数据破损的封包状态▪ ESTABLISHED:已经联机成功的联机状态;▪ NEW:想要新建立联机的封包状态;▪ RELATED:这个最常用!表示这个封包是与我们主机发送出去的封包有关,可能是响应封包或者是联机成功之后的传送封包!这个状态很常被设定,因为设定了他之后,只要未来由本机发送出去的封包,即使我们没有设定封包的INPUT 规则,该有关的封包还是可以进入我们主机,可以简化相当多的设定规则第五:其它如果你想设置某ip段可以访问所有服务,你需要在iptables.test.rules文件中加入-A INPUT -m iprange --src-range 192.168.1.1-192.168.1.199 -j ACCEPT,然后从第三步再设置一次。
在Linux上,iptables是用于建立和维护IP包过滤规则表的管理工具,实际过滤工作由内核的netfilter模块负责。
规则表有几种(最常用的是filter表),每个表中可以包含若干规则链,每个规则链包含一组规则,每条规则定义一个匹配条件和处理动作。
常用的规则链:INPUT:处理从外部发给本机的网络包;FORWARD:处理从外部发来,需要转发到外部的网络包;OUTPUT:处理从本机发往外部的网络包;常用的处理动作:ACCEPT:通过;DROP:抛弃;QUEUE:通过,并加入用户空间的队列中;RETURN:停止后续规则检查,直接转到默认处理;分析一个实际的网络防火墙过滤表:-A INPUT -i lo -j ACCEPT-A INPUT表示加入INPUT链,对应接收数据包;-i lo表示来自本机网络接口(localhost);-j ACCEPT表示处理动作为接受。
整条规则表示所有本机发给自己的数据包可以通过。
-A INPUT -i !lo -d 127.0.0.0/8 -j REJECT-i !lo表示非localhost的其他网络接口,-d 127.0.0.0/8 表示网络地址的匹配,使用网络掩码255.0.0.0(255的二进制有8个1,如果是掩码255.255.255.0,对应的数字为24)处理后与127.0.0.0相同。
整条规则表示不是来自本机,且IP地址以127开头的数据包全部丢弃;-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-m表示match,state –state ESTABLISHED,RELATED表示状态为已有连接通道上的网络包;-A INPUT -p tcp --dport 80 -j ACCEPT-A INPUT -p tcp --dport 443 -j ACCEPT-p对应网络协议,–dport对应端口号;两条规则表示接受http(80端口),https(443端口)的tcp包;-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPTSSH协议使用22端口,这条规则表示接收新建SSH连接的数据包;-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT–icmp-type 8对应echo-request(ping),此条规则表示允许外部的ping命令;-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7记录接收数据包被拒绝(log-level=7)的日志,最高记录频率为5条/分钟,日志可通过dmesg 或syslog查看-A INPUT -j REJECT-A FORWARD -j REJECT-A OUTPUT -j ACCEPT最后放一组默认规则:未匹配的所有接收数据包,拒绝;所有转发数据包,拒绝;所有外发数据包,允许;。