无线传感器开发系统的设计及实现
时间:07-15
来源:互联网
点击:
3 开发板软件设计
3.1 上位机程序设计
用C++ Builder 6.0编写上位机程序,制作了用户操作界面,并将不同编译系统生成的多种目标文件格式转换成上、下位机约定的文件格式,传送给下位机。
为提高向ATMELGAl28L的FLASH和E2PROM写代码的效率和便于从E2PROM向FLASH写代码,上位机传送给下位机的代码采用图4所示的格式。
图4中,地址指该段代码要写入FLASH的初始地址,包括2字节的页地址和l字节的页内地址;序列号表示该段代码是全部代码中的第几段;长度指该段代码的字节数,不包括地址和序列号。每一地址段代码都采用表2的格式。
上位机程序支持的目标文件格式有:TinyOS、AVRGCC和IAR生成的Intel hex文件。Intel hex是Intel公司提出的一种文件标准,是最常用的目标文件格式之一。上位机程序还支持TI(德州仪器)公司提出的msp430-txt格式,该格式及说明如表2所示。
上位机程序将不同编译系统生成的不同格式的目标文件转换成图4所示的格式,再发给下位机。上位机操作界面提供了各种命令按钮,用户点击命令按钮后,上位机即按制定的该命令模式处理协议发送命令和数据。在传送文件时,为确保数据传送不出差错,采用了停止-等待传输协议。上位机发送约定长度的数据后停止发送,等接收到下位机发来的确认标志后再开始发送。上位机总程序框图如图5所示。
3.2 下位机程序设计
下位机接收上位机的命令,完成读写FLASH、E2PROM、镇定位、熔丝位和USB口使用权的切换等功能。由于实现的功能较多,采用了模块化、自下向上的结构化设计方法。首先按照ATMELCAl28L数据手册提供的SPI编程算法,用C语言实现了读写FLASH、锁定位和熔丝位等模块。
程序设计的一个难点是将接收的上位机发送的文件写入FLASH或E2PROM,因为涉及到接收数据和写FLASH或EZPROM的交互。解决方法是采用停止一等待传输协议进行数据传送。下位机开辟约定数量的缓冲区,利用中断接收上位机数据至缓冲区满,处理完缓冲区数据后发送确认标志,上位机收到确认后再开始下一次发送。
按制定的协议写ATMELGA128L的FIASH的流程图如图6所示。
写EZPROM与写FLASH类似,只是要将接收的地址、序列号、长度也写入E2PROM。代码在E2PROM中存放时仍保持表2所示的格式,即段初始地址、序列号、该段长度、数据的格式,以便将E2PROM中存储的代码写入FLASH。
编写下位机程序时,依据各模块分别用子函数实现、模块间接口清晰、主程序简单的原则,实现了读写FLASH和E2PROM、读写锁定位和锁定位、从 E2PROM写FLASH等几大模块,主函数接收到命令调用相应模块即可。当按下中断按钮时,中断程序先检测FLASH连接,如果检测成功,则调用从 E2PROM写FLASH模块;否则红灯闪烁指示操作失败。
使用本文设计的开发板对节点下载程序,程序运行正常,节点间通信状态良好,且功耗低,实现了预计的功能并满足性能要求。
从设计过程和使用可以看出,本开发系统具有以下优点:
(1)节点功耗低,体积小,射频芯片灵敏度高;
(2)节点通用性好,可以连接多种传感板;
(3)开发工具用户界面友好,支持多种目标文件格式;
(4)代码可存储在E2PROM中,需要下载时按下按钮便写入FLASH,配置节点方便。
本文所设计的传感器开发系统便于研究者做更深入的实践研究,推动了传感器更广泛的应用。
电子 传感器 电源模块 总线 射频 PCB 电路 电阻 USB 连接器 AVR 德州仪器 C语言 相关文章:
- 变革电信网网络安全框架 (01-03)
- 浅谈IPv6技术的若干问题(01-09)
- LG电子低成本CDMA手机的设计原则剖析 (01-12)
- 专家教你做个病毒高手(04-30)
- 数据库归档要考虑的四大问题(05-26)
- 5个步骤成功加密电子邮件(07-18)