一、物联网
1.1 的三大环节:
(1)信息采集;
RFID、传感器、其它产生数据的终端;
(2)信息传输;
Wifi、ZigBee、Bluetooth、UWB、NFC;
IPv4、IPv6;
总线技术;
无线传感网络技术与M2M技术;
(3)信息处理:
数据融合、云计算、并行计算、人工智能;
二、标识技术、传感技术、图形图像传感与处理技术、卫星定位技术
目前,EPC 的位数有64 、96 位或者更多位。为了保证所有物品都有一个EPC 并使其载体-标签成本尽可能降低,建议采用96 位。
2.2传感技术
2.2.1 温度传感器
塞贝克效应
是指由于两种不同电导体或半导体的温度差异而引起两种物质间的电压差的热电现象。一般规定热电势方向为:在热端电子由负流向正。在两种金属A和B组成的回路中,如果使两个接触点的温度不同,则在回路中将出现电流,称为热电流。相应的电动势称为热电势,其方向取决于温度梯度的方向。塞贝克效应的成因可以简单解释为在温度梯度下导体内的载流子从热端向冷端运动,并在冷端堆积,从而在材料内部形成电势差,同时在该电势差作用下产生一个反向电荷流,当热运动的电荷流与内部电场达到动态平衡时,半导体两端形成稳定的温差电动势。半导体的温差电动势较大,可用作温差发电器。
一线总线技术
一线总线技术就是在一条总搜索线上仅有一个主系统和若干个从系统组成的计算机应用系统。一线总线是众多现场总线中极具竞争力的一种。它具备能与计算机进行数字通讯、总线负载量大、布线简炼、精度高、性能稳定、价格便宜等多方面优点,是工业现场系统设计的高级境界。
一线总线的真正优势在于:作为信号源,无须考虑如何解决通讯协议问题;在绝大多数场合,不用考虑总线上连接的传感器数量;在大多数场合甚至不需另外提供电源。一线总线的发展对于目前各种总线之间的通讯协议壁垒已构成强烈的冲击,它的最大好处就是让用户更方便。
2.2.2湿度传感器
2.2.3 压力传感器
压电效应:
压电效应:某些电介质在沿一定方向上受到外力的作用而变形时,其内部会产生极化现象,同时在它的两个相对表面上出现正负相反的电荷。当外力去掉后,它又会恢复到不带电的状态,这种现象称为正压电效应。当作用力的方向改变时,电荷的极性也随之改变。相反,当在电介质的极化方向上施加电场,这些电介质也会发生变形,电场去掉后,电介质的变形随之消失,这种现象称为逆压电效应。依据电介质压电效应研制的一类传感器称为压电传感器。
2.2.4光敏传感器
2.2.5 气体传感器
2.2.6 霍尔传感器
霍尔传感器是一种磁电式传感器。霍尔元件赖以工作的物理基础是霍尔效应。霍尔效应是半导体薄片置于磁感应强度为B 的磁场中,磁场方向垂直于薄片,当有电流I 流过薄片时,在垂直于电流和磁场的方向上将产生电动势EH,这种现象称为霍尔效应。流入激励电流端的电流I越大、作用在薄片上的磁感应强度B越强,霍尔电势也就越高。霍尔电势EH可表示为:EH=KH IB,kH为灵敏度系数,与载流材料的物理性质和几何尺寸有关,表示在单位磁感应强度和单位控制电流时的霍尔电势的大小。
把一个金属或者半导体材料薄片置于磁场中,当有电流流过时,由于形成电流的电子在磁场中运动而收到磁场的作用力,会使得材料中产生与电流方向垂直的电压差。
2.2.7 超声波传感器
① 纵波——质点振动方向与波的传播方向一致的波;
② 横波——质点振动方向垂直于传播方向的波;
③ 表面波——质点的振动介于横波与纵波之间,沿着表面传播的波。
横波只能在固体中传播,纵波能在固体、液体和气体中传播,表面波随深度增加衰减很快。
为了测量各种状态下的物理量,应多采用纵波。
纵波、 横波及其表面波的传播速度取决于介质的弹性常数及介质密度,气体中声速为344 m/s,液体中声速在900~1900 m/s
超声波测流体速度的基本原理:
超声波在流体中传输时,在静止流体和流动流体中的传输速度是不同的,利用这一特点可以求出流体的速度,再根据管道流体的截面积, 便可知道流体的流量。
2.3图形图像传感与处理技术
2.3.1 CCD与CMOS
2.3.2基本图形图像处理技术
将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255种值,这样一个像素点可以有(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。图像的灰度化处理可用两种方法来实现。
第一种方法使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。
灰度化后的R=(处理前的R + 处理前的G +处理前的B)/ 3
灰度化后的G=(处理前的R + 处理前的G +处理前的B)/ 3
灰度化后的B=(处理前的R + 处理前的G +处理前的B)/ 3
第二种方法是根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:
Y=0.3R+ 0.59G +0.11B,以这个亮度值表达图像的灰度值。
灰度拉伸又叫:对比度拉伸,它是最基本的一种灰度变换,算法:使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。
它可以有选择的拉伸某段灰度区间以改善输出图像。如图,所示的变换函数的运算结果是将原图在a到b之间的灰度拉伸到c到d之间。如果一幅图像的灰度集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来拉伸(斜率>1)物体灰度区间以改善图像;同样如果图像灰度集中在较亮的区域而导致图像偏亮,也可以用灰度拉伸功能来压缩(斜率<1)物体灰度区间以改善图像质量。
直方图均衡化通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。
图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。
获取图像的边缘。
robert、canny、laplace等算子或变换算法进行计算。
Hough变换的实质是将图像空间内具有一定关系的像元进行聚类,寻找能把这些像元用某一解析形式联系起来的参数空间累积对应点。在参数空间不超过二维的情况下, 这种变换有着理想的效果。
2.4 卫星定位技术
3.1 无线低速网络
ZigBee协议栈结构是基于标准OSI七层模型的,包括高层应用规范、应用汇聚层、网络层、媒体接入层和物理层。
ZigBee技术特点
(1) 低功耗: 由于ZigBee的传输速率低,发射功率仅为1mW,而且采用了休眠模式,功耗低。ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年时间。
(2) 成本低: 并且ZigBee协议是免专利费的。
(3) 时延短: 搜索设备时延:30ms,休眠激活设备时延:15ms, 活动设备信道接入时延:15ms。
(4) 网络容量大: 一个星型结构的Zigbee网络最多可以容纳254个从设备和一个主设备, 一个区域内可以同时存在最多100个ZigBee网络。
(5) 可靠: 碰撞避免、发包确认、出错重发。
(6) 安全: 校验(CRC)、鉴权和认证, AES-128加密。
WIFI技术特点
3.1.1 本章涉及的主要技术
跳频技术(Frequency-Hopping Spread Spectrum;FHSS)
在同步、且同时的情况下,接受两端以特定型式的窄频载波来传送讯号,对于一个非特定的接受器,FHSS所产生的跳动讯号对它而言,也只算是脉冲噪声。FHSS所展开的讯号可依特别设计来规避噪声或One-to-Many的非重复的频道,并且这些跳频讯号必须遵守FCC的要求,使用75个以上的跳频讯号、且跳频至下一个频率的最大时间间隔(Dwell Time)为400ms。
直接序列展频技术(Direct Sequence Spread Spectrum;DSSS)
是将原来的讯号“1”或“0”,利用10个以上的chips来代表“1”或“0”位,使得原来较高功率、较窄的频率变成具有较宽频的低功率频率。而每个bit使用多少个chips称做Spreading chips,一个较高的Spreading chips可以增加抗噪声干扰,而一个较低Spreading Ration可以增加用户的使用人数。基本上,在DSSS的Spreading Ration是相当少的,例如在几乎所有2.4GHz的无线局域网络产品所使用的Spreading Ration皆少于20。而在IEEE 802.11的标准内,其Spreading Ration只有11,但FCC的规定是必须大于10,而实验中,最佳的Spreading Ration大约在100左右。
电路交换:
电路交换是以电路连接为目的的交换方式,通信之前要在通信双方之间建立一条被双方独占的物理通道。电路交换的三个阶段:(1)建立连接、(2)通信、(3)释放连接。
分组交换
分组交换是以分组为单位进行传输和交换的,它是一种存储——转发交换方式,即将到达交换机的分组先送到存储器暂时存储和处理,等到相应的输出电路有空闲时再送出。
OFDM(Orthogonal Frequency Division Multiplexing)正交频分复用技术
实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。OFDM系统的一个主要优点是正交的子载波可以利用快速傅利叶变换(FFT/IFFT)实现调制和解调。对于N点的IFFT运算,需要实施N^2次复数乘法,而采用常见的基于2的IFFT算法,其复数乘法仅为(N/2)log2N,可显著降低运算复杂度。
IPv4 - 端口
在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由 器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻 辑意义上的端口。
IPv4 - PAT技术
端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation).采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。
IPv6 - 地址编码 - 高64位
“FP”是就是地址前缀(也称为“格式前缀”),用于区别其它地址类型。随后分别是13位的TLA ID(顶级聚集体ID号)、8位的Res(保留位,以备将来TLA或NLA扩充之用。)、24位的NLA ID(次级聚集体ID号)、16位SLA ID(节点ID号)和64位Interface ID(主机接口ID号)。TLA、NLA、SLA三者构成了自顶向下排列的三个网络层次,并且依次向上一级申请ID号。
IPv6 - 地址编码 – 低64位
在IPv4和IPv6的混合环境中有第三种表示方法。IPv6地址中的最低32位可以用于表示IPv4地址,该地址可以按照一种混合方式表达,即x:x:x:x:x:x:d.d.d.d,其中x表示一个十六进制整数,而d表示一个十进制整数。
MAC地址可直接作为IPv6地址编码的低64位。
IPv6 -无状态自动配置
主机首先将它的网卡MAC地址附加在连接本地地址前缀1111111010之后,产生一个链路本地单点通信地址。然后向该地址发出一个“邻居探索”的请求,以探索是否有同名的地址。如果请求没有得到响应,则表明主机自我设置的链路本地单点传送地址是惟一的。否则,主机将使用一个随机产生的接口ID组成一个新的链路本地单点传送地址。然后,以该地址为源地址,主机向本地链路中所有路由器多点传送“路由器请求”的配置信息。路由器以一个包含一个可聚集全球单点传送地址前缀和其他相关配置信息的路由器公告响应该请求。主机用它从路由器得到的全球地址前缀加上自己的接口ID,自动配置全球地址。
IPv6 -全状态自动配置
在IPv6中,动态主机配置协议(DHCP)实现了主机IP地址及其相关配置的自动设置。一个DHCP服务器拥有一个IP地址,主机从DHCP服务器租借IP地址并获得有关的配置信息(如缺省网关、DNS服务器等),由此达到自动设置主机IP地址的目的。IPv6继承了IPv4的这种自动配置服务,并称其为全状态自动配置。
CAN总线技术
CAN总线的性能特点
(1)CAN为多主方式工作,网络上的任一节点均可在任意时刻主动地向网络上的其他节点发送信息而不分主从,通信方式灵活,且无需站地址等节点信息。
(2)CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求。
(3)CAN采用非破坏总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。
(4)CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”。
(5)CAN上的节点数主要取决于总线驱动电路,目前可达110个;报文标识符可达2032种(CAN2.0A)。
(6)采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。
(7)CAN的每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低。
CAN、数据帧由7个不同的位场(Bit Frame)组成:
第5章 智能技术
数理统计算法:
1> 极大似然估计
2> 最小二乘法
3> 线性回归
4> 主成分分析
5> 聚类分析
人工神经网络
云计算(NIST)定义:
1> 自服务;
2> 后台一个大的资源池;
3> 服务可伸缩;
4> 可以被广泛的接入;
5> 可计费;
云计算的三个服务层次:IAAS、PAAS、SAAS
软件即服务(SaaS)
SaaS模式下,用户不再需要花费大量投资用于硬件、软件的购买,以及维护人员的费用上,只需支付一定的租赁与服务费用通过互联网享受相应的服务,并且享有软件的使用权和软件的不断升级,这是互联网应用的最具效益的营运模式。
平台即服务(PaaS)
PaaS提供的是经过封装的IT能力。
PaaS能给企业和个人提供研发的中间件平台,提供应用程序开发、数据库、试验、托管运行等服务。
基础设施即服务(IaaS)
这些基础设施包括:CPU、内存、存储、网络带宽、IP地址、端口等硬件资源。IaaS的关键:在恰当的商业模式下,为“正确”的应用部署“正确”的资源。
个大的资源池;
3> 服务可伸缩;
4> 可以被广泛的接入;
5> 可计费;
云计算的三个服务层次:IAAS、PAAS、SAAS
软件即服务(SaaS)
SaaS模式下,用户不再需要花费大量投资用于硬件、软件的购买,以及维护人员的费用上,只需支付一定的租赁与服务费用通过互联网享受相应的服务,并且享有软件的使用权和软件的不断升级,这是互联网应用的最具效益的营运模式。
平台即服务(PaaS)
PaaS提供的是经过封装的IT能力。
PaaS能给企业和个人提供研发的中间件平台,提供应用程序开发、数据库、试验、托管运行等服务。
基础设施即服务(IaaS)
这些基础设施包括:CPU、内存、存储、网络带宽、IP地址、端口等硬件资源。IaaS的关键:在恰当的商业模式下,为“正确”的应用部署“正确”的资源。
编程题
微控制器定时器编程实验
一、实验目标
1. 理解微控制器定时器的概念;
2. 掌握SYSTIC初始化、中断编程的方法;
3. 掌握使用SYSTIC设计定时器的编程方法;
实验原理:
利用定时器来实现灯的闪烁的功能。
(1)定时器每隔一个定时周期都会触发一次定时中断,在定时器的中断函数中,使计数器值减一,直到计数器为零。利用这种方法实现了两个延迟函数:Delay_MS和Delay_US,实现了精确的时间延迟。
(2)在Delay_MS和Delay_US两个函数中,只是一条简单的判断计数器是否大于零的循环语句,在延迟时间为到的情况下,使程序处于阻塞状态。
(3)在main函数中,循环调用Delay_MS或Delay_US实现对LED灯的定时开与关操作,验证微控制器定时器函数的正确性。
因此以下函数是本实验的重点(总共大约50行代码):
SysTick_Handler
Delay_MS
Delay_US
UFO_GPIO_Init
main函数的主循环
三、实验步骤
【1】接线。
使用J-Link连接计算机与STM32开发板;
为STM32开发板供电(使用USB转串口线或直接接5V电源)。
#include "stm32f10x.h"
#include "stm32f10x_it.h"
#include "timer.h"
#include "GPIO.h"
uint32_t g_msCounter = 0; // uint16_t +++
int main(void)
{
int i = 0;
//SystemInit();
Stm32_Clock_Init();//系统时钟设置
//RCC->APB2ENR |= 0x00000001; //开启afio时钟
//RCC->APB2ENR|=0X0000001c;//先使能外设IO PORTa,b,c时钟
// Systic 系统滴答时钟
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
SysTick_Config(72);
// GPIO初始化, LED(PA4,5,6,7),motor(PB4,5,6,7)
UFO_GPIO_Init();
// 主循环
while(1)
{
// LED灯闪烁
GPIO_SetBits(GPIOB, GPIO_Pin_8); //PB.8 输出高
Delay_MS(5000);
GPIO_ResetBits(GPIOB, GPIO_Pin_8); //PB.8 输出低
Delay_MS(5000);
}
}
//
// timer.c
//通用定时器3中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!
#include "stm32f10x.h"
#include "timer.h"
extern uint32_t g_msCounter;
void Sleep(int nMS)
{
int i=0, j=0, k=0;
for(i=0; iCR|=0x00010000; //外部高速时钟使能HSEON
timeout=0;
while(!(RCC->CR>>17)&&timeout<200)timeout++;//等待外部时钟就绪
//0-24M 等待0;24-48M 等待1;48-72M等待2;(非常重要!)
FLASH->ACR|=0x32;//FLASH 2个延时周期
// HSE:High Speed External Clock signal
// HSI:High Speed Internal Clock signal
RCC->CFGR|=0X001D2400;//APB1/2=DIV2;AHB=DIV1;PLL=9*CLK;HSE作为PLL时钟源
RCC->CR|=0x01000000; //PLLON
timeout=0;
while(!(RCC->CR>>25)&&timeout<200)timeout++;//等待PLL锁定
RCC->CFGR|=0x00000002;//PLL作为系统时钟
while(temp!=0x02&&timeout<200) //等待PLL作为系统时钟设置成功
{
temp=RCC->CFGR>>2;
timeout++;
temp&=0x03;
}
//SysTick->CTRL&=0xfffffffb;
}
// 72M AHB 时钟频率, 1ms 含有72000个时钟滴答
void Delay_MS(uint32_t nMs)
{
g_msCounter = nMs*1000;
//g_msCounter = nMs;
while(g_msCounter != 0);
}
void Delay_US(uint32_t nUs)
{
g_msCounter = nUs;
while(g_msCounter != 0);
}
// 获取系统滴答计时器的当前计数值
uint32_t GetTickCount(void)
{
return SysTick->VAL;
}
//
// GPIO.c
#include "stm32f10x.h"
#include "GPIO.h"
void UFO_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);//使能PB,PE端口时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
// LED控制
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //LED0-->PA.8 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化GPIOB.8
//GPIO_SetBits(GPIOB, GPIO_Pin_8); //PA.8 输出高
GPIO_ResetBits(GPIOB, GPIO_Pin_8); //PA.8 输出低
}
extern uint32_t g_msCounter;
void SysTick_Handler(void)
{
if (g_msCounter != 0x00)
{
g_msCounter--;
}
}