情景2-任务4:设计嵌入式系统中的wifi通信接口

学习性工作任务单

学习场名称

开发嵌入式软件

学习情境名称

设计物联网通信接口

学习任务名称

设计嵌入式系统中的WiFi通信接口ARM CPU型号S3C2440USB WiFi模块型号为B-LINK BL-LW02-2

学时

2学时

典型工作过程描述

1. 分析需求2.制定方案3.编写代码4.测试软件5.验证系统

学习目标

1.分析需求

1.1确定目标

1.2收集需求信息

1.3建立需求文档;

1.4验证需求;

1.5更新需求文档;

1.6审核需求文档;

保障措施:保护客户信息,尊重用户隐私,守信用,遵守行业规范,责任意识,持续学习。

2.制定方案

2.1制定设计规范

2.2设计总体软件架构

2.3设计功能模块

2.4设计测试用例

2.5优化性能

保障措施:尊重知识产权,保护用户隐私,确保合法性和合规性,尽职尽责,社会责任感。

3.编写代码

3.1确定编程环境

3.2定义程序结构

3.3编写初始化函数

3.4编写主程序

3.5编写子程序

3.6 编写驱动程序

保障措施:尊重知识产权,保护用户隐私,提高软件可靠性和安全性,确保合法性和合规性,尽职尽责,提高专业素养,社会责任感。

4.测试软件

4.1审查代码

4.2分析静态代码;

4.3分析动态代码;

4.4设计测试用例;

4.5测试单元模块;

4.6测试集成性;

保障措施:保护用户隐私,公正客观,确保测试质量,提高专业素养,提高工作效率。

5.验证系统

5.1烧录系统

5.2测试功能

5.3测试性能

5.4测试安全性

5.5测试可靠性。

保障措施:保障系统安全性,避免影响系统运行,确保测试数据的准确性,提高专业素养

任务描述

1.分析需求

1)确定目标

仔细审阅项目需求文档及企业《嵌入式系统中的WiFi通信接口任务书》,获取有关设计嵌入式系统中的WiFi通信接口的具体需求和期望。提取通信速率、数据传输方式、网络协议、安全要求等关键信息。

2)收集需求信息

收集嵌入式系统软硬件平台信息,嵌入式系统开发环境和条件,包括Mini2440硬件平台的技术规格,了解其硬件资源、操作系统特性;明确USB WiFi模块的型号、规格以及接口要求,验证USB WiFi模块与操作系统内核驱动的兼容性及连接方案的可行性。从《物联网嵌入式开发技术项目教程》等资料收集整理设计嵌入式系统中的WiFi通信接口嵌入式软件参考例程。明确编程语言、开发工具、调试设备、测试方法等平台参数。

3)建立需求文档

按照《软件需求说明书规范》的要求,根据收集到的信息,编制详细的嵌入式系统中WiFi通信接口需求文档。文档中明确功能需求、性能需求、接口需求、安全性需求和适用场景等方面的要求并作具体描述。

4)验证需求

采用合适的测试工具,如网络模拟器、协议分析工具和安全性测试工具,对需求文档中规定的通信速率、协议兼容性、安全性等要求进行验证,以确保需求的准确性和完整性。

5)更新需求文档

如果在项目进展中需求发生变更或补充,及时更新需求文档,记录变更原因和内容,确保文档与最新需求一致。

6)审核需求文档

最终完成并输出嵌入式系统WiFi通信接口的需求说明书,以供后续的设计和开发使用。

2.制定方案

1)制定设计规范

制定WiFi通信接口嵌入式软件设计规范,包括选择编程语言(如C/C++)、制定代码风格、命名规范等。这有助于确保代码质量和一致性,以及简化代码审查过程。

2)设计总体系统架构

设计嵌入式系统中WiFi通信接口的软件系统总体架构。确定模块划分、模块之间的接口定义、数据流图、状态转换图等。清晰的架构有助于模块化开发,提高系统的可维护性和可扩展性。

3)设计功能模块

查阅《嵌入式linux设备驱动》,完成嵌入式系统WiFi通信模块驱动程序设计,这将包括USB设备驱动、网络设备驱动、WiFi设备私有功能三部分内容,它们分别实现WiFi设备挂载USB总线、网络设备注册、无线功能扩展及用户空间交互的功能。根据所选的WiFi通信协议(如802.11ac802.11n等),详细设计通信模块,对相关驱动函数输入输出接口、算法实现、数据结构定义进行设计,确保数据能够在通信中稳定、可靠地传输。

4)设计测试用例

制定WiFi通信接口的测试用例,包括正常通信流程、异常情况的测试场景、负载测试等。确保测试覆盖各种情况,有助于发现潜在的问题。

5)优化性能

WiFi通信接口的性能进行分析和优化。包括算法优化、代码优化、资源管理优化等,以提高系统的性能,确保用户体验流畅。

6)编写嵌入式系统WiFi通信接口的软件设计说明书,详细描述各个模块的功能、接口定义、数据结构等。

