WG7310(WLAN+Bluetooth+FM)芯片在.Net MF中的应用 推荐
2010-03-14 12:12
495 查看
WG7310芯片是Ti推出的一款芯片,集成了WLAN、Bluetooth、FM等功能(最近又推出了四合一的芯片,把GPS功能也集成了进去),由于以前在.Net MF上的一些工作是基于Ti DM335开发板上的,所以开发.Net MF系统的WiFi功能就选用了WG7310芯片。
芯片的技术指标如下:
功能规格:WLAN + Bluetooth+FM Combo 无线模块
主芯片厂牌:TI (Texas Instrument)
主芯片编号:WL1271 One Chip
支持协议:IEEE 802.11 b/g/n, Bluetooth 2.0/2.1+ EDR,FM
支持频道: 2.4 GHz
支持频宽:11Mbps (11b), 54Mbps (11g), 150Mbps(11n),4Mbps (BT)
连结接口:SDIO (WLAN), UART (BT)
操作系统:Windows CE /6.0, Linux 2.4/2.6,Android;
由于前期一直在做MSN Direct相关的工作,介入Wifi开发相对比较晚,前期SDIO、Wifi底层驱动的移植工作已有同事基本完成,后续工作主要为AP扫描、AP连接(无密码、WEP、WAP1、WAP2)及.Net MF库接口开发,此外还需完成一个相对完整的示例程序。
下面一一简单介绍一下WG7310如何在.Net MF中使用的。
WG7310芯片开发板与DM335开发板的连接关系如下:
逻辑架构层次图如下:
WG7310芯片集成有自己的CPU系统,借助运行其上的程序通过SDIO和DM335开发板进行交互(这一点和Ti推出的CC2430Zigbee芯片类似,集成了51内核,通过串口与外界交互),由于WG7310芯片的片上Flash太小,所以需要通过外界把系统所需要的三个系统文件(firmware.bin、nvs_map.bin、tiwlan.ini)下载到该芯片上去,最初这三个文件放在.Net MF的文件系统中,考虑到受资源所限,并不是所有的.Net MF系统都含有文件系统,所以在Flash上开辟了一个Custom区,专门存放这三个文件。
这三个文件可以通过我以前开发的Flash远程读写 工具进行部署(如下图)。
在Native代码中,通过如下函数就可以提取文件内容:
注:CustomBlock块的读写非.Net MF官方标准功能,是我另行扩展的。
.Net MF的上层Wifi库由于还处在研发阶段,远没有定型,所以这里就不公开了,基本功能就是AP扫描,AP连接。
由于Wifi的开发相对复杂,远不是一句两句话所能说清的,特别是WPA1和WPA2功能,需要了解很多协议和过程,不仅考验你的C++功底,更考验你的逻辑思维能力。相关思路和代码这里就不细说了,下面仅展示一下相关的应用示例(对WG7310芯片开发感兴趣的朋友我们可以通过邮件和MSN进行更深入的交流)。
注:
(1)、示例程序所采用的图形库采用我开发的System.Windows.Forms库,非系统自带的WPF库。
(2)、DM335开发板的显示通过AV输出(见图一),无触摸或鼠标键盘输入,所以相关控制和输入通过我开发的插件进行控制,请参见《让PC成为MF的鼠标键盘》。
(3)、上述截图通过我开发远程截图工具进行截取的。
随着Wifi驱动的开发成功,下一步将深入研究Zigbee通信协议(其实Zigbee协议在.Net MF V4.0版本就含有相关源码,不过是基于托管代码),这样.Net MF外部通信接口除蓝牙外,几乎囊括了我们所常见的通信接口,如串口、网口、Wifi、Zigbee、I2C、SPI、SDIO、USB等。必要时我们还可以让.Net MF原生支持Modbus Rtu、Modbus TCP、PPI、CP243等通信协议,这样在物联网时代,用户只需几行C#代码(无需具备嵌入式开发技术),就可以让自己的设备轻松入网,这对.Net MF来说,是一个非常诱人的应用场景。
芯片的技术指标如下:
功能规格:WLAN + Bluetooth+FM Combo 无线模块
主芯片厂牌:TI (Texas Instrument)
主芯片编号:WL1271 One Chip
支持协议:IEEE 802.11 b/g/n, Bluetooth 2.0/2.1+ EDR,FM
支持频道: 2.4 GHz
支持频宽:11Mbps (11b), 54Mbps (11g), 150Mbps(11n),4Mbps (BT)
连结接口:SDIO (WLAN), UART (BT)
操作系统:Windows CE /6.0, Linux 2.4/2.6,Android;
由于前期一直在做MSN Direct相关的工作,介入Wifi开发相对比较晚,前期SDIO、Wifi底层驱动的移植工作已有同事基本完成,后续工作主要为AP扫描、AP连接(无密码、WEP、WAP1、WAP2)及.Net MF库接口开发,此外还需完成一个相对完整的示例程序。
下面一一简单介绍一下WG7310如何在.Net MF中使用的。
WG7310芯片开发板与DM335开发板的连接关系如下:
逻辑架构层次图如下:
WG7310芯片集成有自己的CPU系统,借助运行其上的程序通过SDIO和DM335开发板进行交互(这一点和Ti推出的CC2430Zigbee芯片类似,集成了51内核,通过串口与外界交互),由于WG7310芯片的片上Flash太小,所以需要通过外界把系统所需要的三个系统文件(firmware.bin、nvs_map.bin、tiwlan.ini)下载到该芯片上去,最初这三个文件放在.Net MF的文件系统中,考虑到受资源所限,并不是所有的.Net MF系统都含有文件系统,所以在Flash上开辟了一个Custom区,专门存放这三个文件。
这三个文件可以通过我以前开发的Flash远程读写 工具进行部署(如下图)。
在Native代码中,通过如下函数就可以提取文件内容:
int TI_fileloader() { TiFileInfo *fileinfo = (TiFileInfo*) private_malloc(512); if(fileinfo==NULL) return -1; if(CustomBlock_Read(0,(UINT8 *)fileinfo,512)==FALSE) return -2; if(fileinfo ->Flag != 0xFEDE7722 || fileinfo->FileNum!=3) return -3; UINT8 *bytData=(UINT8 *)private_malloc(fileinfo->FileSize); if(bytData==NULL) return -4; if( CustomBlock_Read(fileinfo->HeadSize,bytData,fileinfo->FileSize)==FALSE) return -5; int Num=0; for(int i=0;i<fileinfo->FileNum;i++) { if(hal_stricmp(fileinfo->Item[i].Name,"firmware.bin") == 0) { g_file_loader.firmware_buffer = (UINT8*)bytData +fileinfo->Item[i].Addr; g_file_loader.firmware_length = fileinfo->Item[i].Size; Num++; } if(hal_stricmp(fileinfo->Item[i].Name,"nvs_map.bin") == 0) { g_file_loader.nvs_buffer = (UINT8*)bytData +fileinfo->Item[i].Addr; g_file_loader.nvs_length = fileinfo->Item[i].Size; Num++; } if(hal_stricmp(fileinfo->Item[i].Name,"tiwlan.ini") == 0) { g_file_loader.ini_buffer = (UINT8*)bytData +fileinfo->Item[i].Addr; g_file_loader.ini_length = fileinfo->Item[i].Size; Num++; } } if(Num!=3) return -6; return 0; }
注:CustomBlock块的读写非.Net MF官方标准功能,是我另行扩展的。
.Net MF的上层Wifi库由于还处在研发阶段,远没有定型,所以这里就不公开了,基本功能就是AP扫描,AP连接。
由于Wifi的开发相对复杂,远不是一句两句话所能说清的,特别是WPA1和WPA2功能,需要了解很多协议和过程,不仅考验你的C++功底,更考验你的逻辑思维能力。相关思路和代码这里就不细说了,下面仅展示一下相关的应用示例(对WG7310芯片开发感兴趣的朋友我们可以通过邮件和MSN进行更深入的交流)。
注:
(1)、示例程序所采用的图形库采用我开发的System.Windows.Forms库,非系统自带的WPF库。
(2)、DM335开发板的显示通过AV输出(见图一),无触摸或鼠标键盘输入,所以相关控制和输入通过我开发的插件进行控制,请参见《让PC成为MF的鼠标键盘》。
(3)、上述截图通过我开发远程截图工具进行截取的。
随着Wifi驱动的开发成功,下一步将深入研究Zigbee通信协议(其实Zigbee协议在.Net MF V4.0版本就含有相关源码,不过是基于托管代码),这样.Net MF外部通信接口除蓝牙外,几乎囊括了我们所常见的通信接口,如串口、网口、Wifi、Zigbee、I2C、SPI、SDIO、USB等。必要时我们还可以让.Net MF原生支持Modbus Rtu、Modbus TCP、PPI、CP243等通信协议,这样在物联网时代,用户只需几行C#代码(无需具备嵌入式开发技术),就可以让自己的设备轻松入网,这对.Net MF来说,是一个非常诱人的应用场景。
相关文章推荐
- WG7310(WLAN+Bluetooth+FM)芯片在.Net MF中的应用
- 【玩转.Net MF – 05】加载文件系统中的Pe文件 推荐
- 【玩转.Net MF – 01】Flash远程读写 推荐
- 【.Net Micro Framework PortingKit – 15】移植总结(兼谈MF未来发展) 推荐
- Silverlight企业应用开发实践-AgileEAS.NET平台5.0 Silverlight支撑预览 推荐
- Flex与.NET互操作(十一):基于FluorineFx.Net的及时通信应用(Remote Procedure Call)(二) 推荐
- 《ASP.NET AJAX 应用剖析立即上手》推荐序!
- Zigbee在.Net Micro Framework系统中的应用
- 提高 ASP.NET Web 应用性能的 24 种方法和技巧
- DeepFM:深度学习算法助力华为应用市场APP推荐
- 【.Net MF网络开发板研究-02】Http Server功能演示 推荐
- 【STM32 .Net MF开发板学习-08】远程PLC读写控制 推荐
- 【STM32 .Net MF开发板学习-22】超声波测距模块研究 推荐
- 【.Net MF网络开发板研究-04】Socket编程之服务端 推荐
- 《ASP.NET AJAX 应用剖析立即上手》推荐序!
- 《ASP.NET AJAX 应用剖析立即上手》推荐序!
- WinForm+ADO.net应用(二)+ 例子源码 推荐
- 《ASP.NET AJAX 应用剖析立即上手》推荐序!
- 【STM32 .Net MF开发板学习-21】蓝牙遥控智能小车(PC模式) 推荐
- MikroTik Routeros Wlan应用之-HOTSPOT 推荐