无线传感器监测数据采集实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名:谭芳亮班级:通信(1)班学号:2013329600049
实验1:无线传感器监测数据采集实验
【实验目标】
在无线传感器节点的单片机驱动代码的基础上,编写传感器数据采集程序,实现对温湿度传感器的数据采集和计算。
【实验设备】
【实验要求】
(1)熟悉温湿度传感器工作原理;
(2) 熟悉温湿度传感器接口协议;
(3)编写温湿度传感器接口代码;
(4)实现温湿度传感器的数据采集和计算,并验证采集结果的正确性。
【实验原理】
1、开发环境所需软件JDK,Precision32IDE,MDK,J-link驱动(见理工学校实验/tool).
图1-1 所需要的软件
2、MDK的安装与注册
学过51的同学对MDK都不是太陌生,sim32也是用MDK编译代码。MDK对不同的内核有不同的版本,这里用的是keil for ARM4.7双击MDK进行安装,安装过程需要填写一些信息,这些可以随便填写,相信学过51单片机的同学都知道。一直点击next直到安装完成。
MDK没注册代码长度有2K的限制,代码过大会报错,因此需要注册。右击MDK快捷方式图标,点击以管理员身份运行。点击file->license manger...,打开注册机,将CID复制到注册机里,选择ARM版本,生成注册码,将注册面复制到license Management中,点击Add LIC按钮,完成注册。具体过程见DOC/MDK的安装激活与使用。
3、将SIM32官方库复制到在C盘根目录下。(工程里的库文件用的是绝对路径)。
4、MDK的工程管理(向工程里面添加文件)
在这里大家也许会有疑问,怎么用MDK建立工程,用MDK建立过程,设置项比较多。容易出错,因此不建议用MDK建立工程,SIM官方提供的有Precision32 IDE可以建立MDK工程,IAR工程,不过安装IDE之前需要安装JDK,配置环境变量。IDE安装之后,需要用邮箱注册,过程比较繁琐,因此不建议大家使用。有兴趣的同学可以参考DOC/IDE的安装。我们使用建立好的工程模版,只用在使用时向工程里面添加文件即可。添加文件有两种方法。
方法一:点击工具栏工程管理图标进入工程管理如图
图1-2 MDK工程管理
方法二:在MDK主页面左边project窗口工程名上右击,点击Add Group,添加组。
在组上右击添加文件。在文件名上右击选择删除问价。
5、MDK的工程设置
在工程模板基本上把工程的常用设置项已经设置好了。在使用过程中只用改动少许设置。
●Output设置在Create HEX File前面打勾(hex 文件是烧写向单片机烧写的文件)
图1-3 output设置
●C/C++点击Include Path行尾的小按钮,点击图中的新建,点击行尾的小按钮,将新加
入工程中的文件的头文件路径包含里面。(编译器根据这个路径找到要包含的*.h文件路径,不加进去,不能顺利编译,会报错)。
图1-4 c/c++设置
Debug设置(用J-link把节点和电脑相连,给节点上电)如图所示。传感器和网关全部用的是J-link转SW)
图1-5 Debug设置
Utilities设置如图。
图1-6Utilities设置
6、J-link转SWD的制作
图1-7是J-Link和SWD的示意图,用杜邦线把相应的引脚连接。
图1-7 J-link转SWD
7、通用IO口输入输出控制
通用IO口实验通常是单片机的第一个实验这里简单介绍几个函数
a)单片机IO设置为上拉输出函数
SI32_PBSTD_A_set_pins_push_pull_output(SI32_PBSTD_1, 0x0020)
参数解释,SI32_PBSTD_1代表的是P1端口
0x0020代表的是第5个引脚。0x0020写成二进制是0000 0000 0010 0000,第5位是1,因此表示的是第5个引脚。
b)单片机IO输出高电平
SI32_PBSTD_A_write_pins_high(SI32_PBSTD_1, 0x0020)
c)单片机IO输出低电平
SI32_PBSTD_A_write_pins_low(SI32_PBSTD_1, 0x0020)
d)单片机IO设置为输入
SI32_PBSTD_A_set_pins_digital_input(SI32_PBSTD_1, 0x0010)
e)读取引脚电平
SI32_PBSTD_A_read_pin(SI32_PBSTD_1, 2)
参数解释2表示的是第二个引脚,这里的定义和上面不一样,在使用时要注意。
8 、温湿度传感器和单片机的接口
温湿度传感器和单片机采用的是类似IIC的串行通信,和单片机相连如图1-8所示VDD和GND是传感器供电引脚。
SCK是时钟引脚,在通信这个过程中,SCK信号都是有单片机控制的。
DATA是数据线,和单片机IO口相连。用于向传感器发送指令和从单片机读走数据。数据在时钟的上升沿生效在时钟是高电平时保持不变。在时钟是低电平时准备数据。接口如图所示。
图1-8 温湿度接口图1-9 开始信号
单片机先向传感器发送开始命令,然后开始通信,开始命令时序图如图所示。在SCK高电平时,将数据线拉低,在下一个时钟高电平期间,将数据线拉高。开始信号发送完毕。
再开始信号后是命令信号,命令信号包含3位地址位(只支持000)和5位命令位组成。传感器在接收到1byte数据时(即第八个时钟下降沿)将数据线拉低,表示数据正确接收。在九个下降沿被释放。命令如下表。