3.编写代码

1)确定编程环境

配置虚拟机VirtualBox中的Ubuntu开发环境,选择适当的编程语言和开发工具。根据选择的USB WiFi模块(如B-LINK BL-LW02-2),查找相应的开发文档和示例代码,为WiFi通信接口编写代码做好准备。

2)定义程序结构

设计WiFi通信接口的程序整体结构,包括模块划分、全局变量、函数接口、数据结构以及它们的关系等,加入适当的注释,说明模块的功能和关键算法,确保代码的可读性和可维护性。

3)编写初始化函数

编写WiFi设备的初始化函数,完成自身配置的初始化,确保USB WiFi硬件模块能够正常启动和配置。

4)编写数据传输模块

编写主程序main(),实现嵌入式系统的WiFi通信功能。包括数据发送、接收,以及数据错误处理的实现,这些函数应当考虑数据缓冲、处理逻辑和数据结构,以确保数据能够稳定、可靠地在通信中传输。

5)编写子程序

编写子程序,完成WiFi设备本身的私有功能,包括在procsys文件系统上建立与用户空间的交互接口、实现扫描、功耗、电源管理等自身私有功能。

6)输出完整源码

输出完整的嵌入式系统WiFi通信接口源代码,以确保代码能够在Mini2440硬件平台上成功编译和运行,为后续的测试和验证做好准备。

4.测试软件

1)审查代码

按照《嵌入式软件编码规范》,对编写的代码进行审查。检查代码质量、可读性、一致性等,以确保高质量的代码。

2)静态代码分析

使用静态代码分析工具(如SplintCoverity等),对代码进行检查,发现代码中可能存在的缺陷和潜在的安全问题,如内存泄漏、数组越界、空指针等,确保代码的健壮性。

3)分析动态代码

使用动态代码分析工具,如ValgrindAddressSanitizer,分析代码的执行路径、函数调用关系,内存使用情况等,以验证代码的正确性和可靠性。

4)设计测试用例

设计全面的WiFi通信接口的测试用例,包括正常通信、异常情况、负载测试、性能测试等。确保测试覆盖各种情况,有助于发现潜在的问题。

5测试单元模块

使用适当的测试框架或工具对各个模块的函数进行单元测试,验证各模块函数独立功能是否正确、边界情况是否妥善处理,确保代码的稳定性和可靠性。

6测试集成性

进行整体系统集成测试,确保各模块之间的函数接口正确和参数传递的正确性。测试不同模块之间的数据流,确保数据传输和函数调用等操作无误,以保障系统的稳定性和一致性。

7)输出测试报告

生成详细的嵌入式WiFi通信接口软件测试报告,记录单元测试、集成测试和系统测试测试过程、测试结果、问题和解决方案,以便进一步的调试和验证。

5.验证系统:

1)烧录系统

将无线协议及无线网卡驱动Wireless LAN (IEEE 802.11)通过Makefile配置进内核,将更新的内核烧录至Mini2440嵌入式目标板中。同样使用Makefile编译应用层源码,将生成的可执行文件通过tftp/ftp等网络工具下载到Mini2440嵌入式linux文件系统中,运行系统,确保WiFi通信接口能够正确加载和运行。

2)测试功能

USB WiFi模块连接至Mini2440USB主设备接口,PC连接至Mini2440的串口0以进行系统监控,同时将Mini2440接入CMOS摄像头,通过PC端获取摄像头的监控影像对PCMini2440的无线WiFi通信进行功能测试。包括对USB无线网卡识别、无线网络扫描、无线网络的接入功能等进行测试,验证室内场景无线监控功能是否符合需求等。测试过程中使用PC终端监控通信过程和数据传输,使用PC端浏览器访问目标板摄头采集的室内场景图像数据。

3)测试性能

使用合适的性能测试工具,测试通信速率、数据处理效率、资源占用等性能指标,确保系统能够满足性能需求,并且在高负载情况下表现良好。

4)测试安全性

WiFi通信接口嵌入式软件进行安全性测试,检查系统是否容易受到攻击,确保通信数据的机密性和完整性得到保护。寻找并解决潜在的安全漏洞。

5)测试可靠性

WiFi通信接口进行电气稳定性、抗干扰性、抗振特性测试。确保系统在长时间、高负载运行情况下的可靠性和稳定性。

6)生成详细的嵌入式系统WiFi通信接口验证报告,记录验证过程、测试结果、系统性能和稳定性数据等信息。确保验证过程的细节和结果在验证报告中完整地呈现。

学时安排

资讯0.2学时

计划0.2学时

决策0.2学时

实施1学时

检查0.2学时

评价0.2学时

对员工的要求

1.分析需求

1)保护客户信息:员工需要尊重客户的知识产权和商业机密,不得泄漏用户信息或将其用于非法用途。

2)尊重用户隐私:员工需要尊重用户的隐私权,不得在需求分析过程中收集或使用用户的个人信息,同时需要对用户的个人信息进行保护和处理。

