一个有线语音终端的简略分析

 

线语音终端简略分析

 

 

根据需求和电路图针对一个有线语音终端的软件进行初步评估。预计用时限制在一个小时以内完成。

 

概述

已经做好的电路图,GD32F470加RMII协议芯片转以太网,实现一个有线的语音终端功能的软件。

初步评估,就是一个RTOS+lwip实现基本语音对讲的软件。原型机难度,普通。因为我手头没有这方面的成熟软件模块积累,所以预估时间方面就需要宽泛一点,因为没踩过的坑基本都得踩一遍,踩中一个问题就是几天功夫甚至一周功夫就没了。如果只是原型机的软件,就是调通基本功能,这个时间短的话应该一个月内,稍长一点时间两个月应该足够了。因为未知的风险点难以预测,只能说通过软件架构,层次设计,模块化设计和风险预处理可以把大部分的开发时间风险点控制在一个低水平上,但驱动侧和通信侧可能会有一些意想不到的问题,开发总是这样的,正常。

如果只是一些客户想法验证,原型机应该算是一个节点了,有时候有些项目的需求就是应付一下检查,原型机就已经是项目的终点了。正常外包项目甲方当然是希望越成熟越便宜越好,乙方就是希望需求限制范围越窄越好,矛盾的中点就看双方怎么谈的了。如果结合上必要的测试,进入阿尔法(打不出希腊字母,大家知道是指啥就行了)交付阶段,应该是很多外包项目的终点了,除非甲方的年度维保预算充足,一般乙方都不原再投入到贝塔(打不出希腊字母,大家知道是指啥就行了)交付阶段,因为需求点,问题点太多太杂,费时费力钱还不多,很多扯皮就在这个阶段了。说这么多,就是说明我的观点:

  1. 外包项目分结点做,甲方要做好充分准备中途会换人换团队,每个节点的源代码,文档等交付要完整,而且要有质量,不要当甩手掌柜;
  2. 原型机软件能做的人应该好找,特别是相近行业的专业人员,因为事情相对简单直接,不用太多人甚至一个人就能搞定,时间好控制,人靠谱的话业余时间也能做成不错的结果,首尾也比较干净,不会有太多的扯皮的事情;但即使质量不错,但也只能定义为原型机,因为不是一个组织成果,没有经过成熟的规范制度做流程全面验证,风险控制不在制度和组织而在个人身上,狗皮倒灶的事情见太多了;
  3. 阿尔法阶段应该是稍有点成型的组织才好接的了,深圳大把的软件外包公司,尤其是嵌入式设计就是这个阶段了,因为有团队了,各种测试,质控,规划的共同介入,品质有了一定的保证,品质的水平来自于团队的合作水平,这里面水很深,不作深度解读,至少正常水平较个人来说,普遍水平会稳定而且高一截;
  4. 贝塔阶段涉及到开发部门和最终客户的联合实际测试,也会有产品的一些环境测试,极限测试等,大厂有专门的中试部门干这个,比如以前华为手机用炸药来测试品质就是中试部门干的活,正规产品是必要阶段,但如果乙方能搞定甲方,很多都想省这个阶段,因为投入大,时间长,需要多次反复,一般外包公司碰都不想碰这个阶段。所以除非经费预算充足,时间也充足,目前深圳外包大约是默认不存在这个阶段。

说这么多,就是甲方想明白自己要做啥,有多少预算干多少事,有些品控阶段,如果要求高,还真不如拿到源码后摸索自己建个后期团队,毕竟框架好了,可以用些便宜一点的人力来做事情了,修修补补,精雕细做还是自己人靠谱。因为我是被上个东家在这个事情上坑过,所以我觉得这个对于一个项目很重要,不要出个白菜价想做个满汉全席,那就不现实了。

 

详细

说说具体项目,这个项目无非就是几个关键模块:主控,以太网通信,按键,显示。设计上层次就是分发层,驱动层,处理层。需要遵循的规范:魔改的汽车嵌入式设计规范,大概涉及代码层次划分,模块划分,通信机制,预风险控制,函数划分,函数代码量控制等规范,外围的就是基本的命名规范,注释规范,文档规范等。所以看起来简单也简单,但要真做好也不简单,就是如何做好一盘大白菜吧。

通信方式:

从需求里面看到的这是一个车内通信系统,再加上外接的无线通话通道。假设所有设备均连接在车内的单一以太网内,其实就是一个很简单的局域内网通话系统,以正常逻辑考虑,其实这个系统已经相当的简单了,特别是可以假定这是一个单子网的以太网,广播通信的应用也没啥限制的。正常情况,车内系统可以考虑为通信容量足够,基本上通信环境风险也就小很多了。这方面来说,对于这个软件的难度特别是测试难度就小了很多。

系统架构

从需求上来看,这个应该是带注册管理的CS架构,这个嵌入式软件在有服务器的架构上,相对就简单很多了。

 

更多:

目前从需求上来看,只能看到一部分的系统功能,所以只能做到这一步分析。

 

基础设计风险点

  1. 系统架构设计上要做分层设计,目前来前是控制层,处理层和驱动层 ;
  2. 架构上要做好防阻塞设计,避免出现软件被驱动或处理流程阻塞;
  3. 通信上最好采用预分配机制(此处同内存ram的使用效率上有冲突,为稳定性,建议牺牲使用效率提高稳定性),信号量协调机制,软中断,硬中断等多结合方式进行综合流程控制;
  4. 根据信息流做任务流分配,此处做好防阻塞设计;
  5. 以上信息流和分配根据状态机设计,要求状态机文档和代码同步更新;
  6. 程序可采用表格驱动方式,代码可以相当简捷,但对文档要求较高;

 

总结

耗时1个小时16分,目前手头能看到的需求和电路只能大致分析至此。建议找个有相关代码积累的外包有节奏有节点的开始,注意交付件的跟进和品质控制,后续再根据要求的级别再看走做种的组织形式。

 

老李

2024.5.13于深圳

 

  • 26
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值