首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于CyFi的无线传感器网络组建与通信设计
来源:本站整理  作者:佚名  2009-11-10 13:10:56



  对于多功能板B使用的MF_CS_SLIDE样例,首先使用PSoC Designer的工程克隆功能,将样例中PSoCExpress编写的系统级工程克隆为PSoC Designer的芯片级工程,否则不能直接修改程序中的代码。然后在主函数中添加如下核心代码:

程序

这样,5个部分的PSoC程序全部编写完成,最后分别编译各个程序再使用PSoC Programmer烧录到各个板卡中即可。

4.2 上位机软件设计

  尽管CY3271的配套光盘中已包含了用于数据采集和感应控制的软件SCD,但为了弄清楚FTPC设备USB接口的读写过程,以及今后将Hub移植到其他平台,还是编写了功能可定制的上位机软件。此软件使用VisualC++2005编写,同时使用了TeeChart图表显示控件。

  由于CY3271中的FTPC设备采用USB接口与PC机连接,且此USB设备已模拟成标准的HID设备,故上位机软件与FTPC设备通信时只需要使用标准的HID设备的控制及读写函数。对FTPC设备的读写过程大致如下:

①使用HidD_GetHidGuid()函数获取本机HID设备的接口类GUID。

②使用SetupDiGetClassDevs()函数获取HID类中所有设备的信息集合。

③在该设备信息集合中,使用SetupDiEnumDevi-ceInterfaces()函数获取每个设备的信息。

④使用SetupDiGetDeviceInterfaceDetail()函数获取某个设备的详细信息。要获取某个设备的详细信息,此函数必须调用2次。第1次调用是为了得到保存设备信息需要的缓冲区大小,第2次调用才是真正地获取设备详细信息。

⑤获得设备的详细信息后,使用设备详细信息结构体中的DevicePath作为Create File()函数的参数打开指定的设备。

⑥打开设备后,使用HidD_GetAttributes()函数获取设备的属性(属性中包含了厂商编号VID、产品编号PID以及产品版本号等信息)。然后比较VID、PID是否与FTPC的一致。如果一致(VID=04B4,PID=F115),则退出查找,说明设备已经找到;如果不一致,则切换到下一个设备,然后重复前面的步骤③~⑥。

  找到设备后,就可以对设备进行数据读写了。使用Bus Hound软件查看USB设备及抓取USB数据包。经分析发现,FTPC设备是使用HID设备中的中断端点传输数据的,故应调用ReadFile()和WriteFile()函数实现读写。由于FTPc设备为HID从设备,故对FTPC设备的每个读或写的过程都同时有先写后读的操作。也就是说,写FTPC设备时是先写入相关的写命令和欲写入的数据,再读出写入是否成功的反馈;读FTPC设备时是先写入相关的读命令,再读出欲读取的数据。

  按照上述方法,再结合Hub的PSoC程序中定义的命令和:Bus Hound抓包得到的结果,就可以对FTPC设备中的Hub执行相应的操作了,如进入绑定状态,读取绑定结果,读取接收到的消息等。节点绑定成功之后,即可查看实时的数据采集情况,包括数据采集的时间和滑块位置值等,如图4所示。

数据采集情况

结 语

  CyFi的出现使无线传感器网络中的各种问题迎刃而解,而PSoC的用户模块方式极大地方便了开发人员,使开发人员只需通过拖放及添加简单的代码,就能轻松地完成复杂的无线传感器网络应用的设计与开发。同时,入门套件的Hub设备模拟成标准的HID设备,也使PC机上应用程序的开发变得轻而易举。
 

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:320,996.10000 毫秒