3)守信用:员工需要严格遵守合同约定和承诺,确保需求分析过程中的所有工作都是真实可靠的,不得有欺诈行为。

4)遵守行业规范:员工需要遵守相关行业规范和标准,确保需求分析工作的规范性和合规性,同时也需要尊重其他行业从业人员的权益和利益。

5)意识到责任:员工需要意识到自己的职业责任和义务,不仅要满足客户的需求和要求,同时也需要考虑需求分析结果对用户、公司和社会的影响和责任。

6)持续学习:员工需要持续学习和提高自己的专业素养,了解最新的需求分析技术和方法,以及遵守需求分析规范和标准,确保需求分析结果具有可读性、可维护性和可重用性。

2.制定方案

1)尊重知识产权。员工需要尊重知识产权,不应抄袭或盗用他人的方案、设计或思想。

2)保护用户隐私。员工需要保护用户隐私,遵守相关的隐私法规和规定,确保设计方案中不会收集和存储用户的个人信息。

3)确保合法性和合规性。员工需要确保设计方案的合法性和合规性,遵守相关法律法规和规定,不涉及任何违法活动或行为。

4)尽职尽责。员工需要尽职尽责,认真履行自己的职责,确保设计方案能够满足项目的需求和要求。

5)社会责任感:员工需要有社会责任感,考虑设计方案的社会影响和责任,确保设计方案符合社会道德和法律规范。

3.编写代码

1)尊重知识产权。员工需要尊重知识产权,不应抄袭或盗用他人的代码、算法或知识产权,以及使用正版软件和工具。

2)保护用户隐私。员工需要保护用户隐私,遵守相关的隐私法规和规定,确保软件不会收集和存储用户的个人信息,以及加密敏感数据。

3)提高软件可靠性和安全性。员工需要提高软件的可靠性和安全性,避免设计和编写存在缺陷的代码,以及避免存在潜在的安全漏洞和攻击。

4)确保合法性和合规性。员工需要确保编写的代码的合法性和合规性,遵守相关法律法规和规定,不涉及任何违法活动或行为。

5)尽职尽责。员工需要尽职尽责,认真履行自己的职责,确保编写的代码能够满足项目的需求和要求,以及及时维护和更新代码。

6)提高专业素养。员工需要不断提高自己的专业素养,了解最新的嵌入式软件编写技术和方法,以及遵守编写规范和标准,确保编写的代码具有可读性、可维护性和可重用性。

7)社会责任感。员工需要有社会责任感,考虑编写的代码的社会影响和责任,确保编写的代码符合社会道德和法律规范,以及不会对用户和社会造成伤害。

4.测试软件

1)保护用户隐私:员工需要保护用户隐私,遵守相关隐私法规和规定,确保测试数据不会泄露用户个人信息。

2)公正客观:员工需要保持公正和客观,不受个人利益或其他偏见的影响,对待所有测试数据和测试结果都应一视同仁。

3)确保测试质量:员工需要确保测试质量,编写充分的测试方案和测试用例,涵盖所有可能出现的异常情况,以及遵守测试规范和标准。

4)提高专业素养:员工需要不断提高自己的专业素养,了解最新的嵌入式软件测试技术和方法,以及遵守测试规范和标准,确保测试数据具有可读性、可维护性和可重用性。

5)提高工作效率:员工需要通过有效的测试工作流程和方法,提高测试工作的效率和准确性,尽快发现和解决嵌入式软件中存在的问题和缺陷,以确保软件的质量和稳定性。

5.验证系统

1)保障系统安全性:员工需要确保测试过程中系统的安全性,尤其是对于涉及到安全领域的嵌入式软硬件系统,需要严格遵守安全测试规范,确保系统的安全性。

2)避免影响系统运行:员工需要在测试过程中避免对系统的正常运行产生影响,不得擅自修改系统参数、数据等内容,确保测试不影响系统的稳定性和可靠性。

3)确保测试数据的准确性:员工需要确保测试数据的准确性和真实性,不得篡改或伪造测试数据,同时也需要对测试数据进行保密和妥善处理,以防数据泄露和滥用。

4)提高专业素养:员工需要不断提高自己的专业素养,了解最新的嵌入式软硬件测试技术和方法,以及遵守测试规范和标准,确保测试数据具有可读性、可维护性和可重用性。

参考资料

1. 张小恒等. 物联网嵌入式开发技术项目教程[M], 北京: 机械工业出版社, 2023.

2. 广州友善之臂计算机科技有限公司. MINI2440用户手册. 广州: 广州友善之臂计算机科技有限公司. 2014.

3. 姜先刚, 刘洪涛. 嵌入式Linux驱动开发教程[M], 北京: 电子工业出版社, 2017.

4. GB/T 9385-2008. 计算机软件需求规格说明规范[S]. 北京: 中国质检出版社, 2008.

5. GB/T 28169-2011. 嵌入式软件C语言编码规范[S]. 北京: 中国质检出版社, 2012.